APP下载

基于融合分割和LASSO回归的实时车道偏离预警

2020-01-09许小伟陈乾坤蔡永祥史延雷曾佳辉

武汉科技大学学报 2020年1期
关键词:车道阈值预警

许小伟,陈乾坤,蔡永祥,史延雷,曾佳辉

(1.武汉科技大学汽车与交通工程学院,湖北 武汉,430065;2.中国汽车技术研究中心汽车工程研究院,天津,300300)

先进汽车驾驶辅助系统(Advanced Driving Assistance System,ADAS)能有效提高汽车行驶安全性,而车道偏离预警(Lane Departure Warning,LDW)系统是ADAS的重要组成部分。目前,基于视觉的LDW系统因结构简单、成本低、实现方便等优点占据应用主导地位,其主要由车道线检测、车道偏离预警决策两部分组成。车道线检测算法可分为基于特征和基于模型两类。前者通过提取道路图像中的某些特征如颜色[1-2]、边缘信息[3-4]、纹理信息[5]等来检测车道线,但路面污染、标识干扰等会对此方法的检测结果带来不利影响;后者是根据道路形状进行数学建模并获得车道线几何模型[6-9],虽然它比基于特征的方法具有更强的抗噪能力,但存在直线模型无法拟合曲线、曲线模型鲁棒性和适应性差等缺点[10]。车道偏离预警决策主要采用基于车辆当前位置(Car’s Current Position,CCP)[11]、车辆偏离时间(Time to Lane Crossing,TLC)[12]、将来偏离量(Future Offset Difference,FOD)[13]的判决算法,其中,CCP算法在汽车行驶方向与车道不平行时不能及时检验出车辆偏离,TLC算法与FOD算法均假设车辆行驶状态在预瞄时间内保持不变,这与实际情况不完全相符。

针对以上问题,本文提出一种基于融合分割和LASSO(Least Absolute Shrinkage and Selection Operator)回归模型的车道偏离预警系统。运用顶帽算法(TopHat)和最大类间方差法(OTSU)相融合的方法分割车道线,可以解决复杂道路环境下的车道线分割及提取问题。运用LASSO多项式回归模型对道路进行参数估计,拟合出参数曲线,可以克服最小二乘法拟合曲线在数据量较小时容易产生过拟合的缺点。最后根据车辆靠近虚拟车道线时的真实车道线角度来判断车辆是否偏离,从而改善预警不及时的问题。

1 车道偏离预警系统流程

本文提出的车道偏离预警系统流程如图1所示,其中车道线检测算法主要包括车道线分割、动态感兴趣区域(Region of Interest, ROI)的确立、LASSO回归模型拟合等关键步骤。首先,将TopHat算法和OTSU算法相融合,分割出车道线背景,并采用Hough变换检测直线,对变换得出的直线斜率筛选后进行平均得到初步车道线位置;然后根据初步车道线位置确定动态ROI区域并进行跟踪处理,在此区域中,利用基于LASSO的多项式回归模型精确拟合出车道线;最后,根据角度偏离预警模型进行预警决策。如果未检测出车道线,将保持上一帧图像的车道线参数进行后续计算;若连续5帧未检测出车道线,则不对此帧进行后续操作。

图1 车道偏离预警系统流程

2 车道线检测算法

2.1 融合TopHat和OTSU算法的车道线分割

由于道路检测模型中常用的Sobel、Canny、LoG边缘检测器以及单一的二值化分割方法鲁棒性较差,而OTSU算法的自适应性和稳定性较强,同时TopHat算法不依赖于光照强度,所以在进行常规的图像灰度化、滤波等基础性工作之外,本文提出一种融合OTSU和TopHat算法的分割车道线背景的方法,以解决单一方法对环境变化鲁棒性差的问题。

如图2所示,在采集的原始图像中选取初步感兴趣区域,使其包含车道和天空,以方便后续OTSU和TopHat算法处理时对前、后景进行分离,并减少后续计算量及其他干扰。同时,对图像进行灰度化预处理以及高斯滤波处理,进一步减少计算量及图像噪声。

图2 选取初步感兴趣区域

OTSU是一种自适应全局阈值分割算法,它运用最大类间方差来分割图像的前景与背景,运算速度较快,非常适用于实时性要求较高的场合[14]。设图像有L个灰度级 [0,1,…,L-1],采用分割阈值T将图像分为前景C0[0,1,…,T](即目标)和背景C1[T+1,T+2,…,L-1]两个部分,则其概率分布为:

