1. 研究问题
利用CNN计算匹配成本的方法存在三个问题:
- 网络必须进行多次前向传递,导致计算效率低下;
- 无法利用遮挡区域像素进行训练,因此难以获得这些区域的可靠视差估计;
- 需要几个启发式后处理步骤来细化视差,这些方法凭经验选择参数,视差估计的精度和泛化性能都很有限。
与现有方法在立体匹配的不同步骤中使用多个网络不同,我们将所有步骤合并到一个网络中以实现端到端训练所提出的网络由三部分组成:多尺度共享特征提取、初始视差估计和视差细化 . 提出的网络框架如图1所示,网络架构如表1所示。
2. 研究方法
提出迭代残差网络 iResNet
,将立体匹配的所有步骤合并到一个网络来改善视差估计精度和计算效率。该网络分成三步模块:多尺度共享特征提取、初始视差估计和视差细化,其中,最关键的贡献是使用特征恒量用于视差优化的子网络。
恒量这个词来自于光学估领域,包含灰度值衡量和梯度衡量。
2.1 Stem Block for Multi-scale Feature Extration
输入图像先提取多尺度的特征,提取的特征用于视差估计和视差细化。
2.2 Initial Disparity Estimation Sub-network(DES-Net)
视差估计网络借鉴了DispNetC,采用了encoder-decoder结构,但不同于DispNetC,这里获得全分辨率的初始视差图。相关层串联左图特征,引入低级语义特征,有助于改进视差估计。
2.3 Disprity Refinement Sub-network(DRS-net)
初始视差在深度不连续区域面临挑战,因此需要进行视差细化进一步提升性能。
我们用特征恒量进行细化,特征恒量包括feature correlation f c f_c fc和reconstruction error r e re re。其中 f c f_c fc是左右特征图之间的相关性,正确的视差会得到较大的相关结果; r e re re是初始视差的重建误差,即左图像的多尺度融合特征与右图像的反向扭曲特征之间的绝对差异,误差越大则初始视差的误差越大。
视差细化子网络估计初始视差的残差,残差和初始视差的总和就是细化的视差图。最终residual + initial disparity = retified diparity。
2.4 Iterative Refinement
为了从多尺度融合特征中提取更多信息并最终提高视差估计精度,提出了一种迭代细化
方法。具体来说,将第二个子网络生成的细化视差图视为新的初始视差图,然后重复特征恒量计算和视差细化过程以获得新的细化视差。重复此过程,直到两次连续迭代之间的改进很小。
请注意,随着迭代次数的增加,改进会降低。
3. 实验结果
数据集:
- Scene Flow
- KITTI 2012 和 KITTI 2015
训练:
- Adam优化器: β 1 = 0.9 \beta_1 = 0.9 β1=0.9, β 2 = 0.999 \beta_2 = 0.999 β2=0.999。
- 批处理大小:2
- 多步学习率:
- 对于Scene Flow:初始设置为1e-4,然后在第 200k、350k 和 500k 次迭代时减半,训练在第 650k 次停止迭代。重复此训练过程进行额外一轮以进一步优化模型。
- 对于KITTI:前 20k 次迭代的学习率设置为 2 × 10−5,然后在随后的 120k 次迭代中减少到 10−5。
- 数据增强:空间变换和色度变换。空间变换包括平移、裁剪和缩放,而色度变换包括颜色、对比度和亮度变换。这种数据增强可以帮助学习针对光照变化和噪声的鲁棒模型。
评估指标:
- EPE:估计和真实视差之间的平均绝对距离。
- (> t px):EPE大于 t 像素的视差百分比。
3.1 Ablation experiments
3.2 Benchmark results
4. 结论
提出了一个端到端的网络,使用两个特征恒量(包括特征相关和重建误差)来细化初始视差,有效地提升了初始视差图的质量。
5. 局限性
迭代优化过程只经过两次迭代,视差便不再提升。可以引入更加有效的特征恒量。
6. 启发
(1)multi-scale skip connection 可以将多尺度的特征引入后面的网络,从而提升初始视差估计的精度和视差细化的性能。
(2)视差细化的迭代也值得学习。