基于行距离及粒子滤波的车道线识别算法

2020-05-08 05:08杨金鑫谢纯禄
关键词:车道坐标系滤波

杨金鑫, 范 英, 谢纯禄

(太原科技大学 交通与物流学院, 山西 太原 030000)

在无人驾驶视觉感知方面,车道线识别技术是重要的一个应用,一个优秀的车道线识别算法必须保证在多种路况下识别的可靠性和鲁棒性.

当前,国内外学者提出的车道线检测算法主要包括2部分: ① 传统车道线检测算法; ② 基于机器学习的检测算法.传统车道线检测也可分为2类:基于特征与基于模型的检测方法,U. SUDDAMALLA等[1]利用车道线像素强度与边缘梯度,通过自适应阈值检测车道线.J. M. COLLADO等[2]根据车道线的几何特征及Hough Transform对车道线进行检测.DENG J. Y.等[3]将车道线分成远端和近端2部分,近端根据直线模型拟合车道线,远端利用B样条对车道线进行拟合.传统车道线检测在特定环境下检测性能良好,但对于复杂环境下鲁棒性较低.在机器学习方面,M. REVILLOUD等[4]根据驾驶员行为建立置信度网络和多机构检测模型.PAN X. G.等[5]提出通过上下文特征的设计网络架构传递空间信息对车道线进行检测,并公布了一个大型车道线标记数据集.机器学习的方法大多不需要人工提取特征,需要大量计算空间,且算法优化较难,J. RUYI等[6]构造了3D车道线模型,需要优化的参数较多.

为了解决上述方法出现的问题,笔者在图像行距离[6]的基础上建立一个简单车道线模型,并利用粒子滤波来进行车道线检测.此方法利用行距离可将车道线虚线部分连接起来,从而得到一个连续的车道线信息,有利于算法迭代运行.通过建立一个简单的车道线模型联合粒子滤波,可以很好地追踪车道线边界点,以适应复杂的城市道路环境.

1 简单车道线模型

现实环境中道路状况复杂,一个严格的车道线模型无法适应多种路况.因此可根据先验知识来简化道路模型,提出一种简单车道线模型如下: ① 假设车道线由左右两条曲线组成,且曲线均连续; ② 假设车道线宽度在一定路况中变化微小; ③ 假设车道平面水平,车道线边界光滑根据以上假设构建的车道线模型如图1所示.

图1 车道线模型

图1中:W0为逆透视图像下车道线的计算宽度;Pc为车道线每行的中点;PL为左车道线边界点;PR为右车道线边界点.通过W0和Pc可算出PL与PR,即

(1)

2 图像预处理

2.1 图像二值处理

实际环境中路况会受到类车道线、光照变换等噪声干扰,单纯的图像二值化无法适应多变的环境.由相机直接采集的图片数据色彩空间是RGB格式,当对其灰度图进行二值化时,鲁棒性较差,而车道线亮度明显高于其他部分,因此可采用HSV的色彩空间,并提取其中的V通道进行灰度处理,为突出车道线部分需要分离出前景和背景,计算方法如下:

G(x,y)=HV(f(x,y)),

(2)

(3)

Im(x,y)=G(x,y)+G(x,y)-G(x,y-s)-
G(x,y+s)-|G(x,y-s)-G(x,y+s)|,

(4)

(5)

式中:G(x,y)为新的灰度图;f(x,y)为尺寸是N×M的RGB图片;HV为HSV格式中的V通道处理函数;Bm为亮度均值;s为平移常量,设定s=8 pix;Im(x,y)为简单滤波器[7].

为了提高滤波效果可根据Bm做进一步判断,然后利用简单二值处理得到最终二值图像.

2.2 逆透视图像

单目相机基于单孔模型建立,因此拍摄的图片不能真实反映大地坐标系下车道线平行且等宽的物理特性.为了令车道线模型可迭代运行,需进行车载相机的标定,假设路面平坦,利用标定后求解得到的单目相机的内参和外参,获得世界坐标系点与图像坐标系点之间的关系,即单应性矩阵,从而可得到逆透视图像.世界坐标系、相机坐标系和图像坐标系位置关系如图2所示[8].

图2中:Fw=(Xw,Yw,Zw)为世界坐标系;Fc=(Xc,Yc,Zc)为相机坐标系;Fi=(u,v)为图像坐标系;α与β分别为相机相对于车辆的俯仰角和偏转角;h为相机相对于大地平面的高度.利用相机内参焦距(fu,fv)和光学中心(cu,cv)可得图像点到世界坐标点的单应性矩阵[8],即

(6)

式中:c1=cosα;c2=cosβ;s1=sinα;s2=sinβ.

也容易得到世界坐标系点到图像上的单应性矩阵,即

(7)

根据Tig可得W0=80 pix.二值化的逆透视图像如图3所示.

图2 逆透视坐标变换

图3 二值化的逆透视图像

3 行距离计算

实际路况中常含有虚线车道线,为了将虚线连接成连续的直线,突出车道线狭长的特征,在二值化的基础上对图像中每个像素进行行距离计算[9].令车道线边缘点像素值为255,对图像中每个像素点求距离它最近像素值为255的点,即

D(I(x,y),Iedge(xedge,yedge))=|x-xedge|,

(8)

d=minD(I(x,y),Iedge(xedge,yedge)),

(9)

式中:Iedge(xedge,yedge)为车道线边缘点;x为像素点的横坐标.