(1)

这两个区域的平均灰度为:

(2)

σ2=W0(μ0-μ)2+W1(μ1-μ)2

=W0W1(μ0-μ1)2

(3)

使方差最大的T值即为所求分割阈值。

TopHat算法由图像形态学中的腐蚀和膨胀两种基本方法组成。即使在道路存在阴影或其他干扰的情况下,车道线的亮度也会高于周围亮度,运用TopHat算法可凸显车道线在道路背景中的位置,增加目标与背景之间的亮度差,提高车道线与背景的辨识度[15]。TopHat算法的具体公式如下:

(4)

式中:src(x,y)代表输入图像;open(src)、erode(src)、dilate(src)分别代表对输入图像src的开运算、腐蚀运算、膨胀运算;∧、∨分别代表逻辑与、或运算;b(m,n)代表内核为(m,n)的卷积核。

对图像分别进行OTSU算法及TopHat算法分割,并且将TopHat处理过的图像进行Canny边缘检测,得到两种算法分割完成的二值图像,依次对两个二值图像中每一个相同位置的像素点进行与运算融合。也就是说,只有两个二值图像中相同位置的像素点均确定为二值白点,则融合后此点像素为二值白点,否则为二值黑点。

2.2 初步直线检测及动态ROI区域确立

虽然融合OTSU与TopHat算法能够改善车道线分割效果,但是此时的图像中仍然包含有天空以及道路两侧的电线杆、防护栏等干扰。如图3所示,对现有图像再次确定梯形感兴趣区域,以减小干扰及加快运行速度,因摄像头位置中心偏右,为更好地包含右车道线,将车道线感兴趣区域设置为相对车道中心线偏右。

图3 车道线感兴趣区域

在梯形感兴趣区域中,不仅包含有左、右侧车道线分割后的像素信息,同时也可能含有路标、减速带等干扰,若直接进行车道线检测拟合,效果差,鲁棒性不强。为此,本文分两次检测车道线,第一次采用直线模型初步检测车道线位置,然后据此进一步确定动态ROI区域,在该区域中进行第二次车道线精确拟合。

在车道线的初步直线检测时,首先对梯形区域进行概率Hough变换(Probabilistic Hough Transform,PHT)。Hough变换是将图像中的直线检测转化为参数空间的对点检测,具体转换公式为:

ρ=xcosθ+ysinθ

(5)

式中:(x,y)为直线上的点坐标;(ρ,θ)为参数空间极坐标。

PHT选择性地对点进行Hough变换,而不是遍历所有像素点,因此可以提高处理速度。由于检测后获得的直线较多,需要进行筛选,如图4所示,具体步骤如下:

(1)通过所检测直线n的两端点(xn1,yn1)、(xn0,yn0)计算斜率kn:

(6)

(2)对检测到的直线进行筛选。由于摄像头前方的车道线不可能为平行线或斜率绝对值较小的直线,因此依据斜率来筛选所检测的直线,分为左车道集合{kil|kn∈(-20,-0.2)}、右车道集合{kir|kn∈(0.2,20)},剔除不可能为车道线的直线。

(3)分别对两个集合中的所有车道线斜率进行平均,以获得更为准确的车道线斜率。

图4(a)为确定了梯形区域的待检测图像。从图4(b)可以看出,经过PHT检测后的直线包括道路中的减速带、路边障碍物、前方车辆等干扰,无法直接提取车道线。如图4(c)所示,通过计算斜率并筛选后,大部分干扰直线被剔除,能够对车道线进行初步检测估计。如图4(d)所示,左、右车道线集合中的直线斜率经过平均,可得到两条直线,即为初步检测出的车道大致方位。

(a)待检测图像

(b)PHT检测直线

(c)直线筛选

(d)最终所获直线

检测出的直线旁边往往有许多杂乱短线段干扰,为了后续车道线检测时更加精准,在剔除部分直线的同时需要去除周围的短线段干扰。以被剔除的直线为中心,进行一定范围内d个单位像素的上、下删减(这里取d=3)。如图5(a)所示,PHT检测后的直线AB为被剔除直线,以AB为中心,同时对含AB直线像素上、下3个单位进行消除,可将直线AB及周围短线段干扰去除。如图5(b)所示,经过筛选直线、消除短线段后,车道线两旁已经去除绝大部分干扰,适合进行后续的车道线拟合。

