基于引导图像和自适应支持域的立体匹配 下载: 1239次
1 引言
双目立体匹配是一个利用同一场景的左、 右两幅视点图像, 基于双目视觉原理, 运用立体匹配算法找出每个像素的匹配点,从而得到视差信息的过程,在三维测量[1]、三维重建[2]、机器人导航[3]、无人驾驶[4]等领域得到广泛应用,一直是计算机视觉中的研究热点。近几年基于神经网络的立体匹配算法发展迅猛,其中基于卷积神经网络(CNN)的立体匹配算法是目前研究热点之一。Žbontar等[5]提出一种利用孪生深度网络计算匹配代价的算法,该算法使用一对图像块,通过训练让网络找出图像块之间的相似点。Pang等[6]提出级联残差学习(CRL)网络,该网络分为两段,每段独立计算视差图和多尺度残差。Chang等[7]提出金字塔立体匹配网络(PSMNet),该网络由空间金字塔池化模块和三维CNN模块组成。这类方法虽然匹配精度高、效果好,但训练时需要大量的数据,因此在实际应用中受到限制。
传统的立体匹配算法无需大量数据进行训练,匹配准确率也能满足实际应用需要,所以应用更为广泛。传统算法通常包括全局算法、半全局算法、局部算法三类。全局算法一般通过求取全局能量函数的最小值来获得视差,常见的有图割算法[8]、置信传播算法[9]等,其特点是匹配准确率高,但计算效率低。半全局算法由Hirschmüller[10]提出,主要利用动态规划的思想,匹配准确率和计算效率介于全局算法和局部算法之间。局部算法在指定的支持域内通过代价聚合的方式进行匹配,匹配准确率一般低于前两种算法,但计算效率更高,并且更容易实现。局部算法一般分为4个步骤[11]:匹配代价计算、代价聚合、视差计算和视差细化。
匹配代价计算是对左、右图像中每个像素的相似度进行量化,得到与视差范围对应的匹配代价体。计算方法主要分为3类,即基于像素的方法、基于窗口的方法、非参数方法。基于像素的方法有绝对差(AD)、平方差(SD)、梯度等;基于窗口的方法有SAD(绝对差之和)、平方差之和(SSD)、归一化互相关(NCC)等;非参数方法有Census变换、Rank变换、互信息等。每种方法都有不足,因而目前普遍的做法是将多种方法相融合以构造匹配代价计算函数[12-14]。
代价聚合是在每个像素的支持域内对匹配代价求和或取平均值。目前常见的方法主要分为3类,即基于支持域的方法、基于滤波的方法、基于最小生成树(MST)的方法。基于支持域的方法以自适应支持域为主。其中Zhang等[15]提出了基于十字交叉的自适应支持域构建方法。在此基础上,Mei等[12]对支持臂扩展的判断标准进行改进,提出了颜色和距离的双重阈值。闫利等[16]提出一种双约束线性变化阈值的判定准则。基于滤波的方法主要采用导向滤波[17]。如Zhu等[13]采用基于自适应矩形支持域的导向滤波进行代价聚合,取得了不错的效果。闫利等[16]将基于十字交叉的自适应支持域与导向滤波相结合,在提高匹配精度的同时,增强了鲁棒性。基于MST的方法由Yang[18]提出,采用基于全局的MST进行代价聚合。Li等[19]将MST支持域滤波与PatchMatch(区域匹配)三维标签结合,算法获得了较高的匹配准确率。
视差计算是在代价聚合的基础上根据某种计算方法得到每个像素的视差。目前主要采用WTA(赢者通吃)策略[11],该策略选择最小的聚合代价值所对应的视差。
视差细化是对视差计算后生成的视差图中存在的异常点进行检测和修正,从而得到更为准确的视差结果。左右一致性检测是目前广泛使用的异常点检测方法,区域投票[12]、代价谱峰值分析与去除[20]、亚像素求精[12,21]、加权中值滤波[17,22]等都是常用的异常点修正方法。每种方法都有局限性,因此将几种方法组合形成一套多步细化方法是目前比较常见的方式[12,14,23-24]。
在现有局部立体匹配算法的基础上,本文提出一种基于引导图像和自适应支持域的立体匹配算法。在匹配代价计算阶段,提出一种梯度计算方法,并与AD和Census变换融合得到匹配代价计算函数;在代价聚合阶段,使用基于自适应支持域的导向滤波;在视差细化阶段,提出一套基于自适应支持域的多步细化方法。
2 算法描述
所提算法主要包含5个步骤:以校正后的图像作为输入,对图像进行预处理得到引导图像;结合引导图像和输入图像的梯度信息,应用所提方法分别计算x和y方向的梯度,并与AD和Census变换融合构建计算函数,计算匹配代价体;建立自适应支持域(ASR),基于该支持域对匹配代价体进行导向滤波(GIF);用WTA进行视差计算,获得初始视差图;使用提出的多步细化方法进行视差细化,输出最终视差结果。算法流程如
2.1 图像预处理
为得到准确的引导图像,首先对输入图像进行预处理。导向滤波具有边缘保持特性,平滑效果好且计算时间与支持域大小无关,因此采用导向滤波得到引导图像。
2.2 匹配代价计算
为增强算法的鲁棒性,采用AD、Census变换及x和y方向梯度相融合的方法进行匹配代价计算。
AD使用图像RGB三个通道的信息计算,表达式为
式中:ILi(p)为左图i通道上点p的值;IRi(q)为右图i通道上视差等于d时对应点q的值。
Census变换通过比较中心像素与窗口内其他像素的大小,得到对应的二进制编码,然后计算两个编码的Hamming距离:
式中:cen(p)和cen(q)分别为左图中任意一点p和对应点q的二进制编码。
图像梯度包含大量的结构信息,所以在匹配代价计算中广泛使用[13-14,25-26]。由于输入图像包含更丰富的局部细节信息,而引导图像主要包含边缘信息,将两者梯度相结合,既包含了图像的局部特征,又包含了边缘特征[14],因而采用输入图像和引导图像相结合的方法。在此基础上,提出一种梯度计算方法分别计算x和y两个方向的梯度,表达式分别为
式中:IL和IR分别为输入图像对的左图和右图;GIL和GIR分别为引导图像对的左图和右图;
将以上计算方法加权融合,得到匹配代价计算函数为
式中:λAD、λCen、
2.3 代价聚合
2.3.1 自适应支持域的构建
由于一个支持域内颜色相近的点可能来自相同的图像结构,因此这些点具有相似的视差[15]。为确保支持域内只包含颜色相近的点,采用十字交叉法[15]构建自适应支持域,臂长的判定准则采用距离和颜色双阈值的方法[12],具体规则如下。
1) Dc(p,pe)<C1且Dc(pe,pn)<C1;
2) Dd(p,pe)<L1;
3) 当L2<Dd(p,pe)<L1时,Dc(p,pe)<C2。
其中:pe为点p支持臂上的一点;pn为pe在支持臂方向上的前一个点;Dc(p,pe)=
按照以上规则,以点p为中心,分别向上、下、左、右4个方向扩展,当不满足规则时停止。点p的十字交叉区域由垂直方向支持臂V(p)和水平方向支持臂H(p)组成,自适应支持域R(p)可表示为V(p)上所有点q水平方向支持臂H(q)的并集,如
图 2. 十字交叉法构建自适应支持域示意图
Fig. 2. Schematic of constructing adaptive support region based on cross method
2.3.2 基于自适应支持域的导向滤波
与传统的导向滤波相比,基于自适应支持域的导向滤波取得了更好的效果[13,16],因此采用该方法进行代价聚合。为提高计算效率,利用正交积分图技术[15]对自适应支持域进行求和。由于RGB图像对边缘的保护作用更加明显[17],因此直接使用输入图像作为导向图。设导向图为I,待滤波图像为m,滤波后的结果为n,基于自适应支持域的导向滤波的线性系数ak和bk的计算公式分别为
式中:ε为正则化参数;U为3×3的单位矩阵;|Rk|为自适应支持域Rk内点的数量;μk和
最后,利用线性模型计算滤波后的结果,表达式为
式中:
2.4 视差计算
采用WTA方法,选取最小匹配代价所对应的视差作为初始视差,表达式为
式中:CCA(p,d)为经过代价聚合后的匹配代价体;dini(p)为点p的初始视差。
2.5 视差细化
初始视差图中一般都包含很多异常点,需通过视差细化进行检测和修正,因此视差细化和代价聚合同等重要[22]。
针对这一步骤,对现有方法进行重新组合,提出一套基于自适应支持域的多步细化方法。该方法包括左右一致性检测和异常点分类、自适应支持域投票、自适应支持域四向传播插值、两向传播插值、无对应异常点插值、亚像素求精等环节。
2.5.1 左右一致性检测和异常点分类
左右一致性检测通过左图的视差找到右图对应的匹配点,并判断两点视差是否相等,如果相等则为可靠点,否则为异常点。判断方法为
式中:dL和dR分别为左图和右图的初始视差。
将检测到的异常点分为两类,一类在右图中有对应匹配点;另一类在右图中不存在对应点。将第一类称为有对应异常点,第二类称为无对应异常点。后续步骤会对两类异常点分别进行修正。
2.5.2 自适应支持域投票
对所有异常点进行自适应支持域内投票,统计可靠点的总票数和最高票数,再进行判断。判断的表达式为
式中:NT为总票数;Nmax为最高票数;N和P均为阈值。若同时满足,用票数最高点的视差替换异常点视差,并将其标记为可靠点。为了处理尽可能多的异常点,该过程需迭代5次。
2.5.3 自适应支持域四向传播插值
针对有对应异常点,在自适应支持域内沿着该点四个支持臂的方向分别找到距离最近的可靠点,对应视差分别记为drl,drr,dru,drd。如果drl和drr均存在,则用dhmin替换异常点的视差;如果dru和drd均存在,则用dvmin替换异常点的视差;如果|dhmin-dvmin|≤2,则用(dhmin+dvmin)/2替换异常点的视差;否则,不进行替换。其中,dhmin=min(drl,drr),dvmin=min(dru,drd)。为了处理尽可能多的异常点,该过程需迭代3次。采用该方法进行替换,并标记为可靠点。
2.5.4 两向传播插值
对于剩余的有对应异常点,沿着点的左右两边分别找到距离最近的可靠点,对应视差记为drl和drr。如果drl和drr均存在,则用dhmin替换异常点的视差;否则,不进行替换。采用该方法进行替换,并标记为可靠点。
2.5.5 无对应异常点插值
经过上述步骤,剩余的异常点主要为无对应异常点,由于该类异常点一般出现在图中的最左边区域,所以采用单向传播插值方式,即在点的右边找到距离最近的可靠点,用其视差进行替换。
2.5.6 亚像素求精
为减小视差不连续带来的误差,使用基于二次多项式插值的方法进行亚像素求精,即
式中:dn为经过之前步骤后点p的视差;CCA(p,dn+1)和CCA(p,dn-1)分别为p点在视差为dn+1和dn-1时经过代价聚合后的匹配代价。最后使用3×3中值滤波进行平滑处理,得到最终视差结果。
3 实验结果与分析
采用Middleberry V3测试平台training set和test set中的图像进行实验。实验参数为λAD=30/255,λCen=45/255,
3.1 梯度计算方法验证
为验证所提梯度计算方法的效果,将所提梯度计算方法与另外两种梯度计算方法进行对比。第一种(简称C1)为x方向梯度(仅包含输入图像)+y方向梯度(仅包含输入图像),计算时采用不同权重;第二种(简称C2)为x方向梯度(仅包含输入图像)+y方向梯度(仅包含输入图像),计算时采用相同权重。三种方法均与AD和Census变换融合,得到三种代价计算方法,它们采用相同的代价聚合策略, 且均不进行视差细化处理,得到Adirondack 图像的视差图,如
图 3. 三种代价计算方法的视差图。(a) C1;(b) C2;(c)所提梯度计算方法
Fig. 3. Disparity maps of three cost computation methods. (a) C1; (b) C2; (c) proposed gradient calculation method
从
为了更加全面地进行比对,按照上述方式计算training set中所有图像的视差图,由Middleberry V3测试平台得到平均误差(Avgerr)和方均根误差(RMSE)的加权平均值,结果如
图 4. 全部区域和非遮挡区域的加权平均值。(a) Avgerr;(b) RMSE
Fig. 4. Weighted averages for all regions and non-occluded regions. (a) Avgerr; (b) RMSE
3.2 视差细化效果验证
为验证所提多步细化方法的有效性,对3.1中得到的training set所有图像的视差图均采用所提多步细化方法进行视差细化,每个环节执行后,全部区域和非遮挡区域的Avgerr和RMSE的加权平均值变化情况如
图 5. 每个环节进行视差细化后的加权平均值。(a)(b) Avgerr; (c)(d) RMSE
Fig. 5. Weighted average after disparity refinement on each step. (a)(b) Avgerr; (c)(d) RMSE
由
为了更直观展示所提多步细化方法的效果,
表 1. 视差细化前后误差的加权平均值和降低的百分比(所提梯度计算方法的视差图)
Table 1. Weighted average of errors before and after disparity refinement and reduced percentage (disparity map of proposed gradient calculation method)
|
表 2. 视差细化前后误差的加权平均值和降低的百分比(C1的视差图)
Table 2. Weighted average of errors before and after disparity refinement and reduced percentage (disparity map of C1)
|
表 3. 视差细化前后误差的加权平均值和降低的百分比(C2的视差图)
Table 3. Weighted average of errors before and after disparity refinement and reduced percentage (disparity map of C2)
|
3.3 算法对比分析
为进一步验证所提算法的鲁棒性和综合性能,选择其他6种算法进行对比实验,包括LE-ELAS[27]、IEBIMst[28]、SPS[29]、SM-AWP[30]、DSGCA[31]、DoGGuided[32],部分图像的实验结果如
图 6. 视差结果对比。(a) Adirondack;(b) Jadeplant;(c) Piano;(d) Motorcycle;(e) Recycle
Fig. 6. Comparison of disparity results. (a) Adirondack; (b) Jadeplant; (c) Piano; (d) Motorcycle; (e) Recycle
从
为了进行定量对比,将training set和test set所有图像在全部区域和非遮挡区域中的Avgerr和RMSE进行比较,结果如
表 4. 全部区域的Avgerr对比
Table 4. Comparison of Avgerr in all regionspixel
|
表 5. 非遮挡区域的Avgerr对比
Table 5. Comparison of Avgerr in non-occluded regionspixel
|
表 6. 全部区域的RMSE对比
Table 6. Comparison of RMSE in all regionspixel
|
表 7. 非遮挡区域的RMSE对比
Table 7. Comparison of RMSE in non-occluded regionspixel
|
由
4 结论
提出一种基于引导图像和自适应支持域的局部立体匹配算法。在代价计算阶段,结合输入图像和引导图像,提出了一种梯度计算方法用来计算x和y方向梯度,并与AD和Census变换融合构建匹配代价计算函数。该梯度计算方法提高了匹配精度,取得了较好的效果。在视差细化阶段,提出一套基于自适应支持域的多步细化方法,该方法无论是在全部区域还是在非遮挡区域均能有效减小误差。实验结果表明,所提算法具有较好的鲁棒性,能获得精度较高的视差结果,但对亮度差异较大的图像对,结果并不理想,后续工作将进一步研究该问题。
[1] 李云廷. 基于立体视觉的三维精确测量方法研究[D]. 武汉: 华中科技大学, 2016: 2- 10.
Li YT. Research on three dimensional accurate measurement method based on stereo vision[D]. Wuhan: Huazhong University of Science and Technology, 2016: 2- 10.
[2] Hamzah RA, IbrahimH, Hassan A H A. Stereo matching algorithm for 3D surface reconstruction based on triangulation principle[C]//2016 1st International Conference on Information Technology, Information Systems and Electrical Engineering (ICITISEE), August 23-24, 2016, Yogyakarta, Indonesia. New York: IEEE, 2016: 119- 124.
[3] Ge Z, Zhu Y, Liang G H. A 3D terrain reconstruction method of stereo vision based quadruped robot navigation system[J]. Proceedings of SPIE, 2017, 10322: 1032242.
[4] Xiao X W, Guo B X, Li D R, et al. Multi-view stereo matching based on self-adaptive patch and image grouping for multiple unmanned aerial vehicle imagery[J]. Remote Sensing, 2016, 8(2): 89-119.
[5] Žbontar J. LeCun Y. Stereo matching by training a convolutional neural network to compare image patches[J]. The Journal of Machine Learning Research, 2016, 17(1): 1-32.
[6] Pang JH, Sun WX, Ren JS, et al. Cascade residual learning: a two-stage convolutional neural network for stereo matching[C]//2017 IEEE International Conference on Computer Vision Workshops (ICCVW), October 22-29, 2017, Venice, Italy. New York: IEEE, 2017: 878- 886.
[7] Chang JR, Chen YS. Pyramid stereo matching network[C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, June 18-23, 2018, Salt Lake City, UT. New York: IEEE, 2018: 5410- 5418.
[8] KolmogorovV, ZabihR. Computing visual correspondence with occlusions using graph cuts[C]//Proceedings Eighth IEEE International Conference on Computer Vision. ICCV 2001, July 7-14, 2001, Vancouver, BC, Canada. New York: IEEE, 2001: 508- 515.
[9] Sun J, Zheng N N, Shum H Y. Stereo matching using belief propagation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2003, 25(7): 787-800.
[10] Hirschmüller H. Stereo processing by semiglobal matching and mutual information[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2008, 30(2): 328-341.
[11] Scharstein D, Szeliski R. A taxonomy and evaluation of dense two-frame stereo correspondence algorithms[J]. International Journal of Computer Vision, 2002, 47: 7-42.
[12] MeiX, SunX, Zhou MC, et al. On building an accurate stereo matching system on graphics hardware[C]//2011 IEEE International Conference on Computer Vision Workshops (ICCV Workshops), November 6-13, 2011, Barcelona, Spain. New York: IEEE, 2011: 467- 474.
[13] Zhu S P, Yan L N. Local stereo matching algorithm with efficient matching cost and adaptive guided image filter[J]. The Visual Computer, 2017, 33(9): 1087-1102.
[14] Zhan Y L, Gu Y Z, Huang K, et al. Accurate image-guided stereo matching with efficient matching cost and disparity refinement[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2016, 26(9): 1632-1645.
[15] Zhang K, Lu J B, Lafruit G. Cross-based local stereo matching using orthogonal integral images[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2009, 19(7): 1073-1079.
[16] 闫利, 王芮, 刘华, 等. 基于改进代价计算和自适应引导滤波的立体匹配[J]. 光学学报, 2018, 38(11): 1115007.
[18] Yang QX. A non-local cost aggregation method for stereo matching[C]//2012 IEEE Conference on Computer Vision and Pattern Recognition, June 16-21, 2012, Providence, RI. New York: IEEE, 2012: 1402- 1409.
[19] Li L C, Yu X, Zhang S L, et al. 3D cost aggregation with multiple minimum spanning trees for stereo matching[J]. Applied Optics, 2017, 56(12): 3411-3420.
[21] Stentoumis C, Grammatikopoulos L, Kalisperakis I, et al. On accurate dense stereo-matching using a local adaptive multi-cost approach[J]. ISPRS Journal of Photogrammetry and Remote Sensing, 2014, 91: 29-49.
[22] Ma ZY, He KM, Wei YC, et al. Constant time weighted median filtering for stereo matching and beyond[C]//2013 IEEE International Conference on Computer Vision, December 1-8, 2013, Sydney, Australia. New York: IEEE, 2013: 49- 56.
[23] Jiao J B, Wang R G, Wang W M, et al. Local stereo matching with improved matching cost and disparity refinement[J]. IEEE Multimedia, 2014, 21(4): 16-27.
[24] 马瑞浩, 朱枫, 吴清潇, 等. 基于图像分割的稠密立体匹配算法[J]. 光学学报, 2019, 39(3): 0315001.
[26] MeiX, SunX, Dong WM, et al. Segment-tree based cost aggregation for stereo matching[C]//2013 IEEE Conference on Computer Vision and Pattern Recognition, June 23-28, 2013, Portland, OR, USA. New York: IEEE, 2013: 313- 320.
[27] Jellal RA, LangeM, WassermannB, et al. LS-ELAS: line segment based efficient large scale stereo matching[C]//2017 IEEE International Conference on Robotics and Automation (ICRA), May 29-June 3, 2017, Singapore. New York: IEEE, 2017: 146- 152.
[28] HeC, Zhang CX, ChenZ, et al. Minimum spanning tree based stereo matching using image edge and brightness information[C]//2017 10th International Congress on Image and Signal Processing, BioMedical Engineering and Informatics (CISP-BMEI), October 14-16, 2017, Shanghai, China. New York: IEEE, 2017: 1- 5.
[29] LegendreC, BatsosK, MordohaiP. High-resolution stereo matching based on sampled photoconsistency computation[C]//British Machine Vision Conference, September 4-7, 2017, London, UK.Guildford: BMVA Press, 2017.
[30] Razak S S A, et al. The effect of adaptive weighted bilateral filter on stereo matching algorithm[J]. International Journal of Engineering and Advanced Technology, 2019, 8(3): 284-287.
[31] Park I K. Deep self-guided cost aggregation for stereo matching[J]. Pattern Recognition Letters, 2018, 112: 168-175.
[32] KitagawaM, ShimizuI, SaraR. High accuracy local stereo matching using DoG scale map[C]//2017 Fifteenth IAPR International Conference on Machine Vision Applications (MVA), May 8-12, 2017, Nagoya, Japan. New York: IEEE, 2017: 258- 261.
Article Outline
孔令寅, 朱江平, 应三丛. 基于引导图像和自适应支持域的立体匹配[J]. 光学学报, 2020, 40(9): 0915001. Lingyin Kong, Jiangping Zhu, Sancong Ying. Stereo Matching Based on Guidance Image and Adaptive Support Region[J]. Acta Optica Sinica, 2020, 40(9): 0915001.