基于改进SIS算法和顺序RANSAC的车道线检测方法研究

2018-08-24 07:51
计算机测量与控制 2018年8期
关键词:车道灰度阈值

, ,

(北京工业大学 信息学部,北京 100124)

0 引言

近年来,由于汽车保有量与使用率的增加,交通事故的发生呈现逐年上升的趋势。其中汽车作为交通道路中的主要参与者,保证汽车的行车安全是智能车辆研究领域的重要课题。随着先进驾驶辅助系统(Advanced Driver Assistance Systems,ADAS)的有效应用,智能车辆在辅助驾驶和遇险报警等方面的功能已经日趋完善。如何快速、准确的检测出城市道路中的车道线,有效提升驾驶系统的鲁棒性及安全性,为后续的车道保持、车辆避障与路径规划提供可靠保障是智能车辆自主驾驶技术亟需解决的问题。

许多研究者对车道线检测进行了深入的研究。常见的方法是先进行图像预处理,包括灰度化、图像降噪和二值化等,然后采用边缘检测算法[1]和Hough变换[2]检测车道线。为了提高算法的实时性,Liu等[3]采用LSD算法[4]检测车道线,但没有考虑线段的相关性,所以在噪声环境中提取车道线时会受到干扰。Guo等[5]采用LDA对道路图像进行有针对性的灰度化,然后再利用LSD提取直线,但没有考虑道路其它标志的干扰。Lee[6-7]等提出一种基于特征的车道线估计方法,采用直线模型匹配道路边界,抗干扰能力强,但弯曲的道路边界会提取失败。还有一些研究者利用卡尔曼滤波[8]和粒子滤波者[9]利用当前帧对下一帧进行估计,但是由于算法复杂度高,实时性会有所下降。

1 改进SIS阈值算法

通过阈值化对图像进行处理,可去除大量的无用信息,提高车道线拟合与检测的准确性。根据路面环境特点,本文提出一种改进SIS阈值[10]分割算法和改进的顺序RANSAC算法用于车道线拟合与检测。

图1 改进SIS算法与改进顺序RANSAC算法流程图

本文算法主要包括以下几步,算法主要流程如图1所示。第一步,如图2所示,截取车道线感兴趣区域(ROI),并进行灰度化和图像降噪处理;第二步,采用改进的SIS阈值算法对图像进行阈值化;第三步,构建车道线模型并简化为双曲线模型;第四步,利用改进顺序随机抽样一致性(RANSAC)算法拟合车道线线,然后根据两边的车道线模型进行模型配对;最后,通过选取包含最多支持数据点的组合确定车道线,与传统的Hough变换和LSD等方法相比,提出的算法不仅可以检测直线车道线,还可以进行曲线车道线的拟合,而且在有效提高车道线识别准确率的同时也满足实时性要求,鲁棒性也有所提高。

图2 车道线感兴趣区(ROI)

SIS算法是一种基于图像本身统计特性的阈值算法,它执行速度快,可以自动选择阈值,在目标区域与背景区域有明显梯度的图像中有很好的效果。假设图像为f(u,v),算法过程如下:

1)计算每个像素的水平方向梯度和垂直方向梯度,如式(1)所示:

(1)

2)取水平方向梯度和垂直方向梯度的最大值作为这个像素的权重,然后计算权重之和、加权像素之和,如式(2)所示:

(2)

3)加权像素之和和权重之和的比值即为最终的阈值,如式(3)所示:

(3)

其中:f(u,v)是像素点(u,v)的灰度值。

SIS算法在寻找阈值时,降低非边缘区域的像素权值,提高梯度边缘的像素权值,在处理噪声低的图像时效果良好。但在噪声多的图像中,并且图像中的噪声灰度值介于目标灰度值和背景灰度值,那么得到的阈值会变小。如果图像中的噪声灰度值大于目标区域的灰度,得到的阈值会变大。所以在一些复杂情况下该算法效果一般。