(a)待消除线段图像

(b)干扰消除后效果

为了进一步加强后续车道线拟合的鲁棒性,在初步检测出的两条直线基础上,以直线为中心,进行y个单位像素的上、下平移,从而确定动态感兴趣区域(这里取y=40),如图6所示,这样在后续拟合时可减少因车辆变动、其他道路物体进入待检测区域所带来的干扰,同时在动态感兴趣区域内可获得车道像素信息。

图6 动态感兴趣区域

2.3 车道线动态ROI跟踪算法

在车道线检测算法应用过程中,仍然可能存在车辆遮挡、车道线残缺不全、道路标识干扰等多种道路干扰问题,会使某一帧或某几帧检测失效,无法检测出车道线[16],导致后续的车道偏离预警产生误报、漏报等情形。而采用滤波算法对车道线进行追踪,用滤波器输出的最优估计值来代替当前计算观测值,可以使得检测结果更加稳定,大大提高检测算法的稳定性和鲁棒性[13]。因此,本文采用卡尔曼滤波算法对初步检测的直线车道线进行跟踪,即实现对车道线动态ROI区域的跟踪。

卡尔曼滤波算法是根据上一时刻(k-1)检测出的车道线位置信息预测当前时刻k的车道线位置坐标。可知初步检测得到的车道直线的状态参数:极径ρk和极角θk,则k时刻的状态向量Xk表示为:

Xk=[ρk,θk]

(7)

(8)

(9)

(10)

(11)

(12)

式中:H为测量矩阵;R为测量噪声;Zk为k时刻的状态向量观测值;I为单位矩阵。

2.4 基于LASSO回归模型的车道线拟合

利用线性回归建立车道线模型是一种常用的车道线检测方法。令:

(13)

式中:(xn,yn)为车道线像素坐标;a、b为线性回归拟合参数。

上式可表示为:

D=SMT

(14)

根据最小二乘法原理,通过矩阵运算可得:

M=DT(SST)-1S

(15)

解出参数矩阵M,即可用来进行车道线的拟合。

线性回归方法计算简单,但是车道线并不都是直线,当遇到非线性的弯道时,线性回归方法将难以满足要求。为了进一步提高车道线拟合精度,本文采用基于LASSO的多项式回归拟合方法。

对于非线性模型y=β1x2+β2x+β0,令

X1=x2,X2=x

(16)

则可以转化为对参数β1、β2、β0的线性模型:

y=β1X1+β2X2+β0

(17)

令X=[X1X2],参数β=[β1β2β0],则有:

y=XβT

(18)

二次多项式在用最小二乘法拟合数据时会因存在噪声、数据量较小等原因而产生过拟合的情况,拟合效果不理想。采用基于最小二乘法的LASSO回归,在最小化残差平方和的同时规划参数项,可利用L1范数减小各项参数的绝对值之和,使参数值稀疏化,从而防止过拟合。

利用LASSO方法得到的回归系数为:

(19)

式中:Xij、yi分别为车道线样本点的数据变量;λ为L1正则项参数。

y=D=S′M′

(20)

根据上式,利用L1正则化的LASSO方法,有:

(21)

‖y-S′M′‖2+λ‖M′‖1

=yTy-2yTS′M′+M′TS′TS′M′+λM′TW-1M′

(22)

式中:W=diag(|β1|,|β2|,|β0|)。

为求得最小值点,对上式求关于M′的一阶导数,令其为零,可得到最优参数矩阵:

M′=(S′TS′+λW-1)-1S′Ty

(23)

依据此参数矩阵可对车道线进行拟合。若因道路出现较多干扰、漏检测等原因导致LASSO无法有效拟合时,考虑到两帧之间时间间隔较短,相邻帧之间变化差距小,仍采用上一帧的车道像素坐标信息拟合并进行后续计算,可较好地拟合车道线;当连续5帧无法有效拟合车道线时,则不对此帧进行后续操作。采用此策略可以避免因车道线无法检测导致的程序中断问题。

3 基于角度模型的车道偏离预警决策

车道偏离预警决策是在车道线检测的基础上,根据车辆和车道线的位置关系来判定车辆是否有偏离车道的危险,并适时发出报警[17]。针对CCP算法预警不及时的问题,本文提出一种基于车道线角度模型的偏离预警算法。

