0. 简介
密集的光流估计在许多机器人视觉任务中起着关键作用。随着深度学习的到来,已经比传统方法以令人满意的精度预测了它。然而,当前的网络经常占用大量参数并且需要沉重的计算成本。这些缺点阻碍了在功率或内存受限的移动设备上的应用。为了应对这些挑战,在本文《FastFlowNet: A Lightweight Network for Fast Optical Flow Estimation》中,我们将深入研究设计有效的结构,以进行快速,准确的光流预测。我们提出的FastFlowNet通过以下创新以众所周知的从粗到细的方式工作。首先,采用了新的头部增强池金字塔(HEPP)特征提取器来增强高分辨率金字塔特征,同时减少参数。第二,我们介绍了一种新颖的中心密集膨胀相关(CDDC)层,用于构造紧凑的成本量,可以保持较大的搜索半径并减少计算负担。第三,将高效的混洗块解码器(SBD)植入每个金字塔级别,以使流量估计准确度略有下降。FastFlowNet仅包含1.37 M参数,并在Sintel分辨率图像上在NVIDIA GTX 1080 Ti和嵌入式Jetson TX2 GPU分别以90或5.7 fps的速度运行。目前来说,该轻量化网络基本可以应对低速的无人车系统。相应的代码已经在Github上完成了开源。同时在NVIDIA Developer Forums中也有人尝试着完成TensorRT的加速
1. 文章贡献
为了提高光流的准确估计速度,便于实际应用,本文提出了一种轻量级的快速网络,称为FastFlowNet。我们的模型基于广泛使用的由粗到细的残差结构,并从金字塔特征提取、成本体积构造和光流解码三个方面对其进行改进,覆盖了流量估计管道的所有组件。
-
首先,提出了一种头部增强池金字塔(HEPP)特征提取方法,该方法在较高层次使用卷积层,而在较低层次采用无参数池。
-
其次,最近的研究[13],[19]表明增大相关层的搜索半径可以提高流动精度。而代价体积的特征通道是搜索半径的平方,后续解码器网络的计算复杂度是搜索半径的4次方。在FastFlowNet中,我们保持搜索半径为4,就像在PWC-Net[13]中一样,以感知大型移动。不同的是,为了减少计算量,我们向下挖掘大残差区域的样本特征通道,并提出了一种新的中心密集膨胀相关(CDDC)层来构造紧凑的成本体积。
-
第三,我们观察到每个金字塔级的流解码器占整个网络的参数和计算的比例都比较大。为了进一步减少计算量,同时保持良好的性能,我们参照轻量级ShuffleNet[21]构建了一种新的shuffle block decoder (SBD)模块,以满足其低计算成本和高分类精度的要求。不同于shuffle lenet[21]作为骨干网,我们的SBD模块用于光流的回归,它只位于解码器网络的中间部分。
2. 具体算法
首先我们先来看一下本文的整体框架,给定两个时间相邻的输入图像
I
1
,
I
2
∈
R
H
×
W
×
3
I_1,I_2∈\mathbb{R}^{H×W ×3}
I1,I2∈RH×W×3,我们提出的FastFlowNet利用由粗到细的残差结构来估计逐渐细化的光流
F
l
∈
R
H
l
×
W
l
×
2
,
l
=
6
,
5
,
…
,
2
F_l∈\mathbb{R}^{H_l×W_l×2},l = 6,5,…,2
Fl∈RHl×Wl×2,l=6,5,…,2。但对其进行了广泛的改进,通过适当降低参数和计算成本来加速推理。为此,我们首先将PWC-Net[13]中的双卷积特征金字塔替换为头部增强池化金字塔,以增强高分辨率金字塔特征,减小模型尺寸。在此基础上,提出了一种新的中心密集扩展相关层,在保持大搜索半径的前提下,构造了紧凑的成本体积。最后,在每个金字塔级别上使用新的洗牌块解码器来回归光流,计算成本显著降低。
模型的结构细节如表1所示
2.1 头部增强池金字塔
低分辨率下的大通道数导致大量的参数。此外,由于低水平的金字塔特征只负责估计粗流场,它可以重新适用于粗细结构。因此,我们将高层的特征金字塔与其他低层的池化金字塔相结合,得到如图2所示的两种强度。另一方面,高分辨率的金字塔特征在PWC-Net中相对较浅,因为每个金字塔层只包含两个包含 3 × 3 3×3 3×3核的卷积,其接受域较小。因此,我们在较高的层次上增加一个卷积,以少量额外的成本强化金字塔特征。通过平衡不同尺度之间的计算,我们提出了一个头增强池化金字塔特征提取器,如表i顶部所示。与FlowNetC、PWC-Net和LiteFlowNet一样,HEPP以2的比例因子生成了从 1 / 2 ^{1/2} 1/2分辨率(级别1)到 1 / 64 ^{1/64} 1/64分辨率(级别6)的6个金字塔级别。
2.2 中心密集扩张相关
现代光流架构的一个关键步骤是通过基于内积的相关层来计算特征对应关系[10]。 给定
l
l
l级的两个金字塔特征
f
1
l
,
f
2
l
f^l_1,f^l_2
f1l,f2l,与许多粗到细的残差方法一样,我们首先采用基于双线性插值的warp扭曲操作[12],[11],根据
2
×
2×
2×上采样的先前时刻的光流场
u
p
2
(
F
l
+
1
)
up_2(F^{l+1})
up2(Fl+1)对第二个特征
f
2
l
f^l_2
f2l进行warp扭曲。 翘曲后的目标特征
f
w
a
r
p
l
f^l_{warp}
fwarpl可以明显减少大运动引起的位移,这有助于缩小搜索区域,简化估计相对较小的剩余流量的任务。 最近的模型[13][14]通过在局部方形区域内将源特征与相应的翘曲目标特征相关联来构建成本量,可以表述为
其中
x
x
x和
d
d
d表示空间坐标和偏移坐标。
N
N
N是输入特征的长度。
R
R
R为搜索半径;
⋅
·
⋅代表内积。
如图3a所示,许多流网络[13],[18],[15],[16]集合
r
=
4
r = 4
r=4,由此产生的巨大计算负担阻碍了低功耗应用。减少计算成本的一个简单方法是减小r,如图3b中设置
r
=
3
r = 3
r=3。它可以将体积特征的成本从81降低到49,但这种方法是以牺牲感知范围和准确性为代价的.
不同于ASPP使用并行atrous卷积来获取多尺度上下文信息,我们提出的CDDC在构建大半径成本体积时减少了计算量。在FastFlowNet中,它输出53个特征通道,与传统的r = 3设置具有相似的计算预算。我们的动机是残流分布更关注于小运动。实验结果表明,CDDC算法的性能优于单纯压缩算法。