所以本文对SIS算法进行了改进,主要思想是由于车道线的亮度总是高于其周围的道路,所以将亮于邻近点的区域分离出来,也就相当于将车道线部分分离出来。首先计算像素点周围r邻域内的灰度值,并对灰度值做加权平均,然后用原灰度值减去加权平均的灰度值,如果小于零,将该点置零。

这种方法受r的影响很大,如果r取的过大,不会影响计算速度,且分离效果不理想。如果r取的过小则只会把图像中的边缘部分突出,无法有效去除图像中的噪声。结合车道线检测的道路环境,对r取不同的值进行多次计算比对,当r=7时可取得最佳效果,灰度图像的处理结果如图3所示。

图3 灰度原图以及高亮区分离图

图4(a)是图3的灰度直方图曲线,在这种情况下,一方面由于分离出的高亮车道线区域周围像素灰度值均为0,并且这些像素处在高亮区域边缘,权值较大,那么阈值会变小;另一方面存在高亮度噪点,这些噪点的权值也较大,那么阈值会变大。所以很难通过基于直方图的算法求得理想的阈值。

图4 灰度曲线图

为降低这些因素的影响,本文采用像素本身灰度值的平方根作为该像素的权值。这样可以在去除灰度值为0的像素的影响的同时降低高亮噪点对阈值的影响。阈值的计算公式如式(4)所示:

(4)

改进算法与比原算法节省大量计算,因为只需要对原直方图进行计算便可以得到阈值,而不再需要对每个像素进行计算。根据直方图计算阈值的公式为:

(5)

式中,i为灰度值,Pi为该灰度值的像素个数。

图5 路面泛白情形下二值化对比

加权后的直方图曲线如图4(b)所示,改进的算法与原算法及OTSU算法的效果对比如图5~7所示,其中图5的原图为图2。图5是有阴影干扰和路面泛白的情形下,SIS算法、OTSU算法和本文的算法都取得了好的效果。图6是在低亮度和有阴影干扰的情况下,本文的算法在保留了车道线前提下,滤除了噪声,效果最好。改进算法能更好地响应图像亮度和对比度的变化,对环境的适应性更好。

图6 阴影遮挡情形下二值化对比

通过实验测试,SIS算法处理一幅图片需要2.45 ms,OTSU算法需要1.49 ms,本文提出的算法仅需0.98 ms。

2 车道线模型的构建与简化

假设路面为平面,并且车道线都是平行的,那么根据摄像机的位置和朝向,可以确定路面车道线和投影车道线的几何关系,这里采用如图7所示的道路模型,那么左右两条车道线可分别由式(6)、(7)表示:

图7 道路模型

(6)

(7)

为了更好地说明这个模型及其中的参数,首先明确3个坐标系:大地坐标系(路面坐标系)、汽车坐标系和摄像机坐标系。θ和φ是摄像机对于大地坐标系的偏航角和俯仰角。(u,v)表示像素点相对于投影中心水平方向和垂直方向的位置,Eu和Ev表示摄像机在像素单元上水平方向与垂直方向的焦距,这些参数(投影中心、Eu和Ev)都可以通过摄像机的标定来获得。H是摄像机距离道路表面的距离。C0是道路的横向曲率,如果C0=0那么道路为直的,即式(6)、(7)表示直线。xc和dr分别表示左右车道线距车辆的距离,L=xc+dr为车道宽度。

为了简化拟合过程,这里将车道线模型进一步简化为以A、B、C、D为未知量的双曲线形式,即:

(8)

以矩阵形式表示为

(9)

其中:E=C-BD,F=A-CD,Cr是对称的,Cr·P表示双曲线在P点的切线。

3 改进顺序RANSAC方法拟合车道线

要确定一个模型需要4个像素点,但多数情况下会存在超过4个候选像素,并且还存在一些异常像素,从而导致可能存在多模型问题,这里采用顺序随机抽样一致性[11](Sequential RANSAC)算法来解决此问题。