如图7所示,根据拟合获得的左、右车道线参数,可以得到两条拟合车道线ab、cd的斜率,依据斜率可以将其转化为车道线与水平方向在图像上的角度θL、θR。当车辆向左或右车道线偏离时,θL和θR持续变化,当θL、θR超过所设阈值θ′L、θ′R时,可判断车辆向左或向右偏离。在确定阈值θ′L、θ′R时,为避免车辆已经越过车道线才开始报警,设置分别平行于车道线ab、cd并且距离为d的虚拟车道线pq、mn,其中d=ap=cm。当车辆抵近虚拟左车道线时,将图像中此时拟合得到的车道线ab与水平方向的角度θL设定为阈值θ′L;当车辆抵近虚拟右车道线时,同理可得到阈值θ′R。也就是说,车辆靠近虚拟车道线时,图像中得到的θL、θR与阈值θ′L、θ′R很接近,当车辆越过虚拟车道线时,θL、θR将超过阈值θ′L、θ′R,可判断车道偏离,起到提前预警的作用。在实际驾驶中,基于左、右车道线与水平方向夹角的偏离预警决策机制比较符合人类思维方式,同时因为省去了如FOD等偏离预警算法对横向速度信息的需要,节约了此类速度传感器的硬件成本。

图7 基于角度模型的偏离预警示意图

Fig.7 Schematic diagram of departure warning based on angle model

根据位置关系,将车辆的行驶状态分为3种:

(1)当车辆向右偏离时,θL持续减小,θR持续增大。

(2)当车辆向左偏离时,θL持续增大,θR持续减小。

(3)当车辆稳定行驶时,θL和θR不会持续性增大或减小。

所以,当车辆持续向右移动时,如果θR大于设定阈值θ′R,则表明车辆有向右偏离趋势,需要进行报警;当车辆持续向左移动时,如果θL大于设定阈值θ′L,则表明车辆有向左偏离趋势,需要进行报警。本文设置d=0.2 m,得出阈值θ′L=39°、θ′R=49°。

4 实验结果与分析

基于Python编译环境完成本文车道偏离预警算法软件设计。所用实验平台配置为CPU Intel i5-8500,内存8 GB。以某标致408车型在武汉市区拍摄的多段视频对算法进行验证,摄像头位于车辆中心偏右,视频分辨率为1980×1080,视频帧率为30 fps。

图8所示为经过OTSU算法、TopHat算法和融合算法分割后的检测结果。从图8(a)可以看出,只采用OTSU算法分割处理后,车道线边缘处噪声较多,影响后续车道线检测效果,如图8(b)所示,对右车道线进行后续初步检测将产生偏差。从图8(c)可以看出,经过TopHat算法处理与Canny边缘检测后,道路分割效果并不理想,道路干扰较多,如图8(d)所示,车道线后续初步检测偏离较大。从图8(e)可以看出,经过OTSU与TopHat算法融合后,分割图像中道路干扰与噪声较少,如图8(f)所示,后续的车道线初步检测效果好,明显优于采用单一方法的检测结果。

图9所示为车道线经过回归拟合后的结果对比。图9(a)为待检测图像,图9(b)为经过分割及确定车道线区域后的图像,可以看出,左侧车道线的下方为无车道线标识的空白区域,用最小二乘法拟合时会出现因数据量小而导致过拟合的问题(见图9(c)),而采用LASSO多项式回归能较好地拟合车道线,有效解决上述问题,如图9(d)所示。

(a)OTSU分割 (b)OTSU分割的后续车道线检测

(c)TopHat分割 (d)TopHat分割的后续车道线检测

(e)融合分割 (f)融合分割的后续车道线检测

图8 车道线分割和初步检测结果对比

Fig.8 Comparison of segmentation and preliminary detecting results of lane lines

(a)待检测图像 (b)车道线分割图像

(c)最小二乘法拟合 (d)LASSO多项式回归拟合

图9 车道线拟合结果对比

Fig.9 Comparison of lane line fitting results

图10所示为采用本文方法对不同高速道路环境下的车道线检测结果。图10(a)为有虚线边界车道线的道路,图10(b)为有直线边界车道线的道路,同时存在防护栏干扰,图10(c)为有横向污染干扰的道路,图10(d)为有道路文字提示等标识干扰的道路,图(e)为曲率较小的虚线边界弯道,图(f)为曲率较大的直线边界弯道。从检测结果来看,本文算法适应多种道路环境,能准确检测出各种复杂道路环境下的车道线。

