APP下载

多信息代价计算融合显著梯度的立体匹配

2021-04-24刘徐秀闫传为赵佰亭贾晓芬

关键词:立体匹配视差代价

刘徐秀,闫传为, 赵佰亭 ,贾晓芬

(安徽理工大学 电气与信息工程学院,安徽 淮南 232001)

立体匹配在工业生产、制造测量、机器人导航、系统监控、生物医学、航空航天等有着广泛的应用[1-3],它是立体视觉的热点研究内容,也是立体视觉系统中最重要和最耗时的任务.立体视觉通过识别出同时拍摄的同一景物的两幅图像中相应的像素点,并由立体几何原理计算出投影点的视差,得到最终的视差图,可以为无人机的视觉导航和着陆、三维重建等应用场合提供重要信息,得到了国内外学者的深入研究.

立体匹配算法可以分为局部立体匹配算法和全局立体匹配算法[4].局部立体匹配算法是使用窗口内像素的邻域信息来进行匹配,因为有着运行耗时短并且容易实现的优点而被广泛研究,但是选取多大的支持窗口和匹配代价的计算是个棘手的问题[5].全局立体匹配算法通过最小化能量函数来获得最终的结果,可以很好的处理低纹理区域的误匹配现象,其匹配精度虽然较高但复杂度也很高,耗时长[6].

传统局部立体匹配算法在代价聚合时多采用固定窗口的方式,虽然比较简单有效,但是在深度不连续区域匹配精度很低.Einecke等[7]提出了多窗口立体匹配方法,通过不同形状、大小的多个窗口计算聚合代价,但该算法较复杂,耗时也较长.时华等[8]提出一种自适应匹配窗及多特征融合的立体匹配,采用自适应权值的线性加权多特征融合匹配方法得到视差图,虽在弱纹理、遮挡和倾斜面等区域能获得较好的结果,但在视差不连续区域效果较差.门宇博等[9]提出一种像素扩展自适应窗口立体匹配算法,通过像素扩展约束条件筛选出满足匹配条件的窗口区域,使得遮挡及物体边缘区域效果明显改善,但在处理存在大面积平滑和倾斜区域图像时效果不理想.Yoon等[10]提出一种自适应权值算法,根据指定窗口内的像素点与待匹配点间的色彩和几何关系自适应分割权值,但该算法需要计算窗口内各像素点的权值,运行速度较慢.Hosni等[11]使用引导图滤波进行代价聚合,该方法具有很好的边缘保持性,且计算复杂度与窗口的尺寸无关,计算量也较小,但由于该引导图滤波的惩罚参数是固定值,使得图像边缘附近会出现光晕现象,影响最终视差图的的精确度.

为加强像素之间的联系,降低光照失真对匹配代价计算的影响,文中融合颜色特征、梯度信息和梯度角度三种信息进行匹配代价计算;并在代价聚合阶段利用显著图像边缘突出的特点,使用显著图平均梯度进行引导滤波的正则化参数自适应化,提高视差图精度;提出了一种多信息代价计算融合显著梯度的立体匹配(Mi-SGR)算法.

1 引导滤波

引导滤波具有边缘保留特性,认为图像中的任意一个像素点都与其周围邻近的像素点存在线性关系,可以通过周围像素点来线性表示,最后将所有线性函数在该点的值求平均作为滤波结果.引导图像I和滤波输出图像q在以点i为中心的窗口wk下的线性变换为,

qi=akJi+bk,∀i∈wk

(1)

其中:ak,bk为在窗口wk内的线性系数,k为方形窗口半径.

由式(1)可知,当I有梯度时,q也有梯度,引导滤波模型具有边缘保持特性.为了保证滤波输出图像q和输入图像p之间的差值最小,利用最小二乘法可以得到:

(2)

其中:ε是为了防止αk过大而设置的正则化参数.对式(2)线性回归可以得到线性系数:

(3)

