APP下载

基于双目相机深度图的道路边缘测距方法

2024-01-08朱春媚张文康

现代计算机 2023年20期
关键词:深度图划线双目

朱春媚,张文康

(电子科技大学中山学院机电工程学院,中山 528403)

0 引言

道路划线是公路建设的重要组成部分,随着公路的不断兴建和城市交通管理的智能化,道路划线的工作量日益增多。目前道路划线设备以手推划线机和车载划线机为主,两种划线机划线时均需要提前人工划好道路基准线,再以道路基准线为参考基点划出其它的道路标线。人工绘制道路基准线包含人工测量、标位点和放样线等环节,劳动强度大、效率低且绘制质量容易受人为因素影响[1]。如果能够自动检测到划线喷头与道路边缘的距离,则可根据设定距离与实际距离的偏差,自动调整划线喷头的位置划出基准水线,省去原有的人工测量、标位点和放样线工序。因此,划线喷头与道路边缘的距离检测是实现自动划线的关键。目前道路边缘测距主要有超声波测距和机器视觉测距两类。杨庆凤等[2]提出了一种超声波测距技术,通过超声波实现划线机与道路边缘之间的距离测量;王珩[3]也采用超声波测距技术获得划线机与道路边缘的距离来实现定位。超声道路边缘测距一般以护栏或路缘石作为参考点,测量划线喷头与护栏或路缘石的距离,该方法具有结构简单、成本较低的优点,缺点是要求道路有连续的路缘石,且容易受温度、汽车行驶产生的风噪和发动机噪声的影响,因此适用面较小。机器视觉道路边缘测距是通过图像传感器捕捉道路边缘图像,利用图像处理的方法计算得到摄像头与道路边缘的距离,该方法受道路条件影响小,是目前主流的测距方法。如苑玮琦等[4]、陈连勇[5]和李志鹏[6]等均采用图像传感器采集道路信息,通过Hough 变换检测道路边缘实现测距。机器视觉测距通常用到复杂的图像处理方法,需要上位机进行计算,硬件成本较高,不适用于嵌入式道路划线定位控制装置。鉴于此,本文提出一种基于双目相机深度图的道路边缘测距方法,通过检测深度图中道路边缘的中心点实现测距。

1 总体流程

基于双目相机深度图的道路边缘测距方法总体流程如图1所示。采用张正友标定法进行双目相机参数标定,获得相机的内部参数和外部参数,并通过调整标定棋盘格的拍摄角度和距离来减少畸变系数,达到畸变校正的效果;采用BM 算法计算左右图像对中对应匹配点对之间的视差值获得深度图;通过二值化、腐蚀膨胀和寻找最大色块的方法检测深度图中的道路边缘中心点,最后通过坐标转换获得双目相机与道路边缘的横向距离。

2 实现过程

2.1 双目相机标定

为了计算图像坐标系与世界坐标系之间的相对位置关系,需对双目摄像头进行参数标定以获得摄像机的内参数和外参数。摄像机标定法主要有传统标定法、自标定法、主动视觉标定法和张正友标定法,其中张正友标定法先通过线性模型求出摄像机内外参数的最优解,然后采用最大似然估计法精确非线性求解得到摄像机的内外参数,具有操作简单和精度高等优点,被广泛用于双目相机标定[7]。

本文采用张正友标定法,通过Matlab 内置的Stereo Camera Calibrator APP 实现双目相机标定。首先用双目相机获取棋盘格标定板图像对,然后提取每组图像的角点,在提取角点的过程中,应尽量让标定棋盘格占据尽可能多的画面,可以得到更多有关摄像头畸变方面的消息。点击Calibrate 进行计算,可得到各组照片标定结果的反投影误差,点击Export Camera Parameters 来获取摄像头的标定参数,得到的左右摄像头单独标定参数如图2 所示。其中IntrinsicMatrix 是摄像头的内参,RadialDistortion和TangentialDistortion 分别为径向畸变系数和切向畸变系数。

为了获得较好的标定参数,减少径向畸变系数和切向畸变,本文分别采用标定纸和标定板进行标定,得到标定数据分别如图3 和图4 所示,可见标定纸和标定板的平均反投影误差分别为0.28 像素和0.10 像素,标定板的标定效果明显优于标定纸。

图3 标定纸的标定数据

图4 标定板的标定数据

在进行摄像头标定时,可以通过拍摄不同角度或者距离的棋盘格图案来获取摄像头内参和畸变系数,选择畸变系数最佳的一组,通过减少标定误差达到畸变校正的效果。

2.2 深度图计算

