李飞 宾洋 罗文广 朱英凯
摘 要:针对车道线检测算法计算量大,耗时长的问题,为提高算法的实时性和鲁棒性,把通过CCD获取的道路图像由视频转码模块TVP5158从模拟信号转化为数字信号,在进行工作区域的限定的基础上,进行灰度化,并利用改进的滤波算子进行图像的滤波处理;为利于后续步骤的处理,然后利用对噪声的低敏感性和更有利边缘的显示的Sobel算子进行边缘分割;然后在搭建DSP硬件平台上,结合改进的Hough算法,提高检测与识别的准确性和实时性,将处理后的图像送到LCD显示屏上显示最终检测的结果.
关键词:车道线检测;工作区域;边缘检测;改进Hough (IH)
中图分类号:U495 DOI:10.16375/j.cnki.cn45-1395/t.2018.01.008
0 引言
车道线检测是一项基础的工作,为如车道偏离报警系统(Lane Departure Warning System, LDWS)、高级辅助驾驶系统(Advanced Driver Assistance System, ADAS)以及无人驾驶等技术的实现提供了可能.同时,在交通安全事故日趋上升的情况下,以车道线检测与识别为基础的安全辅助驾驶系统的研究愈来愈受到研究人员和各国政府的重视.阈值分割作为车道线预提取的关键,是完成车道线识别的基础.为解决算法准确性与实时性之间的矛盾,谢一峰等[1]采取软件滤波的方法,来抑制噪声干扰,提高检测算法的准确性,并且把算法的运行时长降低,提出了基于形态学的车道线检测算法,并基于DSP实现了车道线的实时检测.王云建等[2]通过融合区域生长和最优阈值在ROI内选取候选点集并筛选分类得到有效特征点,再进行拟合实现车道线检测.由于基于模型的车道线检测算法本身算法比较复杂,运算量比较大难以满足实时性的需要.
卞建勇等[3]采用在参数空间进行分块的方法,对传统Hough变换进行改进,以减少车道标志线检测算法的运算量,并且在DSP平台上实验,获得了很好的车道标志线检测效果.此外,王宝峰等[4-6]通过结合局部逆透视变换及Hough变换,提出了一种线性逼近的弯道识别方法,并具有一定的适用性;Kim等[7]利用“紧凑型霍夫变换”来完成车道直线检测,其本质是通过约束极坐标系下极角范围,来减少Hough变换的计算量;林贵潮等[8]利用改进的离散化Hough变换完成直线检测,可提高算法的实时性;另外,利用参数模型来实现车道重建是一种行之有效的方法,Kang等[9]提出“蛇形-直线”模型,将图像分为多个区域,并对每个区域进行Hough变换从而完成弯道检测.
为研究车道线预提取及车道线检测识别,首先对由CCD摄像机获得的道路图像以经过改进的滤波算子进行有效滤波,然后对工作区域ROW(Region of Work)以车道线为中轴在一定区域范围内进行设定,最后经过边缘检测得到含有双边缘的车道线,及有效单边缘的车道线.
1 ROW确定
经过对大量道路图像进行分析,以及对车道线识别的影响及重要程度,本文将图像按照图1进行ROW划分,从而建立初始检测区域.
首先,在车辆前方一定距离的近视场内框定一个矩形区域如图1中矩形IJKL所示,让获取道路图像的CCD摄像机中轴线L1与道路中心线L2重合,以两者的重合线L0(竖直方向)为Y轴,水平方向为X轴建立直线检测变换坐标系,使道路左侧的车道线(左车道线)位于Y轴左侧和矩形IJKL所围成的区域ABJCD内,道路右侧的车道线(右车道线)位于Y轴右侧和矩形IJKL所围成的区域EFKGH内,如图1所示.
图中,矩形IJKL的确定过程如下:首先,在一帧图像中V 轴方向上从上到下,其像素范围记为(PixelV_start,PixelV_end),确定待处理的像素区域的上下边界,PixelV_up和PixelV_down,即水平方向矩形IJKL的两条边IL和JK;然后,在U轴方向上,其像素范围记为(PixelU_start,PixelU_end),确定待处理的像素区域的左右边界,(PixelU_MwidthL,PixelU_MwidthR),即竖直方向矩形IJKL的两条边IJ和LK,将图像从左到右分为3部分,亦即(PixelU_start,PixelU_MwidthL),(PixelU_MwidthL,PixelU_MwidthR),(PixelU_MwidthL,PixelU_end),由于原圖水平方向很长,现只截取包含道路信息的主要部分.其中,PixelU_MwidthL和PixelU_MwidthR分别是竖直方向矩形IJKL的两条边IJ和LK,Mwidth为待处理区域的像素宽度,PixelU_MwidthL和PixelU_MwidthR分别是待处理区域的像素宽度Mwidth的左右两边.
再根据车道标志线与路面两者灰度值的差异,将左右车道标志线的检测区域分别主要限制在多边形ABJCD内和多边形EFKGH内.
2 图像滤波
2.1 滤波原理
为了完成车道线预提取,需基于感兴趣区域[10],对图像进行分割:1)对目标区域进行中值滤波,滤除干扰信息;2)利用像素梯度进行车道线边缘提取;3)根据车道线边缘像素点分布特点[11]进一步去噪及车道边缘细化,从而获取最佳车道边缘信息.
在进行滤波处理之前,需要先对经电荷耦合设备(CCD)获取的包含车道线信息的道路图像进行灰度化处理,其输出的视频是PAL制式的.而DSP平台在帧缓存器中采用YUV422[11]的格式进行传输和处理,存储形式为用2个字节(byte)存放1个像素,即UYVY的形式.前半部分存储U,V分量,即色度信号;后半部分存储Y分量,即亮度信号.PAL形式的彩色图像转化为YUV形式的灰度图像具体实现过程如下:通过指针操作,令每一个存储像素的前半部分等于0~255的256个灰度等级中某一个特殊的灰度值来屏蔽掉彩色信号;后半部分的亮度信号不作处理,以达到在工作区域ROW内的彩色图像灰度处理的目的.
传统的中值滤波算法[12]通过在需要计算的区域内对数据元素的特定的排序来实现.排序的方法有冒泡排序等,将像素值的大小进行比较再交换位置,以此反复进行,然而这样的操作次数在小的计算区域尚可,在大的计算区域传统滤波算法的排序速度会对检测系统的实时性产生巨大影响.
2.2 滤波改进
改进中值滤波实现如下:选取ROW工作区域矩形IJKL内的任一像素点P(i, j )及其邻域(图2中左上矩形框所示),对像素点P(i, j )及其邻域所在区域(图2右侧大的矩形框所示)进行了放大,而右侧大的矩形框所包围的部分为ROW工作区域矩形IJKL内的互不重复的子集.
分别计算第j-1列、第j列、第j+1列的极大值Ma( j-1)、中值Me( j)和极小值Mi( j+1),共计算9次,构成极大值组Ma、中值组Me和极小值组Mi.分别记极大值组Ma、中值组Me和极小值组Mi中的最小值、中值和最大值为Mi_Ma、Me_Me、Ma_Mi,并且计算出其值,共计算9次,需要计算的像素点P(i, j )及其邻域的滤波输出结果Me(i, j )为Mi_Ma、Me_Me、Ma_Mi的中值,需要计算3次.总共需要计算21次,而按行计算的传统方法需要36次,提高了处理效率.处理过程如表1所示.
3 边缘分割
在车道线图像中,由于局部图像特征的非连续性,导致像素的灰度值发生明显变化,从宏观角度看表现为分割不同区域的边缘.路面边缘主要分为:阶跃边缘、屋顶边缘和过渡边缘.边缘分割主要包括两种:基于边缘拟合算子和基于微分算子.基于后者的方法有很多种,比如Canny算子、Prewitt算子、Roberts算子,由于对噪声的低敏感性和更有利边缘的显示,本文采用基于Sobel算子[13]的边缘分割方法.
Sobel算子将局部平均和方向差分运算相结合,传统的Sobel算子大多采用水平和竖直方向2个算子,其梯度值计算公式如下所示.
而本文采用改进的算子,使得左车道线使用45°的算子,右车道使用135°的算子,如图3所示.
检测结果如图4所示,图中包含车道线的黑色区域即为在第一节ROW确定中矩形IJKL经DSP处理后在LCD屏上的显示.
从实验结果可以看出,本文方法相对简单,且能够较好地对车道边缘进行定位.
4 车道线检测
基于DSP平台,不同于个人计算机平台,其内存空间和计算能力等受到限制,在面对复杂、耗时长的传统Hough算法时[14],往往效果不理想.为此,需要对其作出改进,以适应嵌入式平台的特点.在经过前面3步之后,在DSP硬件平台进行IH算法的试验.
4.1 DSP硬件平台的搭建
1)CCD摄像头:负责道路图像的采集,把光学信号转变成电子信号,以供后续处理.
2)TMSDM6437:通过TMSDM6437中的TVP5158视频解码芯片使得采集到的每帧图像由模拟信号转换成数字信号,数字信号储存到TMSDM6437的外部DDR2.
3)个人计算机:在DSP/BIOS环境下由C语言编写的程序导入TMSDM6437中在集成开发环境CCS3.3下,主要完成系統的软件开发和调试.
4)ICETEK:实现程序下载到芯片Flash中.
5)LCD显示器:在长和宽分别为为720×480的显示屏上实时显示实验结果.
4.2 实现过程
根据图像空间x-y和参数空间D-α相互映射的关系,图像空间x-y直线上的每个点都对应一条曲线且相交于一点,直线 y=ax+b的极径和极角分别由D和α映射到参数空间时,D-α直线上的每个点对应一条曲线,这些曲线在D-α空间都交于一点,通过统计参数空间D-α整数点个数的统计,得出个数最多的点,即此点就是在路面上包含车道线直线的最佳位置,还需要去除最大值附近的次极大值,以消除检测出的多余的直线对最佳直线的影响.包含车道线信息的图像空间x-y与参数空间D-α之间满足以下关系:
其中,D是直线到原点的法线距离,α是法线与X轴的夹角大小,(x, y)为图像空间任一点P的坐标.
在操作过程中作出如下改进:
a) 以L*M个单元划分参数空间,L、M是D、α的划分刻度.对每一区域做累加,其值记为Acc(L, M),且其初始值为零.
b)根据式(2)以及α值得出D的值.
c) 根据计算出的D值和α,在D-α空间使相应的Acc(L, M)= Acc(L, M)+1.
d) 反复执行步骤b和c,计算完所有ROW内的点,并且找到Acc(L,M)的最大值Acc_max,清除Acc_max附近与其接近的值 Acc_max所对应的参数即为所求.
车道线以细长线条显示,是在CCS程序编辑环境中编写以下语句经过在DSP嵌入式平台上操作得到:
src[mi * 2]=10;src[mi * 2 + 1]=250;
其中,mi为操作变量,src为储存像素值的数组,将图像分为0~255共256个灰度级,上面的10,250的取值正在此范围内,将YUV值中的亮度和色度两个分量赋予不同的值,便可以在处理后的包含车道线的图像上显示不同的颜色.
经过上述算法处理后得到的车道线识别结果图像如图5所示,其中在图5(a)中,黑色区域为前面确定的工作区域ROW,可以明显地看到,工作区域ROW内的车道线经过处理并且以不同的颜色显示;而工作区域ROW外的车道线没有经过处理,还是以原样显示,这样减少了嵌入式设备TMSDM6437处理的负担,提高了数据处理的效率,在实时性方面有一定的提高.经过一定的优化处理,可以得到如图5(b)所显示的车道线识别结果图像.
5 结语
本文提出方法能较好地实现车道线识别,通过对实际道路的大量实验验证,结果表明:
1)通过实验结果可知,该方法可以有效地抑制噪声,并提取复杂工况下车道线内侧边缘点.同时,相比于Otsu及Canny算子,该方法具有更好的车道线边缘预提取效果.
2)通过实验结果,可以发现,本文方法能够较好地提高车道线检测的鲁棒性、实时性及准确性.
但也存在着不足:1)由于道路环境较为复杂,本文未能够建立更为精准和简便的数学模型,来判断车道线的类型与走向;2)在不同的路况下,特别是非结构化道路情况下,如城市道路和乡间道路上,针对弯道识别的问题,需要进行更深入的研究.
参考文献
[1]谢一峰, 袁建军,张伟军. 车道线实时检测的形态学算法及其DSP实现[J]. 机电一体化, 2013,19(3):26-29.
[2]王云建, 孙志海,张桦. 基于 DM6446 的车道线快速检测算法[J]. 杭州电子科技大学学报, 2013,33(2):37-40.
[3]卞建勇, 徐建闽. 一种基于改进Hough变换的车道线检测算法[J]. 微电子学与计算机, 2013,30(5):157-161.
[4]王宝锋, 齐志权, 马国成,等. 基于线性逼近的车道线弯道识别方法[J]. 北京理工大学学报, 2016,36(5):470-474.
[5]DANESCU R, NEDEVSCHI S. Probabilistic lane tracking in difficult road scenarios using stereovision[J]. Intelligent Transportation Systems IEEE Transactions on, 2009, 10(2):272-282.
[6]SEO D, JO K. Inverse perspective mapping based road curvature estimation[C]// IEEE/SICE International Symposium on System Integration. IEEE, 2014.
[7]KIM H S , BEAK S H ,PAEK S Y.Parallel hough space image generation method for real-time lane detection[C]//International Conference on Advanced Concepts for Intelligent Vision Systems 2016: Advanced Concepts for Intelligent Vision Systems. 81-91.
[8]林桂潮, 邹湘军, 罗陆锋,等.改进随机样本一致性算法的弯曲果园道路检测[J]. 农业工程学报, 2015(4):168-174.
[9]KANG D J, CHOI J W, KWEON I S. Finding and tracking toad lanes using “Line-snakes”[C]//Proceedings of IEEE on Intelligent Vehicles Symposium, Tokyo, 1996: 189-194.
[10]BOTTAZZI V S, BORGES P V K, JO J. A vision-based lane detection system combining appearance eegmentation and tracking of salient points[J]. 2013, 36(1):443-448.
[11]陳家哲,罗文广,谢超艺,等.基于 DM6437图像序列中的直线检测[J].广西科技大学学报,2014,25(3):44-48,54.
[12]李克腾.基于DM6446的车道线偏离预警系统的研究与实现[D].杭州:杭州电子科技大学,2012.
[13]周磊, 任国全, 肖浩,等. 结构化道路车道线快速检测的一种改进算法[J].计算机仿真, 2012,29(4):362-365.
[14]曹月花,罗文广.基于 DSP 的直线特征提取算法[J]. 广西科技大学学报,2016,27(1):15-18,25.
Abstract: Given that the lane detection algorithm is time-consuming, in order to improve the real time and robustness of lane detection algorithm, the main innovatory work following has been done in this paper. The road image obtained by CCD is converted into digital signal from analog signal by video transcoding module TVP5158, and the working area is defined. Based on this, the gray level is improved, and the filtering operator is processed by the improved filtering operator. Then, the Sobel operator with low sensitivity to noise and more favorable edge display is used to segment the edge, which is beneficial to the subsequent processing. Then, on the DSP hardware platform, combined with the improved Hough algorithm, the accuracy of real-time detection and recognition improved, the processed image then was sent to the LCD display to display the final detection results.
Key words: lane detection; ROW (region of work); edge detection; improved Hough (IH)
(学科编辑:张玉凤)