改进Census变换与特征融合的立体匹配算法*

2024-02-24 03:55张释如魏晓艳
传感器与微系统 2024年2期
关键词:立体匹配视差代价

张释如,魏晓艳

(西安科技大学 通信与信息工程学院,陕西 西安 710054)

0 引言

双目立体视觉是计算机视觉领域的研究热点之一,被广泛应用于三维重建、无人驾驶、机器人导航等领域[1]。立体匹配算法是双目立体视觉的难点与重点,旨在通过寻找左右视图中的匹配像素点对以获得视差图。全局立体匹配算法[2]采用全局的优化理论方法估计视差值,该类方法匹配精度高,但效率低;局部立体匹配算法[3]利用像素点的局部信息计算视差,该类算法计算量小,但匹配精度较低,使得大量国内外学者对其研究以提高算法精度。

Scharstein D等人[4]将立体匹配算法描述为代价计算、代价聚合、视差计算、视差优化4个阶段。常用代价计算方法有灰度差的绝对值之和[5]、零均值归一化互相关[6]、Census变换[7]等。其中,Census 变换计算简单,且对光照变化不敏感,但该方法过度依赖变换窗口中心像素,易受外界干扰,匹配精度不高。针对此问题,孙延坤等人[8]提出一种将灰度差的绝对值之和与Census变化相结合的方法;Lv C等人[9]将彩色图像转换到HSV(hue,saturation,value)空间,建立色调绝对差代价计算函数,并融合Census 代价值;蒋文萍等人[10]引入Tanimoto系数与汉明(Hamming)距离相结合,并融合图像亮度差用于匹配代价计算;Hou H 等人[11]使用加权Census 变换圆形模板进行匹配代价计算,考虑了邻域像素与目标像素的距离对计算的影响,扩大目标像素的感知范围。

虽然上述改进方法一定程度上提高了立体匹配算法精度,但依然存在视差图像边缘模糊、复杂纹理上匹配精度不高问题。因此,本文提出一种改进Census变换与特征融合的立体匹配算法。

1 算法原理

本文算法实现原理框图如图1所示。

图1 立体匹配算法实现原理框图

首先,在匹配代价计算部分,使用变换窗口的邻域像素信息代替中心像素,解决传统Census变换过度依赖变换窗口中心像素的问题,再结合图像的颜色信息与梯度信息,构建新的融合匹配代价计算函数来衡量2个特征点的相似程度;其次,在代价聚合部分引入单向动态规划理论,利用四路径代价聚合方式建立中心像素与邻域像素的联系;再次,采取赢家通吃(Winner-Take-All,WTA)策略获取初始视差图;最后,采用视差细化、误匹配点检测、视差填充等策略对视差图进行优化。

1.1 改进Census变换

针对传统Census变换依赖窗口中心像素,抗干扰能力差,易造成误匹配现象。本文使用变换窗口的邻域像素信息代替中心像素,以提高Census变换的鲁棒性。首先对窗口内的灰度值进行排序,去掉最大值和最小值,再求其平均值,将此值作为中心像素值,同时将窗口内的邻域像素值与中心值进行比较,得到窗口中心像素点的对应变换结果。以3×3窗口为例,改进Census变换过程如图2所示。

图2 改进Census变换

利用上述改进Census 变换遍历待匹配的左右两幅图像,将两像素点间的汉明距离作为改进Census变换的匹配代价值。计算过程表达式为

式中 ⊗为按位连接;Np为像素p的邻域;p,q分别为窗口中心像素点和其邻域像素点;Tp,Tp-d分别为左右图像对应窗口邻域的比特串;CCensus(p,d)为匹配代价值。

1.2 改进的匹配代价计算

为进一步提升立体匹配算法的抗噪性能以及在复杂图像上的匹配精度,本文在改进Census 变换的基础上,引入图像的颜色信息及梯度信息,构建新的匹配代价计算函数来衡量两像素点的相似程度。颜色信息代价值使用图像强度值之差进行计算,计算表达式为

梯度信息描述了图像中像素值的变化情况,使用Sobel算子求解图像像素点的梯度值,匹配代价计算表达式为

式中 I(p)为像素点p的梯度信息;Il和Ir分别为左图像和右图像。

将上述改进Census 变换、颜色信息代价、梯度代价进行融合,构建新的匹配代价计算函数,表达式为

式中 C(p,d)为改进的匹配代价计算函数;φ(c,λ)为归一化函数;λc,λa,λg分别为3种对应方法代价值的归一化控制参数。

1.3 匹配代价聚合

