基于优化最大类间方差法阈值分割与滑动窗口法的车道偏离预警*

2023-06-23 04:07黄艳国钟勇饶泽浩
汽车技术 2023年6期
关键词:车道边缘预警

黄艳国 钟勇 饶泽浩

(江西理工大学,赣州 341000)

主题词:最大类间方差法 整体嵌套边缘检测 车道线检测 滑动窗口法 车道偏离预警

1 前言

车道偏离预警系统(Lane Departure Warning System,LDWS)[1]作为高级辅助驾驶系统(Advanced Driving Assistance System,ADAS)[2]的重要组成部分,通过环境感知传感器探测车辆与车道线的位置关系,可在车辆即将越过车道线时对驾驶员进行提示,有效提升驾驶安全性。

目前,商用LDWS 主要基于视觉感知开发,其通过对摄像头采集的图像进行处理分析,能够达到比普通雷达更高的精确度,同时具有性价比高、结构简单等特点[3],受到了广大专家学者的关注。

在基于视觉的车道偏离预警研究中,许小伟等人[4]使用顶帽算法结合最大类间方差法(OTSU算法)对车道线进行分割,并使用最小绝对值收敛和选择算子(Least Absolute Shrinkage and Selection Operator,LASSO)多项式拟合车道曲线,最后根据车辆行驶时的虚拟车道线角度来判断车辆的偏离状况,该方法有效解决了复杂道路环境下的车道线分割问题,并缩短了预警时间。Teo等人[5]通过伽博(Gabor)滤波器抑制道路阴影并增强车道线标记,而后使用坎尼(Canny)算子结合自适应阈值调整对车道线进行自适应边缘检测,使用概率霍夫变换筛选出候选车道,最后根据欧几里得距离与车道偏离角来判断车辆的偏离状况。该方法计算复杂度低、实时性好,具有较高的成本效益。李福俊等人[6]通过改进的霍夫变换识别车道线后,使用四点标定法对车道线进行校正,最后在鸟瞰图的基础上计算车身偏离量,该方法耗时较短,具有良好的鲁棒性与实时性。以上研究在图像预处理阶段多使用传统的索贝尔(Sobel)、Canny以及普雷维特(Prewitt)等边缘检测算子[7-8],此类边缘检测算法极度依赖特定的阈值参数,通常是人为设置的经验值,容易受到环境干扰。同时,霍夫变换的局限性使其在拟合弯道时的精确度不高,从而降低了车辆偏离预警系统的整体准确率。

为了解决以上问题,本文在图像预处理阶段使用遗传退火算法求解出OTSU最优阈值实现对车道线的二值分割,同时使用整体嵌套边缘检测(Holistically-nested Edge Detection,HED)模型进行车道边缘提取,结合滑动窗口法与二阶多项式进行车道拟合,最终利用车辆与车道相对位置信息进行偏离预警决策,以达到提升系统整体预警准确度的目的。

2 图像预处理

2.1 改进的OTSU二值化方法

OTSU算法计算简单,不受图像亮度和对比度影响,广泛用于图像分割中的阈值选取。在车道线检测中,车道线与道路背景的差别较大,类间函数不易出现多峰现象,能较好地发挥OTSU算法优势[9]。

传统方法求解OTSU最佳阈值时,常采用遍历法使得类间方差最大来获取最佳阈值,但方法计算量较大,迭代次数多或直接使用固定阈值[10]。为了加快算法速度,本文使用改进遗传退火算法[11]优化OTSU 算法的阈值计算,其中遗传算法对迭代过程进行优化,为防止其陷入局部最优解,结合模拟退火算法允许在获得最优阈值时有小范围的波动,达到快速收敛的目的。

2.1.1 OTSU阈值分割原理

假设原始图像中像素总数为K,对应灰度级为i的像素点数量为ki,灰度级数量为L,i的取值范围为[0,L-1],由此可得灰度级为i的像素点出现的概率为:

通过最优阈值t将像素点分割成前、后景,其中灰度值为[0,t]的部分被分割成前景Q0,灰度值为(t,L-1]的像素点被分割成后景Q1,同时,前景类概率ω0与后景类概率ω1分别为:

图像平均灰度级μt、前景平均灰度值μ0、后景平均灰度值μ1分别为:

由此可得Q0与Q1间的类间方差σ2为:

求得使类间方差最大的像素值t即为最优阈值,据此便可对原始图像进行二值分割处理。

2.1.2 遗传退火算法求解最优阈值

