车道偏离预警系统关键技术设计*
2019-11-18郑欢欢张雅琼白鱼秀
郑欢欢, 张雅琼, 白鱼秀
(榆林学院 信息工程学院,陕西 榆林 719000)
0 引 言
车道偏离预警系统是一种安全辅助驾驶系统,在车辆驶出行驶车道时系统会给驾驶员发出一个预警,提醒驾驶员的偏离行为,从而减少交通意外[1]。
本文设计了基于改进Sobel算法和Hough变换识别车道线的实时车道偏离预警系统,经实验测试系统性能良好。
1 车道偏离预警系统设计
车道偏离预警系统的功能是在驾驶员驶出当前行驶车道时,系统要对驾驶员发出报警信息以提醒驾驶员避免交通意外的发生。系统主要包括道路图像边缘检测、车道线检测和车道偏离预警决策。各模块功能如下:道路图像边缘检测主要根据道路图像检测车道边缘信息,车道线检测模块将车道边缘连接形成车道线,车道偏离预警决策模块根据预警模型判断是否要进行报警处理。系统模块框图如图1所示。
图1 系统模块框图
2 道路图像边缘检测
2.1 道路图像预处理
直接从摄像机获取的道路图像不仅包含较大的信息量,也包含很多复杂的噪声干扰。如果不采取相应的处理,会严重影响边缘信息的提取。因此,首先需要对图像进行灰度化处理,尽量减少冗余数据信息,提高系统的实时性;其次,要对其进行滤波处理,尽可能地减少噪声干扰,提高图像质量。
2.2 基于改Sobel算法的道路图像边缘检测
利用图像边缘[2]特性对图像进行分割处理在实际中应用广泛,常用的边缘检测方法包括Canny算子、Sobel算子、Robert算子、LOG算子等。其中,Sobel算子具有原理简单,检测效果较好,易于硬件实现的优点。由于车道偏离预警系统对实时性要求较高,本文选择改进的Sobel算子[3]来完成边缘检测。
1)定义卷积模板:Sobel算子是基于一阶微分算子的图像梯度实现边缘检测的算法,采用水平(0°)和垂直(90°)2个方向模板与图像进行卷积运算。模板内数值为权值,通过与图像像素进行加权平均方法计算差分值,不仅能较好地获取图像梯度,而且对噪声起到了一定程度的抑制作用。
仅考虑2个方向,不能准确地检测出图像梯度,检测到的边缘也较宽。因此,改进算法在满足系统实时性要求的基础上,增加了45°和135°方向上的梯度计算[4]。方向模板大小为3×3,各方向模板如图2所示。
图2 改进Sobel算法方向模板
2)梯度计算:设定f(x,y)为连续的数字图像函数,将4个方向模板与图像进行卷积运算,求出模板中心点对应的图像像素点的4个方向梯度值分别为:G0(x,y),G45(x,y),G90(x,y),G135(x,y)。用grad(x,y)表示梯度图像:grad(x,y)=max[G0(x,y),G45(x,y),G90(x,y),G135(x,y)]。
3)边缘细化:从梯度计算可以看出,Sobel算法的梯度图像是通过一阶微分计算得出的,所以在梯度图像的边缘会存在屋脊带。本文采用非极大抑制处理,如式所示
(1)
式中g(x,y)为非极大值抑制处理后的新梯度;点z1,z2分别为经过预处理后的灰度图像3×3领域内与点(x,y)在同一方向上的其余两点。该算法在保留边缘特征的同时,使边缘达到一个像素的宽度。
4)自适应动态阈值:在不同环境获取的道路图像差别较大,如果使用统一的阈值进行处理得到的结果不够精确。因此本文采用局部梯度图像信息设置自适应的动态阈值[5],其定义如下
t(x,y)=[sum(A)-min(A)-max(A)]/7
(2)
式中t(x,y)为局部自适应动态阈值,A为3×3灰度图像窗口像素组成的矩阵。
梯度图像二值化就是根据阈值将梯度图像进行二值化处理[6]。当梯度值大于阈值,则该像素点认为是图像边缘点,像素值为255;当梯度值小于阈值,则该像素点认为是不是图像的边缘点,像素值为0。
3 道路图像边缘连接
边缘检测算法得到的是边缘像素的集合。由于受外界因素的影响,比如噪声、不均匀光照等,这些边缘像素中存在一些虚假灰度像素值。因此,需要采用边缘连接算法,将边缘像素合成有意义的边缘。本设计中边缘连接采用的是Hough变换算法[7,8]。Hough变换是一种快速直线检测算法,它能够快速匹配模板,对于车道线检测来说有较为理想的效果。
Hough变换的主要思想是利用点—线的对偶性,即图像空间xoy中的直线xy对应在参数空间aob中相交的线。Hough变换的直线方程为:y=ax+b。其中,a为斜率,b为截距。为了解决垂直直线斜率无穷大的问题,一般采用极坐标形式:ρ=xcosθ+ysinθ。其中,θ是垂直于图像中直线的直线角度,ρ是原点到直线交点间的距离。
将参数空间离散化成一个累加器矩阵,对于图像上检测出来的每个点(xi,yi)映射到(ρ,θ)对应的累加器中。如果累加器大于指定阈值,就认为存在一条直线边,从而检测出车道线。
4 车道偏离预警决策
检测出车道线后要建立合适的车道偏离预警决策[9],实现车道线的偏离报警。根据实际需求,本文采用车辆在当前车辆的横向位置、车辆方向、转向灯等信息相结合的预警准则[10]。
图3为本文采用的预警临界示意图。图中,最初报警线之间为安全区;临界报警线与最初报警线之间是LED灯报警区,此时车辆向车道线偏离,相对应方向的LED灯变红并闪烁;最迟报警线与临界报警线之间为报警区,当车辆偏离正常行驶车道而行驶到此区域时,相应侧的LED灯会变红闪烁,蜂鸣器也会发出报警声音,车载显示器内的车道线变红。
图3 预警系统报警临界设置示意
其中,b为车的宽度,θ0为设定的阈值,取值为1°,x0为车辆在车道中的横向位置;报警临界线距y轴的距离可以根据不同的车型来设置:
1)车型为小轿车:x1=w/2-0.2
2)车型为大轿车:x1=w/2+0.1
其中,w为车道宽度,m。
(3)
如果满足式(3),车辆向右偏离,触发右LED灯报警,蜂鸣器不报警。其中kr1是最初报警线到y轴的距离与x0的比值
(4)
如果满足式(4),车辆向右偏离,触发右LED灯报警且蜂鸣器不报警。其中,kr2为最迟报警线到y轴的距离与x0的比值
(5)
如果满足式(5),车辆向左偏离,触发左LED灯报警且蜂鸣器不报警。其中,kr1为最初报警线到y轴的距离与x0的比值
(6)
如果满足式(6),车辆向左偏离,触发左LED灯报警且蜂鸣器报警。其中,kr2为最迟报警线到y轴的距离与x0的比值。
如果满足式(3)~式(6)所示的预警模型,如图4所示,在模型建立后只需要求出道路宽度w、方向参数和横向参数。直线MN表示车辆前方摄像机的有效视野中距车最近的部分,EF表示车辆的两个前轮,MN与EF之间的距离为h,与y轴相交于M,再利用车道线检测得到的车道参数:(k1,b1)和(kr,br),且已知车载摄像机的安装高度和选用摄像机焦距、靶面尺寸等参数,根据以上参数可以建立预警模型。
图4 预警模型参数含义示意
5 实验结果
在阅读了大量国内外有关车道偏离预警系统关键算法的文献后,确定了本文算法,采用基于VC++6.0实现对基于改进Sobel算法和Hough变换识别车道线及实时车道偏离预警系统实验验证。
首先将摄像机安装在车辆前挡风玻璃中央位置,在不同的道路环境和光照条件下,获取道路图像视频信息。采用VC6.0编程,以道路图像信息作为实验数据,在PC上实现对样本图像的显示、车道线的识别;在PC上建立车道偏离预警决策仿真环境,对道路图像视频信息进行车道偏离预警决策仿真实验测试。
图5为对一车道图像的车道线提取处理,其中,图(a)为原图,图(b)为图像预处理,图(c)为边缘检测,图(d)为边缘连接。从实验结果来看能够较好地实现车道线的边缘检测,另外边缘检测使用的Sobel算子,作为一阶边缘检测算子具有较好的实时性。在靠近左侧车道和右侧车道的样本图像中,通过车道偏离预警决策仿真环境中,能够较快地发出偏离报警信息。
图5 道路图像车道线提取处理
6 结 论
本文设计了实时车道偏离预警系统,经过仿真实验验证系统不仅能够快速且准确检测出车道线的边缘信息,而且能结合车辆本身的状态信息来判断当前车辆是否发生偏离,并判断是否会进行报警。