匹配代价计算部分只考虑单个像素的局部信息,而忽略了相邻像素代价值间的联系。因此,本文在代价聚合部分引入单向动态规划思想,采用四路径代价聚合策略对上述的初始代价进行聚合,四路径代价聚合方向为像素的上、下、左、右4个方向。针对单个路径而言,将像素点p 沿该路径上所有视差范围内的代价值进行一维聚合,求得该路径下的代价值,其计算表达式为

式中 Lr(p,d)为像素点p 沿路径r 在视差为d 时的代价值;第一项C(p,d)为由代价融合计算得到的初始匹配代价;第二项为在路径为r方向的上一个匹配像素点p-r的最小代价值;第三项为在所有视差下像素p-r 的最小代价值。

利用式(5)分别求得像素p在四路径聚合方向上的代价值,将其累加得到像素点p 的最终代价聚合值S(p,d),其表达式为

1.4 视差计算

代价值越小表示两像素点越相似,利用WTA策略选取各像素匹配最小代价值对应的视差值,获得初始视差图,计算表达式为

式中 dp为p点的视差值,dmin和dmax为视差搜索范围边界值。

1.5 视差优化

针对初始视差图的整像素精度问题,采用二次曲线子像素拟合方法将整像素精度提高到子像素精度;针对误匹配问题,采用左右一致性检测方法剔除错误匹配对。剔除错误匹配后,被剔除的像素造成视差图出现空洞,为避免传统空洞填充方法需要选择窗口大小问题,提出一种基于八方向的视差空洞填充方法。该方法以空洞像素点为中心,等角度向外发射8 条射线,存储每条射线接触到的首个有效像素,如图3所示。针对遮挡区域的空洞像素,使用次最小视差值进行填充;针对误匹配区域的空洞像素,使用中值进行填充。最后对填充的视差图进行中值滤波,以减小噪声的影响。

图3 空洞填充示意

2 实验结果与分析

为验证和评价本文所提算法性能,采用Middlebury 测试平台提供的Cones、Teddy、Venus 图像进行实验。使用Python语言进行编程,操作系统为Windows10,处理器为AMD Ryzen 7 5800H,内存为32 GB。

2.1 匹配代价计算方法对比分析

为验证本文改进代价计算方法的有效性,将传统Census变换、改进Census 变换及融合匹配代价计算方法进行对比分析。图4为在不经过代价聚合以及视差优化的情况下,上述3种方法得到的视差图。由图4 可以看出,改进Census变换有良好的抗干扰性能,视差图中的噪声点明显减少,但依然存在物体轮廓模糊与误匹配现象;在改进Census变换基础上,引入图像的颜色信息及梯度信息,改善误匹配问题,并使得视差图中的物体轮廓更清晰。

图4 不同方法下的视差图

为进一步定量分析本文改进代价计算方法的性能,使用图像误匹配率作为评价指标,如表1 所示。对比传统Census变换,改进Census 变换的平均误匹配率降低了8.78%;在此基础上,提出的融合代价计算方法的平均误匹配率再次降低了4.28%,进一步证明所提改进代价计算方法的有效性。

表1 不同方法下的图像误匹配率对比 %

2.2 整体算法对比分析

为进一步提高立体匹配算法精度,加入代价聚合及视差优化模块,将传统Census变换与本文算法得到的视差图进行比较,如图5所示。传统Census变换得到的视差图中包含较多错误点以及空洞,匹配效果较差;而本文算法融合图像的多特征信息提高初始匹配代价可靠性,基于八方向空洞填充策略能很好地解决视差图空洞问题,使得到视差图的误匹配点与空洞区域较少,提高了视差图的质量。

图5 匹配结果

为客观评价本文所提算法的整体匹配性能,将其分别与传统Census算法以及目前改进Census 表现效果较好的文献[12]、文献[13]提出的算法进行对比,以图像的非遮挡区域(Nonocc)以及全部区域(All)的误匹配率作为评价指标,如表2所示。

表2 各算法图像误匹配率对比 %

由表2可知,在处理具有重复纹理且环境复杂的Teddy和Cones 图像时,本文算法在图像非遮挡区域和全部区域的误匹配率最低;在处理简单场景下的Venus图像时,误匹配率与文献[12]提出的算法相近,都具有较低的误匹配率。综合而言,本文所提算法的平均误匹配率为3.77%,低于其他算法,表明在进行立体匹配时具有更高的匹配精度,且在处理复杂环境图像时更具鲁棒性。

3 结论

实验结果表明:改进的匹配代价计算函数提高了初始匹配代价的可靠性,有效改善图像边缘模糊问题;四路径的代价聚合策略加强了邻域像素间的联系,提出的基于八方向空洞填充策略能很好地解决视差图空洞问题。本文算法在Middlebury数据集上的平均误匹配率为3.77%,具有较高匹配精度,优于其他改进Census变换方法。

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