https://blog.csdn.net/m0_37604894/article/details/81020846
https://www.cnblogs.com/ding-jing/p/8654137.html
公式...
其中数据项描述了匹配程度,平滑项体现了定义场景的约束,C是匹配代价(或称penalty),P是不同两像素p和q视差的函数,一般称之为平滑项.
考虑到能量优化问题在一维空间的复杂度是多项式级的,因此一些研究试图做一些近似来降低算法的复杂度。例如,半全局算法(SGM)就利用了这一特性将二维问题简化为8到16个一维问题,以实现一种较好的近似。其在各个方向上计算累积代价后,将各方向代价相加得到总代价,这样就模拟了二维的优化问题。SGM是立体匹配逐渐取代激光雷达生成视差图的技术关键,同时也是商业软件中应用最多的立体匹配算法。
局部立体匹配算法又称基于窗口的方法或基于支持区域的方法。算法对参考图像中的每个像素计算一个合适大小、形状和权重的窗口,然后对这个窗口内的视差值进行加权平均。理想的支持窗口应该完全覆盖弱纹理区域,并在窗口内深度连续。与全局立体匹配算法相似,通过优化一个代价函数的方法计算最佳视差。但是,在局部立体匹配算法的能量函数中,只有基于局部区域的约束数据项,没有平滑项。局部匹配算法仅利用某一点邻域的灰度、颜色、梯度等信息进行计算匹配代价,计算复杂度较低,大多实时的立体匹配算法都属于局部立体匹配的范畴,但局部立体匹配算法对低纹理区域、重复纹理区域、视差不连续和遮挡区域匹配效果不理想。
1)匹配代价计算(Cost Computation):
计算匹配代价,即计算参考图像上每个像素点IR§,以所有视差可能性去匹配目标图像上对应点IT(pd)的代价值,因此计算得到的代价值可以存储在一个hwd(MAX)的三维数组中,通常称这个三维数组为视差空间图(Disparity Space Image,DSI)。匹配代价时立体匹配的基础,设计抗噪声干扰、对光照变化不敏感的匹配代价,能提高立体匹配的精度。因此,匹配代价的设计在全局算法和局部算法中都是研究的重点。
2)代价聚合(Cost Aggregation)
通常全局算法不需要代价聚合,而局部算法需要通过求和、求均值或其他方法对一个支持窗口内的匹配代价进行聚合而得到参考图像上一点p在视差d处的累积代价CA(p,d),这一过程称为代价聚合。通过匹配代价聚合,可以降低异常点的影响,提高信噪比(SNR,Signal Noise Ratio)进而提高匹配精度。代价聚合策略通常是局部匹配算法的核心,策略的好坏直接关系到最终视差图(Disparity maps)的质量。
3)视差计算(Disparity Computation):
局部立体匹配算法的思想,在支持窗口内聚合完匹配代价后,获取视差的过程就比较简单。通常采用‘胜者为王’策略(WTA,Winner Take All),即在视差搜索范围内选择累积代价最优的点作为对应匹配点,与之对应的视差即为所求的视差。即P点的视差为。
4)后处理(Post Process)
一般的,分别以左右两图为参考图像,完成上述三个步骤后可以得到左右两幅视差图像。但所得的视差图还存在一些问题,如遮挡点视差不准确、噪声点、误匹配点等存在,因此还需要对视差图进行优化,采用进一步执行后处理步骤对视差图进行修正。常用的方法有插值(Interpolation)、亚像素增强(Subpixel Enhancement)、精细化(Refinement)、图像滤波(Image Filtering)等操作。
①最常见的三种匹配代价为绝对差值和(Sum of Absolute Differences,SAD)、截断绝对差值和(Sum of Truncated Absolute Differences,STAD)、差值平方和(Sum of squared Differences, SSD)。
注意:式中N§表示p的支持窗口,当N§退化为只含有p点时,即逐像素计算匹配代价。这三种匹配代价对曝光强度变化非常敏感,对相机内参和曝光非常敏感(LSD-SLAM直接法的缺点)。计算上述匹配代价的时间复杂度为O(whN§),可以使用积分图(Integral Image)或方框滤波(Box Filtering)的方法使时间复杂度下降到O(w*h)。
②Z.Gu最早提出将Rank变换函数引入到立体匹配中,与其他相似性测度相比,Rank变换对图像噪声和立体图像的亮度差异不那么敏感,且计算快,实时性好。Rank变换函数公式如下:
③census代价是充分考虑了图像局部相关的特性,而不是直接使用灰度值做差,具有抗光影畸变的作用,效率高、稳定性强,其核心思想与LBP算法的思想相近,是一种非常有效的代价计算方法。Census匹配代价计算如下:
其中HAMMING(a,b)用来计算二进制序列a和b的海明距离(Hamming Distance),可以用异或操作计算。seq[I§]函数根据p点像素值和p的支持窗口内像素值生成一个二进制序列。
④另外常用的匹配代价还有归一化互相关NCC(Normalized Cross Correlation)、BT代价函数(S.Birchfield & C.Tomasi)等。
归一化互相关NCC:
①Middlebury测试平台:提供了专门用于评价立体匹配算法的测试图像对(Stereo Pair),包括Tsukuba测试图像对,Venus测试图像对,Teddy测试图像对和Cones测试图像对,它们的分辨率分别为384288,434383和450*375,同时还给出了这些测试图像对的真实视差图。
②KITTI算法评测平台:旨在评测对象(机动车、非机动车、行人等)检测、目标跟踪等计算机视觉技术在车载环境下的性能,为机动车辅助驾驶应用做技术评估与技术储备。KITTI包含市区、乡村和高速公路等场景采集的真实图像数据。