基于RGB空间的车道线检测与辨识方法
2014-10-14杨益,何颖
杨 益,何 颖
(西北工业大学自动化学院,陕西 西安 710129)
0 引言
车道线检测是智能车实现自动驾驶的基础。目前车道线的检测方法主要有2类:(1)第1类算法是基于模型的方法,常用的车道模型有直线模型[1]、二次曲线模型[2]、线性双曲线模型[3]、B 样条曲线模型[4]等。该类方法首先对道路原始RGB图像进行灰度转换,然后通过 Sobel、Laplace、Robert、Canny 等算子[5]提取车道线边缘,最后通过 Hough 变换[6]、最小二乘拟合[7]、RANSAC 拟合[8]等算法对边缘进行拟合,从而将车道线以数学模型的形式表达出来。虽然Hough变换等算法在参数估计中对消除离群点有一定的作用,但是在阴影或其他车辆、路牌、建筑等有明显边缘的物体的影响下,此类方法会检测出大量与车道线无关的边缘,算法性能将会显著降低。另外,此类方法是基于灰度空间检测边缘的,不能区分检测到的不同颜色的车道线。(2)第2类算法是基于特征的方法,该类方法一般先通过提取路面的颜色[9-10]、纹理[11]或边缘梯度等特征[12],再用区域增长的方法获取道路区域,或用分类的方法获取车道线信息。而结构化道路的路面特征比较单一,很难提取出具有较好可区分性的特征。如果不加入其它严格约束条件,很容易受到与路面特征相似的非道路区域和光照变化场景的干扰。
传统基于颜色检测车道线的方法一般都是在灰度空间下进行的。该方法不能区分不同颜色的车道线,尤其是黄色车道线的识别。因为黄色车道线是不同方向行驶车辆的道路的分界线,它的检测对于保障智能车在路面安全行驶有很大作用。为了让车道线检测算法适应不同天气与光照环境,并且能够区分黄色或白色车道线,本文提出了一种基于RGB空间的像素段检测方法。该方法通过对道路图像从下往上隔行扫描,结合对黄色和白色这2种车道线颜色的先验知识划分它们在RGB空间中位置分布,对扫描出的像素段进行分类,然后根据这两类像素段的亮度值设置2组阈值,提取出黄色或白色车道线。相对文献[9-10]的算法,主要做了以下几点改进:(1)通过隔行扫描能够从原图自动寻找存在黄色或白色这两种不同颜色车道线的行。(2)通过区域划分自动辨识这两种不同颜色的像素段,从而对整体进行阈值估计。该阈值是根据当前图像环境改变的,属于动态阈值分割。(3)通过对提取的像素段的宽度约束和阈值的多行表决能够有效地去除图像各种噪声的干扰。
1 算法原理与过程
1.1 提取图像感兴趣区域(ROI)
由于基于RGB空间的图像分割会受到天空颜色的影响,因此本文用蓝色分量的均值投影法来划分道路与天空分界线[13]。用 fb(i,j)表示图像中像素点(i,j)的蓝色分量值,则一幅M×N的图像的投影法表示为:
投影图中的最小值对应的水平位置认为是天空与道路的分界线。
1.2 黄白车道线多行动态扫描
图1 多行动态扫描算法流程图
由于车道线颜色的深浅在不同视距下是变化的,为了更准确地寻找分割阈值且节省处理时间,本文使用隔行动态扫描法寻找存在黄色或白色车道线的行。由于图像ROI下方4/5区域为近视场,相比上方远视场能更清晰地提取黄白像素段样本,因此只对ROI下方4/5区域进行扫描。假设图像ROI大小为H×N,μr、μg分别为该行所有像素点的R、G分量均值,σr为R分量标准差。μ'g为集合n中像素点的G分量均值,fr(i,j)为像素点(i,j)的 R 分量值,搜索算法流程图如图1所示。
逐行扫描完,每块最多会扫描出一行符合条件的行,一共8块最多能扫描出8行,这样就能提取到足够多的样本。图2为通过该方法扫描所得的结果,横线为被扫描出含有黄或白色车道线的行。
图2 隔行扫描寻找出的存在黄色或白色车道线的像素行
1.3 寻找可能为黄色或白色车道线的像素段
图3 RGB空间立方体与道路色彩分布范围示意图
在RGB模型中,不同光照下道路图像的色彩分布接近高斯分布[14],在RGB空间的分布范围如图3所示。路面色彩的分布范围集中在黑白之间的灰度空间区域附近,图2下方4/5区域所有像素点的RGB值在RGB空间分布如图4所示。可以发现,除了一些黄色车道线的像素点偏离黑白对角线向(255,255,0)靠拢和白色车道线像素点分布在(255,255,255)附近外,其他几乎所有的像素点都分布在对角线中间灰色空间附近。于是,对图2道路中扫描出的行可以按公式(1)提取黄色或白色车道线像素。
Re为满足条件的像素点序列。其中Thr=Pr(μr+fr×σr)为黄色或白色车道线像素R分量阈值,Thg=Pg(μg+fg×σg)为黄色或白色车道线像素G分量阈值,μr、μg、σr、σg分别为该行 R、G 分量的均值与标准差,fr、fg分别为R、G分量的调和因子。
图4 图2下方4/5区域所有像素点的值在RGB空间的位置分布图
由于车道线中R分量与均值的差距比G分量与均值的差距大很多,fr的一般取值范围为:
1.5 <fr<2
fg的一般取值范围为:
0.8 <fg<1.5
在晴天光照下这两个系数可以取高,在阴暗天气这两个系数可以适当调低。
式(1)实质上就是对扫描出的行中像素点按阈值提取,将行中Ir(u,v)>μr+fr×σr与 Ig(u,v)>μg+fg×σg的像素点提取出来作为黄色或白色车道线像素点。
为了防止该行中存在路面一些R、G亮度比较高的杂质点的影响,需要将上面提取到的像素点进行筛选,将像素相邻的点归为一段(只要两个像素点的间隔不超过3个像素点的长度,即可认为相邻),然后结合车道线的宽度信息对这些段的长度加以约束,将过短和过长的段滤除掉。本文对段的宽度给出一个参考约束范围:
0.01 N <w <0.1N
其中N为图像宽度,w为像素段的长度。
1.4 基于RGB空间分布的黄白车道线分类方法
不同光照条件下道路中的黄色车道线的颜色大小在RGB空间中的位置分布差异比较大。具体表现为当天气效果由晴到阴时,黄色车道线的RGB值在图5中由黄色 Y(255,255,0)向白色 W(255,255,255)移动,但是离W会有一定的距离,不会无限接近W。为了能够既快速又准确地将黄白像素段进行颜色分类,本文直接根据黄白颜色在RGB空间与黑白对角线OW之间的夹角α的差异来判定,认为上面像素段中的点向量(R,G,B)与 OW(255,255,255)夹角均值在α之内的为白色车道线像素段,即在图5多面体O-ABCW中。该多面体是由以O为顶点,OA为母线,以夹角α绕OW旋转而形成的圆锥体与RGB立方体所截后形成的。如果不在该区域就为黄色车道线像素段(前面的步骤已经将所选像素段中的点变为最接近YW的点)。从大量图像的实验效果看,α不宜取得过大,过大会导致一些光照阴暗的黄色车道线被误分为白色,过小则导致白色的范围太小。本文将α的估计视为一个分布密度函数服从高斯分布的两个类的分类问题。根据相对熵理论得出的最小错误准则可以很好地估计这个分类阈值[15]。
其中Pw(α)、Py(α)分别为以α角为随机变量,将像素判别为白色或黄色的概率分布,σw(α)、σy(α)分别为以α角为随机变量,将像素判别为白色或黄色的概率分布的均方差。由于一个像素段有多个像素,对像素段按如下过程分类:先求取像素段中每一个像素的颜色向量与OW的夹角,将这些向量夹角的均值αi作为像素段与OW的夹角进行分类,结果按下式计算:
图5 黄色或白色车道线像素段在RGB空间中的位置划分
1.5 黄白像素段阈值估计
为了防止路面由于反光或逆光拍摄对像素段提取造成干扰,需要在每一行中选取置信度较高的像素段作为代表来进行阈值估计。本文对黄白这2种像素段采用不同的标准进行取舍。定义像素点的模值为‖(R,G,B)‖2。用该段内所有像素点RGB的模值均值作为该段的模值,用模值最大的像素段作为该行的白色像素段代表。对黄色像素段,用前面对段进行分类时计算的段与OW的平均夹角αi最大的段作为该行黄色像素段代表。假设这里获得该行白色代表段与黄色代表段分别为Sew与Sey,亮度均值分别为(μwr,μwg,μwb)、(μyr,μyg,μyb),标准差分别为(σwr,σwg,σwb)、(σyr,σyg,σyb),在高斯分布的假设下,概率置信度取σ,可以按下列两组阈值来区分该行像素点中的白色与黄色车道线。
(1)当该行中的像素点RGB值满足如下条件时为白色车道线:
(2)当该行中的像素点RGB值满足如下条件时为黄色车道线:
1.6 车道线阈值多行表决估计
对图2经过上述算法处理所得的结果如表1所示。
表1 各行通过本文算法计算出的阈值
从数据表1结合图2可看出,由于第5行、第6行(图2中由下往上)中不存在白色车道线,因此白色阈值为空。对于最终阈值的选取,实验中尝试了取这些数据的均值和最小值(Tyellowb取最大值)的方法。通过大量图像检测的结果来看,用均值求取的最终阈值虽然能够很好抑制像素段中干扰数据,但是求取的阈值偏大,不能将图像中相对亮度比较低的白色车道线检测出来。而用最小值能将不太明显的白色车道线检测出来,但是容易受到野值影响而使得最终的阈值偏小,导致图片中白色与黄色区域泛滥。结合上面两类因素,本文先对所有行的数据作窗口大小为3的中值滤波消除野点的影响,然后分别求取剔除极值点后的数据的每一项的均值与标准差,最后用下列公式对整幅图像的阈值进行估计:
利用上面求得的2组阈值,将原道路图像中满足公式(2)的像素点赋值为(255,255,255),将满足公式(3)的像素点赋值为(255,255,0),剩余的所有点全部赋值为(0,0,0),这样就可将原道路图像分割为只含白,黄,黑的三值图像。表1中的数据经过公式(2)、(3)计算求得的结果为=217.3,=219.3,=219.1,=220.1,=207.2,=205.0,处理效果如图6所示。
图6 图2分割出的白、黄合成车道线图
从图6的检测效果来看,原道路图像中两边树干的白色涂层和路标还有黄色车道线左边路面上的干扰痕迹都被最终的阈值屏蔽了。原图中远视场的黄色车道线颜色比较淡,被最终的阈值划分到了白色车道线的范围内,但是这并不影响后续对车道线模型的重建。因此算法基本满足后续处理的要求,达到了分割的效果。
2 实验结果和分析
图7 各种环境下的道路与处理结果图
本文中算法是在2 GB内存,1.8 GHz主频的PC机的Matlab平台上实现的。实验处理了从视频提取的1123帧1280×720图像,每幅图像平均运行耗时1.2 s。下面列出部分特殊环境下的实验结果,如图7所示。其中,图7(a)左半部为雾霾天气情况下拍摄的车道线原图,右半部表示通过本算法检测与辨识出的黄白车道线重构图;图7(b)为路面存在干扰痕迹情况下的原图和重构结果;图7(c)为存在车道线被车辆遮挡和部分阴影时的情况;图7(d)为左侧存在阴影和前方存在强光照射时的情况。
由上述实验结果可知,在前述几种不同程度的恶劣环境下本文提出的算法都有比较好的检测效果。为了测试本文算法检测车道线的精确度,搜集了100张各种环境下的结构化路面图像作为测试集。所有的图片都缩放到600×800大小。将检测结果与Canny算子检测的边缘作对比,分别将本文提出的算法检测得到的车道线的边缘和Matlab实现的Canny算子检测到的边缘的结果叠加到测试图像上。找20个普通学生作简短的培训告知边缘的概念,让他们对测试结果打分。打分分为3个方面:(1)检测到的边缘与真实边缘的总体吻合程度;(2)无漏检的边缘;(3)无虚假边缘。打分分为3个等级:1(差)、2(一般)、3(好)。将各个等级获得的频数统计如表2和表3所示,最后的平均意见得分(Mean Opinion Score,MOS)用频数对分数作加权平均。
表2 本文提出算法检测的打分结果
表3 Canny算子检测的打分结果
由表2和表3可知,如果将总体吻合度的打分结果优于2(一般)作为正确的标准,本文提出的算法正确检测率达到98.5%,优于Canny算子检测的正确率86.7%。在漏检边缘方面,本文算法性能与Canny算子在大多数情况下相当;Canny算子主要是在模糊的图像中漏检几乎全部边缘,而本文的算子则基本上只在远视场处漏检边缘。在虚假边缘方面,Canny算子检测出大量难以消除的虚假边缘;这些虚假边缘极大地影响了Canny算子整体吻合度;本文算法几乎没有产生虚假边缘。
3 结束语
本文提出了一种基于RGB空间的黄色或白色车道线检测与辨识算法。该算法通过多行扫描提取出置信度比较高的能代表原道路图像中黄色或白色这两种不同颜色车道线的像素段作为样本,并通过像素段在RGB空间的分布差异进行分类,估计出黄色或白色车道线的阈值。实验结果表明,在结构化道路下,该算法具有比较高的抗干扰性,能够根据光照等环境的变化自动调整阈值,快速从原图中准确提取出不同颜色的车道线,减轻了后续对车道线颜色分类和车道线模型重建工作的难度,能够应用于车辆视觉导航与自动驾驶中。
[1]Collado J M,Hilario C,De la Escalera A,et al.Detection and classification of road lanes with a frequency analysis[C]//Proceedings of the 2005 IEEE Intelligent Vehicles Symposium.Nevada,USA,2005:78-83.
[2]Lu W N,Zheng Y C,Ma Y Q,et al.An integrated approach to recognition of lane marking and road boundary[C]//Proceedings of the 1st International Workshop on Knowledge Discovery and Data Mining.Adelaide,Australia,2008:649-653.
[3]Chen Q,Wang H.A real-time lane detection algorithm based on a hyperbola-pair model[C]//Proceedings of the 2006 IEEE Intelligent Vehicles Symposium.Tokyo,Japan,2006:510-515.
[4]Wang Y,Teoh E K,Shen D.Lane detection and tracking using B-snake[J].Image and Vision Computing,2004,22(4):269-280.
[5]段瑞玲,李庆祥,李玉和.图像边缘检测方法研究综述[J].光学技术,2005,31(3):415-419.
[6]Matas J,Galambos C,Kittler J.Robust detection of lines using the progressive probabilistic Hough transform[J].Computer Vision and Image Understanding,2000,78(1):119-137.
[7]王伟莉.车辆安全行驶辅助导航研究——车辆超车辅助导航[D].西安:西北工业大学,2007.
[8]宋卫艳.RANSAC算法及其在遥感图像处理中的应用[D].北京:华北电力大学,2011.
[9]胡骁,李岁劳,吴剑.基于特征颜色的车道线检测算法[J].计算机仿真,2011,28(10):344-348.
[10]覃勋辉.基于视觉的车辆导航参数提取方法[D].西安:西北工业大学,2012.
[11]Kong H,Audibert J Y,Ponce J.General road detection from a single image[J].IEEE Transactions on Image Processing,2010,19(8):2211-2220.
[12]王永忠,王晓云,文成林.梯度点对约束的结构化车道线检测[J].中国图象图形学报,2012,17(6):657-663.
[13]卢卫娜.车辆视觉导航方法研究[D].西安:西北工业大学,2006.
[14]刘志强,仲晶晶,汪澎,等.不确定背景环境下车道检测技术的研究[J].中国安全科学学报,2009,19(12):159-164.
[15]Mehmet Sezgin,Bulent Sankur.Survey over image thresholding techniques and quantitative performance evaluation[J].Journal of Electronic Imaging,2004,13(1):146-168.