高速场景下的车道检测与跟踪研究
2022-08-10邱少林
邱少林
(安徽博研信息科技有限公司 安徽芜湖 241000)
道路检测和跟踪是许多智能车辆应用的重要任务,例如车道偏离预警(LDW)系统、车道保持辅助系统、驾驶员辅助和自动驾驶[1-2]。道路检测是指在预先不了解道路几何的情况下,对道路边界进行定位,包括道路定位、计算车辆相对于道路的位置等基本任务,而道路跟踪则是从先前的道路参数中更新道路参数。基于视频的道路检测与跟踪与主动传感器相比具有许多优点,因此越来越受到人们的关注[3-4]。一般来说,有两种道路检测和跟踪方法:一种是针对带有黄色或白色车道标记的结构化道路,另一种是针对非结构化道路。该文基于结构化高度公路驾驶场景对车辆视觉传感器的输出进行算法设计和仿真测试。结果表明,所设计的车道线检测和跟踪算法可以实现较好的识别和跟踪效果。
1 车道检测
1.1 车道形状模型
对于结构化道路,车道模型在车道检测中起着重要的作用,其中一些假设是为了更好地从二维图像中恢复三维车道[5-6]。在该文中,假设两条车道线是平行线,并且在平面上是同心圆。设图像平面中的像素(u,v)对应于地平面上的点(x,y)。因此,曲率为k的圆弧近似为
式(1)中,b为地平面上弧的偏移量。地平面上的这些圆弧投影到图像平面上的曲线中。
式(2)中,k'=αk;b'与b、弧曲率k'和相机倾斜角度有关;u0为地平面上弧切线和相机倾斜角的函数。
对式(2)取导数,得到
那么式(2)可以表示为
现在,将k',b',vp的3D 参数空间转换为k',vp的2D参数空间,从而降低了计算复杂性和存储要求。此外,所有车道形状特征的k'和vp均相同,而b'是特定于车道特征的。换句话说,在这些车道形状特征中,车道边缘近似共享k'和vp。它们之间的差异是参数b的值。从而能够通过随机霍夫变换(RHT)快速,稳健地估计k'和vp。因此,可以直接从原始边缘点的位置和方向来估计k'和vp,而无需将边缘点组合在一起成为单独的特征。
给定两个像素(u1,v1)和(u2,v2),在灰度边缘图中采样,k'和vp可计算为
最后,将车道检测定义为估计道路图像中左右车道的k'和b'。
1.2 边缘像素采样
车道检测的任务可以通过简单的阈值操作或一些标准的边缘检测技术对二值边缘图像(通常是灰度图像)进行。
像素采样算法具体如下。
(1)使用具有非零梯度大小的像素形成样本集D。
(2)计算权重w(n)(u,v)。
(3)将包括累积概率在内的所有数据存储在一起,比如(d(n),w(n),C(n)),其中,C(0)=0,C(n)=C(n-1)+w(n),n=0,1,…,N-1。
(4)生成随机数量r∈[0,1]。
(5)通过二元细分求C(q)≥r的最小q。
选择D的q元素作为采样像素。然后对参数k和vp进行估计,验证参数的正确性。因为不能只从参数k和vp得到车道形状,所以必须计算参数b。该模型的参数b可以通过对灰度边缘图像中曲线上点的梯度幅值的累积形成直方图来确定。整个曲线的像素可以累积为
式(6)中,M为由k'确定的曲线长度。如果M超过指定的阈值,则为曲线。
2 车道跟踪
2.1 粒子滤波
原则上,粒子滤波是一种序列贝叶斯滤波方法,即序列蒙特卡罗滤波,粒子滤波广泛应用于车道跟踪。设Zk={z0,z1,…,zk},其表示时刻k之前的测量;Sk={s0,s1,…,sk},则表示时刻k之前的状态。
递归Bayes 滤波包括预测步骤和更新步骤这两个步骤。在预测步骤当中,根据动力学系统模型和时刻k-1之前的后验概率,则有
式(7)中,p(sk|sk-1)为动力学模型的概率密度函数(pdf)。其更新步骤计算给定似然度的p(sk|Zk)和p(sk|Zk-1)。
式(8)中,P(zk|sk,Zk-1)是一个测量模型;P(sk|Zk-1)是一个先验模型;P(zk|Zk-1)是一个常数,可以表示为
基于采样算法来寻找后验概率的表示,用离散的加权粒子对后验分布进行采样:
可以通过直接从建议分布q(s0:k|Zk)中抽样来近似估计,并得到
上述过程称为贝叶斯重要性抽样。
基本粒子过滤算法总结如下:
(1)初始化:对于k=0,从p(s0)中采样N个粒子
(4)在下一次测量到达时,继续进行重要性采样步骤。
2.2 成像模型
只有图像坐标和世界坐标之间的映射模型才能影响观测状态变化。图像坐标(u,v)和车辆坐标(x,y)之间的关系为
图像坐标和像素坐标之间的关系是
式(15)中,(u0,v0)为相机投影中心,fu和fv分别为相机在i和j方向上的有效焦距。车辆坐标、相机坐标和图像坐标之间的关系见图1。
图1 坐标变换
等式(14)中使用的摄像机俯仰角,由以下公式计算:
当x→∞时,vh可表示为
式(17)中,vh为水平线上的v坐标。
另外,相机高度为
2.3 算法流程
基于粒子滤波的车道跟踪算法总结如下。
(1)输入:时刻k的粒子集时刻k+1的观测图像。
(2)迭代:(n=0,…,N-1)。
(3)计算k+1时刻车道位置:k+1时刻车道位置按计算。
3 实验结果与分析
图2显示车道检测与跟踪仿真建模过程与结果。
图2 车道检测与跟踪仿真
基于以上,该文车道检测与跟踪仿真测试步骤总结如下。
(1)基于边缘检测算法将RGB彩色图像转换为灰度图像,提取感兴趣区域。根据道路或相机传感器的位置,标定感兴趣区域的大小,其具体情况见图3。(2)基于Hough变换检测车道。(3)获取车道位置,一旦检测到车道,即可基于简单的几何图形获得感兴趣区域中左右车道的位置点。在该文中,同时保留前三个时间步长的车道上的这4 个点,并且如果在当前时间步长中未正确检测到车道,将使用前面步骤中的点。(4)根据场景视图信息计算距离。使用距离输出矩阵和几何图形,计算从相机中心到两条通道的横向距离。在车辆位置模块中,计算方向盘转角,该角度用于在车辆偏移时以相反方向转动方向盘,具体见图4。(5)绘制车道检测标记线,并显示横向距离信息文本。基于横向距离信息,将转向角应用于某个阈值进行偏离预警,具体见图5。
图3 感兴趣区域提取
图4 车辆位置计算
图5 车道检测结果
4 结语
该文针对高速结构化场景下的车道检测与跟踪问题,首先建立机构化道路形状模型,设计基于边缘采样的车道检测算法;然后基于粒子滤波和图像的坐标转换设计车道跟踪算法;最后在MATLAB-CarSim联合仿真环境下验证所设计的车道检测和跟踪算法的有效性。研究成果将有利于车道偏离预警(LDW)系统、车道保持辅助(LKA)系统、驾驶员辅助和安全警告系统、自动驾驶系统的集成应用。