基于改进代价计算和视差候选策略的立体匹配 下载: 978次
1 引言
立体匹配是计算机视觉领域的研究热点,在许多应用中发挥着重要的作用,包括3D场景重建、3D跟踪和自动驾驶[1], 它通过建立立体图像对中点的对应关系来生成视差图。根据Scharstein等[2]的研究,立体匹配算法可分为全局匹配算法和局部匹配算法。全局算法将视差计算转化为能量最小化问题,可以运用图割
匹配代价是像素点间相似程度的度量,常见测度有:灰度绝对差(AD)、采样不敏感的BT[5]、梯度(Gradient)[6]、Census变换[7]、归一化互相关(NCC)[8]、互信息(MI)[9]等。其中:AD适合处理复杂纹理,在弱纹理区域效果较差;梯度对光照改变不敏感;Census变换在弱纹理区有较好的表现,但是过于依赖中心点的特性,易受噪音干扰。近些年很多代价计算的创新点立足于已有单函数的结合,如AD-Census[10]、AD-Gradient[11]、Census-MI-Gradient[12]、AD-Census-Gradient[13],它们在一定程度上融合了单个函数的优点,能应对更多困难环境,但结合方法对精度有很大影响。王云峰等[14]对AD-Census做了改进,根据图片区域特性自适应地改变AD和Census对总代价的贡献度。闫利等[15]利用增强后的图像获取梯度信息,并将Census变换放在梯度图上执行,提高了物体边缘区和重复纹理区的匹配精度。这些例子表明结合策略是一个提升代价计算表现的可行方向。
视差计算常用于获取初始视差图。赢者通吃(WTA)策略因其简单快速,得到广泛应用,但由于它直接选择最小代价对应的视差作为初始视差,抗噪声能力差,尤其是位于弱纹理区和重复纹理区的点易产生很多相互接近的小代价值而混淆正确视差。扫描线优化算法常用于视差优化[16-17],它利用一种半全局的思想实现平滑视差的效果,但其缺点是沿扫描线方向出现了条纹,破坏了视差边界。郭鑫等[12]根据最小和次小匹配代价间的距离来判断视差选择的可靠性,并从邻域选择可靠视差值来代替不可靠视差,但代替时没有考虑被代替点的视差信息。
基于上述讨论,为提升局部匹配算法在弱纹理区和重复纹理区的表现,提出一种基于改进代价计算和视差候选策略的立体匹配算法,主要贡献如下:为传统Census变换增加与中心点相邻8个点间大小关系的编码,减弱了对中心值的依赖,增强了匹配稳定性;提出一种自适应权重的水平梯度和垂直梯度代价的结合函数,对比固定权重法,在物体边界处的匹配错误率降低;结合改进Census变换和改进梯度获取初始视差图,提升了在弱纹理区的表现;提出一种结合邻域视差信息的视差计算策略,降低了弱纹理和重复纹理区的错误匹配率。
2 算法描述
本文算法包含4个步骤:匹配代价计算,代价聚合,视差计算和视差后处理。在代价计算阶段,先分别计算改进的Census变换代价和改进的梯度代价,再组合两者获得初始匹配代价。代价聚合采用了基于十字交叉的自适应窗口。视差计算采用了提出的视差候选策略。视差后处理依次进行左右一致性检测、区域投票插值、合理插值和中值滤波,获得最终的视差图。整个流程如
2.1 匹配代价计算
立体视觉匹配通过计算左右图中对应像素点间的差异或者相似性获取初始匹配代价,全部像素点在所有视差下的代价值组成大小为w×h×d的匹配代价卷,w, h, d分别表示图像的宽、高和最大视差。传统Census变换通过比较中心点和邻域点强度值的大小来构建中心点的描述编码,并以编码间的汉明距离作为匹配代价,即
式中:p为左图中一点,坐标为(x,y),q为p邻域中的一点,Ip 和Iq 为p和q两点的强度值大小;pd表示p在右图中视差为d的对应点,坐标为(x-d,y);Np为p的邻域;表示按位连接;B(p)表示p 的Census编码;CCensus(p,d)表示p与pd点编码间的汉明距离。Census编码能反映图像的局部结构,对弱纹理区的点可以较好地表征,但其过于依赖中心点,存在隐患,当中心点强度被干扰时,编码会发生大范围变化;另一方面,这种编码方式仅能反映局部结构的一个方面,即中心和周围的关系。本研究提出一种改进的Census编码方式(表示为L-Census),编码由两部分组成,第一部分用传统编码方式生成,即通过比较中心点和邻域点强度值的大小获取,第二部分通过对紧挨中心点的8个邻域点按顺时针依次比较当前点和后一点的强度值大小获取。设左上角点为起始点,编码过程可用
正常情况下,Census编码的结果为01111000。假设中心点被噪声干扰,值由88变为100,那么Census编码的结果就变成了00000000,有1/2的码值发生了变化;用L-Census进行编码,结果为00000000 00011101,码值仅改变了1/4,误差小于原Census的结果。因此相比传统方法,L-Census不仅有效地利用了局部信息,增加了对不依赖中心点值的局部结构的描述,还能降低中心点值被干扰时造成的误差。参照文献[ 10]和[18],L-Census变换窗口大小为9×7(宽×高)。
梯度是相邻像素点强度变化的表征,包含了图像的纹理信息,表达式为
式中:
式中下角标L表示左图,R表示右图。但这种做法没有考虑梯度方向的可靠性,会在物体边界区造成误匹配,如
图 3. 物体边界区的失效示意图(p的正确匹配点是q,通过(3)式计算得到的误匹配点为e)。(a)Teddy左局部图; (b)Teddy右局部图
Fig. 3. Failure diagram in the boundary area of the object, in which the correct matching point of p is q, but the corresponding mismatching point is e obtained by Eq. (3). (a) Part of left image of Teddy; (b) part of right image of Teddy
针对上述问题,提出一种对横向和纵向梯度代价自适应加权结合的方法。受王云峰等[14]的启发,自适应权重的计算采用了代价聚合过程中产生的十字臂(具体描述见2.2节)。设像素点p的左、右、上、下臂的长度分别为Lleft(p),Lright(p),Lup(p),Ldown(p),则权重因子α定义为
相应地,梯度代价结合公式为
该策略是基于颜色在视差边界区存在突变的假设建立的(研究发现真实图片中颜色突变不是在两个像素间发生的,而是通过几个像素逐渐过渡来完成的),假设的有效性可通过
图 4. 双向梯度代价自适应加权结合策略有效性图示
Fig. 4. Illustration of the effectiveness of the adaptive weighted combining strategy of bidirectional gradient cost
图 5. 通过不同的横向和纵向梯度代价组合方法获得的视差图。(a)原图;(b)真实视差图;(c)采用(3)式得到的视差图;(d)ABiGrad得到的视差图
Fig. 5. Disparity maps obtained by different horizontal and vertical gradient costs combining methods. (a) Original image; (b) real disparity map; (c) disparity map obtained using Eq. (3); (d) disparity map obtained using ABiGrad
为了充分利用Census变换对局部结构的描述能力和梯度对纹理信息的感知能力,进一步将改进的Census代价和改进的梯度代价进行结合,得到初始匹配代价,表达式为
式中λ为控制参数,用于调节两个代价对总代价的影响。计算全部像素点在所有视差下的初始匹配代价,获得初始匹配代价卷。
2.2 代价聚合
受噪音、区域相似等因素的影响,单点的匹配代价区分度低,需要聚合目标点所在窗口内所有点的代价来提高区分度,而窗口的形状和大小将直接决定聚合效果。
采用Mei等[10]改进的基于十字交叉的自适应窗口进行代价聚合。首先计算像素点的十字臂的长度[
式中L2为最大臂长,τ1和τ2是中心点和臂上点颜色差的限制阈值,τ2小于τ1,目的是对离中心点更远的点施加更严格的颜色限制,这能在增大臂长范围的同时降低引入不同视差点的可能。第4个条件用于限制臂上相邻两点的颜色差,以进一步避免臂跨过视差边界。规定最短臂长为1。
图 6. 基于十字交叉的自适应窗口的构建。 (a)十字臂; (b)自适应支持区域
Fig. 6. Construction of adaptive cross window. (a) Cross arm; (b) adaptive support area
然后,以十字臂为骨架构建支持窗口。简单地,对垂直臂上的每个点按上述方式沿水平方向扩展,过程如
需要说明的是,以水平臂为骨架沿垂直方向进行扩展同样能够获得支持窗口,但两种方式得到的窗口不一定相同。为扩大支持区域,本研究交替使用两种窗口进行两次代价聚合的迭代。并且,为保证支持窗口在左右图都满足颜色距离限制条件(7)式,取左右图对应点的支持窗口的交集作为最终的支持窗口,表达式为
确定支持窗口后,用窗口内代价值的均值更新代价,代价表达式为
式中m表示窗口中点的总数。至此,获得聚合后的匹配代价卷。
2.3 视差计算
视差计算用来生成初始视差图,常用的WTA策略是将最小代价对应的视差作为结果,表达式为
式中dmax表示设定的最大视差。该策略简单高效,但是易受噪声的影响;WTA不能处理最小代价值和正确视差不对应的情况,而弱纹理区和重复纹理区的点由于缺少唯一性特征,更易出现这种情况。针对上述问题,利用邻域信息与候选视差来降低视差选择的歧义性。
首先通过统计分析验证“候选视差”这一思路的可行性。在双目匹配图像中截取由WTA计算出的视差错误较多的区域(如
表 1. 各候选视差的正确率
Table 1. Correct rate of each candidate disparity unit: %
|
针对上述问题,引入邻域信息来降低视差选择的歧义性。基本思想是:考虑到视差从左往右、从上往下应该是连续变化的,对于当前像素有多个候选视差难以确定的情况,可以借助邻域点已确定的视差或候选视差来辅助判别当前像素的最优视差。算法流程如
首先,构建候选匹配代价卷Vc。从匹配代价卷Va中为每个像素点选出代价最小的前M'个元素(含视差和代价值)存入候选匹配代价卷Vc,限制M'最大为M,即
并且每个选出的元素代价必须在最小代价的一定范围内,即
其中c(1)(p)表示最小代价,1≤i≤M',τc表示控制代价范围,这样每个像素点至少存在一个候选元素(最小代价元素)。
然后,利用候选匹配代价卷Vc,获取初始视差图d(0)。以获取像素点p的初始视差d(0)(p)为例来说明。1)判断p的候选元素集合Vc(p)中元素的数量n(p)是1还是大于1。如果是1,则该元素的视差d(1)(p)即为p的初始视差,结束执行;如果是大于1,接着执行步骤2)。2)先清除Vc(p)中的离群值,即将视差孤立(与任何其他候选元素的视差距离都超过设定阈值τd)的元素除去,得到新的p的候选元素集合V'c(p),再判断V'c(p)是否为空集,需要指出的是,此时V'c(p)中的元素只能为0个(即候选元素视差在视差空间中呈单个分散排布)或者至少为2个(因为判断视差距离时是两两相互判断),如果V'c(p)为空集,则按规则1执行,如果V'c(p)不为空集,则按规则2执行,之后结束执行。视差计算伪代码见
规则1:计算像素点p的所有候选元素(未清除离群值时的元素集合,即Vc(p))的视差与其4个邻接点A4(p)已经确定的视差距离,从中选择最小距离对应的候选元素的视差为p的初始视差。补充说明如下。因为计算视差时是按从左到右、从上到下的顺序进行的,故4个已确定的视差邻接点分别为p的左邻接点、上邻接点、左上邻接点和右上邻近点,若p不存在其中任何一个邻接点,即当p为图片左上角的第一个像素时,直接选择最小代价视差为初始视差。
规则2:统计V'c(p)中每个元素的视差d(i)(p)在p点和p点8个邻接点A8(p)的所有候选视差中出现的总次数N(i)以及代价和F(i),选择出现总次数最大的视差为p的初始视差。补充说明如下。若最大总次数对应的视差不唯一,则进一步比较代价和,即从出现次数最多的视差中选择代价和最小的视差为初始视差。
2.4 视差后处理
初始视差图还存在很多错误点,大多数位于遮挡区,参考Mei等[10]的后处理方法,采取两轮插值对错误点进行修正。首先,利用左右一致性检测找出错误点并分类。设
3 实验结果与分析
使用Middlebury立体匹配评测平台提供的数据集对算法进行实验分析,为了能够在设备上运行,所有图片均使用其最小分辨率。错误阈值设为一个像素,用dtrue(p)表示真实视差,dcal(p)表示计算得到的视差,若
3.1 参数分析
设置两组实验,第一组用于分析代价计算的控制参数λCensus和λGrad,使用WTA获取视差图,第二组用于分析视差计算策略中候选视差限制阈值M和控制代价范围τc,以及离群点偏移量阈值τd。为了能清晰观察参数设置在不同图上的总体规律,选择8组图进行实验并计算误匹配率的均值,8组图分别是Teddy,Cones,Books,Reindeer,Rocks1,Wood2,Baby2,Bowling1,结果如
图 10. 参数变化对误匹配率的影响。(a)误匹配率随λGrad变化;(b)误匹配随λCensus变化;(c)误匹配率随M变化;(d)误匹配率随τc变化;(e)误匹配率随τd变化
Fig. 10. Effect of parameters changing on error rate. (a) Variation of error rate with λGrad; (b) variation of error rate with λCensus; (c) variation of error rate with M; (d) variation of error rate with τc; (e) variation of error rate with τd
表 2. 实验参数设置
Table 2. Experimental parameter setting
|
3.2 代价计算方法验证
为验证本文所提代价计算方法(表示为LCen-ABiGrad)的有效性,选择AD-Census[10]和AD-Gradient[11](分别表示为AD-Cen和AD-Grad)进行对照实验,数据选用Middlebury中的16对立体图像,统计其所有区域的误匹配率。结果如
表 3. 不同代价计算方法的误匹配率
Table 3. Mismatching rate of different cost calculation methods unit: %
|
图 11. 不同代价计算方法获得的视差图。 (a)参考图; (b)真实视差图; (c)AD-Cen; (d)AD-Grad; (e)LCen-ABiGrad
Fig. 11. Disparity maps obtained by different cost calculation methods. (a) Reference image; (b) real disparity map; (c) AD-Cen; (d) AD-Grad; (e) LCen-ABiGrad
3.3 视差计算策略验证
为了验证视差候选策略(表示为DC)的有效性,选择WTA算法和文献[
10]中的扫描线优化算法(SO)进行对比实验,其中,SO为改善条纹问题,从4个方向上进行动态规划求解,并将解的均值作为最终结果。实验均采用本文提出的代价计算方法,数据使用Middlebury立体数据集中的13对立体图片。结果如
表 4. 不同视差计算策略的误匹配率
Table 4. Mismatching rate of different disparity calculation strategies unit: %
|
为进一步明确DC的作用,将DC和WTA生成的视差图进行对比标记,如
图 12. DC相对WTA在重复纹理区(直线框)、弱纹理区(虚线框)和无纹理区(双直线框)的优势。(a)参考图;(b)WTA获取的视差图;(c)DC获取的视差图;(d)标记视差图
Fig. 12. Advantages of DC over WTA in the repeated texture area (straight frame), weak texture area (dotted frame) and untextured area (double straight frame). (a) Reference image; (b) disparity map obtained by WTA; (c) disparity map obtained by DC; (d) marked disparity map
3.4 立体匹配算法总体性能分析
图 13. 本文算法在标准立体图像对上的结果。(a)参考图;(b)真实视差图;(c)本文算法生成的视差图;(d)误匹配图
Fig. 13. Results of our algorithm on standard stereo image pairs. (a) Reference image; (b) real disparity map; (c) disparity map generated by our algorithm; (d) mismatching map
为客观评价本文算法的总体表现,和其他4种立体匹配算法进行对比,结果如
表 5. 不同算法在标准立体图片对上的误匹配率
Table 5. Mismatch rate of different algorithms on standard stereo picture pairs unit: %
|
为评价本文算法的时间性能,对
表 6. 不同算法在标准立体图片对上的运行时间
Table 6. Running time of different algorithms on standard stereo image pairs unit: s
|
4 结论
提出一种基于改进代价计算和视差候选策略的立体匹配算法:通过扩展传统Census变换的编码长度,增加了算法对局部结构的描述能力,降低了算法对中心点的依赖;利用自适应权重,结合横向梯度和纵向梯度信息,在视差不连续区的表现优于非加权方法;将改进的Census变换和改进梯度结合来获取初始匹配代价,提高了对弱纹理的感知能力;针对视差计算,构建目标点的候选视差集,并通过引入邻域视差信息来辅助视差的选择,相比于WTA,降低了弱纹理区和重复纹理区的错误匹配率。在标准立体图像对上的结果显示,本文算法的精度高于部分优秀局部匹配算法。但是,所提视差计算策略会引入少量的错误点,导致算法不稳定,后期应尝试进一步优化该策略。
[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] KolmogorovV, ZabihR. Computing visual correspondence with occlusionsusing graph cuts[C]∥ Proceedings of 8th IEEE International Conference on Computer Vision, July 7-14, 2001, Vancouver, BC, Canada.New York: IEEE Press, 2001: 508- 515.
[5] Birchfield S, Tomasi C. Depth discontinuities by pixel-to-pixel stereo[J]. International Journal of Computer Vision, 1999, 35(3): 269-293.
[6] ScharsteinD. Matching images by comparing their gradient fields[C]∥Proceedings of 12th International Conference on Pattern Recognition, October 9-13, 1994, Jerusalem, Israel.New York: IEEE Press, 1994: 572- 575.
[7] ZabihR, WoodfillJ. Non-parametric local transforms for computing visual correspondence[C]∥ Eklundh J O. Computer Vision: ECCV'94. Berlin, Heidelberg: Springer, 1994, 801: 151- 158.
[8] 陈先锋, 郭正华, 伍俊龙, 等. 基于区域先验信息的去遮挡立体匹配算法[J]. 激光与光电子学进展, 2019, 56(19): 191001.
[10] 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 Press, 2011: 467- 474.
[12] 郭鑫, 王延杰, 付东辉, 等. 三种测度融合的加权引导滤波匹配算法[J]. 计算机工程与科学, 2019, 41(6): 1044-1049.
Guo X, Wang Y J, Fu D H, et al. A weight guided filtering matching algorithm combining three measures[J]. Computer Engineering & Science, 2019, 41(6): 1044-1049.
[13] 孔令寅, 朱江平, 应三丛. 基于引导图像和自适应支持域的立体匹配[J]. 光学学报, 2020, 40(9): 0915001.
[14] 王云峰, 吴炜, 余小亮, 等. 基于自适应权重AD-Census变换的双目立体匹配[J]. 工程科学与技术, 2018, 50(4): 153-160.
Wang Y F, Wu W, Yu X L, et al. A stereo matching system with the adaptive weight AD-census[J]. Advanced Engineering Sciences, 2018, 50(4): 153-160.
[15] 闫利, 王芮, 刘华, 等. 基于改进代价计算和自适应引导滤波的立体匹配[J]. 光学学报, 2018, 38(11): 1115007.
[16] Salehian B, Raie A, Fotouhi A, et al. Efficient interscanline consistency enforcing method for dynamic programming-based dense stereo matching algorithms[J]. Journal of Electronic Imaging, 2013, 22(4): 043028.
[18] 彭新俊, 韩军, 汤踊, 等. 基于改进Census变换和异常值剔除的抗噪立体匹配算法[J]. 光学学报, 2017, 37(11): 1115004.
[19] 彭建建, 白瑞林. 基于水平树结构的可变权重代价聚合立体匹配算法[J]. 光学学报, 2018, 38(1): 0115002.
[20] ZhangK, Fang YQ, Min DB, et al.Cross-scale cost aggregation for stereo matching[C]∥2014 IEEE Conference on Computer Vision and Pattern Recognition, June 23-28, 2014, Columbus, OH, USA.New York: IEEE Press, 2014: 1590- 1597.
[21] 马晴晴, 王彩芳. 基于颜色和边缘信息的非局部立体匹配算法[J]. 激光与光电子学进展, 2020, 57(10): 101020.
[22] 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.
[23] ScharsteinD, SzeliskiR. High-accuracy stereo depth maps using structured light[C]∥2003 IEEE Conference on Computer Vision and Pattern Recognition, June 18-20, 2003, Madison, WI, USA.New York: IEEE Press, 2003: 7762284.
[24] ScharsteinD, PalC. Learning conditional random fields for stereo[C]∥IEEE Conference on Computer Vision and Pattern Recognition, June 17-22, 2007, Minneapolis, MN, USA.New York: IEEE Press, 2007: 9738080.
[25] MattocciaS, TombariF, Stefano LD. Stereo vision enabling precise border localization within a scanline optimization framework[C]∥ Proceedings of Asian Conference on Computer Vision, Berlin/Heidelberg: Springer-Verlag, 2007: 517- 527.
[27] 祝世平, 李政. 基于改进梯度和自适应窗口的立体匹配算法[J]. 光学学报, 2015, 35(1): 0110003.
Article Outline
宋巍, 魏新宇, 张明华, 贺琪. 基于改进代价计算和视差候选策略的立体匹配[J]. 激光与光电子学进展, 2021, 58(2): 0215001. Wei Song, Xinyu Wei, Minghua Zhang, Qi He. Stereo Matching Based on Improved Cost Calculation and a Disparity Candidate Strategy[J]. Laser & Optoelectronics Progress, 2021, 58(2): 0215001.