一种改进Census变换的双目匹配测距方法 下载: 1108次
1 引言
随着计算机视觉的发展,双目立体视觉测量技术研究具有重要的实际意义。利用两个简单的互补金属氧化物半导体(CMOS)或电荷耦合器件(CCD)相机实现被拍摄物体距离的测量是今后测距的主要方式[1]。立体视觉测量技术是仿照人类的双眼视觉成像过程。人的两只眼睛从不同的角度观察同一个物体,物体成像在人左右两眼视网膜上的不同位置,视网膜上的距离差称为视差值[2-3]。利用视差值以及三角测量原理,可以还原出物体的深度信息[2]。双目立体测距广泛应用于刑侦检测、交通定位测距、机器视觉定位抓取、**探测以及无人机航拍等研究领域[4]。因此,针对双目视觉测距精度提升的研究有着深远长久的意义。
2017年,Lee等[5]提出一种新型的基于代价融合的立体匹配方法的双目测距方法,并给出了详细的推导。目前,大部分学者把提高测距精度的重点放在立体匹配过程中。张丽娟等[6]提出一种基于模板的灰度相关算法,提出亚像素级别的匹配算法,并利用三次曲面拟合寻点进行立体配准,但是在匹配过程中引入图像压缩的相关方法,极大地降低了立体匹配的准确性。为了保留图像的原始信息,推荐采用Census变换算法,此方法的优点是不改变图像的原始特征,操作简单,通过汉明距离确定立体匹配关系,满足工业过程的测距需求[7]。针对Census变换的研究,王琼等[8]利用变换窗口灰度均值与局部纹理反差值之和代替中心像素灰度值,有效减小了边界不连续区域对匹配的影响,但此方法实现困难,除边界外的点,其他点出现误匹配的概率很高。祝世平等[9]提出一种区域为十字交叉形状窗口且设有噪声容限的改进Census变换,该方法可通过代价计算得到匹配像素,以至得到相对准确的视差值,但是实现过程极其困难,且算法运行时间较长。针对目前Census匹配的研究过程,本文提出一种基于Census变换的多中心点融合监督的方式,实现过程简单且精度高,适用于一般环境下的测距项目。
2 基本原理
2.1 双目测距原理介绍
双目测距基于视差原理,形同于人类两只眼观察同一物体所呈现的图像的差异,即成像在视网膜上发生了位置平移,根据此原理及数学三角法可以直接测量出两只眼睛与被测物体的距离信息[10]。双目测距流程中,先将两个CMOS相机前向平行摆放,通过双目相机标定工作将两个相机统一在一个坐标系中,接着对被测物体在左右相机中的成像点进行立体匹配,获取被测物体在两个CMOS中成像的横坐标的差值,最终利用相似三角形原理测得真实的距离信息。
1) 双目标定工作。双目标定建立在单相机标定的基础上,单相机标定出两个相机各自的内部参数和外部参数,双目标定基于两个相机的内外参数计算出两个相机间相对位姿关系,并基于这一关系校正两个相机的前向平行结构,使得被拍摄物体在两个相机的成像行对齐。2)立体匹配工作。立体匹配时Census变换的立体匹配算法的误匹配率很高,运用改进的Census变换算法,采用多中心点融合监督的方式能大幅提升匹配的准确性,最终结合三角法即可求得距离信息。
2.2 双目标定
此步骤为求解两个相机之间的相对位置关系,即外参,并对左右相机拍摄的图片进行行校正,外极线几何结构如
式中:
式中:
2.3 单相机标定原理
双目标定中关键的一步为单相机标定,求解单相机的内外参数,
假设图像中一点坐标的矩阵形式为
式中:
2.4 改进Census变换的立体匹配
原始的Census变换算法的步骤为:输入2幅图像,1幅左图,1幅右图,定义1个小窗口为3×3或者5×5的矩阵,类似掩模,为了方便,后文称其为掩模。掩模是用来遍历左右图像中行上的点,寻找匹配像素。立体校正后可得到行对齐的左右图像。由于校正存在一到两个像素的误差,因此即使校正比较准确,也要在立体匹配时将对应行及其周围行像素扩展一到两行,扩大其匹配范围,提高匹配的准确度。定义一个掩模为
掩模中间像素值为空,将掩模遍历左右图像中的对应行,比较掩模周围的灰度值与中间点的灰度值,比中间点小的标记为1,比中间点大的标记为0,与其相等的像素也记为0。假设被遍历的像素值为3,则矩阵可展开为一条码:10010000,比较左右图像对应点码的相似程度,相似度高则匹配度高。但这种算法存在一定缺点,即存在匹配误差,误差举例如下:
当(5)式经过的中间像素点值为3,(6)式经过的中间像素点值为6时,可以得出(5)式和(6)式的矩阵最终生成的码相同,虽然两式中的中间点的灰度值呈两倍关系,但最终仍会把这两个像素点误匹配为一个点。(7)式所示的矩阵中,当中间像素点值为4时,(5)式和(7)式也能匹配成一个像素点,其中*代表中间孔像素值。针对此缺点,采用扫描窗口中多中心点融合监督方式进行了改进,改进掩模矩阵示意为
舍弃3×3的掩模,将掩模大小扩充至5×5甚至更大。以(8)式为例,将一个中心点扩充为4个新中心点,得到矩阵如(9)式所示。4个新的中心点与原始中心点为8邻域邻接,在4个中心点下,
3 实验结果
3.1 搭建硬件系统
硬件系统示意图如
图 4. 硬件系统示意图。 (a)侧视图;(b)俯视图
Fig. 4. Schematic of hardware system. (a) Side view; (b) top view
3.2 单相机标定
左相机内参矩阵为[0.0806856,-5.67737,3.45139×10-5,3.45×10-5,1253.07,958.157,2448,2048],右相机内参矩阵为[0.0809745,-6.29119,3.45483×10-5,3.45×10-5,1278.83,972.503,2448,2048]。实验中,用标定板将相机与世界坐标系建立联系,设计的标定板是一组7×7的由黑色标准圆组成的可提取圆中心点坐标的二维靶标。左相机拍摄的第1幅标定板的外参矩阵为[0.114368,-0.0898491,0.468311,359.189,1.37263,91.8985],右相机拍摄的第一幅标定板的外参数矩阵为[-0.16579,-0.0836154,0.466578,358.078,0.596036,91.3967]。
3.3 双目标定
双目标定结果为[0.272985,0.00425349,0.00123705,1.11599,0.793002,0.475306],运行行校正矩阵结果如
3.4 改进Census变换的立体匹配
改进Census变换的立体匹配实验步骤如下:1) 输入左右相机原图;2) 进行图像预处理,针对复杂的背景图像以及光照因素干扰,分割提取出感兴趣区域(ROI);3) 将ROI图形作为Census立体匹配程序的输入图像进行计算,得到匹配结果同时生成视差值;4) 视差值编码成灰度图像,反映距离远近。行校正后立体匹配的视差图(针对被测物茶叶罐)如
图 6. 行校正后立体匹配的视差图。(a)左相机原图;(b) Census变换得到的视差图;(c)改进的Census变换得到的视差图
Fig. 6. Disparity map for stereo matching after row correction. (a) Original image of left camera; (b) disparity map obtained by Census transform; (c) disparity map obtained by improved Census transform
4 分析与讨论
原始的Census变换得到的视差图中,茶叶罐表面出现许多白色的斑点痕迹,这是由误匹配而产生的错误结果。针对这一问题,使用改进的Census变换重新运行程序,得到的视差图效果明显优于原始Census变换的结果,且可以读取视差图中的视差值以进行实际距离的测量。经反复实验,实际距离为2 m时的测量误差仅为6.4 cm。应用于测距时,原始Census变换与改进的Census变换的误差比较如
改进的Census算法将原始3×3的掩模扩展为5×5,采用4个中心点融合监督,极大地降低了误匹配率。由于一些实际项目中需要实时定位测量标记物体的距离,增加掩模大小的确能使结果更加准确,但程序运行时间也会随之增加,无法满足实时性需求。因此,这里在求解视差值的同时,利用相机的特殊结构构建三角形进行求解,如
表 1. 原始Census变换与改进Census变换的误差比较
Table 1. Comparison of errors between original Census transform and improved Census transform
|
5 结论
介绍了一套易实现且精度较高的双目测距系统,给出了其外观构造图,使用2个完全相同的500万像素的黑白相机,定制了带微调结构的铝合金落地支架,固定两相机。通过单相机标定获得其内外参数,利用单相机标定结果进行双目标定获得两相机的相对位置关系。计算出校正向量并对左右相机拍摄的图片进行行对准,并在此基础上运行改进的Census变换的立体匹配算法,得到较为准确的视差值,给出了视差值到实际距离的求解公式。实验中,以茶罐为被测物,运用改进的Census变换得到的视差图中消除了茶罐表面的误匹配点。为了验证此高精度双目测距系统的准确性,设置多组被测距离进行对比,实际被测距离为2 m,改进算法的测距误差为6.4 cm。设置对照组与原始的Census算法运行结果进行对比,验证了改进的Census算法的优越性,2 m测量精度提高了19.1%。所提测距方法得到准确的测量结果有两个前提:在单相机标定过程中需要将标定误差控制在0.1 pixel以内;双目标定误差需要控制在0.2 pixel以内。Census变换基于比大小与异或运算,因此所提测距方法的立体匹配速度快,优于其他算法,有望广泛应用于刑侦监控中实时定位跟踪嫌疑人,行驶车辆测速,生产流水线上实时记录多自由度机械臂位姿等实时性测量的项目中。
[2] 蒋晓东, 于纪言, 朱立坤, 等. 基于硬件SURF算法的自校准双目测距系统[J]. 光学学报, 2018, 38(10): 1036001.
蒋晓东, 于纪言, 朱立坤, 等. 基于硬件SURF算法的自校准双目测距系统[J]. 光学学报, 2018, 38(10): 1036001.
[3] 周富强, 王晔昕, 柴兴华, 等. 镜像双目视觉精密测量技术综述[J]. 光学学报, 2018, 38(8): 0815003.
周富强, 王晔昕, 柴兴华, 等. 镜像双目视觉精密测量技术综述[J]. 光学学报, 2018, 38(8): 0815003.
[4] 肖进胜, 田红, 邹文涛, 等. 基于深度卷积神经网络的双目立体视觉匹配算法[J]. 光学学报, 2018, 38(8): 0815017.
肖进胜, 田红, 邹文涛, 等. 基于深度卷积神经网络的双目立体视觉匹配算法[J]. 光学学报, 2018, 38(8): 0815017.
[6] 张丽娟, 杨进华, 姜雨彤, 等. 基于双目CCD测距的目标图像匹配算法研究[J]. 激光与光电子学进展, 2014, 51(9): 091002.
张丽娟, 杨进华, 姜雨彤, 等. 基于双目CCD测距的目标图像匹配算法研究[J]. 激光与光电子学进展, 2014, 51(9): 091002.
[7] 周龙, 徐贵力, 李开宇, 等. 基于Census变换和改进自适应窗口的立体匹配算法[J]. 航空学报, 2012, 33(5): 886-892.
周龙, 徐贵力, 李开宇, 等. 基于Census变换和改进自适应窗口的立体匹配算法[J]. 航空学报, 2012, 33(5): 886-892.
[8] 王琼, 江晓亮, 袁建英, 等. 基于改进Census变换的区域立体匹配算法[J]. 计算机应用研究, 2015, 32(10): 3164-3167.
王琼, 江晓亮, 袁建英, 等. 基于改进Census变换的区域立体匹配算法[J]. 计算机应用研究, 2015, 32(10): 3164-3167.
[9] 祝世平, 闫利那, 李政. 基于改进Census变换和动态规划的立体匹配算法[J]. 光学学报, 2016, 36(4): 0415001.
祝世平, 闫利那, 李政. 基于改进Census变换和动态规划的立体匹配算法[J]. 光学学报, 2016, 36(4): 0415001.
[13] 解则晓, 朱瑞新, 张安祺. 超大尺度线结构光传感器三维测量系统外参数标定[J]. 中国激光, 2017, 44(10): 1004003.
解则晓, 朱瑞新, 张安祺. 超大尺度线结构光传感器三维测量系统外参数标定[J]. 中国激光, 2017, 44(10): 1004003.
[14] 郑兴纯, 赵敏, 冯少华. 平面靶标测头中心的两步法标定[J]. 激光与光电子学进展, 2018, 55(1): 011201.
郑兴纯, 赵敏, 冯少华. 平面靶标测头中心的两步法标定[J]. 激光与光电子学进展, 2018, 55(1): 011201.
Article Outline
李大华, 沈洪宇, 于晓, 高强, 汪宏威. 一种改进Census变换的双目匹配测距方法[J]. 激光与光电子学进展, 2019, 56(11): 111503. Dahua Li, Hongyu Shen, Xiao Yu, Qiang Gao, Hongwei Wang. Binocular Ranging Method Using Stereo Matching Based on Improved Census Transform[J]. Laser & Optoelectronics Progress, 2019, 56(11): 111503.