APP下载

双目视觉测距在自动泊车系统中的应用

2020-04-10甘向昕边蓓蓓李德胜

现代信息科技 2020年1期

甘向昕 边蓓蓓 李德胜

摘  要:利用双目视差原理,使用双目摄像头实现指定位置的距离计算,采用SGBM双目匹配算法提高识别精确度,在自动泊车系统的障碍物距离计算及车位相对距离的计算上有着重大意义,解决了超声波测距和激光雷达等方法识别车位的局限性。

关键词:双目测距;双目相机标定;SGBM算法;自动泊车

中图分类号:TP391.41      文献标识码:A 文章编号:2096-4706(2020)01-0052-02

Abstract:Based on the principle of binocular parallax,a binocular camera is used to calculate the distance of the designated position,and SGBM is used to improve the recognition accuracy. This is of great significance in the calculation of obstacle distance and relative distance of parking spaces in automatic parking system,and solves the limitations of ultrasonic ranging and lidar in identifying parking spaces.

Keywords:binocular ranging;binocular camera calibration;SGBM algorithm;automatic parking

0  引  言

隨着人均车辆拥有量逐年上升,在有限的城市空间中,停车也成了出行难题,自动泊车系统应运而生。

自动泊车系统需要对车位的距离进行测量,利用超声波传感器、视觉相机包括激光雷达等工业器件对目标车位进行测距,但是超声波传感器对测量距离有局限性,单目相机难以获取场景深度信息,激光雷达成本较高,相比之下,利用双目相机,可以降低成本,同时能够获取丰富的环境信息。

SGM是一种计算双目视觉中视差的半全局匹配算法,在OpenCV中叫作半全局块匹配算法(Semi-global Block Matching,SGBM),在视差效果好的同时效率更高。

1  双目测距的实现

双目测距的原理是利用两个摄像机系统,从两个视角获取同一个目标的不同信息,通过三角测量原理计算出像素之间的偏移来获取一个点的三维空间位置信息。采用张正友教授提出的单平面棋盘格的摄像机标定方法。此方法克服了传统标定法需要的高精度标定物的局限性,仅需使用一个打印出来的棋盘格就可以完成。同时相对于自标定而言,提高了精度,便于操作,因此张氏标定法被广泛应用于计算机视觉方面。平行双目结构具有几何关系和计算过程简单的特点,本系统使用平行双目结构,再使用张氏标定法的棋盘格作为标定参照物。双目测距原理如图1所示。

其中T为左右相机的距离,f为焦距,Z为距离,xl和xr分别为目标点P在左右相机所成的图像投影点的横坐标,由图1的成像关系和相似三角形原理,可得到式(1),因此,求出距离Z的条件是得到xl-xr的值:

1.1  双目图像的采集

如图2所示,摄像头为OV9732模块双目同步摄像头,控制系统为树莓派3B+。使用目标双目摄像头采集左右摄像头的同一帧图片,需要拍摄的为9×7黑白相间的方格标定板,且需要多角度拍摄,以便使得标定数据更准确。将左右摄像头的图像分别按顺序命名(如:L1.jpg、R1.jpg),并分别存储。

1.2  双目相机标定与校准

双目相机由于光学透镜的不同,在生产和装配时,会存在一定的缺陷,导致目标物体在线性模型下的位置和实际平面上的成像位置有差距,这就是相机的畸变。双目视觉的测距是在理想的环境和配置中得到的,而在实际应用中的结果会由于相机畸变而产生一定的误差,为了尽可能减小误差,需要去掉相机畸变。当把图像投射到同一个平面上时,要求同一个像素投射到两个图像上时,应该处于两个坐标系的同一个水平位置。矫正的过程是将标定板打印平铺在硬板上,使用平行固定的两个摄像机同时采集同一帧不同角度的标定板图像。使用MATLAB标定工具箱,分别输入左右相机的图片,进行左右相机的单目标定,得到左右相机各自的内部参数值,并将该内部参数值作为双目标定的初始值传入,完成双目标定。将左右摄像头采集的图像分别导入MATLAB软件的Stereo Camera Calibrator应用程序,并设置标定板方格宽度。导入完成后程序会自动识别板上标点,如图3所示,通过调整和去除偏差过大的图片组能够提高数据校正的准确度。

将数据保存并输出后可以获得相机的内外参数,将参数添加到程序的参数配置文件中,使用stereoParams.Camera Parameters1.IntrinsicMatrix,写出左摄像头的矩阵和右摄像头的矩阵,如图4所示,用于SGBM双目立体匹配算法的计算参数。

1.3  立体匹配与定位测距

半全局匹配算法计算局部范围的视差值,计算复杂度较低,多应用在立体匹配算法中。SGM算法在OpenCV中实现为SGBM算法,本系统采用SGBM双目立体匹配算法。SGBM采用水平Sobel算子,对图像进行处理,将双目上的两个图像在水平方向上进行匹配,经过处理后将两个图像映射成一个新的图像,这就是立体匹配的预处理,经过该处理会得到图像的梯度信息。

将预处理图像的梯度信息经过基于采样的方法得到梯度代价,这是代价计算的一部分,还需将原图像经过基于采样的方法得到SAD代价,上述两个代价都会在SAD窗口内进行计算。在SGBM匹配算法中通过调节blocksize和numDisparities两个参数来获得最佳的视差效果图。其中SAD窗口大小的值一般应该在5×5到21×21之间,且其必须为奇数。在程序中通过左右摄像头图像在同一位置的不同像素点计算出距离值。

2  测量数据

为了验证本系统的准确性,采用本文所述SGBM算法进行使目标物体在不同距离中进行检测,数据如表1所示,结果显示距离越近,误差比例越小,200 mm到5000 mm距离范围内的误差在0.50%~1.64%之间。

3  结  论

双目测距算法可应用于工业上的非接触式距离测量,以及无人驾驶领域中跟车距离的测量和车前障碍物距离测量,该双目测距方式解决了超声波测距的测量距离限制和单目相机对获取场景深度信息的限制,在未来,该技术还将会广泛地应用于人工智能领域以解决无接触式的距离测量问题。虽然该测距系统在测距精度和局限性方面都有较优的表现,但由于是通过视觉方式实现,还是会受到环境光线的影响,例如被测物体上的强烈反光会对测距误差造成影响,在该方面还需要改进。

参考文献:

[1] ZHANG Z. A flexible new technique for camera calibration [J]. Pattern Analysis and Machine Intelligence,IEEE Transactions on,2000,2(11):1330-1334.

[2] 许威,丁学文,宋兰草,等.基于MATLAB和OpenCV的双目视觉测距系统的实现 [J].天津职业技术师范大学学报,2017,27(4):47-52.

[3] 方博文,张晓东,陈敬义,等.基于双目视觉的行车中障碍距离检测方法研究 [J].机械设计与制造,2019(4):94-98.

作者简介:甘向昕(1998-),男,壮族,广西贵港人,本科,研究方向:计算机嵌入式;通讯作者:边蓓蓓(1982-),女,汉族,黑龙江哈尔滨人,讲师,硕士,研究方向:计算机嵌入式、图像识别。