为加快OTSU算法求解最优阈值的速度,使用遗传退火算法对迭代过程进行优化。随机生成初始种群,通过选择、交叉、变异等操作生成新一代种群,并将适应度函数设置为前、后景类间方差,每次迭代后得到适应度更高的种群。为防止陷入局部最优解,在每次迭代后允许最优个体A以一定的概率波动,由此生成新个体B,再分别计算个体A、B的适应度σ(A)、σ(B),若σ(B)≥σ(A),则使用新个体B替换A成为最优个体,反之,则按概率C=Eu(σ(A)-σ(B))/c(Eu为欧拉数,c为当前温度)接受B个体为最优解。其中模拟退火算法的主要流程如图1 所示。

图1 遗传退火求解OTSU最优阈值流程

引入模拟退火算法后,在一定程度上增加了运算成本,为此,在数组运算时采用Numpy索引切片运算来替代常规的for循环,并将原始图像的长度、宽度各缩短到原来的1/4,以此加快阈值计算速度。算法得到的最优解即为最优阈值,将其解码成十进制数便可得到最终结果。

2.1.3 改进OTSU算法车道线分割

在进行二值分割操作前,需要将原始图像转换成灰度图像。常规灰度化采用加权平均的方式在RGB格式下提取,存在无法凸显原车道线主体的情况[12]。在HLS图像格式下拆分出S 通道灰度图能更好地凸显车道线特征,上述2种灰度图像提取效果如图2所示。

图2 灰度化效果对比

相比常规方法,S通道灰度图像中的车道线特征明显、清晰,使用S通道进行二值分割测试,种群的迭代情况如图3所示。

图3 种群迭代中最优个体的适应度情况

初始种群最优个体适应度为2 189.618,迭代结束后最优个体适应度为2 195.977,其对应灰度值119即为最优阈值。根据遗传退火算法所得最优阈值对图像进行二值分割,得到最终的二值分割图像如图4所示。

图4 OTSU二值分割效果对比

观察图4 可知,经过遗传退火算法优化后,图像阈值分割更加准确。相对于传统方法,图像中的某些微小噪声被过滤,能够更加准确地表征图像中的车道线信息。同时,在处理速度方面,本文方法较传统遍历法提升5%,能够有效节省整体车道检测耗时。

2.2 边缘检测与感兴趣区域提取

2.2.1 边缘检测

车道边缘是车道检测中的重要结构特征,通常根据车道线与图像背景的梯度差异进行提取。传统车道边缘检测多使用X方向的Sobel 算子或Canny 算子进行提取,此类边缘检测算法极度依赖于几个阈值参数。阈值参数通常取人为设置的经验值,导致算法的鲁棒性受到影响,在应对复杂环境时存在边缘检测不理想的情况。

本文选择使用HED网络[13]来实现车道线边缘提取,HED 模型由Xie 等人提出,其基于VGG16 骨干网络,并且使用迁移学习初始化网络权重,同时进行多尺度特征融合,HED 的优点在于减少了图像中大部分不相关的信息,同时过滤了噪声,从而缩短了检测时间。通过OpenCV 调用HED 模型对二值化分割后的图像进行边缘提取。分别使用HED方法与传统边缘检测方法得到车道线边缘特征,结果如图5所示。

图5 不同方法边缘检测效果对比

观察图5 可知,图5b、图5c 中车道边缘特征模糊、车道线轮廓狭长且不光滑,检测效果不太理想。这是由于Sobel 算子计算方向单一,无法应对车道背景存在复杂纹理的情况,直接应用经验阈值判断造成了较多的噪声误判;Canny 算子基于梯度阈值的双阈值方法难以在抑制噪声的同时保护低强度边缘,易将噪声误判为边界,经验阈值自适应能力较差。而HED 模型基于神经网络对边缘的高、低层特征的全面提取,使得所获取的车道边缘明亮、清晰且光滑,同时背景中噪声较少。

2.2.2 感兴趣区域提取

由于车载相机拍摄的图像包含较多的背景冗余信息,如车道旁的树木、路肩、天空等,去除后并不会影响检测结果。同时,车载相机相对车辆位置固定,车道线集中出现在图像的下半部分,故根据车道线在图中的相对位置,设置感兴趣区域的4 个顶点,从而将车道线区域切分出来,感兴趣区域提取结果如图6所示。

图6 感兴趣区域提取示意

由于摄像机的成像原理导致现实中平行的车道线在图像中呈现远处相交的趋势。使用逆透视变换[14]操作将感兴趣区域转换成鸟瞰图的形式,使得车道线回归平行的状态,以提升车道拟合准确率。图7所示为逆透视变换后的感兴趣区域鸟瞰图,转换后车道线相对平行,易于后续拟合。

图7 鸟瞰图转换效果

3 车道线检测

3.1 车道线起始定位

在对车道线进行识别前需要确定左、右车道线在图像中的起始位置,对图像中的像素值进行统计便可确定。例如,某鸟瞰图的数组维度(分辨率)为(1 280,900),将同一X轴上的像素值进行累加,根据统计结果确定左、右车道线的起始点,如图8所示。

图8 车道起始位置定位效果

