辛 敏,罗 山
(攀枝花学院智能制造学院,四川 攀枝花 617000)
车道偏离报警系统[1]是无人驾驶的关键环节之一。车道线识别是通过检测道路图像特征点,从而定位车道线的位置。吴志军等[2]提出基于Sobel和hough变换的车道线识别算法,给出了完整的车道线识别算法,对常用工况下的车道线图像进行识别有较好的效果。但是,由于车道线在复杂的天气变化和道路环境下会变得模糊不清,例如道路图像在阴影、强弱光照、雾霭、雨天等条件下,车道线并不是清晰可见的,而车辆在此类环境道路上行驶比较常见[3],由此给车道线识别算法带来挑战。针对此类问题,本文在研究Hough变换的基础上,提出改进的Hough变换车道线识别方法,通过实验对比分析了算法改进前后的识别效果。
车道线识别主要是将采集的彩色道路图像进行输入识别检测,最终识别出路面上的车道线。其中输入为彩色道路图像,输出为标定的路面车道线,本文的系统设计流程如图1所示。
图1 车道线识别系统流程
受道路结构的复杂程度的影响,采集到的图像可能会含有许多因素的干扰,例如噪声、树木遮挡、光照强度不均匀、车道线磨损等干扰,都会影响车道线边缘检测和车道线识别的实时性和精确性[4]。本文的图像预处理包括三部分:目标区域划分、图像灰度化、图像去噪。
图像采集后需要进行目标区域的划分,选择目标对象所处区域作为感兴趣的部分进行重点分析处理,其他区域予以忽略。由于摄像机安装在车辆挡风玻璃的正中央,因此采集到的图像上部分包含了天空、周围的树木、前方车辆等道路上的信息,而图像的下部分主要是道路车道线的信息,所以选择感兴趣区域为图像的下部分,车道线的检测只需在这一区域进行。
采集到的彩色道路图像若不经处理直接进行滤波去噪,会增加计算量和内存使用量,导致程序无法运行或运行时间过长,通过图像灰度化可以减少运算量。本文采用平均值方法将划分的目标区域进行图像灰度处理,即某点的像素值等于R、G、B三个分量的平均值。
由于采集道路图像时容易受到周围环境、复杂的道路情况和恶劣天气状况等因素的干扰,从而导致采集的图像中存在噪声干扰,即在图像中表现形状为像素块和一些亮度较大且细小孤立的像素点[5]。这些噪声干扰会影响车道线特征点的提取,从而影响车道线检测和识别,导致车道线的定位不太精确。因此需要对图像进行滤波去噪,抑制噪声因素的干扰。
中值滤波[6]是非线性平滑滤波中的一种方法,它在平滑图像的同时不会造成边界的模糊,在抑制噪声干扰的同时保持图像中车道线特征的清晰,因此本文采用3×3模板的中值滤波器来进行图像的滤波去噪,从而保证图像细节不会失真。
为了将感兴趣的区域与背景区域分开,需要对图像进行二值化。图像的二值化是将原始图像像素点的灰度值设置为0或255,也就是将原始图像变为黑白图像,即通过对256个亮度等级的灰度图像进行适当的阈值选取从而获得仍然可以反映图像局部和整体特征的二值图像。因为Otsu阈值分割算法具有处理简单、速度快的特点,因此本文采用Otsu方法进行图像的二值化处理。
Hough变换的原理主要是将图像空间中的参数直接映射到参数空间中,从而建立起图像空间中的点和参数空间中直线的关系,然后将图像空间中不能解决的问题转移到参数空间中来解决[1]。本文的Hough变换采用极坐标来表示,极坐标方程表示为:
ρ=xcos(θ)+ysin(θ)
(1)
式(1)中,ρ表示该直线到原点的法线距离;θ表示法线与x轴的夹角。
因为待检测的边缘可能含有噪声干扰,因此在随机选择待测边缘的像素点时,选到虚假边缘像素点的可能性很大,从而导致Hough变换对车道线检测时的精确度不高,影响图像处理后与模型的匹配程度。所以Hough变换采用类似于投票机制的形式来保证最后得到的检测结果与实际的车道线最接近,该方法主要是通过对参数空间中每个不同的(θ,ρ)使用累加器来进行统计累加,然后将得到的(θ,ρ)最大统计量作为直线参数。
Hough变换算法对图像的车道线进行识别时,计算量大且运行时间长从而导致车道线识别实时性不高,为此本文提出一种改进的Hough变换来识别图像中的车道线,以减少算法的计算量,提高车道线识别的实时性。
设f(x,y)为二值图像,则图像边缘点(x,y)的梯度的幅度值和方向角分别为:
(2)
式中,fx表示为x方向的梯度值;fy表示为y方向的梯度值;Δf(x,y)表示点(x,y)的幅度值;θ表示点(x,y)的方向角。由此可以看出先计算出二值图像边缘的梯度,从而获得图像边缘像素点的方向角。假如Hough变换的角度分辨率为1°,则需要对每个可能取的θ值算出对应的ρ值,那么图像中每个边缘点都要从分辨率为1°的360个θ中随机选取并求出对应的ρ,然后放入累加器进行累加计数。而改进的Hough变换算法主要是通过计算确定θ的取值,当图像边缘的θ确定后则只需计算一次ρ,从而实现算法运行速度的提高。
改进Hough变换是基于参数空间分块的思想,也就是将参数空间划分为均匀的累积区域,并对每个区域都加入一个累加器[7],当图像空间中的点映射到参数空间形成曲线时,再对所得的曲线进行ρ和θ的量化处理。如果经量化处理后的点落入不同区域时,需要对相应区域的累加器进行累加增1计算,最后累加器数值最大的区域即为峰值区域。改进后的Hough变换车道线识别算法流程如图2所示。
图2 改进的Hough变换流程图
具体算法步骤如下:
1) 依据所选图像的尺寸大小选择合适的和进行量化处理从而得到量化值,然后将参数空间分为u×v块累积区域,每个累积区域的累加器用初始值为0的P(u,v)来表示。
2) 根据边缘像素点(x,y)的θ求出ρ。
3) 在参数空间中,找到量化处理后ρ和θ所对应的累积区域,并将该区域内的累加器进行累加增1,即P(u,v)=P(u,v)+1。
4) 将2),3)步进行循环,直到取遍图像中所有的边缘点,从累积区域中找出数值最大的累加器所对应的参数。
为验证改进算法的有效性,对上述Hough变换和改进后的Hough变换算法进行仿真实验。基于PC平台,使用MATLAB软件进行算法的编程,将得到的实验结果进行对比分析,验证了改进后的Hough变换算法比基本Hough变换具有更强的实时性和精确性。结果如图3所示。
图3 Hough变换车道线识别对比
为进一步验证改进算法的实时性和精确性,使用改进的Hough变换对不同的自然环境下道路图像进行车道线识别。效果如图4所示。
如图4所示,图(a)是在夜间的条件下进行的车道线识别,图(b)是在雾天的恶劣天气下进行的车道线识别,图(c)是在树木遮挡的情况下进行的车道线识别,可以看出在不同的环境下改进后的Hough变换算法对车道线的识别效果好,验证了该算法拥有较高的实时性和精确性。
图4 改进Hough变换在不同环境下的车道线识别
由于传统的Hough变换算法存在计算量大和运行时间较长等缺点,但又有抗噪声干扰能力强,鲁棒性好等优势使其在车道线识别中应用较广。为确保所选算法的抗噪性能,同时也能提升算法的速度,减少算法运行时间,并提高车道线识别的实时性,本文提出一种改进的Hough变换车道线识别算法。通过对实验结果对比分析,验证了改进后的Hough变换算法具有更高的精确性和实时性,但该算法对道路中磨损严重的车道线识别效果较差。