将该线性模型用于整个图像的所有局部窗口,可得到引导滤波的输出为:

(4)

在边缘区域,ak的值接近于1,bk的值接近于0,滤波器输出结果近似于原引导图像.在平坦区域,ak的值接近于0,bk的值几乎等于pk的均值,此时引导滤波相当于一个均值滤波器.

2 Mi-SGR算法

所提融合多信息代价计算和显著梯度正则化的立体匹配(Mi-SGR)算法包括三个阶段:1)匹配代价计算:融合颜色特征、梯度信息与梯度角度进行相似性测量;2)代价聚合:利用显著图的平均梯度表示图像局部区域复杂度的强弱,对平均梯度高的区域,即边缘部分得到较大的正则化参数;对平均梯度低的区域,即平滑部分得到较小的正则化参数,从而得到窗口的总代价;3)视差计算及优化:取窗口总代价最小处的视差作为该点的初始视差,对初始视差进行左右一致性检测,得到异常匹配点,对异常匹配点使用空洞填充和加权中值滤波的方法进行优化,得到最终的视差.

2.1 匹配代价计算

匹配代价是为待匹配像素点可能的对应点分配不同的视差,在不同的视差情况下对图像的相似性测度.基于颜色特征的匹配代价计算方法可以很好的保持原始图像的颜色信息,在深度不连续区域效果较好,但容易受图像中的噪声和亮度的影响.基于梯度的匹配代价计算方法对光照失真不敏感且对图像噪声有很好的稳健性,能很好地处理遮挡区域,但匹配精度较低且得到的视差图较稀疏,后续处理较复杂.

本文结合颜色特征、梯度信息及梯度角度,提出了多信息融合的代价计算方法(MiCC),它具有三方面的优势:1)保持原始图像的颜色信息;2)利用梯度角度提供的相邻像素的不同信息,保持对光照失真具有的不变性;3)利用图像发生增益失真时梯度角度不会发生变化的特性.三种信息的融合可以有效保留图像的色彩特征和结构信息,增强代价计算的稳健性,从而提高匹配精度.MiCC的实现过程如下:

在颜色特征中,先分别计算 R、G、B 三个通道像素的绝对差值(AD),然后求三个通道的平均值,得到所需要的匹配代价,并添加截断阈值T1,则有:

(5)

c为R、G、B三个通道,Icl(p)、Icr(q)分别为左、右图像在通道中点p、q的像素值.

在梯度信息中,先将图像灰度化,取灰度图像水平方向的梯度,将该梯度与截断阈值T2比较得到梯度匹配代价,即:

Cgrad(p,d)=min[Itl(p)-Irt(q),T2]

(6)

Itl(p)、Irt(q)分别为左、右图像在点p、q的梯度值.

在梯度角度中,用二维高斯滤波平滑图像,再利用微分算子,计算梯度的角度θ,则可得梯度方向的匹配代价为:

Cθ(p,d)=min[Iθl(p)-iθr(q),T3]

(7)

Iθl(p)、Iθr(q)分别为左、右图像在点p、q的梯度角度值,T3为梯度角度的截断阈值.

综上,文中设计的匹配代价的数学模型为:

(8)

其中:t1为AD匹配代价所占权重,τ2为梯度匹配代价所占权重,τ3为梯度角度匹配代价所占权重,且τ1+τ2+τ3=1.

2.2 匹配代价计算

引导滤波的公式(1)中,ak越小,qi的梯度信息越少,图像边缘越模糊,平滑力度越大;反之,ak越大,qi的梯度信息越多,图像边缘越清晰,平滑力度越小.由式(3)可知,ak与正则化参数ε密切相关,呈现为反比关系.在图像纹理变化大、边缘信息丰富的区域,需要更多的梯度信息,故要较小的平滑力度,即较小的ε;而对于灰度值过渡平缓的区域,需采用较大的平滑倍数,即ε应较大.但传统引导滤波没有考虑到不同窗口内像素之间纹理的差异,在不同的窗口中使用固定的正则化参数ε,会造成一些区域出现过度平滑,当过度平滑在图像边缘区域就会产生光晕.

