马 肖,舒博伦,李景春
(1.沈阳航空航天大学 创新学院,辽宁 沈阳 110136;2.沈阳航空航天大学 机电工程学院,辽宁 沈阳 110136)
双目立体视觉测距技术
马 肖1,舒博伦1,李景春2
(1.沈阳航空航天大学 创新学院,辽宁 沈阳 110136;2.沈阳航空航天大学 机电工程学院,辽宁 沈阳 110136)
基于人眼视差的原理,采用两台性能相同的相机从不同角度对同一物体进行拍摄,然后再根据获取的不同图像的视差计算出物体的实际距离,从而实现了双目立体视觉测距。本文对双目视觉测距系统的各个步骤作了详细介绍,并在相关理论研究的基础上,以MATLAB软件为工具,对其中的步骤进行了一定的改进和优化。
双目立体视觉;视差;测距;MATLAB软件
所谓的计算机视觉是指用各种成像系统代替视觉器官作为输入敏感手段,由计算机来代替大脑完成处理和解释[1]。一台摄像机机在获取图像信息时会丢失掉图像的深度信息,因此拍出的图像不会像人的双眼观察得有立体感。机器视觉是通过三维世界所感知的二维图像来研究和提取出三维景物世界的物理结构[2]。所谓的立体视觉,是基于人眼视差的原理,由不同位置的两台或多台摄像机对同一物体进行拍摄,然后通过对同一物体不同图像中的视差,计算出物体在实际空间中的位置。研究双目立体视觉系统是一件非常有意义的事情,能像人眼一样获取周围的环境信息,以便能识别和定位目标物体。随着电子学、光学以及计算机技术的发展,逐渐成为生物医学、工业检测、虚拟现实等领域的关键技术,在军事侦察、航天遥测及应急救灾等领域得到了广泛的应用[3]。
由不同位置的两台性能参数相同的摄像机对同一物体进行拍摄,再利用两个图像的视差,求得图片获取过程中所丢失的深度信息。主要由图像获取,相机标定,图像的预处理,特征值提取与立体匹配,三维重构五个步骤实现的[4]。下面依次介绍各步骤的实现与特点。
1.1 图像获取
图1为两个具有相同性能和内部参数的相机放置在同一平面内,且两光轴保持平行,对同一目标点P进行成像。
图1 平行双目视觉测距示意图Fig.1 The parallel binocular vision range diagram
其中A1,A2分别为P在左右两相机上的成像点,Z为目标点与成像面间的距离。设A1坐标为(xl,yl),A2坐标为(xr,yr),则视差B=|xl-xr|,根据相似三角形原理,
1.2 相机的标定
在相机标定方法中比较典型的是张正友算法,它是介于传统标定与自标定之间的一种方法,使用的非线性模型,鲁棒性好。由求单应性矩阵、计算相机内参数、计算外参数和求取畸变系数4个步骤组成的[5]。将两个相机平行放置,且相对位置保持不变,然后不断变换标定板的位置,标定板如图2所示,其大小为30 mm×30 mm。用MATLAB对拍到的图像进行标定,将同侧相机机所拍的一系列图片载入程序中,提取图像的角点,经过初始化和最小二乘法计算得出的畸变系数,再通过非线性优化,反复迭代使相机的内、外参数和畸变系数收敛。再将左右相机得到的内部参数载入程序,便得出旋转矩阵R和平移向。
图2 平面标定板Fig.2 Planar calibration board
设空间点坐标P(Xw,Yw,Zw),图像点的p(u,v),A为内参矩阵,外参矩阵W=[R T]。为计算方便,设标定板为世界坐标系中Z=0的平面,则由世界坐标系中的点到图像坐标系中的点的齐次变换如下形式:
其中s为深度系数,H=A[R T]为单应性矩阵,H表示空间点坐标P与图像点间的一种映射关系。
1.3 图像的预处理与特征提取
该测试系统相机在获取图像的时候会因为自身镜头的畸变,光照程度等各种无法避免的随机原因,使拍摄的图像中含有噪声。因此,在对图像特征提取之前进行图像预处理,抑制或者消除图像中不利于图像清晰的噪声和干扰,会更有利于后续对图像的处理和分析。目前主要有均值滤波,中值滤波和纳维滤波三种比较经典的图像去噪算法,其中纳维滤波是一种自适应线性滤波,可根据局部方差来调整滤波效果,对于去除高斯噪声效果明显[6-7]。下面是借助MATLAB软件实现对图像的自适应纳维滤波:
1.4 特征提取与立体匹配
图3 二维自适应维纳滤波处理Fig.3 A two-dimensional adaptive wiener filtering processing
从图像中提取有用的数据或者信息,得到图像特征的表示或描述,如数值,符号和向量等,这一过程为图像特征提取。特征从自身特点上又可以分为两大类:描述物体外形的形状特征和描述物体表面灰度变化的纹理特征。因此特征提取的方法又可分为统计特征和结构特征。计算机通过对这些数值或向量形式的特征的提取,才能确保对所选特征进行准确的匹配。
立体匹配通过通过一定算法完成左右相机图像的相同特征匹配,得到视差图。它是双目立体视觉系统的关键技术,可分为区域匹配,特征匹配和相位匹配3大类[8]。本文中所采用的块匹配立体算法 cvFindStereoCorrespondenceBM是由OpenCV提供的,但若想在包含了众多无效或不利因素的图像中进行准确无歧义地匹配,主要依赖以下3个问题的有效解决,即正确特征的选取,特征本质的提取和准确匹配特征算法的选择。
1.5 三维重构
在相机内外参数矩阵确定后,通过空间某点在左右两图片中的对应点,便可进行空间的三维重建。根据式(3)的关系,通过简单的矩阵间运算,便可求得图像的深度信息。而影响所测距离精度的原因主要有相机标定产生的误差,特征提取出现的误差和匹配准确度。
图4的双目立体视觉测距系统的界面是利用MATLAB环境的GUI设计的,主要模块有浏览图片,图像匹配,设置点模块和测距。能够对输入左右相机所获得的静态图像进行图像匹配,得出左右相机各自的测量距离。
双目立体视觉测距系统有着十分广阔的发展和应用前景,它在驾车测距,机器人避障和智能拍摄中都起到了关键作用。文中主要基于自身的实验情况,对常用的双目立体视觉测距技术进行了阐述和相应的优化,并分析了影响精度的主要原因。希望能为广大科技工作者对双目测距精度的提高起到一些帮助。
[1]Shapiro G,Stockman C.计算机视觉[M].赵清杰,钱芳,蔡利栋,译.北京工业出版社,2005.
图4 双目立体视觉测距系统Fig.4 Binocular stereo vision ranging system
[2]郑南宁.计算机视觉与模式识别[M].北京:国防工业出版社,1998.
[3]张建德,陆金桂.螺旋桨桨叶宽度的双目视觉测量方法[J].Journal of Marine Science and Application,2011(2):246-251.
[4]徐可佳.双目立体视觉技术在接触网几何参数测量中的应用研究[D].成都:西南交通大学,2004.
[5]胡国元,何平安,王宝龙.视觉测量中的相机标定问题[J].光学与光电技术,2004(9-12):357-389.
[6]高展宏,徐文波.基于MATLAB的图像处理案例教程[M].清华大学出版社,2009.
[7]高文,陈熙霖.计算机视觉[M].北京:清华大学出版社,1999.
[8]隋婧,金伟其.双目立体视觉技术的实现及其进展[J].计算机应用,2004(10):33-89.
Binocular stereo range-measuring technology
MA Xiao1,SHU Bo-lun1,LI Jing-chun2
(1.Innovation College,Shenyang Aerospace University,Shenyang 110136,China;2.Mechanical and Electrical College,Shenyang Aerospace University,Shenyang 110136,China)
Based on the principle about the optical parallax of human's eyes,taking pictures for the same thing by two cameras whose function is identical to each other.Then we could work out the actual distance from cameras to the object according to the optical parallax of different pictures shot before.Thus the binocular stereo vision range would be realized.This paper introduces every step of the optical range-measuring system in detail.It uses MATLAB as a tool to improve and optimize some of the steps and practical methods to some extent,on the basis of some related researches.
binocular stereo vision;optical parallax;range-measuring;MATLAB software
TN98
A
1674-6236(2016)04-0081-03
2015-03-29 稿件编号:201503422
大学生创新训练项目(201310143068)
马 肖(1992—),男,山东济宁人。研究方向:机械电子工程。