基于ADCensus的改进双目立体匹配算法
毛昕蓉,王 楠 (西安科技大学 通信学院,陕西 西安 710054)
摘 要:由于ADCensus算法只依赖于图像的灰度信息,对于弱纹理区域和重复纹理区域的匹配效果不好,本 文提出一种依赖于图像像素梯度和灰度匹配代价计算方法,以图像像素梯度信息作为图像灰度信息的补充,提 高了匹配准确率,加入了自适应匹配模板后,误匹配率降低到19.85%以下。
关键词:ADCensus算法;匹配代价;自适应模板
0 引言
随着机器视觉的发展,双目视觉在无人驾驶、工业 测量、3D建模以等方面都需要三维空间信息来帮助计 算机或机器人完成工作[1]。立体匹配是双目视觉中的重 要做成部分,通过立体匹配找出同一视点在左右两幅图 像的坐标位置,从而计算得到视差图,得到图像的深 度信息[2]。匹配的正确性直接关系到深度图计算的准确 性,所以,如何优化及聚合匹配代价使匹配算法有更高 的匹配率,是匹配算法优化的首要目标[3]。本文保留了 ADCensus中匹配代价的聚合方法,在AD算法匹配代价 的部分中加入了图像像素梯度信息作为灰度信息的补 充,提出了结合图像像素梯度、灰度的ADCensus匹配 算法。
1 基本原理
1.1 Census变换
Census变换是一种非参数化变换,主要用来表征图 像的局部结构特征[4]。其基本原理是以1个矩形窗口遍历
图像,把窗口中心像素与其他像素灰度值的大小逐一比 较,中心像素大的记为0,否则记为1,得到一串中心像 素的特征值,并用汉明距离来表示匹配代价。Census变 换为
式(1)中,p为邻域内像素,q为中心像素,Ω为匹配 模板。
1.2 AD变换
利用下面的公式将彩色图像变为灰度图像:
式(2)中,I为像素灰度值,R、G、B分别为像素的 颜色分量。
AD变换利用匹配点及其邻域像素的灰度值与待匹 配区域对应点的灰度差[5-6],相对于census变换依赖于中 心点,它可以有效地保留图像邻域像素的信息,AD变 换具体如公式(3)所示。
在式(3)中,C AD(x,y,d)是像素(x,y)处的匹 配代价,Ω为邻域像素,Il(r,c)左图中(r,c) 点的灰度 值,I r(r,c+d)是右图中待匹配点的灰度值,d为视差搜 索范围。
2 本文改进的adcensus算法
2.1 图像像素梯度的引入
本文提出了一种引入图像像素梯度的AD匹配代价 计算方法,使得匹配代价不仅依赖于灰度信息,而且有 图像像素的梯度信息作为补充,图像像素梯度信息匹配 代价函数如式所示
式(4)中,C AD1(x,y,d)是像素(x,y)处匹配代价,Il1(r,c)和Ir(r,c+d')分别为左图中点(r,c)和(r,c+d')的灰度值,Il(r,c)和(r,c+d')分别为右图中点(r,c)和(r,c+d')本文中d' 的取值为2。最终,AD部分 的匹配代价如式(5)所示
式(5)中,C'AD 为改进后AD部分的匹配代价,θ 为权重因子,本文中θ 取值为0.5。
2.2 改进后ADCensus的匹配代价
由于ad算法的匹配代价和census变换的匹配代价的 评价标准不同,生成的初始匹配代价需经过如式(6)的 归一化处理后再求和作为整体的匹配代价[7-8],匹配代 价公式如式(7)。
2.3 自适应匹配模板的选择
Sobel算子是像素图像边缘检测中最重要的算子之 一,它是一阶导数边缘检测算子,是一种很有效的梯度 计算方法,通过 3×3 的模板与图像中的每个像素做卷积和运算[9]。各向同性sobel算子的位置加权系数更为准 确,在检测不同方向的边缘时梯度的幅一致。
Sobel 算子分别计算水平和竖直梯度,式(8-1)为 水平梯度算子,式(8-2)为竖直梯度算子。以像素点为 中心构建3×3大小的窗口,与Sobel算子做卷积得到水 平、竖直方向的梯度,计算公式如(9-1)、(9-2)所示:
式(9-1)、(9-2)中,Gx ,Gy 分别为水平方向和竖直方向梯度,则有梯度计算公式如下:
式(10)中,G(x,y)为点(x,y)处的梯度值。当某个 点的G<40时,选择9×9的匹配模板,当40<G<80时, 选择7×7模板,当G>80时,选择5×5模板。
3 实验结果
本次实验中,实验环境为Visual studio 2017下C/ C++编程环境,OpenCV4.01,Windows 10,X64位 系统,Intel Corei3处理器,内存为4 GB,测试图片为 Teddy,Tsukuba,Cones和Venus这4幅图片,SAD和 census算法匹配模板均选择5×5。实验结果如图1~5 所示。
4 结论
为了客观评价本文算法,将SAD、census和本文算 法的匹配结果与标准视差图作比较,得到4幅图片在这3 种方法下的误匹配率,如表1所示。
由表1可看出,本文算法在四幅测试图片下,与 SAD算法和census算法比较,都有较高的匹配率,其中 Tsukuba和Vensus两幅图像的误匹配率分别降到10.82% 和11.33%,与误匹配率较高的SAD算法比较,分别提 升了2.33%和1.05%,Teddy和Cones两幅图像各种算法 的误匹配率较于其他两幅图像均较高,但可以看出,本 文提出的算法在这两幅图像下匹配率均有较高提升,误 匹配率最大不超过19.85%。
参考文献:
[1] 张一飞,李新福,田学东.融合边缘特征的SAD立体匹配算法[J/ OL].计算机工程:1-10[2019-1007].http://kns.cnki.net/kcms/ detail/31.1289.TP.20190817.1225.002.html.
[2] 杨嘉维.基于Census变换的立体匹配算法研究与FPGA实现 [D].西安:西安理工大学,2019.
[3] 王军政,朱华健,李静.一种基于Census变换的可变权值立体匹 配算法[J].北京理工大学学报,2013,33(7):704-710.
[4] 郭治成,党建武,王阳萍,等.基于改进Census变换的多特征背景 建模算法[J].光学学报,2019,39(08):216-224.
[5] 邬春明,郑宏阔.改进Census变换的铁路扣件定位方法[J].北京 交通大学学报,2019,43(02):58-63.
[6] 于修成,宋燕,李航.基于改进Census变换与最小生成树的立体 匹配算法[J].计算机与数字工程,2019,47(03):643-648.
[7] 吴荻,战凯,肖小凤.基于改进光流法和纹理权重的视觉里程计 [J].计算机工程与设计,2019,40(01):230-235.
[8] 张丽君.基于改进Census变换的局部立体匹 配算法研究[D].哈尔滨:东北林业大学,2018.
[9] 向憧.基于Census的双目视觉研究与FPGA 实现[D].成都:电子科技大学,2018.
评论