通过立体匹配计算左右图像匹配点对之间的视差值获得深度图。立体匹配是立体视觉系统的关键步骤,也是核心技术,其基本思想就是利用双目图像中的像素对应关系来计算物体在空间中的位置和距离[8-9]。BM(block matching)算法[10],其本质是一种块匹配算法,使用的是SAD(sum of absolute differences)匹配代价计算方式,通过选定一个左像素,在右图像范围中寻找最佳像素点与之配对,形成像素对,然后计算绝对差值之和,SAD 的值越小,说明匹配的效果越好[11]。BM 算法最大的优点就是计算速度快,适合移植用于嵌入式系统。本文采用BM 算法计算深度图,得到的深度图如图5所示。

图5 BM算法深度图、右视图和左视图

2.3 道路边缘中心点检测

对BM 算法获得的深度图通过图像处理的方法检测道路边缘的中心点,包含二值化、腐蚀、膨胀和寻找最大色块图像运算。

首先,通过全局阈值法实现图像二值化,其思想是将整个图像的像素值与一个设定的阈值进行比较,将大于该阈值的像素设置为白色,小于该阈值的设置为黑色,如公式(1)所示。

其中,g(x,y)为运算后像素值,f(x,y)为原像素值,T为阈值,本文取T= 125。

然后,对二值化后的深度图先腐蚀后膨胀,腐蚀的作用是消除物体边界点,使目标缩小,可以消除小于结构元素的噪声点;膨胀的作用是将与物体接触的所有背景点合并到物体中,使目标增大,可添补目标中的空洞。对深度图进行腐蚀膨胀运算,可以消除二值化深度图中高亮物体的孔洞,让深度图更加平滑、均衡。

最后,通过寻找最大色块提取道路边缘区域,把道路边缘以外的像素全部置零后,计算得到道路边缘中心点的像素坐标(i,j)。道路边缘中心点的绘制效果如图6所示。

图6 道路边缘中心点检测结果

2.4 距离计算

根据深度图中道路边缘的中心点在相机坐标系中的坐标以及相机的内部参数和外部参数计算摄像头与道路边缘中心点的距离。具体步骤如下:

首先,计算道路边缘中心点在相机坐标系的坐标。设像素点(i,j)的深度值为D(i,j),相机的内参(fx,fy,u0,v0)已经通过相机标定得知,则该像素点在相机坐标系的计算公式如下:

然后,将相机坐标系中的坐标转换为世界坐标系。设相机的外部参数为旋转矩阵R和平移向量T,则该道路边缘中心点在世界坐标系中的坐标为

(Xw,Yw,Zw)即是道路边缘中心点的三维坐标。设双目相机中心与图像道路边缘中心点的实际距离为d,双目相机中心与实际道路边缘的横向距离为h,相机与道路横向的夹度为α,则有:

3 实验结果

采用400万像素的双目相机采集道路边缘图像,相机与道路横向的夹度为α=30°。在Matlab2010进行双目摄像头标定,采用Python3.10.11 进行图像处理与计算。实验结果见表1,平均相对误差为2.96%。

表1 测量结果及相对误差

4 结语

提出一种基于双目相机深度图的道路边缘测距方法,包含双目相机参数标定、深度图计算、道路边缘中心点检测和距离计算四个步骤。其中双目相机参数标定采用广泛使用的张正友标定法,获得相机的内部参数和外部参数,并通过调整标定棋盘格的拍摄角度和距离来减少畸变系数,达到畸变校正的效果;为了兼顾计算精度与速度以适用于嵌入式系统使用,采用计算速度较快的BM 算法计算左右图像匹配点对之间的视差值获得深度图;通过二值化、腐蚀膨胀和寻找最大色块等图像处理方法检测得到道路边缘中心点,最后通过道路边缘的中心点在相机坐标系中的坐标,以及相机的内部参数和外部参数,计算摄像头与道路边缘中心点的距离,完成测距。本文方法可用于嵌入式道路划线定位控制系统,根据检测的距离控制执行装置实现道路划线喷头的自动定位。

猜你喜欢

深度图划线双目
Parents and Kids
Ambition
基于双目测距的卡尔曼滤波船舶轨迹跟踪
基于深度图的3D-HEVC鲁棒视频水印算法
一种基于局部直方图匹配的深度编码滤波算法
叠加速度谱在钻孔稀少地区资料解释中的应用
基于双目视觉图像的长度测量方法
基于双目视觉的接触线几何参数测量方法
Kinect深度图像快速修复算法
一种双目立体视觉相机标定方法