基于视觉AI的车道参照车距测量方法
2022-02-14唐一夫
徐 鹏,唐一夫
(河海大学 土木与交通学院,江苏 南京 210098)
随着社会经济的不断发展、城市化进程的加快以及汽车的保有率不断提高,城市交通拥挤日益加剧,交通事故日益频发,给人们的生命和财产造成了重大的损失[1]。根据英、美等发达国家的交通事故分析,事故中90%以上是由追尾引起的,而在我国追尾事故也居各种道路事故之首。据研究表明,1s的预计时间可以预防90%的汽车追尾事故和60%汽车正面碰撞事故。旨在提高驾驶员视觉效能和汽车主动安全性能的辅助驾驶系统(driver assistance system,DAS)对安全行车具有重大意义[2-4],因此受到人们的广泛关注。
前方车辆车距检测技术是DAS的重要组成部分,可以用于实时检测当前车辆与前车的距离,并适时发出预警信号,提醒驾驶员前方潜在的威胁,保证行驶安全。目前,应用在汽车上的测距方法主要有超声波测距、激光雷达测距、微波雷达测距、红外线测距方式、计算机视觉测距技术等几种方法[2]。其中,计算机视觉测距技术因其具有成本较低、信息便于获取、维护费用较低以及可进行多车道检测等优点,成为当前的研究热点。目前,国内外对于采用计算机视觉进行车距检测多是基于三角原理的双目CCD测量方式和基于单目视觉的测量方式。
基于双目视觉的测距算法[5-7]的计算方法复杂,双目匹配和相机标定较难,且成本较高;而基于单目视觉的测距方法实现原理简单,成本较低,实时性较好。邹斌[8]通过计算图像坐标系下车道标志线等信息,依据摄像机模型计算前方目标车距,但需要在特定场景下,需要获取多个信息,不具有普适性。王永森[9]聚焦于车辆的下边沿的位置标定结合逆透视变换,进行单目视觉测距,提升了测距精度,但计算公式是基于车辆参照进行计算。TUOHY等[10]根据IPM公式得到车道的鸟瞰图,结合线性关系进行车距计算,但其主要考虑直道情况,且对相邻车道内的车辆测距误差较大。WANG等[11]提出一种车辆在弯道估算前方车距的算法,但其较依赖于弯道的道路特征信息,不具有普适性,只适用于特定场景。WONGSAREE等[12]根据逆透视映射原理和相机投影原理,提出基于几何模型的单目测距方法,但其只考虑直道情况。HAN等[13]将检测车辆的信息结合针孔摄像机模型对车距进行估算,但其车距测量是以车辆为参照进行。BAO等[14]基于卷积神经网络提出一种单目视觉测距方法,但其需在特定的距离下进行测量,且测量以车辆为参照进行。
综上,当前车辆间距检测多是以车辆参照进行测距,检测结果在相对平坦的直线道路可以反映真实车距,但道路线形并非全是直线,这在城市和乡村的常规道路中,有大量的应用场景,此时真实车距应该沿道路线形进行计算,如图1所示。例如在车道合并/分割、交叉口、环形路或陡坡上,如果以直线距离参与避碰预警分析,结果将是错误的,且汽车为高速运动目标,微小的误差也会放大产生严重后果。
图1 弯道真实车距示意图
基于上述原因,本研究考虑基于车道参照即沿着车道线进行真实距离的测量。该问题的关键在于如何获取当时道路的俯视图,并提取车道线进行计算。可以考虑基于GPS定位自车及目标车辆,在电子地图上依据道路线形推算获取车距,但是该技术需要一定的信息流量费用;其次,电子地图相对粗略,细节到车道的精度不足,很多临时施工改变线形并没有实时反映出来;还有,在一些城市高楼林立区域或山区,GPS无信号则无法进行测量。因此,考虑基于视觉AI技术,方法流程如图2所示。首先,通过逆透视变换算法,实现车道从正视图到鸟瞰图的转换;其次,通过霍夫智能变换识别和提取图像中的车道;最后,采用积分法以车道线为参照系,计算车辆间距。
图2 车道参照车距检测方法流程
1 基于视觉AI的车道参照车距测量方法
1.1 基于逆透视变换构建场景鸟瞰图
逆透视变换可以看作一定前提下的透视变换的逆过程,根据原始图像的信息以及镜头的内部参数和外部参数来恢复三维坐标中某一平面的画面信息,实现图像坐标系和三维世界坐标系之间的转化。本研究通过逆透视变换实现车道从正视图到鸟瞰图的转换。目前,实现逆透视变换主要有两种方法:1)基于单应性矩阵变换的逆透视变换;2)基于摄像机模型的逆透视变换。若采用基于单应性矩阵的变换方法,需要选取4组对应特征点进行变换,但人工选取会对变换结果产生较大的影响。因此,采用基于摄像机模型的逆透视变换方法。目前应用较为广泛的摄像机模型IPM公式,是由BERTOZZI等[15]推导出来的。该公式的原理如图3所示:首先定义世界坐标系,记为W={(X,Y,Z)}∈E3,它是客观世界的绝对坐标系;定义图像坐标系为I={(x,y)}∈E2,而逆透视变换的实质就是在Z=0的前提下,将图像空间I转换到世界坐标系W中。
图3 逆透视变换坐标系示意图
M.Bertozzi公式在相机架设较大,相机焦距较小,且俯仰角度较小的情况下存在较大的水平曲线误差。考虑到实际行车中摄像机俯仰角较小的情况,为保证变换效果和测量精度,本文中采用曹毓改进的IPM公式[16]来实现逆透视变换。该公式能较好地消除直线弯曲误差,修正了算法,具有良好的逆透视变换效果。考虑从世界坐标系到图像坐标系的坐标变换关系,也为后期机器识别和计算机运算处理的便利,对该改进IPM公式进行反求,如式(1)所示:
(1)
其中:x、y分别表示图像坐标系的横纵坐标;X、Y分别表示世界坐标系的横纵坐标;h表示摄像机的安装高度;θ表示摄像机的安装俯仰角。
由于单目相机在采集图像过程中会产生畸变,同时在逆透视变换后也会产生一定的畸变,因此,需要对逆透视变换输出的图像进行畸变矫正。本研究在畸变模型公式的基础上,记录摄像机模型的外部参数和内部参数,构建单应性矩阵,在编译环境中对输出图像做畸变矫正计算,最后输出鸟瞰图。
1.2 基于霍夫智能变换提取车道线
霍夫智能变换的核心思想是点和线的对偶性。直角坐标系和极坐标系是存在对应关系的,其将原始图像空间给定的曲线变为参数空间的一个点,将原始图像中给定曲线的检测问题转化为寻找参数空间中的峰值问题。霍夫智能变换是目前常用的线形检测方法,占用系统资源较少,计算速度较快,符合实时检测的要求,故采用霍夫智能变换对车道线进行识别和提取。
霍夫变换就是首先将(ρ,θ)空间量化,得到M(ρ,θ),此矩阵就是累加单元。假设初值M(ρ,θ)=0,对边界上的每一个点(xi,yi),将θ的所有量化值代入计算公式,得出相应的ρ,并将M(ρ,θ)加1,将全部(xi,yi)处理后,分析M(ρ,θ)。如果M(ρ,θ)≥T,就可以认为存在一条有意义的线段,T是该线段的拟合参数。T是一个非负整数,由采集的图像帧的车道的先验特征决定。最后由(ρ,θ)和(xi,yi)共同确定图像帧中的车道线,并将断裂部分连接起来,最终确定车道线的位置。
直线的极坐标方程如式(2)所示:
ρ=xcosθ+ysinθ
(2)
其中:ρ是点到直线的距离,θ是直线的法线与x轴的夹角。这样,一条直线可以用ρ值和θ值来表示。
逆透视变换输出的图片含有大量的背景冗余信息,为保证识别和提取的精度,在标准霍夫变换检测步骤的基础上改进:在检测之前采取一系列的图像预处理操作;然后通过霍夫变换将车道线特征映射到霍夫空间中,进行车道线的识别和提取。本文中霍夫智能变换算法的步骤如下:
1)输入图像灰度处理;
2)高斯核卷积图像去噪;
3)Canny边缘提取;
4)映射到霍夫空间;
5)寻找图像空间中灰度值为255的白点;
6)对θ∈(0,180°),利用上述的极坐标方程进行求解;
7)对(ρ,θ)单元投票累加统计,即
A(ρ,θ)=A(ρ,θ)+1
8)其中得票最高的两个单元就是所求的车道线。
1.3 基于车道参照的车距积分法计算
在计算机图像中,各种数字化图形是以平面直角坐标的形式进行运算和储存,而平面直角坐标与线性参照系存在对应关系,车间距信息可定位于某种线性参照系统之中。因此,为提高车间距检测计算的精度,通过实现平面直角坐标与线性参照系统之间的转换,在线性参照系中完成车间距测量。线性内插法可实现平面直角坐标系与线性参照系统之间的转换,其计算速度比较快,但在计算时将曲线边作为折线处理,计算误差较大,显然不适合车间距测量。为保证车间距测量的精度要求,本研究在现有积分法的基础上,改进并设计一种基于车道参照的车距积分法,以实现车道坐标系之间的转换。
基于车道参照的车距积分法采用曲线参数进行精确的积分计算,与线性内插法相比,计算更为复杂一些。首先获取前车目标识别框对应车道线上的转换点P,计算转换点P位于哪条曲线段上;转换点与相邻两结点之间构成向量,计算两个向量模之和,并判断所有和值中最小的一个,则此和值对应的两个结点构成的边即P所在的曲线段,如图4所示。
图4 积分法示意图
如下为平面直角坐标转换为线性里程坐标的公式:
(3)
其中:s为弧长,它等于所求点的里程与该点所在车道线起点里程之差;k(s)、φ(s)分别为所求点处的车道线曲率和方向角;x(s)、y(s)为所求点的纵、横坐标;φ0、x0、y0分别为该点所在车道线起点的方向角和纵横坐标。
所求点的曲率计算与该点所处的曲线类型有关。一般地,当所求点所在曲线单元为:
1)直线时,k(s)=0
2)缓和曲线时,k(s)=(k2-k1)/ls
式中:k1和k2分别为缓和曲线的起点和终点的曲率,ls为缓和曲线的长度。
3)圆曲线时,k(s)=1/R
式中,R为圆半径。
平面直角坐标转换为线性里程坐标,其问题实质是:已知点的纵横坐标(x,y),求点到车道线起点的弧长s。可采用以下迭代算法求解:
Steps 1 取s的初始值为所求点到车道线起点的直线距离;
Steps 2 将s代入公式(3),计算得出x(s)或y(s),这里以x(s)计算为例;
Steps 3 对x(s)与x进行精度比较,如果满足要求,则结束,此时的弧长s与曲线起点里程之和为所求点的线性里程坐标值;否则,令
2 实例分析
本研究进行如下试验分析。其中图像处理和图像识别平台在一台CPU为Intel(R)Core(TM)i7—8750H,主频为2.20 GHz,内存为16 GB的PC机上同步完成。该平台开发环境为VS2013基于OpenCV库进行开发,主要编译语言采用C++。采用KITTI数据集中的城市行驶影像数据集,进行试验分析。该数据集通过搭载在车辆上的Sony ICX267 CCD型摄像机,实时获取图像数据。
选取4组直道和弯道两种不同城市道路行驶数据图。由于篇幅的原因,现展示第一组数据如图5所示,直道是为了验证车道参照测距方法的科学性和合理性,弯道是为了验证车道参照测距方法的精确度和优越性;图中绿色线框代表目标识别车辆,通过图像识别可以标定目标车辆位置,获得前车的车长、尺寸和位置等信息。
(a) 弯道行驶 (b)直道行驶
首先在C++编译环境中构建车道参照测距方法的关键程序。输入试验图片,为不影响后续测距的精度,需要根据标定的相机参数,对输出的鸟瞰图像进行畸变矫正,矫正后的逆透视变换结果如图6所示。
(a)弯道行驶 (b)直道行驶
在霍夫智能变换识别和提取车道之前,需要对车道线位置进行一定的初始定位。直方图可以在对比度低的情况下有效识别图像细节。在直方图中,横轴代表像素点位置,纵轴代表白色像素点的数量,峰值较大的区域即为车道所在的初始位置。通过输出两幅试验车道图片的直方图进行初始定位,试验图片的直方图如图7所示。
图7 车道线直方图
根据车道线直方图判定车道线位置范围,使用霍夫智能变换识别车道轮廓线,对检测到的车道线进行提取;将检测到的车道线对应于霍夫空间中的点,映射到平面直角坐标系中,进行车道线拟合,图中绿色线条表示为拟合车道线,如图8所示;最后基于车道参照的车距积分法,计算与标定目标车辆的车距,车距检测结果如表1所示。
图8 车道提取和拟合结果
表1 车距检测结果
根据表1中的传统激光测距与车道参照测距结果的对比可知:在直道时,传统激光测距与车道参照测距结果基本没有偏差,对于行车安全影响较小;但是在道路具有一定曲率的前提下,传统激光测距与车道参照测距结果相差较大,传统激光测距结果误差较大,对于行车安全具有较大的影响。由此可知,文中提出的基于视觉AI车道参照测距方法,在直道类型与现有测距方法结果并无差异,但在弯道类型中较传统测距方法更接近真实车距,因此该方法具有合理性和优越性。
3 结论
基于视觉AI技术提出了一种车道参照测距方法。根据试验结果分析可知,提出的车道参照测距方法科学、合理,且相较于传统激光测距方法,有一定的优越性和准确性;同时又提升了测距精度,对于保障行驶交通安全和消除交通隐患具有一定意义。但由于篇幅原因,还未讨论牵涉到坡道距离的问题。因此,下一步研究方向将会针对两车处于不同坡度位置时,结合坡道信息,利用几何算法测段真实车距;其次,本文中所使用识别和提取车道线的霍夫智能变换,其检测结果易受到道路光照和道路标志破损等道路外在环境因素的影响。因此,下一步研究方向会采用深度学习方法来替代霍夫智能变换识别和提取车道线。