杜林 安媛
摘要:双目立体视觉测距软件设计有四部分组成:相机标定、图像校正、立体匹配、距离测量。根据双目测距的原理,首先需要使用两个摄像头先采集若干组棋盘图片,通过张氏标定法得到摄像头的内外参数。其次使用得到的参数对采集的图片进行消除畸变、图像校正。然后对校正过的图片进行立体匹配,应用一种改进的动态规划的算法,先用SAD算法对图像块进行匹配,将各个像素对应数值之差的绝对值进行求和,来评估两个图像块的匹配度,作为立体匹配的初步筛选,再利用SGBM算法通过计算匹配代价函数得到最终的视差图。最后,通过三角相似原理测得距离。根据以上流程,以Micro-soft Visual Studio为开发环境,使用MATLAB立体校准工具箱和OpenCV计算机视觉库等搭建一个双目测距系统,并对系统进行了实验验证。结果显示,只要深入优化立体匹配的算法,该系统将拥有可靠的精确度,有广泛的应用前景。
关键词:器视觉;双目测距;图像处理
中图分类号:TP391 文献标识码:A
文章编号:1009-3044(2020)08-0039-02
1 背景及意义
计算机视觉是门研究机器如何看世界的科学,更具体地说,是用机器代替人眼对目标进行识别、测量和轨迹追踪,经过一系列的图像处理,使计算机生成更便于人类使用的或者仪器能识别的图像。从20世纪开始,人们就对各种动物的眼睛、神经元和视觉相关的脑部神经进行了大量研究,试图描述视觉系统的构成和运作方式,这些研究后來成了计算机视觉的子领域,人们用计算机创建模拟生物的人工系统,在不同复杂程度上实现运作。正如模拟生物双目视觉,两只眼睛能够定性地感受到现实空间中的物体远近,由此衍生出双目立体视觉技术。双目立体视觉技术是通过计算机模拟人类视觉,使用两个图像采集设备从相邻位置得到被测物在相机中的二维成像,将两张二维图像中被测点分别所在的像素坐标进行差值计算,相当于将两张图片重叠成一张图片,这是图片上会有两个被测点,计算其像素差可以定量的算出被测点与摄像头之间的现实距离。
远程测距是工地施工中必不可少的工作流程,目前的测距手段如红外线测距、超声波测距和激光测距都有着一定的局限性,均会受到烟雾、灰尘和雨滴的干扰。在雨天环境下,测距激光会因为雨水的折射偏离原有路线,影响精度,另外棱镜表面的水滴会将激光折射到不是棱镜中心的位置;超声波对水也是没有穿透性的,在下雨时测量时,发送出去的波将碰到雨滴,此时可能会余波返回进行干扰或者使发送出去的波形信号减弱。
基于图像处理的双目测距作为一个非接触测距系统,能在一定程度上改善环境因素对施工测量的影响。
2 系统详细设计
双目立体视觉测距需要两个水平放置的摄像头对同一物体同时拍照,得到的略有差异的相关图像,计算特定点的像素坐标。完整的双目立体视觉测距系统主要包括:图像采集、相机标定、图像校正、立体匹配和测量距离。
1)相机标定是实现测距的准备工作。测距模型需要知道两个摄像头的焦距、光轴和空间位置关系,在图像校正时需要知道摄像头的径向和切向畸变系数,可以用畸变系数还原为方正的原始图像,标定的准确性直接影响到测距的效果。
2)图像校正把消除畸变后的两幅图像严格地行对应,等效为两个摄像头严格水平放置的效果,这样左边图像上任意一点一定在与右边图像水平的线上有相对应的点,将左图和右图的匹配简化为一维的点匹配问题。
3)立体匹配是为了得到视差图,视差图中包含了被测点的视差值信息,这是实现测距的关键参数。本文选择了半全局块匹配算法,作为一种改良的动态规划算法,该算法能够把二维问题放到一维平面来解决.得到初始的视差图,然后经过一系列后处理得到能用于计算距离的视差值。
4)构建双摄像头测距系统,得到3)处理好的视差值,根据双目测距模型,通过三角关系测量物体到摄像头的距离。
2.1 双目相机标定
双目相机标定采用MATLAB R2017a的Stereo Camera Cali-brator应用程序,该应用程序可以估计和导出双目摄像头l和摄像头2的内参数,还可以计算摄像头2相对于摄像头1的位置和方向得到外参数旋转矩阵和平移向量。
Stereo Camera Calibrator运行需要经过5个流程,如图1所示。
2.2 图像校正
图像校正是为了把消除畸变后的两幅图像相关点尽可能对应,使得两幅图像的对极线关联到同一水平线上,这样一幅图像上某一点和另一幅图像上的对应点行号是一致的,只需在该行进行一维匹配即可找到对应点,校正流程如图2所示。
2.3 立体匹配
立体匹配采用SAD算法,SAD(Sum of absolute differences)是一种图像匹配算法,基本思想:差的绝对值之和。此算法一般用来进行图像块的匹配,求各个像素对应数值差的绝对值之和,评估两个图像块的匹配度。该算法快速、但并不可靠,只是用于后续处理的初步筛选。
基本流程为输入两幅图像,一幅ImageL,一幅ImageR,对左图,依次扫描,选定一个锚点:
1)创建一个SAD窗口;
2)用SAD窗口覆盖左图,选择覆盖区域内所有像素点;
3)用SAD窗口覆盖右图,选择覆盖区域内所有像素点;
4)左边覆盖区域所有像素点灰度值分别减去右边覆盖区域对应像素点灰度值,求出差的绝对值之和;
5)移动右图的覆盖窗口,重复3,4的处理;
6)找到这个右图移动范围内SAD值最小的窗口,即找到了与左图锚点的像素值最接近的最佳匹配的图像块。
3 系统测试
系统采用C++语言运行与Visual Studi02017的环境中,调用OpenCV视觉库中的工具包,来实现距离测量的功能。 首先是图像获取,使用摄像头对应的应用程序CHUSEI 3DWebcam保存左右摄像头的图片用于下边的测距。运行系统软件程序,运行结果如图3所示,点击图3中右边视差图与左图相对应的位置,可得到所测点的三维坐标,其中数据最后一个Z轴坐标就是物体到摄像头的距离,证明了系统的可行性。
4 结论
双目立体视觉技术作为当前计算机视觉的前沿和热点,将来必然应用在更广泛的领域,目前双目相关的算法还不够强大,能处理的计算量具有一定的局限,随着技术的发展,计算机视觉也将像人眼一样明辨是非。该文对计算机视觉的双目立体视觉测距系统做了一定研究,主要包括了双目立体测距系统的原理分析和实现流程,以及使用PC完成测距的一系列操作流程。最终得到了和预期相符的实验结果。本文完成了基于計算机视觉的双摄像头测距,主要研究了测距过程中的一系列操作的原理,但是研究还不够深入,还存在一些可以改善的方面:
图像采集和摄像头标定工作都分别是由各自独立的软件完成的,图像采集使用读取双目相机的小程序,而摄像头使用MATLAB集成的相机标定工具箱。在后续优化中,应该将图像采集、摄像头标定和测距整合到一个工程文件中,直接调用摄像头数据和MATLAB工具箱实现系统的整体性。
设计更好的人机互动界面,加入实时采集图片的功能,用配置更好的摄像机进行采集,对采集串口更全面地进行控制,得到的结果显示更为具体。
在图像的立体匹配过程中,运用到的是SGBM算法,但是,在识别的过程中需要手动点击测定物体才能进行检测。在后续的优化中,可以在匹配环节使用基于神经网络的立体匹配算法,这样就会有效减少图像的处理,能有效缩短处理时间。
参考文献:
[1]张海波,基于双目立体视觉的工件识别定位与抓取系统研究[D].杭州:中国计量学院,2014.
[2]高如新,朱炬甫.基于ORB算法的双目视觉定位[Jl.电子测量技术,2017,40(4):142-145.
[3]李双全,章国宝.基于ORB算法的双目立体视觉测距系统[Jl.工业控制计算机,201 7,30(6):42-44.
[4]张家田,王飞,严正国.非接触式距离测量系统[J].电子测量技术,2012,35(9):10-13.
[5]聂春鹏.基于双目立体视觉的工业机器人目标识别及定位研究[D].西安:长安大学,2015.
[6]刘玉森.基于双目立体视觉的三维重建方法研究[D].重庆:重庆大学,2016.
[7] Liguori C,Paolillo A,Pietrosanto A.A discussion about stereovision techniques for industrial image-based measurement sys-tems[Cy/Proceedings of the 20th lEEE Instrumentation Tech-nology Conference (Cat.No.03CH37412),Vail, Colorado, USA.lEEE, 2003.
[8]曹文祥,冯雪梅.工业机器人研究现状及发展趋势[J].机械制造,2011,49(2):41-43.
[9] Aoki H,Furukawa R,Aoyama, M,et al.Proposal on 3-D endo-scope by using grid-based active stereo[P]. ,2013.
[10] Correal R,Pajares G,Ruz J J.Automatic expert system for 3Dterrain reconstruction Based on stereo vision and histogrammatching[J]. Expert Systems With Applications, 2014, 41(4):2043-2051.
[11] Okada K,lnaba M,lnoue H.lntegration of real-time binocularstereo vision and whole body information fordynamic walkingnavigation of humanoid robot[C]//Proceedings of IEEE Interna—tional Conference on Multisensor Fusion and Integration for In—telligent Systems,MFI2003.,Tokyo,Japan.IEEE,2003
[12]黄佳.基于0PENCV的计算机视觉技术研究[D].上海:华东理工大学,2013.
[13]李洪海.基于移动机器人的双目立体视觉技术研究[D].南京:南京航空航天大学,2007.
[14]范莹.基于双目视觉的图像匹配与定位技术的研究[D],无锡:江南大学,2016.
[15]韩慧妍.基于双目立体视觉的三维模型重建方法研究[D],太原:中北大学,2014.
[16]马岩,王振宏,龚琳,基于RAC标定法的CCD摄像机参数标定技术研究[J].光学仪器,2012,34(2):11—15.
[17]袁泉,邹冲,闵锋.双目视觉在类人机器人测距中的应用[J].武汉工程大学学报,2017,39(2):193—198.
【通联编辑:梁书】
作者简介:杜林(1977-),安徽砀山人,工程师,硕士,安徽继远检验检测技术有限公司总经理,研究方向为软件开发与软件评测。