背景介绍
立体匹配也称作视差估计(disparity estimation),或者双目深度估计。其输入是一对在同一时刻捕捉到的,经过极线校正的左右图像
和
。而它的输出是由参考图像(一般以左图作为参考图像)中每个像素对应的视差值所构成的视差图 d。视差是三维场景中某一点在左右图像中对应点位置的像素级差距。当给定摄像机的基线距离 b 和焦距 f 之后,我们就可以从视差图中自动计算出深度
,
。所以深度和视差是可以互相转换,相互等价的。
立体匹配算法分为四个步骤:
匹配代价计算(matching cost computation)
代价聚合(cost aggregation)
视差计算(disparity computation)
视差精修(disparity refinement)
传统的视差估计算法主要分为两类:
局部算法:主要基于滑动窗口来计算局部窗口内的匹配代价;
全局算法:通过优化包括局部数据项和平滑项的能量函数来计算立体视图之间的相关性;
传统的视差估计算法对于各种应用场景都具有等价的视差估计能力,不会因为场景变化而产生较大的差异,因此有论文将传统方法估计的视差图作为带有噪声的标签来提升无监督视差估计的性能,本文后面会提到。随着深度学习的发展以及大规模合成/仿真数据的推动,CNN将上述四个步骤统一成一个端到端的网络,进一步提升