将计算后的距离d放入I(x,y)的位置中,令像素值为255点的行距离d=0.因为边缘点有可能在像素点的左侧或者右侧,可得

L=x-xedge,

(10)

式中:L为不包含绝对值的距离,L为正值表明像素点在边缘点的右侧,反之为左侧.

将L保存到另一个与输入图片尺寸相同的矩阵K中,留存使用.行距离图如图4b所示,由于像素为255点的距离值为0,距离边缘点越远的点其d值越大,反映到图中的情况就是车道线部分成黑颜色区域,两车道中间部分d相对较大,则为白色区域.

图4 逆透视图像及行距离图

从图4可以看出:逆透视图中虚线通过行距离运算连接了起来,利于使用粒子滤波进行迭代处理.

4 利用粒子滤波进行车道线检测

首先利用行距离步骤中的K矩阵进行初始粒子搜寻,在车道区域内部从左往右,先是距离左侧车道线较近,然后在向右移动的过程中L的值增大,在某一点达到最大值,根据式(1),L突然变成负值,直至达到右侧车道线变成0.这样就可以找到车道中点的初始粒子位置,如图5所示.

图5 搜寻初始粒子

根据初始车道中心粒子位置xc0,以及根据逆透视计算得到的W0,可得初始粒子状态X0(xc0,W0).

将粒子滤波[10]应用在建立的车道线模型中,状态向量为X=(xcn,Wn)T,式中:xcn为迭代后的粒子x向坐标;Wn为迭代后的车道线宽度.根据动态线性模型,可得下一个粒子的更新状态,即

Xin=AXi(n-1)+kn,

(11)

式中:X为粒子状态;i为候选车道点索引;A为2×2的单位矩阵;因为假设路面是水平的,故kn为一个满足高斯分布的随机向量.

在测量阶段,每一个粒子会按照观测模型分配一个权重,每一次迭代仅在y方向上进行,有

ycn=yc0+nΔ,n=0,1,…,N,

(12)

式中:ycn为迭代后粒子的y坐标;yc为粒子初始y向位置;N,Δ分别为候选车道点个数和搜索框个数,根据实际情况,设定N=23个,Δ=20 pix.

模型基于行距离图建立.由行距离得知,车道线中心值较大,车道线上的值很小,因此可计算每个粒子按Wn在J内的行距离之和Si,设定J=20,可得

(13)

式中:g为随机数.

对每一个粒子计算权重值wrodti,即

(14)

式中:b1,c1为试验系数.

据多次试验,设置b1=1,c1=5,利用图4得到更新的中心点坐标,然后更新其宽度,计算式如下:

Wcenter=2d(xupdate_center,ycn),

(15)

(16)

Wupdate_width=Wn+kg(Wcenter-Wn),

(17)

式中:Wcenter为更新后的车道线宽度;xupdate_width为更新点位置;k,g分别为试验系数;Wupdate_width为每行更新后的单侧车道线宽度.

粒子滤波识别车道线的检测结果如图6所示.

图6 粒子滤波识别车道线的检测结果

5 试验结果及分析

采用离线处理数据的方式,图像分辨率设置为640×480 ppi,使用编程语言为Python,主要使用OpenCV,NumPy,Matplotlib库,硬件配置:英特尔i7处理器,英伟达MX150显卡.单帧处理时间约为20 ms.试验所使用的数据均来自城市道路环境,包括车辆阻挡、路面干扰和弯曲道路等路况.

复杂场景下的检测结果表明,提出的利用粒子滤波来进行车道线检测的方法能够很好地识别多种环境下的车道线信息.粒子滤波效果如图7所示.

图7 粒子滤波效果

从图7可以看出: ① 路面有交通标识干扰,在行距离图中心线部分明显受到干扰(图7d),车道线区域大部分都有噪声干扰(图7g),左侧车道线附近有类车道线影响的情况下(图7h),算法根据计算行距离图,尽可能突出车道线狭长、等宽的特性,迭代处理后仍可以识别出车道线位置; ② 在有车辆及行人影响(图7b)、有前车阻挡车道线(图7f)、大量车辆阻挡以及车道线均为虚线(图7c)、尤其是在行人阻挡严重(图7e)的情况下,算法仍可以根据行距离图将阻挡部分显示出来,然后利用粒子滤波搜寻到权值最大点,识别出准确车道线; ③ 在直道及弯道,算法表现良好(图7a,i),说明根据一个简单的车道线直线模型基于粒子滤波算法,不需要给定过于严格的车道线模型,算法仍能识别出不同路况的车道线.

6 结 论

1) 根据车道线在经过逆透视变换之后,常为狭长、平行的特征,利用行距离图可以将车道线断裂、虚线部分根据上下文关系连接起来,提高了车道线整体识别水平.

2) 由于过于严格的车道线模型在多变的环境下鲁棒性较低,根据设定的线性模型及概率密度函数,基于简单车道线模型的粒子滤波算法,在复杂环境下车道线识别准确度较高.

3) 试验结果表明,提出的算法在复杂路况中具有较好的鲁棒性和抗噪性.

猜你喜欢
车道坐标系滤波
独立坐标系椭球变换与坐标换算
北斗+手机实现车道级导航应用
避免跟车闯红灯的地面车道线
浅谈MTC车道改造
解密坐标系中的平移变换
坐标系背后的故事
一种GMPHD滤波改进算法及仿真研究
基于自适应Kalman滤波的改进PSO算法
低速ETC/MTC混合式收费车道的设计与实现
RTS平滑滤波在事后姿态确定中的应用