1. 研究问题
SGM算法中惩罚系数控制这视差图的平滑度和不连续性,以往的方法基于经验进行设置,无法根据不同的结构信息进行调整。
2. 研究方法
SGM-Nets提出使用CNN进行惩罚估计,将一个小图像块及其位置输入到SGM-Nets中以预测该位置的惩罚,为了训练网络,引入了一种新颖的损失函数,而且还提出一种新的SGM参数化,它根据正或负视差变化而赋予不同的惩罚,以便更有区别的表示对象结构。
2.1 Semi-global matching
2.2 SGM-Net
2.2.1 Standard parameterization
2.2.1.1 Path cost
沿路径遍历视差的模糊性其实说明了Path loss有时候会违反上图中第一行的条件,从而导致视差图的模糊,如Fig 5(c)的A所示。
2.2.1.2 Neighbor cost
使用Neighbor cost,会改善视差图的模糊,如Fig 5(d)的A所示。但是如果仅使用Neighbor cost,就会导致很多的视差错误,如Fig 5(d)的B所示。
因此将Path cost 和 Neighbor cost 结合,得到下面的总损失函数。
注:使用Neighbor cost的必要条件是在pixel x 1 x_1 x1处的视差必须被正确估计,也就是说,必须满足在 d g t x 1 d_{gt}^{x_1} dgtx1处的聚合代价最小,否则 x 0 x_0 x0处的视差很可能会不正确。因此,Neighbor cost并不能应用到所有的像素点。
2.2.2 Signed parameterization
2.3 SGM-Net architecture
3. 实验结果
训练:
- 测试了SGD和Adam两种优化器,经过实验证明后者能达到更低的错误率。
- SGM-Net在一块Titan X GPU 上训练,需要几天的时间,但比MC-CNN的训练要快。
- 在SceneFlow的Driving,KITTI-12,KITTI-15上训练并测试精度。
- 对于Driving,选取焦距为35mm和低运动的图像对,这样,它的布局和模糊就和KITTI很相似。由于图像底部的马路的视差很大,会导致GPU内存占用超标,所以裁剪掉顶部和底部的100像素。每5帧图像对提取一对,以移除相似的场景。
4. 结论
(1)SGM-Net可以通过CNN预测最优的惩罚参数,以适应与不同的结构和视差变化方向,提高视差图精度。
(2)SGM-Net 在 KITTI 基准数据集上的准确性优于最先进的精度。
5. 局限性
依然适用SGM框架进行代价过滤,耗时过长,无法应用于实时深度估计中。