顺序RANSAC是将RANSAC算法运行多次,直到找到所有的模型或者执行一定次数的迭代。一旦确定一个模型后,它包含的支持数据点就会从数据集中清除,然后RANSAC再在数据集剩余数据点中确定其它模型,也就是说如果前面确定的模型不准确,会导致数据集中的数据点误消除,这种情况在道路弯曲时尤为明显。

为了解决这一关键问题,更准确地检测车道线,本文提出了一种改进的顺序RANSAC算法,加入了一种融合机制,该算法流程如图8所示。

图8 改进的顺序RANSAC算法流程图

该方法分为以下6个步骤:

1)在像素集中随机选择4个像素数据点。

2)创建模型并找到所有的支持数据点。尽管4个不在一条线上的任一点可以产生一个唯一的双曲线,但并不是每一个结果都能正确地描述车道线,所以这一步在寻找支持数据点之前,需要对模型进行校验,式(8)中A、B、C、D的显式解如式(10)~(13)所示:

(10)

(11)

(12)

D=-tanφEv

(13)

首先校验D,D的值随φ的变化而变化,φ的变化是汽车悬架系统的压缩和伸长变化决定的。当车辆前悬架压缩,后悬架伸长时,摄像机向前下倾斜,φ可达到最大值;反之车辆前悬架伸长,后悬架压缩时,摄像机前倾减少甚至会向上倾斜,此时φ可达到最小值。通过实际车辆测试可知得φ的值浮动变化为±3°,即±0.035 rad,所以φ值范围为[φn-0.035,φn+0.035]。D确定后可以根据道路曲率校验A,A的大小取决于|C0|,一般车辆的最小转弯半径为10米,那么这里|C0|设置为0.1 m-1,对于直线,A=0。B和C与车辆的行驶姿态有关,由于车辆可以在道路的任何位置行驶,所以对B、C不约束。如果没有进行D和A的校验就开始下一次迭代,会出现错误的拟合结果。

3)4个随机点可以产生一个唯一的双曲线和六条直线,共7个模型,这7个模型中只有包含最多支持数据点的模型会被保留,支持数据点由ds确定,如式(14)所示,如果ds小于一个阈值,那么数据点将被判定为支持数据点。

(14)

其中:Cr已由式(9)给出,(Cr·P)n表示向量的第n个元素。

4)将新模型与之前确定的模型进行融合,如果新模型与之前的模型中有公共数据点,那么保留具有更多数据点的模型,另一个模型移除释放。如果没有公共数据点,则此模型被标记为一个新的模型。由于车道线不存在交叉点,所以此方法在此适用。

5)重复步骤1)~4),进行一定次数的迭代,直到没有数据点被消除,从而不会影响后续的拟合结果。

6)到本步骤为止,已经得到了多个互不交叉的模型,为了提高执行速度,消除这些已经得到的模型的支持数据点,然后在剩余像素数据集中重复步骤1)~4),进行一定次数的迭代。拟合结果如图9所示。

图9 拟合结果

4 最终模型和车道线的确定

4.1 车道线连续性

如图10所示,以图中的标志为例,车道线与直行标志最大区别是车道线由多条连续线段组成,所以可以计算得出箭头在感兴趣区域内连续出现的帧数P。利用标志位置到车辆的距离、车辆的行驶速度和视频的帧率就可以计算出P值,如式(15)所示:

(15)

式中,S为箭头、文字等被检测的位置到车辆的距离,F为视频帧率,v为车辆的行驶速度。

图10 车道线与直行标志

在连续的视频帧中,P值可以作为判断车道线是否存在的阈值。如果一条直线在P帧中连续出现,那么就应该加上这条车道线,反之如果在连续P帧中没有出现,那么就去除这条车道线。

4.2 确定最终车道线模型

确定单个车道线模型后要进行车道线模型的配对,从而得到一条车道,理想的配对结果取决于模型所具有的支持数据点数量以及模型拟合出的车道宽度是否符合正常的数值。

