对图像中物体场景深度信息的获取是机器视觉领域中的热点问题,而能否高效快速地获取精确度高的深度信息,与所使用的立体匹配算法关系密切[1]。立体匹配算法通过寻找双目或多目图像对中的对应点并计算其间的二维视差,计算得到所获取目标点的三维深度信息。
文献[2]对立体匹配算法进行归纳总结,将立体匹配过程分为匹配代价计算、代价聚合、视差计算和视差优化4个步骤。目前常用的立体匹配算法可分为全局算法和局部算法两类。全局算法采用全局优化理论计算视差,并通过全局能量函数得到最优视差值。典型的全局算法有动态规划算法[3]、置信度传播算法[4]和图割法[5]等。全局匹配算法虽然匹配精度高,但时间复杂度也较高。局部算法通过构建局部支持窗口,对窗口内像素做视差计算并进行代价聚合,求出视差最优值。典型的局部匹配算法有绝对误差和(Sum of Absolute Difference,SAD)算法、误差平方和算法和归一化互相关算法等。局部立体匹配算法具有算法复杂度和硬件要求低、实时性高且易于实现的优点,适合于工业和工程应用。
局部立体匹配算法通过测量图像像素的灰度来检测像素间的相似度,当图像受到外部光照变化影响出现辐射度失真时,会严重影响图像匹配的配准精度,大幅增加图像误匹配率。为提高SAD算法的匹配效率,文献[6]将边缘信息融入传统SAD算法,改善了算法在边缘保持方面的性能。文献[7]将RANK非参数变换引入匹配代价计算,提出Census匹配算法,以图像像素灰度值的相互关系代替图像像素的灰度值。该算法显著提高了对光照和噪声的抗干扰能力并且具有复杂度低的优点。文献[8]提出将SAD算法与Census算法相结合的AD-Census算法。该算法同时利用了SAD算法和Census算法的优点,匹配准确度较高。
文献[9]指出传统Census匹配算法过度依赖中心像素,当中心像素受到干扰时会极大地影响匹配的准确性。针对这一不足,需要对匹配代价的计算过程进行优化,并对计算出的初始匹配代价进行代价聚合。传统的代价聚合方法采用盒子滤波和高斯滤波等方法,此类滤波器实现难度低,但对于图像边缘保持效果很差。文献[10]使用双边滤波进行代价聚合,虽然有效地保持了图像边沿,但同时也提高了时间复杂度。文献[11]将引导滤波引入到代价聚合环节,在保留图像边缘特性的同时保证了较高的时间效率。文献[12]提出基于树形结构的代价聚合方法,但仍未能解决时间复杂度高的问题。文献[13]构建一种跨尺度代价聚合框架,考虑并利用不同分辨率下的图像信息,极大地改善了匹配效果。以上聚合方法都将初始匹配代价代入到代价聚合阶段,如果初始匹配代价受噪声影响较大,则会对聚合代价的结果产生较大影响。因此,必须提升初始匹配代价计算算法的稳定性。
本文针对传统Census算法[7]存在的不足,提出一种基于自适应权值与多尺度融合的改进Census立体匹配算法,以增强算法的抗干扰性,改善对低纹理区域的匹配效果,提高匹配准确率。
1 改进的Census立体匹配算法本文算法包含匹配代价计算、代价聚合、视差计算和视差优化4个步骤。在代价计算阶段,参考格塔式原理引入自适应权重与阈值判断,增强算法对于干扰的鲁棒性。在代价聚合阶段,采用引导滤波并引入多尺度空间对各尺度空间下的图像计算匹配聚合代价,同时采用正则化变换加强尺度间信息一致性,从而提高算法的稳定性,改善其在弱纹理区域的表现。最后通过视差计算和视差优化得到最终的视差图。
1.1 代价计算传统Census匹配算法的基本原理是通过构建一个矩形支持窗口遍历待匹配图像,通常选取支持窗口中心像素作为参考像素,将支持窗口内其他邻域像素与参考像素进行灰度值对比,采用0或1表示两个像素灰度值的大小关系。该算法通过将图像灰度值转换为由0和1组成的二进制比特串来表示邻域像素和中心参考像素的相对大小关系,如图 1所示。
![]() |
Download:
|
图 1 Census变换示意图 Fig. 1 Schematic diagram of Census transform |
Census变换过程可表示如下:
$ \zeta \left[I\right(p), I(q\left)\right]=\left\{\begin{array}{c}0, I\left(p\right)\le I\left(q\right)\\ 1, I\left(q\right)>I\left(q\right)\end{array}\right. $ | (1) |
其中,
$ {c}_{\mathrm{c}\mathrm{e}\mathrm{n}}\left(p\right)=\underset{q\in {N}_{p}}{\otimes }\zeta \left[I\right(p), I(q\left)\right] $ | (2) |
其中,
$ \begin{array}{l}{C}_{\mathrm{c}\mathrm{e}\mathrm{n}\mathrm{s}\mathrm{u}\mathrm{s}}(p, d)=\mathrm{H}\mathrm{a}\mathrm{m}\mathrm{m}\mathrm{i}\mathrm{n}\mathrm{g}\left[{c}_{\mathrm{c}\mathrm{e}\mathrm{n}}\right(p), {c}_{\mathrm{c}\mathrm{e}\mathrm{n}}({p}_{d}\left)\right]\\ d\in [{d}_{\mathrm{m}\mathrm{i}\mathrm{n}}, {d}_{\mathrm{m}\mathrm{a}\mathrm{x}}]\end{array} $ | (3) |
其中,
与SAD算法相比,Census算法在弱纹理区域具有更高的准确性,在边缘保持上表现更好。如图 2所示,以Middlebury数据集的Teddy图像对为例,SAD算法容易在大面积的弱纹理区域形成误匹配,而Census算法则能基本保持弱纹理区域的匹配特征,并且在细节保持上优于SAD算法。
![]() |
Download:
|
图 2 SAD算法与Census算法的弱纹理区域匹配效果 Fig. 2 Matching effects of SAD algortihm and Census algorithm in weak texture area |
由于传统Census算法过度依赖于中心像素的灰度值,因此当中心像素灰度值受到噪声干扰时,图像的匹配效果会受到严重影响。文献[14-15]提出采用匹配窗口的像素均值作为参考像素的灰度值,一定程度上提高了中心像素的抗干扰性,但对邻域像素信息的利用依然有限。针对以上问题,本文提出一种改进的Census匹配算法来计算初始匹配代价,具体计算过程为:参考文献[8]中使用的格式塔接近原理理论,通过支持窗口遍历图像中每个像素,以支持窗口内邻域像素的加权像素和构成改进Census算法中心像素的参考值,权重由距离相似度决定,在考虑距离相似度时,采取正态分布作为距离相似度的分配策略,如图 3所示,距离窗口中心越远则权值分配越小,从而能够更好地利用邻域像素的特征对中心像素点进行约束。
![]() |
Download:
|
图 3 距离相似度权重分布 Fig. 3 Weight distribution of distance similarity |
本文算法的具体计算过程如下:
$ {I}_{\mathrm{w}\mathrm{e}\mathrm{i}\mathrm{g}\mathrm{h}\mathrm{t}}=\sum\limits_{q\in {N}_{p}}{W}_{pq}{I}_{q} $ | (4) |
$ {W}_{pq}=\frac{1}{2\mathrm{\pi }{\sigma }^{2}}\mathrm{e}\mathrm{x}\mathrm{p}\left(-\frac{\mathrm{\Delta }{x}^{2}+\mathrm{\Delta }{y}^{2}}{2{\sigma }^{2}}\right) $ | (5) |
其中,
同时设定一个阈值,将求出的参考像素值与原中心像素值进行比较,确定最终的中心点像素值。阈值应设定较小,这样可避免当中心像素突变时因阈值设定过大而判定中心像素没有突变,影响匹配效果。计算出加权像素和值后,需要与原中心像素进行对比,中心像素判断公式如下:
$ {I}_{\mathrm{r}\mathrm{e}\mathrm{f}}=\left\{\begin{array}{l}I(x, y), \left|I(x, y)-{I}_{\mathrm{w}\mathrm{e}\mathrm{i}\mathrm{g}\mathrm{h}\mathrm{t}}\right|\le {T}_{\mathrm{r}\mathrm{e}\mathrm{f}}\\ {I}_{\mathrm{w}\mathrm{e}\mathrm{i}\mathrm{g}\mathrm{h}\mathrm{t}}, \left|I(x, y)-{I}_{\mathrm{w}\mathrm{e}\mathrm{i}\mathrm{g}\mathrm{h}\mathrm{t}}\right|>{T}_{\mathrm{r}\mathrm{e}\mathrm{f}}\end{array}\right. $ | (6) |
其中,
对本文改进算法与Census算法计算得到Cones视差图进行比较,如图 4所示。可以看出,Census算法因为易受到干扰,所以在匹配时容易出现很多噪点,严重地影响了匹配的效果。而本文改进算法加入了邻域像素的补充约束信息,并且增加了阈值判断中心像素是否突变,大幅降低了由于中心参考像素而被干扰的可能性,初始视差图中的噪点明显减少。
![]() |
Download:
|
图 4 Census算法与本文算法的视差图 Fig. 4 Disparity maps of Census algorithm and the proposed algorithm |
计算得到初始匹配代价后,需要将邻域像素的匹配代价信息进行聚合,增加像素间匹配代价的关联性,弥补仅利用单像素视差时因包含信息过低导致区分度不足的缺陷,提高匹配准确率。然而传统方法中的代价聚合都是在单一尺度下进行计算,往往不能提取出图片的深层信息,使得匹配效果在纹理较少或无纹理的区域表现较差。为提高算法的匹配精度,本文改进算法在代价聚合阶段模拟人眼由远及近观察物体的方式融入空间尺度理论中的高斯金字塔结构,通过连续亚采样得到高斯金字塔,在每层尺度空间中分别计算匹配聚合代价,并加入正则变换加强尺度间联系性,最后将多尺度空间下的代价聚合值进行综合得到最终匹配代价。
对图像进行高斯下采样,可以得到多尺度空间下的图像,各尺度空间下图像的代价聚合公式为:
$ \begin{array}{l}\widehat{V}=\underset{{\left\{{z}^{\left(S\right)}\right\}}_{S=0}^{\left(S\right)}}{\mathrm{a}\mathrm{r}\mathrm{g}\mathrm{m}\mathrm{i}\mathrm{n}}\left(\frac{1}{{Z}_{{i}^{s}}^{\left(s\right)}}{\sum\limits_{{j}^{\left(s\right)}\in {N}_{{i}^{s}}}K({i}^{\left(s\right)}, {j}^{\left(s\right)})‖{z}^{\left(s\right)}-{C}^{\left(s\right)}({j}^{\left(s\right)}, {l}^{\left(s\right)})‖}^{2}+\right.\\ \left.\lambda \sum\limits_{s=1}^{S}{‖{z}^{\left(s\right)}-{z}^{(s-1)}‖}^{2}\right)\end{array} $ | (7) |
其中,
$ {q}^{i}={a}_{k}{I}_{i}+{b}_{k}, \forall i\in {w}_{k} $ | (8) |
其中,
$ {W}_{ij}=\frac{1}{{\left|w\right|}^{2}}\sum\limits_{k:(i, j)\in {w}_{k}}\left(1+\frac{({I}_{i}-{\mu }_{k})({I}_{j}-{\mu }_{k})}{{\sigma }_{k}^{2}+\varepsilon }\right) $ | (9) |
其中,
在完成多尺度空间下代价聚合后,通过赢者通吃(Winner-Take-All,WTA)法筛选出聚合代价最小的视差值,具体计算过程如下:
$ {d}_{p}=\underset{d\in {S}_{d}}{\mathrm{a}\mathrm{r}\mathrm{g}\mathrm{m}\mathrm{i}\mathrm{n}}\left[C\right(p, d\left)\right] $ | (10) |
其中,
得到初始视差图后,双目摄像中必然互相存在视觉盲区,因此,需要对初始视差图中在遮挡区域和深度不连续区域出现的一些误匹配点进行筛选剔除,故需要进行视差优化,即采用误匹配点检测、视差填充和加权重值滤波的方法来建立更完整的视差图。
1)采用左右一致性检测的方法来检测误匹配视差点,通过比较左图和右图匹配对视差点的视差值检测出异常点,计算过程如下:
$ \left|{d}_{\mathrm{l}}\left(p\right)-{d}_{\mathrm{r}}\{p-[{d}_{l}\left(p\right), 0\left]\right\}\right|>{\delta }_{0}=1 $ | (11) |
其中,
2)对错误匹配点选择周围灰度值最接近的点进行填充,对于遮挡点选择周围最小视差值进行填充。
3)采用3×3的滑动窗口对视差图进行加权中值滤波平滑处理,得到最终的视差图。
2 实验与结果分析在VS2013软件平台上利用C++实现本文算法,采用学术界公认的Middlebury立体匹配算法评测平台提供的标准立体图像对Tsukuba、Venus、Teddy、Cones对算法进行评测,这4组图像的视差搜索范围依次为[0, 15]、[0, 19]、[0, 59]、[0, 59],视差缩放参数nscale分别为16、8、4、4。实验环境为Windows 10 x64系统,Intel Core i5-3230M,主频为2.60 GHz。
由于到代价计算窗口会影响匹配的精确度,过大的窗口会包含更多的非必要像素点,过小的窗口会使得代价计算时对邻域像素考虑不足,因此本文在进行多次试验的基础上,考虑时间因素以及平均正确率,采用9×9窗口作为代价计算窗口。实验中算法参数设置为:W=9,
通过计算Middlebury标准数据集中所有区域和非遮挡区域的误匹配率来评估算法性能。误匹配率的计算公式如下:
$ P=\frac{1}{N}\sum \left[\left|d-{d}_{\mathrm{T}}\right|>{\delta }_{\mathrm{d}}\right] $ | (12) |
其中,
匹配代价验证阶段的实验结果如图 5所示,从左到右依次为Middlebury平台的Tsukuba、Venus、Teddy、Cones图像,从上到下依次为原始图像、真实视差图、SAD算法、Census算法和本文改进算法的视差图。可以看出:SAD算法能够基本还原图像的大致轮廓,但对于弱纹理区域容易出现大面积误匹配;传统Census算法能够基本保持图像的弱纹理区域,但中心像素易受干扰,鲁棒性低;本文改进Census算法则在弱纹理区域表现良好的同时,具有良好的抗干扰性。
![]() |
Download:
|
图 5 不同算法的匹配结果 Fig. 5 Matching results of different algorithms |
不同算法的误匹配率对比如表 1所示。可以看出:相较于传统Census算法,本文改进Census算法由于消除了大量噪点,具有更强的鲁棒性,并且大幅提高了准确率;相较于传统SAD算法,其在弱纹理及边缘区域具有更好的表现,并且平均准确率也有所提升。
![]() |
下载CSV 表 1 不同算法的平均误匹配率 Table 1 Averege error match rates of different algorithms |
不同算法的匹配时间对比如图 6所示。可以看出,本文改进算法在时间花费上与SAD算法相当,较传统Census算法略有增加,这是因为加入了自适应权重计算与阈值判断步骤,但是在匹配准确率和抗干扰性上,本文改进算法的性能显著提升。
![]() |
Download:
|
图 6 不同算法的匹配时间 Fig. 6 Matching times of different algorithms |
为对算法进行抗噪声干扰性验证,对Middlebury标准图加入5%的椒盐噪声,并使用SAD算法、Census算法和本文改进算法进行图像配准。图 7为Cones图像对的匹配效果对比图,详细数据对比见表 2。可以看出:在加入椒盐噪声后,Cones原图出现覆盖全图的黑白相间的噪点;Census算法严重受到噪声干扰,导致匹配效果下降;SAD算法表现出一定的抗干扰性,但仍然表现出匹配精度差的缺点;本文改进算法在保持匹配精度的情况下,表现出较强的抗干扰性,与未受干扰时精度相差不大。
![]() |
Download:
|
图 7 5%椒盐噪声下不同算法的匹配结果 Fig. 7 Matching effects of different algorithms under 5% pepper and salt noise |
![]() |
下载CSV 表 2 5%椒盐噪声下不同算法的误匹配率 Table 2 Error match rates of different algorithms under 5% pepper and salt noise |
为验证在受到光照干扰时算法的匹配效果,对Middlebury标准图进行光照补偿后进行匹配实验,其中Tsukuba匹配效果如图 8所示。可以看出,在受到光照干扰时,SAD算法已经完全失去了匹配的准确度,传统Census算法能基本还原场景深度信息,但准确率明显下降,而本文改进Census算法则表现出较强的抗干扰性,与未受光照干扰时匹配准确率差异微小。表 3为不同算法在光照干扰条件下对Middlebury中4对测试图的平均误匹配率对比。
![]() |
Download:
|
图 8 光照干扰条件下不同算法的匹配结果 Fig. 8 Matching results of different algorithms under illumination interference condition |
![]() |
下载CSV 表 3 光照干扰条件下不同算法的平均误匹配率 Table 3 Average error match rates of different algorithms under illumination interference condition |
为验证本文算法性能,选取LCDM-AdaptWgt[16]、RINCensus[17]、GC-occ[5]和RTCensus[18]算法与本文算法进行比较。
图 9为算法所生成的视差图比较,对比图 9(a)、图 9(c)、图 9(d)与图 9(e)中的第2幅图可以看出,在弱纹理区域,其他算法皆存在明显的成块误匹配区域,而本文算法则基本没有出现明显的误匹配,这说明本文提出的改进Census匹配算法高效整合了邻域像素的信息,在弱纹理区域具有更好的匹配性能,并且因为采用多尺度融合策略,使其在匹配过程中能够极大程度地利用弱纹理和其他细节信息,提高匹配的准确率。对比图 9(a)、图 9(b)、图 9(c)与图 9(e)中的第4幅图可以看出,本文算法在边缘保持方面明显优于其他算法,这说明改进后算法由于利用了邻域像素信息且采用了引导滤波进行聚合具有更好的边缘保持性能。各算法的误匹配率对比如表 4所示,其中,No-occluded表示在图像中非遮挡区域的误匹配,All表示在所有区域中的误匹配率。可以看出,本文算法在非遮挡区域和所有区域的平均误匹配率均低于其他4种经典算法,表现出更优异的性能。
![]() |
Download:
|
图 9 Middlebury数据集上的实验结果 Fig. 9 Experimental results on Middlebury dataset |
![]() |
下载CSV 表 4 Middlebury数据集上非遮挡区域和所有区域的误匹配率 Table 4 Percentage of false match in all regions and no-occlusion region on Middlebury dataset |
本文利用格式塔接近原理对传统Census算法进行改进,提出基于自适应权值的多尺度Census匹配优化算法。在代价计算阶段,本文算法保持了传统Census算法在弱纹理区域表现优异的优点,弥补了其易受干扰的不足,并且时间效率变化微小。该算法在代价聚合阶段采用边缘保持性好、时间复杂度低的引导滤波作为核函数,引入多尺度聚合策略,能够综合利用图像各个尺度下的细节信息。基于Middlebury平台标准测试集的实验结果表明,本文算法在弱纹理区域及边缘保持方面表现优异且抗干扰性较好,平均误匹配率低于LCDM-AdaptWgt、RINCensus等经典算法。下一步将结合人工智能算法,在匹配代价计算阶段引入膨胀卷积,增加感受野,对误匹配点进行更为精准的筛查。
[1] |
SHI Chenbo, WANG Guilin, YIN Xuanwu, et al. High-accuracy stereo matching based on adaptive ground control points[J]. IEEE Transactions on Image Processing, 2015, 24(4): 1412-1423. DOI:10.1109/TIP.2015.2393054 |
[2] |
SCHARSTEIN D, SZELISKI R. A taxonomy and evaluation of dense two-frame stereo correspondence algorithms[J]. International Journal of Computer Vision, 2002, 47(1/2/3): 7-42. |
[3] |
VEKSLER O. Stereo correspondence by dynamic programming on a tree[C]//Proceedings of 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2005: 384-390.
|
[4] |
FELZENSZWALB P F, HUTTENLOCHER D P. Efficient belief propagation for early vision[J]. International Journal of Computer Vision, 2006, 70(1): 41-54. DOI:10.1007/s11263-006-7899-4 |
[5] |
KOLMOGOROV V, ZABIH R. Computing visual correspondence with occlusions using graph cuts[C]//Proceedings of the 8th IEEE International Conference on Computer Vision. Washington D.C., USA: IEEE Press, 2001: 508-515.
|
[6] |
ZHANG Yifei, LI Xinfu, TIAN Xuedong. SAD stereo matching algorithm combining edge features[J]. Computer Engineering, 2020, 46(4): 236-240, 246. (in Chinese) 张一飞, 李新福, 田学东. 融合边缘特征的SAD立体匹配算法[J]. 计算机工程, 2020, 46(4): 236-240, 246. |
[7] |
MEI Xing, SUN Xun, ZHOU Mingcai, et al. On building an accurate stereo matching system on graphics hardware[C]//Proceedings of 2011 IEEE International Conference on Computer Vision. Washington D.C., USA: IEEE Press, 2011: 467-474.
|
[8] |
ZABIH R, WOODFILL J. Non-parametric local transforms for computing visual correspondence[C]//Proceedings of the 3rd European Conference on Computer Vision. [S. l. ]: DBLP, 1994: 151-158.
|
[9] |
HIRSCHMULLER H, SCHARSTEIN D. Evaluation of stereo matching costs on images with radiometric differences[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2009, 31(9): 1582-1599. DOI:10.1109/TPAMI.2008.221 |
[10] |
YOON K J, KWEON I S. Adaptive support-weight approach for correspondence search[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2006, 28(4): 650-656. DOI:10.1109/TPAMI.2006.70 |
[11] |
HE Kaiming, SUN Jian, TANG Xiaoou. Guided image filtering[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2013, 35(6): 1397-1409. |
[12] |
YANG Qingxiong. A non-local cost aggregation method for stereo matching[C]//Proceedings of 2012 IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2012: 1402-1409.
|
[13] |
ZHANG Kang, FANG Yuqiang, MIN Dongbo, et al. Cross-scale cost aggregation for stereo matching[EB/OL]. [2020-01-02]. https://arxiv.org/pdf/1403.0316.pdf.
|
[14] |
MA Xuan, ZHU Shiqiang, LAI Xiaobo. An image matching algorithm based on improved Rank transform[J]. Sensors and Microsystems, 2011, 30(11): 128-130, 134. (in Chinese) 马璇, 朱世强, 赖小波. 一种基于改进Rank变换的图像匹配算法[J]. 传感器与微系统, 2011, 30(11): 128-130, 134. DOI:10.3969/j.issn.1000-9787.2011.11.039 |
[15] |
LIU Jianguo, YU Li, LIU Sijian, et al. Stereo matching algorithm based on the improved Census transform and multi-scale space[J]. Journal of South China University of Technology(Natural Science Edition), 2017, 45(12): 43-49. (in Chinese) 刘建国, 俞力, 柳思健, 等. 基于改进Census变换和多尺度空间的立体匹配算法[J]. 华南理工大学学报(自然科学版), 2017, 45(12): 43-49. DOI:10.3969/j.issn.1000-565X.2017.12.007 |
[16] |
NALPANTIDIS L, GASTERATOS A. Stereo vision for robotic applications in the presence of non-ideal lighting conditions[J]. Image and Vision Computing, 2010, 28(6): 940-951. DOI:10.1016/j.imavis.2009.11.011 |
[17] |
MA Li, LI Jingjiao, MA Ji, et al. A modified census transform based on the neighborhood information for stereo matching algorithm[C]//Proceedings of the 7th IEEE International Conference on Image and Graphics. Washington D.C., USA: IEEE Press, 2013: 533-538.
|
[18] |
HUMENBERGER M, ZINNER C, WEBER M, et al. A fast stereo matching algorithm suitable for embedded real-time systems[J]. Computer Vision and Image Understanding, 2010, 114(11): 1180-1202. DOI:10.1016/j.cviu.2010.03.012 |