显著图[12]是一种模拟生物视觉注意机制的选择性模型,经过显著算法的处理,得到的图像比经过传统显著图算法处理后的图像保存了更多的高频信息,尤其是边缘部分,且对噪声不敏感.

综上,利用显著图的梯度信息调整正则化参数,可以更好的区分图像的边缘区域和平滑区域.为此,利用显著图的梯度信息,提出了一种加权引导滤波算法,实现代价聚合,具体步骤为:

第一步,计算显著图

先计算图像的平均灰度向量,并与原图像的高斯滤波结果作差得到每个像素的显著向量,最后计算其欧式距离并进行灰度拉伸得到显著图.

第二步,计算局部窗口内的线性系数

对显著图用Sobel算法得到图像x、y方向的梯度,平方求和再开根号得到图像的梯度信息,遍历全图在一定窗口内求得平均梯度得到局部平均梯度mi,再将所有平均梯度求和取平均值得到全局局部平均梯度t0,将该值作为边缘判断条件.若mi>t0,则判定该窗口属于边缘部分;若mi≤t0,则判定该窗口属于平滑部分.

改进公式(2)得到的能量函数为:

(9)

其中:参数f的数学模型为,

(10)

其中:α,β,γ为预先设定的常数,α是为了防止除数f为0.

线性回归式(9)解得:

(11)

当窗口属于边缘时,f的取值较大,ε/f较小,表现出对边缘信息敏感,放大边缘信息;当窗口属于非边缘时,f的取值较小,ε/f较大,表现为对边缘信息不敏感,抑制边缘信息增长.通过对传统引导滤波方法的正则化参数ε的改进,使得ε随窗口所在区域自适应改变大小,从而克服图像边缘区域的过渡平滑,最终消除光晕.

在代价聚合时加权引导滤波器模型表示为:

(12)

(13)

第三步,计算总代价

在支持窗口内进行代价聚合,得到总代价:

(14)

其中:Nk为支持窗口wp内像素总个数.

2.3 视差计算及优化

在代价聚合后,筛选出使得窗口匹配代价最小的视差值作为该像素的初始视差值,也就是常说的胜者为王算法[13](Winner Take A11,WTA):

(15)

其中:Sd={dmin,…,dmax}是所有的视差取值.

在得到初始视差图后,由于左、右图在遮挡区域和视差连续区域找不到对应匹配点而存在误匹配,需要对其进行优化.先对初始视差图进行左右一致性检测,通过比较左图和右图相匹配的视差点的视差值来判断该视差是否为正确匹配点.对于错误匹配点,先使用空洞填充来去除初始视差图中的空洞,再使用加权中值滤波的方法使得最终的视差图更加准确.

3 实验结果与分析

实验利用Python语言,使用的计算机硬件配置为 Inter(R) Core (TM) i5-9300H CPU,8GB 内存.使用图1所示的Middlebury 数据库集的4组标准图像对算法性能进行仿真测试.

图1 标准图像Figure 1 Standard image

3.1 MiCC的测试

图2是除匹配代价计算方法不同外,其他步骤及参数完全相同的 Teddy的视差对比图.从图2可以看出,所提MiCC生成视差图的效果在深度不连续区域及低纹理区域要明显好于采用结合颜色特征、梯度信息或结合梯度信息、梯度角度的视差图,尤其是圈起来的区域.

图2 不同匹配代价对比Figure 2 Comparison of different matching costs

3.2 Mi-SGR算法的测试

