基于双目立体视觉技术的汽车测距系统实现

2016-11-09 01:11韩峻峰
计算机应用与软件 2016年9期
关键词:立体匹配双目测距

韩峻峰 王 帅

1(钦州学院物理与电子工程学院 广西 钦州 535011)2(桂林电子科技大学电子工程与自动化学院 广西 桂林 541004)



基于双目立体视觉技术的汽车测距系统实现

韩峻峰1王帅2

1(钦州学院物理与电子工程学院广西 钦州 535011)2(桂林电子科技大学电子工程与自动化学院广西 桂林 541004)

汽车测距是汽车防撞系统的关键技术之一。在分析现有的汽车测距常用方法基础上,针对常用测距方法设备庞杂、相互干扰严重等问题,对机器视觉在汽车测距方面的应用进行研究,提出一套基于双目立体视觉技术的汽车测距方案。并使用OpenCV2.4.8在VS2012编译环境下用C/C++编程实现验证其可行性,通过对摄像机标定、立体校正、立体匹配等关键技术的研究,选用一种快速的立体匹配算法对目标进行测距。经过实验验证,该系统可行性高、成本低,只需两个普通CMOS摄像头便可完成图像采集工作,而且平台搭建方便,测距算法容易实现,速度快、扩展性好,在一定范围内的准确度基本满足应用要求。

汽车防撞双目立体视觉技术测距

0 引 言

汽车测距是智能汽车防撞系统[1]的主要关键技术之一。现有的汽车测距常用的有毫米波雷达测距、超声波测距、激光测距、机器视觉测距等多种方法[2]。

毫米波雷达测距利用雷达发射电磁波,并由接收物体反射的回波获得物体至电磁波发射点的距离等信息,具有长测量距离、高精度、多目标检测及受天气和障碍物形状影响小等优点[3]。然而,使用此测距法不足之处是毫米波雷达成本高,不能有效分辨测量极弱反射或者不能发射电磁波的物体(如行人等),且若有多辆车同时使用雷达测距,相互间干扰较严重。

超声波测距的原理[4]是通过测量超声波发射声波与接收回波的时间差,经计算后便可得到物体的实际距离。具有成本低,在一定范围内精度很高等优点。然而由于其可测距离较短,受大气影响较大,最佳距离为4~5米,最大测量距离不超过10米,远达不到所需要求,故常用于汽车倒车防撞系统上。

激光测距的原理和毫米波雷达的测距原理一样,通过窄激光束对某一区域进行扫描来实现距离的测量,具有测量距离远、速度快、准确度高、抗干扰能力强、无盲区等优点[5],而随着有关技术和器件的发展,激光测距的精度可达厘米甚至毫米级。然而由于系统对信号的处理相当复杂,单成本高、易受外界环境影响等,成为了制约推广激光测距技术应用的重要因素。

机器视觉测距[6]是利用摄像机或者照相机实时拍摄被测目标的图像,通过计算机快速提取目标图像的特征信号,经分析计算之后,得出被测目标到拍摄点的距离。与以上方法相比,其最大的不同之处是被动测距,即不需要向目标物发射任何信号,只需拍摄下目标物的图像即可。因此可以大大节省硬件开发成本,只需在软件算法上进行研究优化。而且由于其是被动测距的工作方式,相互间不会干扰对方,对道路间多车辆安全行驶不会因信号混乱产生影响。另外,由于图像所含信息包括目标物及其他大量的附加信息(如各种交通指示等),利用计算机识别出这些信息,将会极大地提高车辆的智能程度,这是以上任何方法所不能比拟的。目前,双目立体视觉技术是机器视觉领域的一个重要分支,也是当前研究工作开展最多,相对技术比较成熟的一种。其拟人眼的工作方式,可在不同条件下灵活测量不同景物的立体信息,在工程应用中有着极高的研究价值。因此,在通过对双目立体视觉测距原理及其关键技术的研究之后,使用OpenCV(计算机开源视觉库)设计了一套基于双目立体视觉技术的汽车测距系统,并用该系统实现了测距。

1 双目立体视觉测距原理

