立体匹配算法概述

立体匹配算法
一、立体匹配算法的分类
在立体匹配中,匹配问题可以看成是寻找两组数据相关程度的过程。立体匹配算法由多种分类。

①根据算法运行时约束的作用范围:分为局部(local)匹配算法和全局(Global)匹配算法。

②基于生成的视差图:可分为稠密(Dense)匹配和稀疏(Sparse)匹配。稠密匹配:是基于生成的视差图,对于所有像素都能生成确定视差值,称为稠密匹配。稀疏匹配:只选择关键像素点[通常为角点或者边缘点]计算视差值的方法称为稀疏匹配,该算法计算速度较快,但后续还需要通过插值算法计算缺失像素点的视差值,因此应用场景上有很大限制。

由于自己最近研究主要集中于局部匹配算法和全局匹配算法,因此以下也将针对此处描述下。

1、全局匹配算法
全局(半全局)立体匹配算法主要是采用了全局的优化理论方法估计视差,建立一个全局能量函数,其包含一个数据项和平滑项,通过最小化全局能量函数得到最优的视差值。其中,图割(Graph cuts, GC)、置信传播(Belief Propagation,BP)、动态规划(Dynamic Programming,DP),粒子群算法(Particle Swarm Optimization,PSO)、遗传算法(Genetic Algorithm,GA)等优化算法都是常用的求解能量最小化的方法。

全局匹配算法一般定义如下能量函数:

其中数据项描述了匹配程度,平滑项体现了定义场景的约束,C是匹配代价,P是不同两像素p和q视差的函数,一般称之为惩罚项(penalty),当p点和q点视差不相等时,P>0,且与两者差值越大,P值越大。当p和q视差相等时,P=0。由于全局匹配算法在数学上是一个能量函数的优化问题,因此可以找到最优解。这个问题被证明在二维空间是NP困难的。因此,即使全局算法具有准确性较高的优点,其计算速度确非常慢,在实时性要求高的场合不适合使用全局立体匹配算法。

考虑到能量优化问题在一维空间的复杂度是多项式级的,因此一些研究试图做一些近似来降低算法的复杂度。例如,半全局算法(SGM)就利用了这一特性将二维问题简化为8到16个一维问题,以实现一种较好的近似。其在各个方向上计算累积代价后,将各方向代价相加得到总代价,这样就模拟了二维的优化问题。SGM是立体匹配逐渐取代激光雷达生成视差图的技术关键,同时也是商业软件中应用最多的立体匹配算法。

2、局部匹配算法
局部立体匹配算法又称基于窗口的方法或基于支持区域的方法。算法对参考图像中的每个像素计算一个合适大小、形状和权重的窗口,然后对这个窗口内的视差值进行加权平均。理想的支持窗口应该完全覆盖弱纹理区域,并在窗口内深度连续。与全局立体匹配算法相似,通过优化一个代价函数的方法计算最佳视差。但是,在局部立体匹配算法的能量函数中,只有基于局部区域的约束数据项,没有平滑项。局部匹配算法仅利用某一点邻域的灰度、颜色、梯度等信息进行计算匹配代价,计算复杂度较低,大多实时的立体匹配算法都属于局部立体匹配的范畴,但局部立体匹配算法对低纹理区域、重复纹理区域、视差不连续和遮挡区域匹配效果不理想。

基于区域的局部立体算法是最早开始研究,算法成熟、计算简单、速度快,能进行图像实时处理,匹配精度较高。基本原理:在参考图像中选择一个点,选择该点邻域内一个支持窗口,然后依据一定的相似性判断准则,在待匹配图像中寻找与支持窗口最相似的子窗口,该子窗口所对应的像素点即为对应的匹配点。

固定窗口代价聚合使用固定大小和形状的窗口作为代价聚合的基元,通常是一个矩形,并假设支持窗口内的其它像素点与待匹配点具有相同的视差。固定窗口法精度不高,但易实现、耗时短,在一些对实时性要求极高的场合得到了应用。

基于双边滤波的代价聚合算法仍然使用固定大小和形状的窗口,但窗口内的元素权重不同,权重由目标图像在该窗口内像素与窗口中心的灰度差和距离计算。基于双边滤波的代价聚合算法精度高,但计算复杂,实时性差,算法性能随窗口尺寸指数增加。

基于分割的代价聚合算法的主要思想是:预先将作为参考图像的左图进行分割,对于支持窗口内与窗口中心处于同一分割的像素,对应的权值取1,否则为一个远小于1的正数。但是图像分割是一个非常耗时的操作,同样无法在实时性要求较高的场合使用。

基于十字的代价聚合算法(Cross-based Cost Aggregation,CBCA)的支持窗口形状并不确定,会根据匹配点邻域的灰度值而改变,具体实现后面的更新中会介绍。该方法可以使用GPU并行计算,具有较好的实时性,现广泛应用于各种算法的代价聚合步骤。

注意哦:局部匹配算法的计算量比全局匹配算法更小,在优秀的算法支持下能实现实时处理。

二、立体匹配算法的评测平台
①Middlebury测试平台:提供了专门用于评价立体匹配算法的测试图像对(Stereo Pair),包括Tsukuba测试图像对,Venus测试图像对,Teddy测试图像对和Cones测试图像对,它们的分辨率分别为384288,434383和450*375,同时还给出了这些测试图像对的真实视差图。

②KITTI算法评测平台:旨在评测对象(机动车、非机动车、行人等)检测、目标跟踪等计算机视觉技术在车载环境下的性能,为机动车辅助驾驶应用做技术评估与技术储备。KITTI包含市区、乡村和高速公路等场景采集的真实图像数据。

三、立体匹配的步骤
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)等操作。

四、立体匹配相似性测度研究(匹配代价)
相似性测度函数用于度量参考图像中的匹配基元和目标图像中的匹配基元的相似性,即判断参考图像和目标图像中两点为对应匹配点的可能性,也称为匹配代价,记为C(p,d)。

①最常见的三种匹配代价为绝对差值和(Sum of Absolute Differences,SAD)、截断绝对差值和(Sum of Truncated Absolute Differences,STAD)、差值平方和(Sum of squared Differences, SSD)。

注意:式中N§表示p的支持窗口,当N§退化为只含有p点时,即逐像素计算匹配代价。这三种匹配代价对曝光强度变化非常敏感,但由于计算相对简单,速度非常快,在业界使用仍然较为广泛。计算上述匹配代价的时间复杂度为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:

注意:复合代价被证明具有良好的效果,正被越来越多的算法采用。X.Mei以下式将Census和SAD相结合。

不同匹配代价的处理能力不同,而复合代价能够使它们相互补充,提高算法稳定性。但是,如何确定各个代价的权值依然是一个需要考虑的问题。有的算法采用先验参数,有的算法则是在运算时确定,两者各有利弊。

发布了47 篇原创文章 · 获赞 3 · 访问量 1427

猜你喜欢

转载自blog.csdn.net/weixin_42076938/article/details/104877372