(a)虚线边界道路 (b)直线边界道路

(c)道路污染干扰 (d)道路标识干扰

(e)小曲率拟合 (f)大曲率拟合

图10 多种道路环境下的车道线检测结果

Fig.10 Detecting results of lane lines in multiple road conditions

由于现实路况场景中的车道线有一定的宽度,而算法检测结果以单一的线条标出,为了更准确地评价本文算法性能,参照文献[18],当检测结果标出位置在车道线所在范围内,即认为检测正确,并使用误检率(False Detection Rate,FDR)、漏检率(Missing Detection Rate,MDR)和正检率(Correct Detection Rate,CDR)作为评价指标,具体公式如下:

(24)

式中:TNF为待检测图像总帧数;NFD为车道线检测错误的图像帧数;NMD为未检测出车道线的图像帧数;NCD为车道线检测正确的图像帧数。

针对5种不同道路环境及车辆状态下的视频片段采用本文算法进行车道线检测,算法评价结果如表1所示。从表1可以看出,5种情况下,所提出的算法均具有较低的误检率和漏检率以及较高的正检率。相比较而言,在稳定行驶的直线道路上正检率较高;在稳定行驶的有干扰道路上会出现较多误检,但正检率依然较高。弯道包括虚线边界弯道及直线边界弯道,在稳定行驶中,因拟合曲率大,误检率较直线道路有所上升。当车辆在直道和弯道上向右或向左偏离时,均有较高的正检率。该算法总的正检率为96.07%。

图11显示车辆在偏离车道时的预警系统决策结果,可以看出本文算法是有效的。当车辆接近设置的虚拟车道边线时即可测得真实车道线与水平方向的夹角,然后与阈值相比较,就可以判断出车辆是否向左或向右偏离。

表1 车道线检测结果评价指标

(a)向左偏离 (b)向右偏离

图11 车道偏离检测与预警结果

Fig.11 Detecting and forewarning results of lane deviation

为了进一步验证本文算法的优越性,将其与文献[2]、文献[4]、文献[9]中的方法进行对比,结果如表2所示。

表2 不同算法的比较

由表2可见,本文算法在视频分辨率为1980×1080的条件下检测速率可达到32 ms/帧,小于每帧图像采集时间(33.33 ms/帧),并且每帧图像处理时间远低于表2中其他方法。这是因为,本文算法分两步检测车道线,大大减少了计算量,能够快速准确地检测出车道线。从正检率来看,本文算法优于文献[2]和文献[4]中的算法,略逊于文献[9]中的算法,但如果综合考虑到分辨率,本文算法的性能更佳。根据32 ms/帧的检测速率,若以驾驶速度60 km/h计算,车辆每行驶0.53 m可以更新一次车道线偏离决策信息,若以驾驶速度120 km/h计算,车辆每行驶1.07 m更新一次,这表明本文算法具有良好的实时性。

5 结语

本文提出了一种适用于城市结构化高速道路的车道偏离预警新方法,采用TopHat和OTSU算法融合来分割车道线,然后分两步进行车道线检测,在初步确定的车道线位置创建动态ROI区域并进行跟踪处理,在此区域内利用LASSO回归模型拟合车道线,最后通过基于角度模型的车道偏离预警决策机制进行预警,不仅提高了车道检测精度,还提高了运算速度。该方法能够准确、快速地检测出车道线,在有道路干扰、弯道等复杂道路环境下的正检率达到96%以上,满足车道偏离预警系统的实时性和鲁棒性的要求。然而,在研究中同时也发现,对于夜晚、雨天等光照强烈变化条件下的道路场景,该算法的车道线正检率较低,下一步将针对这种情况拟采用深度学习方法进行深入研究。

猜你喜欢

车道阈值预警
基于OpenCV的直道车道线识别技术研究
预警型智能包装在食品安全中的应用和设计
北斗+手机实现车道级导航应用
土石坝坝体失稳破坏降水阈值的确定方法
超级秀场 大风预警
采用红细胞沉降率和C-反应蛋白作为假体周围感染的阈值
基于单片机的潮汐车道设计与实现
斑马线前该如何礼让
辽宁强对流天气物理量阈值探索统计分析
一种改进的小波阈值降噪方法