双目立体视觉测距技术模仿人类利用双眼视差获取场景深度的方法。利用两台平行放置但相距一段距离的拍摄装置对同一目标物进行拍摄,由于其空间位置不同,所拍摄目标物图像必存在像差(即视差),进而通过一定方法可以从视差中确定深度距离信息。根据这一原理,通过在计算机上对采集到的左右图像对预处理、立体校正、立体匹配,再结合摄像机的各项参数,使用三角测量的方法,便不难得到目标物的深度距离信息[7]。

如图1所示为简化的双目立体视觉平行成像俯视图(左右摄像机严格平行放置)。IL、IR分别为左右摄像机像平面,PL、PR为空间点P到左右像平面的投影,T是两摄像机光心OL到OR之间的平移距离,f为摄像机焦距,Z便是目标点P的深度信息,即所求距离。由图可得ΔPPMPL相似于ΔPPNOL,ΔPPMPR相似于ΔPPNOR。

图1 双目立体视觉平行成像俯视图

根据相似三角形原理可得:

(1)

(2)

另PNOL=x,CLPL=l,PRCR=r,则代入式(1)、式(2)得:

(3)

(4)

两式联立得出深度距离公式如下:

(5)

其中,d=l-r,f已知,T已知,因此,若要求得Z的数值,只需获得空间点P在左右像平面投影点之间的视差值。

2 双目立体视觉汽车测距系统实现

双目立体视觉汽车测距系统总体框图如图2所示,主要包括,图像采集、摄像机标定、双目立体校正、立体匹配、数据输出等。

图2 双目立体视觉汽车测距系统总体框图

2.1图像采集

系统图像采集模块使用的是两个感光元件类型为CMOS的摄像头,最大帧率可达60帧每秒,使用USB数据线与PC机进行通信,如图3所示为两个平行放置的USB摄像头。图4为计算机实时显示画面。

图3 双目摄像头实物图

图4 双目摄像头实时显示画面

2.2摄像机标定

摄像机标定是为了建立三维世界坐标与二维图像坐标之间的对应关系[8],根据摄像机成像模型及相似三角形原理可得空间点P在摄像机下的成像关系如式(6)所示[9]:

(6)

其中:

式中,Zc为空间点P在摄像机坐标系下光心到像平面投影点的距离,点p(u,v)为空间点P(Xw,Yw,Zw)在像平面的投影点坐标,M为摄像机内参数矩阵,f/dx、f/dy分别为摄像机在横竖(x,y)方向的等效焦距,单位是像素,s为倾斜因子,u0、v0为图像坐标系(即像平面)下的主点坐标,R为3阶正交单位矩阵,t为平移向量。

图5 摄像机标定棋盘图

为了求得摄像机矩阵的各个参数,这里采用基于张氏标定法进行摄像机标定[10],但与张氏标定法不同的是同时考虑了摄像机的径向畸变和切向畸变(张氏标定法只考虑了径向畸变)。设计常用的棋盘图作为摄像机的参照物,即标定板,每个棋盘格大小为28 mm×28 mm,角点数为8×6,如图5所示。

从不同角度拍摄标定板的多幅图像,这里在OpenCV里面进行图像捕获,移动摄像机捕获左右各9副不同角度的图像,图像大小为640×480,使用OpenCV里面的cvStereoCalibrate()函数进行标定,标定结果如下(仅保留小数点后5位):

摄像机外参数如下:

从旋转矩阵R可以看出,R基本接近单位矩阵,说明两摄像机基本处于平行状态;而两摄像机实际设置(尺测)距离为100 mm,这点从平移向量T的x向量为-99.99933 mm可以看出基本近似,误差极小,符合双目立体视觉测距系统的要求。

2.3立体校正

由于摄像机本身工艺原因及光学透镜的特性使得成像多少存在一些畸变现象(如径向畸变等),这在一定程度上影响了匹配的准确性。而另一方面,要对两幅图像上的对应点进行匹配,就要对目标图像上的二维空间进行搜索,搜索范围大,非常耗时。而立体校正的作用就是消除原图像的畸变,使立体匹配更加准确,同时让两幅图像严格地行对准,以便利用极线约束将匹配对应点由二维搜索降为一维搜索,加快立体匹配速度。