观察图8b 发现,左、右车道像素统计均出现2 个波峰中夹杂1个波谷的现象,这正对应车道线中心像素值较低的位置,该波谷为原始图像中左、右车道线的起始点位置像素坐标(u0l,v0l)、(u0r,v0r)。

3.2 车道线检测

滑动窗口算法最早被应用于网络传输控制协议(Transmission Control Protocol,TCP)中,通过滑动窗口控制流量来防止网络拥堵,后被广泛运用于数据处理,并表现出了较好的算法稳定性[15]。

在车道线的识别过程中,通过设置一定数量的窗口,按特定的规则进行滑动遍历,并在滑动过程中对窗口内的车道像素进行二阶多项式拟合,直到窗口到达图像边界时结束搜寻。滑动窗口搜寻车道线的具体算法流程为:

a.初始化窗口参数,设置鸟瞰图中点Mn、滑动窗口数量D、滑动窗口宽度W=4w-1,滑动窗口高度H=h/D(其中w为车道宽度所占像素值、h为鸟瞰图高度)、非零像素数量最小值C、窗口内像素总数量N、非零像素点集合(unz,vnz)、左车道线坐标集合(ul,vl)、右车道线坐标集合(ur,vr),左、右车道初始搜寻位置分别为(u0l,v0l)、(u0r,v0r)。

b.初始化搜寻,若N≥C,则根据所得左车道初始位置设置窗口4个顶点ull=u0l-W/2、ulh=u0l+W/2、vlh=v0l+H/2、vll=v0l-H/2同理可得右侧窗口起始位置,并对窗口进行绘制。取出窗口内的车道像素,将其添加到左右、车道线坐标集合中。若10≤N

c.窗口搜寻循环结束后,分别取出左、右车道线像素点,对其中的像素点按v=au2+bu+c进行二阶多项式拟合。

d.循环步骤b、步骤c,若vlh=vrh=h(vrh为右车道线窗口纵坐标)则表示窗口搜寻到图像上边缘,停止窗口搜索循环。

e.窗口搜寻结束后对拟合曲线进行平滑优化处理,将所有窗口中的n条曲线方程分别取出,并将前后相邻的3组曲线重新组合成新分组数据,得到n/3组新数据,对新数据曲线方程进行离散化处理以获得较光滑的拟合曲线,以此降低算法对异常值的敏感性。当前图像检测完成,算法结束。

使用滑动窗口算法对窗口中的车道线进行拟合测试,车道拟合效果如图9所示,拟合曲线光滑、准确。

图9 车道拟合结果对比

4 车道偏离预警策略

4.1 急弯预警

为了提升驾驶安全性,根据车道检测结果对车道曲率进行分析,判断驾驶员前方道路是否存在急弯,结合预警机制及时向驾驶员反馈。车辆在弯道中行驶时,左、右车道线可以视为如图10所示的2个同心圆的一部分,根据该近似等效并结合车道线曲线方程可计算得到弯道半径R。

图10中,O为弯道同心圆原点,Rl、R、Rr分别为左侧车道弯道曲率半径、道路平均弯道曲率半径、右侧车道弯道曲率半径,其中Rl、Rr可由R*的公式计算:

以上所得曲率半径为像素空间值,需将其转换成现实空间的值。转换比例k需由实际测量获得(本文取常见2~4级公路宽度3.5 m),得到每个像素点在实际空间中的长度。根据我国高速公路弯道设计标准,当车速大于80 km/h时,车道曲率半径不得小于250 m,结合实际行驶条件可将预警阈值适当提高,以达到提前预警的目的。

4.2 车道偏离预警决策

传统霍夫变换弯道拟合效果不佳,同时此类偏离预警大都依靠检测左、右车道线与X轴的夹角来判断车辆的偏离情况,在车道线拟合不佳的情况下,此类偏离预警方法的准确率将大打折扣。因此,本文通过计算左、右车道位置与车辆中心位置的相对距离来判断车辆与车道的偏离情况,如图11所示。

图11 车辆中心位置与左、右车道位置关系

图11中Pl、Pr分别表示左、右车道两侧位置,Pm表示车辆中心位置,wl、wr分别表示车辆与左、右车道的距离所占像素值。根据计算得到wl与wr来计算车辆距离车道中心位置距离,即车辆偏移量:

式中,W*为实际车道宽度。

当wl≥wr时,车辆当前向左偏移,否则车辆向右偏离,同时结合偏离报警阈值T进行预警。

结合我国常见道路宽度以及家用车辆常见宽度可知,若车辆行驶在道路正中间,则车辆两侧距车道线约0.85~0.95 m,因此可根据用户的不同驾驶习惯在0~0.95 m之间设置合适的偏离预警阈值。

5 试验测试与分析