利用Mi-SGR对图1的4幅图像测试,并和CostFilter[11]、GF[13-16]、VariableCross[17]进行对比分析,结果如图3所示.可见:Mi-SGR的第1、2张图效果明显优于GF和VariableCross算法,尤其是第1张图的灯罩边缘轮廓及书架的弱纹理区域;Mi-SGR的第3、 4张图效果明显优于GF、CostFilter和VariableCross算法,尤其是第3张图的小熊的边缘轮廓及倾斜面顶部纹理和第4张图中的椎面体的边缘及锥面体之间的视差不连续区域.总的来说,在立体匹配绝大多数难点区域,比如弱纹理区域、遮挡区域和视差不连续区域,所提算法都可以较好的保持视差边界,得到较高精度的视差图.

图3 4种算法的匹配结果对比: (A)真实视差图;(B)GF;(C)Costfilter;(D)VariableCross;(E)Mi-SGRFigure 3 Comparison of matching results of four algorithms: (A) real parallax diagram; (B) GF; (C) Costfilter; (D) VariableCross; (E) Mi-SGR

为了充分体现Mi-SGR算法的优异效果,将其与GF、CostFilter及VariableCross所得视差图局部放大后进行比较,Teddy(上)和Cones(下)的视差图的局部放大结果如图4所示,可以看出GF和CostFilter算法在边缘区域及平滑区域效果很差,同时CostFilter的视差图中还存在大量噪声,VariableCross算法在视差不连续区域及平滑区域出现大面积错误匹配,而Mi-SGR得到的视差图噪声较少,同时在在边缘区域、平滑区域及视差不连续区域的效果明显相比于其他算法有明显的改善.

图4 局部对比细节图Figure 4 Details of local comparison

通过以上视觉方法验证了Mi-SGR的效果优于其他方法,下面从误匹配率直观的比较各种立体匹配算法.表1为所提算法与其他局部立体匹配算法结果对比的百分比数据,误差阈值为1 pixel,即匹配结果与真实视差图的差值大于1个像素时就认为该点是误匹配点.

从表1中的数据可以看出,虽然所提算法在Tsukuba和Venus上的误匹配率比其他方法略高,但在Teddy和Cones上的误匹配率比其他方法小很多,与Costfilter相比,本文所提算法在Teddy和Cones上的误匹配率均下降了25%,且平均误匹配率较低.所提算法在匹配精度上超过了许多当前的局部立体匹配算法.

表1 所提算法与其他局部立体匹配算法结果对比(错误匹配率%)

为了具体体现各算法的错误匹配像素点的分布情况,图5给出了GF(A)、CostFilter(B)、VariableCross(C)及Mi-SGR(D)的误匹配点图,其中黑色区域即为误匹配点,可以看出Mi-SGR算法能更好的保留图像的边缘信息,相较于其他方法误匹配点更少,匹配精度更高.

图5 误匹配点图Figure 5 Mismatched point graph

4 结 语

在现有的局部立体匹配算法的基础上,提出一种融合多信息代价计算和显著梯度的立体匹配算法.融合颜色特征、梯度信息和梯度角度的匹配代价计算方法,既能很好的保持原始图像的颜色信息,又能对光照失真不敏感且对图像噪声有很好的稳健性,是基于颜色特征和基于梯度特征方法的取长补短.加权引导滤波立体匹配算法,利用显著图像边缘突出的特点来区分边缘区域与平滑区域,自适应改变正则化参数的大小来处理不同的图像纹理,可以避免边缘区域的光晕现象.实验结果表明,相较现有的局部立体匹配算法,本文所提算法有效改善了边缘轮廓及平滑区域的视差,同时获得了更低的误匹配率和更高精度的视差图.

猜你喜欢

立体匹配视差代价
基于自适应窗的立体相机视差图优化方法研究
基于梯度域引导滤波的视差精炼迭代算法
爱的代价
影像立体匹配中的凸优化理论研究
基于互补不变特征的倾斜影像高精度立体匹配
代价
基于分割树的视差图修复算法研究
改进导向滤波器立体匹配算法
立体视差对瞳孔直径影响的研究
成熟的代价