具体方法是通过给定的旋转矩阵R和平移向量T,利用Bouguet校正方法使左右图像中的每一幅重投影次数最小化,从而也使得重投影畸变最小化,同时使叠加视图的面积最大化。由于三维点可通过投影矩阵变换到投影平面上的二维点,同理,平面上的二维点也可通过重投影矩阵重投影为三维点,如式(7)所示[11]:

(7)

其中:

式中,Q为重投影矩阵,d为二维齐次点的关联视差,重投影矩阵中,-Cx、-Cy和f均来自于左图像的主点和焦距,Tx即右摄像头相对左摄像头的平移距离,Cx′为主点在右图像上的x坐标。另外,如果主光线在无穷远处相交,即Cx=Cx′,那么Q右下角的项为零。在OpenCV中可通过stereoRectify()函数实现以上校正功能,并获得重投影矩阵,校正结果如图6、图7所示。

图6 原图像校正前

图7 原图像校正后

2.4立体匹配

立体匹配的目的是得到同一空间物体在不同视点下投影图像中像素点间的一一对应关系(即视差值)。其算法主要分为两大类:基于局部约束的立体匹配算法和基于全局约束的立体匹配算法。基于局部约束的立体匹配算法主要有区域匹配、特征匹配和相位匹配算法等[12,13]。通过对一些立体匹配算法的比对分析,这里采用区域匹配算法里的基于立体相关块匹配的方法,使用匹配代价函数为绝对误差累计(SAD)的方式来寻找两幅立体校正图像之间的匹配点[14],SAD匹配代价函数如下:

(8)

其中IL为原图(即左图)中的像素块,IR为目标图(即右图)中的像素块,d是要搜寻的深度,W为匹配窗口。通过OpenCV中的cvFindStereoCorr-espondenceBM()函数可以实现上述基于块匹配的立体算法。

立体匹配的过程通过滑动SAD窗口来完成,对于校正后严格行对准的图像,如果在左图像的每个匹配特征点有足够多的可检测纹理,便可以通过搜索右图像中的对应行的最佳匹配来确定匹配位置。而若有足够多的匹配点被找到,就能得到立体匹配后的视差图。通过视差图,可以很直观地看出匹配效果,若匹配点稠密(即匹配点多),视差图与原图相似度就越高,若匹配点比较稀疏(即匹配点较少),则得到的视差图与原图的相似度就越低。图8为原图(左图),图9为立体匹配后得出的视差图。

图8 原图    图9 视差图

可以看出,所得视差图对强纹理作出了匹配,匹配点较稀疏,但基本可以分辨出人物及物体形状,因此,只需要提取人物及物体的一个匹配点便可以计算目标的深度距离。

3 实验结果及分析

基于块匹配的BM算法匹配速度快,经过实验验证,在每秒25帧的情况下获取目标物的视差图,并无明显卡顿现象,基本能达到实时要求,这也是该算法明显优于其他算法的地方。目标物距离的计算采用式(5),但由于主光线通常会在有限距离内相交,主点并不具备相同的坐标,即Cx≠Cx′,因此求目标物的距离公式修改如下所示:

(9)

具体数据从式(7)里的Q矩阵中获取,使用鼠标获取一点的方式,从视差图中获取目标物一点的视差值,代入到式(9)中求得目标物的深度距离。

实验环境下,通过对目标物的移动来改变目标物与摄像机的相对距离(也可以多目标不同距离下进行检测),以测得不同距离下的深度数据。实验结果如表1所示。

表1 实验结果

从表1可以看出,近距离测距结果精度很高,较远距离测距误差小于5%,说明该算法能达到一定的精度。但也可以看出,较远距离测量误差增大明显,在距离6200 mm的距离上的误差是在距离800 mm距离上的误差的42倍还多。这主要是由于标定产生的误差和实际测量产生的误差及其他因素的影响,如像素对于物体不同距离的收纳以及立体匹配对强纹理的需求都能导致远距测量精度的下降。

4 结 语

