基于改进代价计算和自适应引导滤波的立体匹配 下载: 1405次
1 引言
立体匹配是通过寻找同一场景在不同视角下的两幅或多幅图像的像素匹配点,逐像素获取视差,从而恢复场景深度信息的过程,是摄影测量和计算机视觉领域的重要研究课题,在三维重建[1]、数字表面模型生成[2]、虚拟现实和无人驾驶[3]等领域有着广泛的应用。Scharstein等[4]对典型的立体匹配算法进行了研究和总结,形成了立体匹配算法的理论框架,将现有的立体匹配算法分为全局算法和局部算法两类。全局立体匹配算法通过全局能量函数最小化来求取视差,精度较高但是计算复杂,常见的全局算法有置信度传播匹配算法[5-6]、图割法[7]和动态规划匹配算法[8-9]等。局部立体匹配算法利用窗口内的邻域信息来进行匹配,精度较全局算法差,但是计算复杂度低,易于实现。局部立体匹配算法通常可以分为4步:1)匹配代价计算;2)代价聚合;3)视差计算/优化;4)视差精化。
常见的匹配代价计算方法有基于像素的匹配代价、基于窗口的匹配代价、基于非参数变换的匹配代价,以及互信息[10]。基于像素的匹配代价包括灰度差绝对值(AD)、灰度差平方(SD)、采样不敏感的BT(Birchfiedld-Tomasi)[11]等;基于窗口的匹配代价包括灰度差绝对值和(SAD)、灰度差平方和和归一化互相关等;基于非参数变换[12]的匹配代价包括Census和Rank。其中,基于图像颜色的算法(AD、SD等)对噪声和光照变化非常敏感,Census变换对光照变化具有较好的稳健性,但是在重复纹理区域效果较差;因此,将多种代价函数相结合构造新的匹配代价的方法被更广泛使用。Hosni等[13]将SAD和梯度信息相结合作为新的匹配代价函数;Mei等[14]结合AD和Census变换进行代价计算,在弱纹理区域和重复纹理结构区域都取得了很好的结果;Zhu等[15]将AD、梯度信息和Census变换结合,提高了算法的匹配精度。
代价聚合是局部立体匹配算法中最重要的一步,通过对支持窗口内的初始匹配代价进行求和或取平均来提高匹配可靠性。目前常见的局部聚合方法主要分为自适应支持窗口法(VSW)[16-17]和自适应支持权重法(ASW)[18-20]。基于VSW的方法通过图像特征来寻找最佳的支持窗口。Zhang等[17]提出了一种基于十字交叉的自适应窗口,利用相邻像素的颜色信息和空间距离关系在水平和垂直方向扩展邻域像素,形成一个十字交叉区域。Mei等[14]在此基础上改进了像素扩展的判断准则,提出双距离阈值和双色彩阈值准则,提高了弱纹理区域的匹配精度。祝世平等[21]提出一种基于线性可变阈值的臂长判断准则。基于ASW的方法则是通过对固定窗口内的相邻像素分配不同的权重来进行代价聚合。Yoon等[18]首次提出了基于双边滤波器的立体匹配算法,并取得优异的性能,但其计算复杂度较高。Hosni等[19]提出一种利用引导滤波器(GF)[22]的代价聚合算法,与双边滤波器相比,引导滤波器可以更好地保持边缘,并且其计算复杂度与窗口大小无关,因此在实时系统中得到了广泛使用。Yang等[23]基于此思想将VSW和ASW结合,提出了一种基于自适应矩形窗口进行滤波的立体匹配算法。
为提高弱纹理区域的匹配精度,本文提出一种基于改进代价计算和自适应引导滤波的立体匹配算法。首先,将增强后的梯度信息和基于增强梯度的Census变换相结合进行匹配代价计算;然后,在代价聚合阶段,对图像的每一个像素构建自适应十字交叉窗口,并基于自适应窗口进行引导滤波代价聚合;最后,采用Winner-Take-All(WTA)策略进行视差计算,对错误匹配点进行视差精化,得到最终的视差图。
2 算法描述
本文算法以经过立体校正后的立体影像对为输入,对立体影像对进行匹配代价计算、代价聚合、视差计算和多步视差精化后,输出视差图,算法的总体流程如
2.1 匹配代价计算
匹配代价是左右两幅图像逐像素逐视差的相似性度量,可以用一个大小为
为了获得更强的边缘信息,在代价计算之前进行图像增强处理,分别对左右图像进行限制对比度自适应直方图均衡(CLAHE)[27]处理。对于每一个像素点
式中
传统Census变换选取中心像素的灰度值作为参考,将其与窗口中相邻各像素的灰度值进行比较,并用0和1表示大小关系,经过变换形成二进制码流。这种方法对中心像素的依赖性强,对图像噪声的抗干扰能力弱,而且对重复纹理结构匹配效果差。为了增强算法的稳健性,提高在重复纹理的匹配精度,本文使用基于增强梯度信息的Census变换来计算匹配代价。相比于传统Census变换,改进后的Census变换是对像素的梯度幅度进行比较,能有效改善重复纹理区域的匹配精度,改进后的Census变换可表示为
式中:⊗表示按位连接;
将增强后的梯度代价和改进的Census变换进行加权融合,得到最终的匹配代价,具体表达公式为
式中
为了验证增强梯度代价函数和基于增强梯度的Census变换的有效性,对Middlebury数据集Tsukuba图像进行对比实验,实验采用相同的代价聚合方法,且没有进行视差精化,获得的视差图(
图 2. 基于不同代价计算方法的Tsukuba图像的初始视差图。(a)原始梯度代价函数;(b)增强后的梯度代价函数;(c)原始Census变换;(d)基于增强梯度的Census变换
Fig. 2. Initial disparity maps based on different cost methods for Tsukuba. (a) Absolute difference in images gradients; (b) absolute difference in enhanced images gradients; (c) traditional Census transform; (d) Census transformation based on enhanced images gradients
2.2 代价聚合
2.2.1 自适应形状十字交叉窗口构建
局部立体匹配代价聚合假设支持窗口内的像素视差平滑[4]。对于弱纹理区域,需要选择一个较大的窗口来包含足够多的纹理信息;对于视差不连续的区域,需要较小的支持窗口来保持边缘细节信息。传统引导滤波器的窗口大小是固定的,为了提高弱纹理区域的匹配精度,本文采用一种基于自适应形状窗口的引导滤波器,并提出一种双约束的线性变化阈值的判定准则来构建自适应形状窗口,臂长的判断准则如下:
式中:
式中
基于颜色和距离约束的判定准则容易受到噪声影响,因此在构建自适应支持窗口前需要对图像进行高斯滤波。基于不同判定准则的自适应窗口的构建结果如
图 3. 自适应窗口构建示意图。(a)基于交叉的区域结构;(b)文献[ 17]的自适应窗口;(c)文献[ 14]的自适应窗口;(d)本文方法的自适应窗口
Fig. 3. Schematic of adaptive window construction. (a) Cross-based support region construction; (b) adaptive window in Ref. [17]; (c) adaptive window in Ref. [14]; (d) adaptive window in proposed method
2.2.2 自适应引导滤波
传统引导滤波的局部窗口是固定大小的正方形窗口,主要思想是假设滤波器输出结果与输入的指导图像在局部范围内是符合线性模型的[22]。所采用的滤波方法基于自适应形状的窗口,若输入图像为
式中:
式中
2.3 代价计算
代价聚合后得到最终的匹配代价为
式中
2.4 视差精化
通过上述WTA策略获得的初始视差图中仍包含很多错误匹配点,需要进行后处理。参考文献[ 14]和[19]的后处理方法,对初始视差图进行左右一致性检测、遮挡/误匹配处理、加权中值滤波和子像素精化等后处理来提高匹配精度。首先,通过左右一致性检测来获得左右视差图中的异常点:
式中:
分别对左右一致性检测获得的遮挡点和误匹配点采用不同的插值策略。对于遮挡像素,由于遮挡区域通常位于图像背景,因此需要来自背景区域的有效非遮挡像素的视差值来对遮挡点插值,在8个方向上搜索和遮挡像素最接近的有效像素,并选择其中最小的视差值作为当前遮挡像素的视差值;对于误匹配像素,在8个方向上将像素颜色最相似的有效像素的视差值作为误匹配像素的视差值,并采用加权中值滤波器[28]对插值后的视差图进行平滑。为了减少离散视差引起的视差图不连续,基于二次多项式插值进行子像素估计[29]。对于每个像素
式中:
3 实验结果与分析
为了验证代价计算和代价聚合算法的有效性,采用Middlebury立体匹配评估测试平台[30]提供的数据集进行实验,实验中涉及的参数设置如
表 1. 实验参数设置
Table 1. Experimental parameter settings
|
3.1 匹配代价计算验证
为了验证本文算法的有效性和对图像失真的稳健性,选取3种代价函数进行对比,分别为SAD和梯度结合(SAD+Grad)[13]、AD和Census变换结合(AD+Cen)[14]、AD与梯度和Census变换结合(AD+Grad+Cen)[15]。利用这3种混合代价函数与本文提出的代价函数对Middlebury 2006数据集中6组立体图像对(Aloe、Baby1、Bowling1、Cloth1、Flowerpots和Rocks1)分别在不同光照、曝光,以及无幅度失真的条件下进行实验。
图 4. Aloe和Baby1在不同光照下不同代价计算方法的视差图。(a)左图像;(b)右图像;(c)真实视差图;(d) SAD和梯度结合;(e) AD和Census变换结合;(f) AD、梯度和Census变换结合;(g)本文算法
Fig. 4. Disparity maps under different illumination conditions for Aloe and Baby1. (a) Left image; (b) right image; (c) ground truth; (d) SAD+Grad; (e) AD+Cen; (f) AD+Grad+Cen; (g) proposed cost computation
图 5. Aloe和Baby1在不同曝光下不同代价计算方法的视差图。(a)左图像;(b)右图像;(c)真实视差图;(d) SAD和梯度结合;(e) AD和Census变换结合;(f) AD、梯度和Census变换结合;(g)本文算法
Fig. 5. Disparity maps with different exposures for Aloe and Baby1. (a) Left image; (b) right image; (c) ground truth; (d) SAD+Grad; (e) AD+Cen; (f) AD+Grad+Cen; (g) proposed cost computation
表 2. 不同代价计算算法在不同光照下的误匹配率
Table 2. Error matching rates of various cost computations under different illuminations%
|
表 3. 不同代价计算算法在不同曝光下的误匹配率
Table 3. Error matching rates of various cost computations under different exposures%
|
表 4. 不同代价计算算法在无幅度失真条件下的误匹配率
Table 4. Error matching rates of various cost computations without radiometric changes%
|
3.2 代价聚合算法验证
为验证代价聚合算法的有效性,采用传统引导滤波器[22]立体匹配算法和改进代价聚合算法对Middlebury测试平台的4幅标准图像,以及2006数据集的21组图像进行实验。实验均采用相同的后处理过程。
图 6. 不同代价聚合算法在弱纹理图像的视差图。(a)左图像;(b)真实视差图;(c)基于传统引导滤波器的视差图;(d)传统引导滤波器算法的误匹配像素图;(e)本文算法的视差图;(f)本文算法的误匹配像素图
Fig. 6. Disparity maps of different cost aggregation algorithms for textureless images. (a) Left images; (b) ground truth maps; (c) results of local stereo method based on guided filter; (d) error maps for method based on guided filter; (e) results of the proposed method; (f) error maps of the proposed method
表 5. 不同算法的误匹配率
Table 5. Error matching rates of different algorithms for different images%
|
表 6. 所有区域不同算法的误匹配率
Table 6. Error matching rates of different algorithms in all regions%
|
3.3 参数分析
为了分析不同参数取值对实验结果的影响,对所涉及的7种参数进行实验,其中正则化参数
3.4 算法对比分析
表 7. 不同算法在弱纹理图像的误匹配率
Table 7. Error matching rates of different algorithms for textureless images%
|
表 8. 不同算法的运行时间比较
Table 8. Runtime comparison of different algorithms for benchmark stereo imagess
|
4 结论
改进了传统引导滤波器的立体匹配算法。在代价计算阶段,提出一种增强梯度信息和基于增强梯度的Census变换结合的新的代价计算方法,提高了对重复纹理结构的匹配精度,并且对幅度失真具有较好的稳健性。在代价聚合阶段,构建自适应形状支持窗口,并基于该窗口采用引导滤波算法进行聚合,与传统引导滤波器相比,降低了在弱纹理区域的误匹配率。与其他算法相比,本文算法能有效提高弱纹理区域的匹配精度,但在视差不连续区域的精度还有待提高,今后研究将在视差不连续区域作进一步优化。
[2] d’AngeloP, ReinartzP. Semiglobal matching results on the ISPRS stereo matching benchmark[C]∥High-Resolution Earth Imaging for Geospatial Information, 2012: 79- 84.
[3] HowardA. Real-time stereo visual odometry for autonomous ground vehicles[C]∥IEEE/RSJ International Conference on Intelligent Robots and Systems, 2008: 3946- 3952.
[5] SunJ, Shum HY, Zheng NN. Stereo matching using belief propagation[C]∥European Conference on Computer Vision, 2002: 510- 524.
[6] KlausA, SormannM, KarnerK. Segment-based stereo matching using belief propagation and a self-adapting dissimilarity measure[C]∥International Conference on Pattern Recognition, 2006: 15- 18.
[7] KolmogorovV, ZabihR. Computing visual correspondence with occlusions using graph cuts[C]∥Eighth IEEE International Conference on Computer Vision, 2001, 2: 508- 515.
[8] Meerbergen GV, VergauwenM, PollefeysM, et al. A hierarchical stereo algorithm using dynamic programming[C]. Stereo and Multi-Baseline Vision, 2002: 166- 174.
[9] 许金鑫, 李庆武, 刘艳, 等. 基于色彩权值和树形动态规划的立体匹配算[J]. 光学学报, 2017, 37(12): 1215007.
[12] ZabihR, WoodfillJ. Non-parametric local transforms for computing visual correspondence[C]∥European Conference on Computer Vision, 1994: 151- 158.
[14] MeiX, SunX, ZhouM, et al. On building an accurate stereo matching system on graphics hardware[C]∥IEEE International Conference on Computer Vision Workshops, 2011: 467- 474.
[16] 周秀芝, 文贡坚, 王润生. 自适应窗口快速立体匹配[J]. 计算机学报, 2006, 29(3): 473-479.
[20] 彭建建, 白瑞林. 基于水平树结构的可变权重代价聚合立体匹配算法[J]. 光学学报, 2018, 38(1): 0115002.
[21] 祝世平, 李政. 基于改进梯度和自适应窗口的立体匹配算法[J]. 光学学报, 2015, 35(1): 0110003.
[25] HirschmullerH, ScharsteinD. Evaluation of cost functions for stereo matching[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2007: 1- 8.
[28] MaZ, HeK, WeiY, et al. Constant time weighted median filtering for stereo matching and beyond[C]∥Proceedings of the IEEE International Conference on Computer Vision, 2013: 49- 56.
[29] YangQ, YangR, DavisJ, et al. Spatial-depth super resolution for range images[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2007: 1- 8.
[30] Scharstein D, Szeliski R. Middlebury stereo evaluation-version 2[J]. The Middlebury Computer Vision Pages, 2011.
[31] ZhangK, FangY, MinD, et al. Cross-scale cost aggregation for stereo matching[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2014: 1590- 1597.
Article Outline
闫利, 王芮, 刘华, 陈长军. 基于改进代价计算和自适应引导滤波的立体匹配[J]. 光学学报, 2018, 38(11): 1115007. Li Yan, Rui Wang, Hua Liu, Changjun Chen. Stereo Matching Method Based on Improved Cost Computation and Adaptive Guided Filter[J]. Acta Optica Sinica, 2018, 38(11): 1115007.