一、引言
在世界范围内,公路交通事故导致惊人的人员伤亡和经济损失。据统计,约有44%的汽车事故与车辆偏离正常车道行驶有关,其主要原因是驾驶员注意力不集中或者疲劳驾驶,造成车辆的无意识偏离。车道偏离报警系统(简称LDWS或RDWS)正是基于基本交通规则的车辆安全系统,其主要功能是辅助过度疲惫或者长时间单调驾驶的驾驶员保持车辆在车道内行驶。由于LDWS具有显著提高车辆行驶主动安全性的潜力,得到了国内外研究人员越来越多的重视。因此该系统具有广泛的市场潜力与应用价值。
二、系统总体设计
车道偏离报警系统的系统总体设计如图1所示,主要包括软件设计即人机界面设计和硬件设计两大部分。人机界面为PC端上的图形化控制台,用于模拟汽车的制动信号和转向信号以及车速信号等,通过串口将信号传送给DSP,同时显示由DSP送来的车辆偏离数据和实时道路场景。硬件部分由DSP构成,负责实时车道检测与识别,车道偏离量的计算。
图1系统设计
系统通过图像传感器获取车道几何结构,通过车辆运动参数传感器获取决策算法所必需的车辆运动参数如车速、车辆转向状态等,综合分析判断车辆偏离车道的程度。如果车辆偏离量超过设定阈值,控制台界面上的报警灯将会闪亮,同时发出蜂鸣报警声。
三、人机界面设计
在人机界面设计上采用VisualC++6.0开发环境和NI公司的Measurement Studio编程工具共同开发,用VC完成程序的主要功能,用Measurement Studio的精美控件完成程序的界面编程。在系统与DSP通信上我们采用微软公司的MSSCOM控件进行编程,减小工作量,降低开发难度。软件系统分为三个模块:显示模块、控制模块、通信模块。显示模块负责将DSP发来的报警信号,车道偏移信号进行图形化显示,控制模块主要向DSP发送控制命令,通信模块负责PC与DSP间信号的交互。人机界面各模块间的关系如图2所示。
图2人机界面设计
四、硬件设计
系统硬件主要是以DSP为核心的实时处理平台,主要完成图像采集、车道检测与识别、车道偏移量计算等功能,并将计算结果传送给控制台界面作动态显示。
DSP硬件系统包括视频A/D模块、实时图像处理模块、视频D/A模块、UART通信模块、外部储存器模块。视频A/D模块采用ADV7183视频解码芯片,图像处理芯片采用ADI公司的Blackfin-533多媒体数字信号处理器,ADM3202RS-232通用异步收发器。DSP系统框图如图1左方虚线框所示。
在开发中我们采用ADI公司的BF-533EZ-KitLite评估板,该平台具有良好的可操作性和丰富的外设接口,为我们降低了系统开发难度,节约了时间。
在DSP端,图像经CMOS摄像头转换成视频信号送入ADV7183视频编码器,我们从解码视频流中的亮度分量获得灰度图像序列,首先进行图像预处理,由3×3的高斯模板对图像进行滤波,滤除部分随机噪声,然后进行车道标志检测。由于结构化道路上的车道标识线与路面背景具有较强的对比度,车道边缘较明显,因此利用边缘检测算法能够较好地检测出车道边缘。目前较好的边缘检测算法是Canny法,检测的车道边缘准确,线条较细,但是计算量大。Sobel算法相对于Canny法的线条较粗,但计算量较小,便于实时系统应用。因此,系统采用了Sobel法,然后采用Ostu法对边缘增强的图像序列进行二值化,该算法能够自动确定分割阈值,使前景与背景两类的方差最大。
经过分割后的二值图像中包含了车道标识线,但还含有很多杂散线条,因此要对车道线进行识别,将其从杂散线条中提取出来。基于对道路的先验知识,三维场景中的直线投影到二维平面上亦为直线,而实际道路中出现直道的概率远大于弯道出现的概率,所以我们采用了简化的道路模型,即直线车道模型。检测直线的常用方法是Hough变换,由于标准Hough变换计算量太大,不能在DSP上实现,我们将图像按重要性分为三个区域如图3所示。
图3图像区域示意图
我们只在区域1和区域2做Hough变换,区域3不做处理,并增大了Hough变换的角度搜索步长,进一步减小计算量。区域1中检测到斜率在(0,90)度、长度为30像素以上的直线段判定为左车道,在区域2中检测到的斜率在(0,-90)度、长度为30像素以上的直线段为右车道。
当车道检测出来以后,需要根据车道信息判断车辆在车道中的位置,因此车道偏离决策算法也是车道偏离报警系统的关键,它主要是确定一个合适的预警量向驾驶员提供报警,能够保证及时和准确报警,同时不会对驾驶员造成过多的干扰。目前常用的偏离决策算法都需要对相机进行标定(如TLC方法),增加了系统的复杂性,并给安装带来不便。本系统采用的车道夹角法,不需要对相机进行标定,安装时 保持相机与车辆平行即可。如果车辆的左右车道夹角之和超过某一设定阈值,则认为车辆偏离正常车道,系统根据当前行使状况综合判断驾驶员是否无意识偏离了行车道,并发出报警,提醒驾驶员纠正行车路线。图4为车道偏离算法流程图。
图4车道偏离算法流程图
五、仿真结果与分析
图5(a)为车辆位于车道中心附近行驶,(b)为车辆位于车道偏左行驶,(c)为车辆位于车道偏右行驶,(d)(e)(f)分别为(c)(b)(c)所示行使状态下的控制台显示界面。如(d)所示,当车辆位于车道中心附近行使时,车道偏移量的值在0值附近摆动,表示车辆并未发生偏离,此时偏离报警灯也未点亮。如(e)所示,当车辆无意识行驶到车道左边时,车道偏移量在-20到-30之间摆动,此时左偏报警灯闪亮,同时发出较低频率的蜂鸣报警声,表示车辆向左偏离。当车辆偏向右边车道时如(c)所示;偏移量的值在20到30之间变化,右偏报警灯闪亮,并发出较高频率的蜂鸣报警声,如图(f)所示。
车辆在虚线道路上行驶的情况如图6所示,(b)表示车道偏离量在0值附近变化,说明车辆没有发生偏离,(c)为车辆左偏时的偏离量的值,其值在-20附近变化 ,(d)为车辆右偏时的偏离量值,其值在-20到-30之间变化。
图5车辆在实线车道上行驶的实验结果
图6
从以上模型车辆的实验结果可以看出,系统能够较好地适应不同线型的车道线,并能在模型车辆偏离时做出正确的判断,发出不同的报警提示,达到了设计要求。