逆透视映射(Inverse Perspective Mapping, IPM)变换图像是将摄像机视图转换为从上到下的俯视视图,如图11所示。假设地面为零,相机分辨率为m×n像素,视场角为2α×2β弧度,θ为摄像机俯仰角,相机到地面距离为H。大地坐标系[u,v]到图像坐标系[x,y]转换关系如下[12]:

(16)

图像中的点可通过这个方程得到大地坐标系中的对应点。

图11 IPM变换图

根据IPM变换图结合式(6)、(7)可以得到车道宽度L,在现实情况中,机动车道的宽度在2.45~3.75 m之间,可以由此建立车道宽度约束。一般情况下,两条车道线独立拟合的结果不会完全遵循平行的关系,所以这里会得到一个非恒定的L,为了获得更加准确的模型,需要对配对的两个模型进行微调,使其遵循平行关系。根据式(6)、(7)可知,如果一个模型的形式与式(8)相同,那么另一个模型就如式(17)所示:

(17)

式(8)和(17)表明,要对这两个模型进行微调需要5个点来确定。但是这对车道线模型是由拟合步骤中的8个点(每条车道线模型各4个)拟合推导出得到的,这里在其中一个模型的4个点中选取3个点,另一个模型的4个点中选取2个点,总的来说有48种选取组合,这48个组合中选取规定范围内具有最多支持数据点的组合为最终模型。之后,利用式(16)将车道线的端点再转换到原图像中。

5 实验验证

程序基于Visual Studio 2010和OpenCV2.4.10,硬件平台为Intel(R)Core(TM)i5-7200CPU、GF920MX显卡和4GB内存,本文的算法基于单目视觉,为了验证本文所提出的基于改进SIS算法和改进顺序RANSAC算法的车道线检测方法的检测性能,共采用6段视频数据集进行验证,其中四段视频是加州理工学院的车道数据集,另外两段为城市快速路、高速公路的视频数据,这6段视频分辨率为640×480,涵盖多种工况。其中加州理工学院的车道数据集与文献[13]作了对比,结果如表1所示。高速路的检测结果如表2所示。

其中,车道线检测的正确率就是指检测到的正确的车道线数目与实际车道线总数的比值,车道线的误检率是指本身图像中不是车道线的信息被误检测成为了车道线,也就是误检测的直线与实际车道线总数的比值。单车道只考虑车辆当前行驶的车道,多车道表示视车辆前方包括当前车道在内的多条车道。算法在多种工况下的拟合与检测效果见图12,可以看到效果图清晰地展示了阴影、车辆干扰、车道标志干扰等多种工况下良好的检测效果。

表1 城市道路实验对比 %

表2 高速公路测试结果

图12 各种工况下的车道线拟合

提出的算法识别准确率高,误检率低,对不同的道路环境有较强的适应性,在单车道即两边车道线的情况下有很高的鲁棒性。算法每帧耗时为26.65 ms,实时性较强,能满足每秒30帧的摄像头检测。

6 结束语

本文针对车道线检测时会遇到的光照变化、路面状况不同以及阴影干扰等复杂环境,提出了改进的SIS阈值算法和改进顺序RANSAC算法相结合的方法来拟合与检测车道线。提出了改进的SIS阈值算法,相比其他的阈值算法不易受阴影车辆干扰的影响,抗干扰能力强,鲁棒性好,而且算法的计算复杂度低,时间消耗低。采用改进的顺序RANSAC算法检测车道线比采用传统的RANSAC的检测方法相比准确率有了一定的提升,误检率有所减少。实验结果表明,本文提出的算法在满足了实时性与鲁棒性要求的基础上,提高了检测的准确率,并且能适应多种工况以及复杂环境的干扰。

猜你喜欢
车道灰度阈值
采用改进导重法的拓扑结构灰度单元过滤技术
基于OpenCV的直道车道线识别技术研究
北斗+手机实现车道级导航应用
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
天津港智慧工作平台灰度发布系统和流程设计
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
采用红细胞沉降率和C-反应蛋白作为假体周围感染的阈值
Arduino小车巡线程序的灰度阈值优化方案
基于单片机的潮汐车道设计与实现