面向复杂城市交通场景的一种实时车道线检测方法
2019-09-25
(湖南工程学院 电气信息学院, 湖南 湘潭 411104)
0 引言
“互联网+城市交通”提出构建智慧城市、推进智慧出行[1],但我国城市交通面临着诸多问题,例如汽车行驶的安全问题和拥堵问题等。为了应对交通安全问题,自动驾驶系统或辅助驾驶系统成为研究热点。在自动驾驶系统和辅助驾驶系统中,车道线是重要的交通标识,针对复杂城市交通下的智能车道线检测具有较好的应用前景[2],车道线智能检测是高级汽车辅助驾驶系统中的关键基础技术,通过分析车辆道路环境信息,为驾驶员提供警示或提醒,因此车道线识别成为安全驾驶中需要解决的关键问题。
传统单一的Hough变换在车道线检测实时性和检测精度方面很难达到平衡,Umar等人[3]采用单一Hough变换,通过估计车道标记位置,同时利用已知的方法变换坐标[4-6]来表示车道线方向,最后通过拟合抛物线来检测车道线,虽然在正确率上达到94%,但是该算法实时性不够。Felix等人[7]和Pradnya等人[8]提出一个实时的车道线检测算法,采用单一Hough变换,同时估计中间车道、突出车道线的边缘、检测车道线标记特征[9-10],处理速度上每帧图像处理时间小于1s,但是车道线检测识别正确率刚刚达到90%。
目前,Zhou等人[11]提出了一种基于几何模型和Gabor滤波器[12-14]的鲁棒车道检测算法,可以克服由于边缘检测中的不准确性而导致的车道检测问题。但这些方法在实际场景中实时性不够,并且仅使用了车道的单个特征。Wei等人[15]提出了一种基于Harr和方向梯度直方图(HOG)特征相结合的两步检测算法。该算法充分利用目标车辆的HOG特征优势,即HOG特征的良好描述能力,利用Harr特征提取前景区域(ROI),但在实际场景中算法实时性有限。
在本文中,我们针对复杂城市交通场景中车道线标记模糊且复杂多样的情况,提出了一种实时车道平行线检测算法,首先对车道线视频序列进行图像预处理,为提高算法的实时性,进行ROI区域提取,采用改进灰度化对黄色区域和白色区域进行重点突出;为了提高算法的鲁棒性,在车道线预处理后进行图像增强,获得更强的车道线特征,采用改进Gabor滤波器用于过滤非车道标记,消除大量的噪声,增强车道边缘特征并抑制背景区域,Sobel边缘检测更好的提取车道线的边缘信息;为了提高算法的检测精度,使用多约束条件下的霍夫变换,基于几何角度约束和消失点估计约束,获得准确的车道线位置。通过在三种不同交通场景的实验表明,本文提出的方法优于传统的Hough变换方法,车道线检测精确度高,具有较高的实时性,可应用于实时车道线检测系统。
图1 总体算法流程图
1 图像预处理
1.1 提取ROI区域
通过车载行车记录仪采集的实验视频存在两个主要的问题,图像的尺寸大和行车记录仪的水印遮挡。为了减少图像预处理的计算量,提高算法的处理速度,将道路图像划分为两部分,无关信息区域部分A和感兴趣区域(ROI)部分B,并在车辆行驶的正前方视角内提取ROI区域。其次是通过定位将特定位置的水印颜色值进行降低,以免影响后续的阈值二值化,提高车道线检测的鲁棒性。
如图2所示,提取ROI区域可以帮助去除大量与目标任务不相关的信息(如天空和周围建筑),剩下目标区域便于提高算法准确率和减少图像处理的计算量。其中(a)是ROI区域提取图,(b)是水印弱化处理效果图。
图2 道路图像ROI区域提取
1.2 改进灰度化
为了提高图像的处理速度和简化图像处理算法,需要对采集到的彩色图像进行灰度化,原图一般都以RGB色彩空间表示。B颜色通道的有无对车道线检测影响不大[16]。本文主要针对城市多道路,采用改进的灰度化方法,让车道线标志二值化的特征更加突出,从而为后续的边缘提取和Hough变换提供方便,可提高车道线检测的准确性。采用如下的灰度化方法:
Gray=α*R+β*G
(1)
式中:α、β表示权重系数,其中α+β=1.
通过实验仿真取α=0.625,β=0.375。如图3所示,通过改进灰度化处理,对白色和黄色区域重点突出,从而更有利于后续的滤波处理和车道线边缘检测,提高算法检测的实时性。
图3 不同灰度化结果
2 图像增强
2.1 滤波处理
由于天气条件、行车环境、实验设备等条件的影响,图像在采集、传输过程中会产生热噪声、光电子噪声、信道传输噪声及量化噪声等,进而会对图像最后的成像质量产生影响[16]。本文采取三种滤波算法对灰度图像进行滤波处理。通过对比分析可以知道,Gabor滤波法不仅可以捕获对应于空间位置、空间频率和方向选择性的局部结构信息,而且用于边缘检测可以在多方向和多尺度上提取边缘信息。根据拍摄角度的先验知识,使用Gabor滤波器在左侧车道上进行45°采样,在右侧车道上进行135°采样[17]。
图4 不同滤波算法处理结果比较
通过对比分析可以知道,三种滤波去噪方法对于车道线处理效果差异不是特别大,但是由于高斯滤波的优势在于消除椒盐噪声,使得图像更加平滑;均值滤波对斜坡信号和阶跃信号不敏感;Gabor滤波在进行车道线检测时能较好保留图像的边缘信息,因此选择Gabor滤波对车道线图像进行去噪。
在图像中,二维的Gabor滤波器是一个窄带通滤波器[18],其功能是由高斯函数调制的复杂正弦栅格,即:
(2)
式中,x0=xcosθ+ysinθ,y0=-xsinθ+ysinθ,其中的x,y是空间域中的像素位置,ω0是滤波器的中心频率,θ是Gabor小波的方向,σ是高斯函数沿两个轴的标准偏差,ω0和θ分别确定Gabor滤波器的频率范围和方向,他们之间的关系确定为:
(3)
其中:Wt是小波时域窗口,当确定参数σ时,其宽度与频域的中心频率成反比。
基于改进的Gabor滤波器的车道线图像增强,主要是通过在改进的灰度化处理的车道图像上使用两个方向不同角度的Gabor滤波器来获得车道增强图像。
2.2 边缘检测
二值化效果将直接影响到车道线检测的结果,合适的阈值则是保证二值化效果的关键。本文在Gabor滤波器增强过后提取ROI区域图像,采用最大类间方差法(OTSU)进行计算阈值,将图像进行二值化分割,最后采用掩膜运算将图像的正下方车道线增强,去除护栏、污迹和路边的干扰线。
在二值图像进行边缘检测之前,先通过图像的形态学闭运算,用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积,从而提高边缘检测的精确度和轮廓的连续性。传统的Sobel算子分别检测出图像在水平和垂直方向上的边缘,但是存在伪边缘的缺陷[19]。本文根据行车记录仪采集的图像中车道线的方向特征,主要呈现倾斜角度的直线,采用改进的Sobel算子检测,利用45°方向的和135°方向的Sobel算子能够检测出图像在斜向的边缘特征。
G450和G1350分别表示45°方向的和135°方向的车道线边缘检测,Image表示输入的待检测的车道线图像,其公式如下:
(4)
45°方向和135°方向上的一阶差分平方和之后再进行开方得到Sobel边缘检测算子的定义如下公式:
(5)
如图5所示,(a)和(c)是第10帧分别在45°和135°上的Sobel边缘检测,(b)和(d)则是第50帧两个方向上的边缘检测,增强了车道线在倾斜方向上的特征。有利于提高检测的鲁棒性。如图6所示,改进的Sobel边缘检测算子运算速度快,能够有效抑制其他方向边缘的干扰,并且车道线边缘特征得到了较好地增强,在综合性能上比传统的Sobel算子有较大提高。
图5 改进Sobel算子分别在45°和135°方向检测结果示意图
图6 不同Sobel算子处理结果
3 多约束的霍夫变换
霍夫变换的基本原理是把图像空间上的点对应到参数空间上,通过在参数空间里进行简单的累加,寻找累加器峰值检测直线,被广泛用来进行车道线的检测[20,21]。 传统霍夫变换往往需要结合其他多种车道特征或机器学习分类算法提高检测率,实时性受到限制。基于Hough变换消失点估计约束方法[22]在准确率和检测速度上都有所提高,本文提出基于角度和消失点估计的多约束霍夫变换,具体如下。
3.1 基于角度θ的约束
通过行车记录仪采集到的道路图像往往具有强烈的透视效果,原本平行的车道线线条会出现相交的情况,车道线之间的间隔在图像的远端变得很小,不利于车道线的辨识和检测。在前述图像预处理、图像增强的基础上,已很大程度上消除了大量的干扰点。而霍夫变换检测到的线段不一定是车道线,本文提出采用基于角度θ的霍夫变换约束,消除大量非车道线标记,提高车道线检测精度。车道线标记一般位于车辆上安装的行车记录仪采集图像的两边,与车道的中线呈现一定的夹角,所以左右斜率会约束在一个范围内(θmin< θ < θmax),在实验中,对于左边的线段进行检测,选择约束范围:
(6)
如果所选的线段超出范围,则视为干扰信号,同时对于右边的线段选择约束范围:
θmax=-200
(7)
式中,Hroi表示ROI区域的高度,Wroi表示ROI区域的宽度。同时利用霍夫变换函数的特点,通过预先设定角度阈值,筛选除车道线以外的干扰直线,为下一步减少计算负担,提高准确性。同时通过车道线在中心线两侧的概率分布,计算检测线段的长度,通过长度阈值筛选出目标车道线,更有利于下一步基于消失点约束估计确定平行车道线,从而获得最终的目标车道线。
3.2 基于消失点的约束
基于几何角度θ的约束消除了大多数冗余线段。算法的下一步旨在选择定义车道标记的线段。在这方面,我们使用以下假设:从车道标记中提取的线段在消失点处会聚,并且其延伸与消失点相交的线段可定义为车道和道路边界的划分,从而利用车道标记收敛于消失点的假设来估计消失点的位置。找到这一点的普通方法是穷尽地计算从每个像素到线段所属的所有线的垂直距离,并选择大多数线相交的像素,计算量大而不适用于实时系统;因此,采用本文基于消失点的约束来找到平行于车道的线段的消失点,消除非车道线标记,则可以提高车道线检测的精度。
道路图像一般具有相似的几何结构,在针孔相机成像原理和图像的透视效应下,三维场景中不平行于相机平面的平行线,在图像采集后会在二维平面相较于一点,该点称为消失点(Vanishing point),另称灭点[22]。消失点在检测道路车道方面起着重要作用,因为车道在真实世界的3D空间中是平行的,但它们在二维相机图像中车道最终会在消失点相遇。因此,对于自动驾驶消失点检测是必要的。消失点检测(Vanishing point detection)的算法有很多种,通过Ransac[22]、车道纹理方向[23]、harmony search[24]等算法都有应用。但本文采用基于消失点的性质作为约束条件,提高了对车道线的检测精度,尤其是对干扰线段具有很好的滤除作用。
如图7所示为消失点约束示意图,首先建立坐标系XOY,O为提取ROI区域图像宽的中点,在坐标系XOY中建立图像中车道线和消失点的关系,当前帧的消失点坐标为V(vx,vy)。L是待检测的车道线,过原点O作L的垂线,垂点为P(px,py),长度为ρ,倾斜角为θ。根据消失点V和原点O的几何性质可得:
△ρ=|pxcosθ+pysinθ-ρ|
(8)
当△ρ在一个预先设定的阈值内时,则检测的线段为目标车道线,采用消失点约束估计,可以滤除非车道线部分,获得准确的车道线位置。
(9)
式中,Er是右侧近似误差的总和,被定义是实际车道线减去近似检测线;El在左侧是相同的定义。如果Er和El为正,则表示设置消失点位于左侧。
图7 消失点估计约束示意图
通过以上基于角度和消失点的多约束霍夫变换,则可最终获得车道线检测结果。
4 实验结果及分析
为验证本文算法的准确性和实时性,在实验平台上进行仿真实验,实验平台包括硬件和软件两个部分:硬件环境为Intel(R) Core(TM) i5-4210U CPU @1.70 GHz 2.40 GHz,内存4 G,软件环境为Windows7系统,编译环境为MATLAB2017b。视频数据是比亚迪电动汽车的车载行车记录仪在湘潭市的城区多道路上行驶采集的,包括三种不同场景,正常光照,车辆遮挡,光照较弱,帧率为30 fps,分别截取视频序列,进行实验结果仿真分析。
为了验证算法在复杂场景下车道线识别检测的精确性和快速性,选取3段不同场景下的行车视频,在正常光照、车辆遮挡、光照较弱的行车路段进行车道线检测实验。如表1所示,三种不同复杂城市交通场景下的识别率都高于90%,正常光照下识别率能达到96%以上,而且车道线的三种不同场景的平均识别速率能达到36 ms/frame,在正常交通场景下识别速率最快可达到30 ms/frame,完全可达到实时性要求。
表1 三种场景统计结果表
如图8所示,(a)(b)(c)分别为三种不同复杂城市交通状况原图,(d)(e)(f)分别为正常光照下不同帧实验结果图,(g)(h)(i)分别为三种不同复杂城市交通状况实验结果图。从图中可见,实验通过对不同帧、不同场景下的测试结果,根据检测结果分为车道线检测无误、车道线检测不完整漏检、车道线误检三种情况。在正常光照下,车道线会出现较少的漏检,但误检基本上不存在。因车辆遮挡车道线,会出现少量漏检。在光照较弱,车道线会被检测错误,可采用启动车辆前照灯进行提高亮度。
图9 传统Hough变换[8]
如图9所示,如采用传统Hough变换算法进行对比实验[8],车道检测的精度和鲁棒性有明显的下降,左右车道线检测存在偏差,检测精度较差。
同时实时性检测对于驾驶辅助系统是不可或缺的,如果实时性达不到要求,那系统就不能在车辆发生危险之前发出警报,这样的系统无疑是不符合交通场合的应用。我们统计了算法在三种不同复杂城市交通情况下正确率和平均每帧处理时间的实验结果。下面以正常光照情况为例,从表2可知,在正常的城市交通下每帧处理时间只有30 ms,算法的简易性符合实时性要求,同时记录了算法各个步骤的处理时间。
表2 系统各步骤处理时间
图10 两种算法各步骤处理时间比较
在表3中,我们尝试将本文的算法结果与文献[8]单一传统Hough变换的结果进行比较,所选的数据集仍是三种不同场景的复杂城市交通状况,本文的方法在复杂城市交通状况具有明显优势,可达到快速检测的实时性要求。
表3 不同算法的处理速度与识别率
5 结论
本文针对复杂城市交通场景下的车道线检测,为提高检测的鲁棒性和实时性,提出一种实时车道线快速检测算法。
首先用ROI区域提取和改进灰度化提高算法的实时性;再采用图像增强及改进的Gabor滤波进行图像去噪,及通过Sobel算子进行边缘检测提取边缘特征,最后提出多约束的霍夫变换,基于车道线中心线分布的不同角度,利用分段函数选取车道线斜率;并将车道线与其消失点之间的几何关系用来检测识别车道线,提高车道线检测识别的准确率。实验结果表明,该算法精度在不同场景中均可达到92%以上,平均识别速率可达到36ms/frame以下,达到实时性要求,可实现车道线的快速实时的准确检测。
本文核心算法还可应用于其他场合的平行线检测中,如室内移动导航的走廊边界检测或移动输电线路系统的输电线路的检测,具有较大的应用前景。