Stereo Processing by Semi-Global Matching and Mutual Information 论文翻译

Stereo Processing by Semi-Global Matching and Mutual Information 论文翻译

代价聚合部分
分段代价计算在噪声等的影响下,具有二义性和误匹配的点匹配代价低于正确点。因此,必须加上额外的约束,对临近的视差变化进行惩罚,实现平滑。分段代价和平滑约束表达为基于视差的能量函数的定义

第一项是所有像素点对视差D匹配代价之和。第二项加入了对所有像素点q邻域内的临近像素 (视差改变了一点点,如,一个像素)恒定的惩罚 。第三项加入了一个更大的恒定惩罚项 ,用于更大的视差变化。对小的变换采用更小的惩罚项,允许对一性些的或曲线表面进校适应。对于大的变化的恒定惩罚,如与尺寸无关,保留了不连续性。灰度变换时,不连续性通常可见,对于灰度的梯度被自适应 利用起来了,即

其中p和q是基准图像 的临近像素。然而, 是总是保证的。
立体匹配的问题现在可以表述为,找到视差图像D,使得能量函数 最小化。不幸的是,这样一个对于许多不连续保留的能量求全局最小,即二维,是一个NP完全问题。相比之下,单独地沿图像的行(即一维)求最小值,可以采用动态规划,在多项式时间内有效地实现。然而,动态规划的求解容易受到图像拖尾(条纹)的影响。,因为将眼图像行得到的基于1维最优解在二维图像中联系起来很困难。问题在于,沿着图像的行的在一个方向上的强约束,需要与其它方向上没有的或者更弱的约束结合起来,即沿着图像列方向。
这导出了新的在一维上平等地朝着各个方向匹配代价聚合的思想。聚合(平滑)的代价S(p,d),对于像素点p和视差d是通过对所有的一维最小代价路径(终止于像素点p,对应的视差d)上的代价,如图2所示。

这些通过视差空间的路径被投影到基准图像上呈直线,据视差沿着路径的变换,投影到到对应的匹配图像中为非直线。需要注意的是,只有路径上的代价而不是路径本身被需要。
遍历像素点p沿着方向r的路径上代价 被递归地定义为:
(12)
分段匹配代价C可以是 或者 。方程中剩下的项加入了沿着之前的p-r像素点的路径的最低代价,包括对不连续性的适当惩罚。这对E(D)中沿着任意1D路径进行了补充。这代价并不强制要求可视化或顺序固定,因为两个概念并不与极线医院能完全对应地实现。这样,该方法更类似于线扫描优化,而不是传统的动态规划问题求解。
沿着路径一直在增长,可能导致很大的值。但(12)能够通过抓取整个项中之前像素点上最小路径代价的进行修正。
(13)
修正并不改变从视差空间穿过的实际路径,因为去掉的值相对于像素点p的所有视差值是一个常数。这样,最小位置点并没改变。然而,L的上限可通过 给出。
代价 在各个方向上的路径进行求和。路径数必须大于8,为了更好地覆盖2D图像,方向应该为16。在后续的情况中,路径不是水平、垂直或对角的时候,通过一步水平,一步垂直紧接着一步对角来实现。

S的上限可以很容c易地由 决定,对于路径数16而言。一个有效的实现是,对分段匹配代价C(p,d)进行预先计算,所见到11位整型值,即 ,如果有必要(如互信息MI的值),乘以系数s。尺度化到11位能够保证聚合代价在后续的计算不会超过16位限制。所有的代价都储存在一个16为的数组C[]中,数组大小为 。这样, 。另一个16位的整型数组S[],具有相同大小,用于存储代价聚合的值。数组被出事后为0。计算从图想辩解中的所有像素点b沿r方向开始 。路径沿着(13)方向进行遍历。对于沿着路径访问过的每个像素点p,将 加入对所有的视差d的 值中。
(13)的计算在每个像素点需要O(D)步,因为之前像素点的最小代价,如 ,对于一个像素点所有视差恒定,可以被预先计算。每个像素点都被访问16次,导致总的复杂度O(WHD)。常规的结构和简单的操作,即假发和比较,运行采用基于 汇编指令的整型并行计算。

你可能感兴趣的:(立体匹配算法研究)