试验平台采用Intel Core i5-11260h 处理器,主频2.6 GHz,内存16.00 GB,Windows 10 操作系统。截取原始图像的长度的1/3,得到的测试图像像素大小为1 280×240。

为了检验算法有效性并进行有效评估,采集3组不同天气状况下的车载视频进行测试,分别为:光照良好、车道清晰的高速公路以及城市快速路;光线昏暗环境、光影遮挡的城市路段;雾天视线受干扰环境下的城市路段。

5.1 车道线检测测试

针对以上3种不同路况进行算法有效性检验,分别对原始图像进行改进OTSU 二值化、HED 边缘检测、车道线拟合操作得到如图12所示的不同路况下的车道检测效果。

图12 不同路况下的车道线检测效果

观察图12 可知,本文改进OTSU 算法在3 种不同的行车环境中都能够实现较准确的车道线二值分割,车道线与道路背景划分清晰,路面噪声干扰较少。使用HED 模型丰富的分级特征实现边缘检测中的细节检测,即使在阴天、雾天等存在光线遮挡的情况下也能准确地检测出车道线轮廓,使得车道拟合效果显著提升。

5.2 车道曲率预警及偏离预警测试

基于车道线检测所获取的道路与车辆位置信息,结合偏离预警决策对算法的偏离预警能力进行测试。测试过程中将弯道预警阈值设置为300 m、车道偏离预警阈值设置为0.65 m,并在以上不同行车环境中进行测试,测试效果如图13所示。

图13 不同行车环境下的预警效果

观察图13可知,基于车道检测所得的数据基础,本文方法能够在不同天气状况的行车环境中进行准确的车道偏离与急弯预警。为了进一步观察算法的性能表现,选择在不同环境与行车速度下对算法的误警率和实时性进行测试,测试结果如表1所示。

表1 不同行车环境与速度下的算法性能表现

结果表明,当车辆在城市道路中行驶速度小于30 km/h 或在[30,60) km/h 时,行车环境相对复杂,容易受到周围车辆、非机动车以及行人的干扰,导致检测速度降低、误警率升高,使得驾驶人产生抵触心理。车辆在高速、高架、快速路等环境下以60~120 km/h 速度行驶时,行车环境相对良好,视野开阔且干扰因素较少,此时系统的预警率较高,容易被驾驶员接受。综上,偏离预警系统宜在行车速度不低于60 km/h 时开启,以获得更好的用户体验。

5.3 算法效率测试

为了进一步检验算法性能,在不同行车环境中对单张图像的算法处理准确率进行测试,若当前图像车道检测以及车道偏离预警结果均正确,则认定当前图像处理正确,否则认定为检测错误。根据道路环境对测试视频进行分类,并将其划分为4种道路类型,即路况良好、标志干扰、车辆干扰、路面颠簸,测试结果如表2所示。

表2 不同道路类型车道偏离预警准确率

由表2可知,算法在道路状况良好时能达到97.30%的偏离预警正确率,在道路存在标识干扰以及路面颠簸的情况下依旧能保持94%以上的准确率,但当前方存在车道遮挡干扰时预警率有待提高。

为了比较本文方法与其他方法的差异,采用相同测试数据,与文献[16]、文献[17]、文献[4]中的方法进行测试对比,使用平均测试精度以及单帧图像检测耗时作为评价指标,测试结果如表3所示。

表3 不同算法测试对比

由表3 可知,本文算法平均准确率能够达到95.92%,高于其他3 种算法。算法综合检测速度可达34 ms/帧,略慢于文献[4]提出的算法,这是由于本文采用滑动窗口法拟合车道增加了一定的数据计算量,导致检测时间延长。结合表2中的检测速度可知,若车辆以60 km/h 或120 km/h 的速度行驶,每更新一次偏离信息车辆仅行驶0.58 m 或1.13 m,综合以上数据,表明算法符合实时性要求。

6 结束语

本文通过使用遗传退火算法优化OTSU 阈值分割并结合HED 边缘检测模型来突显车道线特征,在鸟瞰图的基础上使用滑动窗口法进行二阶多项式拟合车道线,结合预警决策进行预警。与传统霍夫变换结合边缘算子的方法相比,本文方法在弯道处的准确率更高,有利于应对更加复杂的道路状况,同时具有更低的偏离量计算复杂度。但由于多窗口的车道线拟合步骤也导致了一定的计算量,使得算法的实时性有待提升,下一步将该缺陷进行优化以更好提升算法的整体性能。

猜你喜欢
车道边缘预警
北斗+手机实现车道级导航应用
避免跟车闯红灯的地面车道线
浅谈MTC车道改造
法国发布高温预警 严阵以待备战“史上最热周”
园林有害生物预警与可持续控制
一张图看懂边缘计算
机载预警雷达对IFF 的干扰分析
低速ETC/MTC混合式收费车道的设计与实现
预警个啥
在边缘寻找自我