通过对现有汽车测距方法的分析,提出使用双目立体视觉技术进行汽车测距。对双目立体视觉技术测距原理及其关键技术研究之后,在计算机仿真平台上使用OpenCV设计了一套基于双目立体视觉技术的汽车测距系统,并对其进行了测距验证。通过对测距结果的分析,充分验证了其在测距方面的可行性。实验结果表明,该系统成本低、设备简单,只需两个普通CMOS摄像头便可完成图像采集工作;而且平台搭建方便,测距算法容易实现、速度快,在一定范围内有较好的测距精度,基本满足了应用要求,并为进一步汽车测距的实际应用打下了良好的基础。

[1] 尹金楷,魏玉.汽车防撞系统的综述[J].三门峡职业技术学院学报,2013,12(3):117-119.

[2] 王中元.现代智能汽车在路测距技术研究[J].企业技术开发,2008,27(6):15-17,50.

[3] 韩峻峰,张惠敏,潘盛辉,等.汽车防撞雷达概述[J].广西工学院学报,2011,22(4):54-58.

[4] 李戈,孟祥杰,王晓华,等.国内超声波测距研究应用现状[J].测绘科学,2011,36(4):60-62.

[5] 闫赫.激光测距传感器的原理分析及应用[J].湘潭大学自然科学学报,2013,35(4):101-104.

[6] 刘砚秋.机器视觉技术的发展动态[J].电子元件与材料,2014,33(5):93-94.

[7] 刘盼,王金海.基于平行双目立体视觉的测距系统[J].计算机应用,2012,32(S2):162-164.

[8] 刘金颂,原思聪,张庆阳,等.双目立体视觉中的摄像机标定技术研究[J].计算机工程与应用,2008,44(6):237-239.

[9] 谢莉,余胜.摄像机标定算法研究[J].科技视界,2011(4):22-24.

[10] 岳晓峰,祁欢.基于张正友平面模板法的双目立体视觉系统标定[J].机械工程师,2014(2):1-3.

[11] 王浩,许志闻,谢坤,等.基于OpenCV的双目测距系统[J].吉林大学学报:信息科学版,2014,32(2):188-194.

[12] 于乃功,马春燕,林佳.基于双目视觉的关键点的检测方法及定位研究[J].计算机测量与控制,2011,19(7):1565-1568.

[13] 白明,庄严,王伟.双目立体匹配算法的研究与进展[J].控制与决策,2008,23(7):721-729.

[14] 翟振刚.立体匹配算法研究[D].北京理工大学,2010.

IMPLEMENTING AUTOMOBILE RANGING SYSTEM BASED ON BINOCULAR STEREO-VISION TECHNOLOGY

Han Junfeng1Wang Shuai2

1(College of Physics and Electronic Engineering,Qinzhou University,Qinzhou 535011,Guangxi,China)2(CollegeofElectronicEngineeringandAutomation,GuilinUniversityofElectronicTechnology,Guilin541004,Guangxi,China)

Automobile ranging is one of the key technologies of automobile anti-collision system. Based on analysing current common methods of automobile ranging, and aiming at their problems of complex equipment and serious mutual interference, we studied the application of machine vision in automobile ranging area and put forward a set of automobile ranging schemes, they are based on binocular stereo vision technology. Moreover, we employed OpenCV2.4.8 configuration in VS2012 compiler environment and used C/C++ programming to verify its feasibility, through the research on camera calibration, stereo correcting, stereo matching and other key technologies, we chose a fast stereo matching algorithm to measure the distance of targets. Experiment verified that the system has high feasibility and low cost, it only needs two ordinary CMOS cameras to complete image acquisition, and the platform is convenient in building, the ranging algorithm is easy to implement with fast speed and good scalability as well, and the accuracy within a certain scope meets the application requirements basically.

Automobile anti-collisionBinocular stereo visionDistance measurement

2014-12-20。韩峻峰,教授,主研领域:智能传感器,智能控制和智能信息处理。王帅,硕士生。

TP391.4

A

10.3969/j.issn.1000-386x.2016.09.054

猜你喜欢
立体匹配双目测距
类星体的精准测距
基于双目测距的卡尔曼滤波船舶轨迹跟踪
双目视觉运动目标跟踪定位系统的设计
影像立体匹配中的凸优化理论研究
浅谈超声波测距
基于互补不变特征的倾斜影像高精度立体匹配
改进导向滤波器立体匹配算法
基于双目视觉图像的长度测量方法
基于PSOC超声测距系统设计
相对差分单项测距△DOR