基于多约束条件下的霍夫变换车道线检测方法
2018-09-19石林军
石林军,余 粟
(上海工程技术大学工程实训中心,上海 201620)
0 引言
随着汽车行业的快速发展和计算机的广泛应用,我国汽车的拥有量越来越高,带来交通便利的同时,交通事故也在逐年上升,越来越多人更关注汽车安全,同时,计算机技术在汽车方面应用所占比重也越来越重。高级汽车辅助驾驶系统 (advanced driver assist systems,ADAS)在汽车中的应用越来越多,甚至无人驾驶汽车也开始发展起来,目前ADAS应用通常是基于摄像机,雷达,红外线或者摄像机和雷达多融合等传感器来获得道路信息,其中摄像机性价比最好,雷达和红外线价格昂贵。其中机器视觉相当于汽车的眼睛,为了实际的无人车行驶,机器视觉的研究显得至关重要。
车道线检测识别作为无人驾驶和ADAS系统中关键技术之一,基于机器视觉检测车道线最常用。由于车道信息对于无人驾驶车辆系统中的道路安全改进是必需的,因此车道的检测是重要的任务。为了满足实际无人驾驶的需求,提高拟合车道线算法的鲁棒性和实时性也成了近几年学者的追求。
从国内外研究现状来看,大多数方法都是针对特定路况 (如高速公路,城市道路)而特别设计的。目前比较流行的车道线检测算法主要基于特征法和模型法。基于特征的方法主要是通过车道线边缘点的梯度、方向和灰度值颜色等等一些低级特征来检测车道线[1],但是鲁棒性很低,基于模型法有直线模型,B样条模型,曲线模型等等[2-3],但是要么鲁棒性不高,要么不够实时。结合模型法和特征法实现车道线精匹配是提高鲁棒性和实时性较好的途径。例如文献[4-6]提出了根据车道线消失点约束特征点的几种算法。文献[7]提出了夜间提取车道线的算法,鲁棒性很好。然而,如果车道标记模糊和残留,检测精度可能会恶化。同样,路面上的反射和污迹也会影响检测结果。文献 [8]采用K-mean聚类像素点收敛最佳匹配车道线。文献 [10-11]运用RANSAC拟合和跟踪车道下。基于前人打的思想,下在本文中,我们介绍一种基于多约束条件的霍夫变换检测车道的算法。首先,通过文献 [12]所提出的算法来提取感兴趣区域 (ROI)。传统的方法是用Canny算子提取边缘信息,然后通过将边缘信息映射到Hough空间来找到最佳的拟合直线。这严重依赖于原始图像的边缘信息。一旦路面上出现裂缝和阴影,该方法的准确性可能会下降,本文从原始RGB图像的每个颜色通道获取信息,改变RGB的3个分量权重来灰度化图像。此外,我们对图像提取的二值图提出几个约束条件,消除了大量噪声,接着通过Hough变换检测并提取车道标记。然后在提取的线段的基础上,采用了基于概率表决程序估计消失点,用消失点来约束线段[13]。最后对剩下有用的车道线进行聚类处理。我们在本文的算法在大量的实验结果表明,所提出的方法优于基于传统的hough变换消失点估计约束方法和文献[14]方法。最后基于理论分析和实验表明,所提算法检测精度高,实时性好。
1 改进的HOUGH变换原理
1.1 车道线图像预处理
为了有效检测图像的同时减少处理时间,需要对对输入的图像进行预处理。在本文中,图像预处理包括ROI(Regio of interesting)裁剪,灰度化和降噪。通过安装在移动车辆上的相机获取的图像通常包含除了车道标记 (如背景和噪音)以外的一些无用信息。为了提高检测速度,去除图像干扰信息。一般来说,道路区域总是位于汽车的正面,除去下部份车头和上部分天空,剩下的就是我们需要的区域。
1.1.1 提取ROI区域
预处理第一部分就是提取车道线图像的ROI区域。为了提高检测率并减少计算负担,我们的算法首先确定ROI[12]。由于道路信息主要位于原始图像的中心部分,所以ROI可以被视为:
其中:I表示原始图像,m,n,d分别表示图像的高度,宽度和颜色深度,uproi和downroi分别表示背景的比例,选取一张车道线图片为例,选定的ROI如图1。
图1 ROI和不同灰度化结果
1.1.2 边缘检测
在进行边缘检测处理之前,我们需要将图像从RGB色彩空间转换为灰度图像。RGB模型转换为灰度空间的常用方程如下所示:
可以看出传统的灰度化中,颜色的权重并不相同。但是,通过使用这个灰度,颜色信息将会丢失。在道路上,行车线的颜色通常是白色,黄色或红色,总是与路面涂有高对比度的颜色。为了增强车道标志信息的特征,我们使用了文献 [13]中提出的有效的方法。等式如所示:
两种方法处理结果如图2,很明显可以看出文献[5]的算法可以提高车道标记强度值的质量,对后续的准确提取车道线特征很有帮助。
边缘检测的性能对于我们的系统是非常重要的。即使在恶劣的天气或恶劣的场景下,该算法也必须是稳健的,在这种情况下可能包含潜在的路线。在进行边缘检测之前先对灰度图进行加权中值滤波处理[6],边缘检测有许多流行的方法,我们选择Canny检测作为我们的边缘检测器,即使对于低对比度图像,它也可以更好地工作,本文方法处理效果如图2(b)所示。
图2 对比的二值图
1.2 对霍夫变换检测线段添加约束条件
即使通过上述步骤大大消除了图像中无用的信息,但如果直接利用Hough变换对二值图像进行处理,算法计算时间可能会较长,而且检测精度不会太高。
通过以上的车道线图像预处理,我们大大消除了无效点,为Hough变换处理创造了有利的条件。而Hough变换检测到的直线可能不是车道线。也许他们是污迹,护栏和路边。为了消除这些干扰线,提高精度,我们设计了以下几个约束条件。首先,车道标线一般位于车辆上安装的摄像头拍摄的图像的左右两侧。它们不是水平的或垂直的,它们的斜率的绝对值|θ|会约束于一个范围(θmin<|θ|<θmax),如图3所示,对该范围的线段进行检测,这里:
其中:Hroi表示ROI的高度,Wroi表示ROI的宽度。如果候选线路超出范围,我们将其视为干扰信息。其次,车道标记可以被检测为几条不同的直线,这里以图4为例,红线和青色的线是我们需要检测的车道线,橙色为干扰线,图中的l2,l3。通过充分的实验验证,每两个检测到的车道标线的角度差不能小于10°。当找到一个候选线时,我们计算线与各个检测线的角度差。如果有任何差异小于10°,我们将该候选线作为干扰信息,并将其删除。通过上述方法,我们可以消除干扰线l2。
最后,由于车道有一定的宽度,车道线之间有一定的距离。我们首先在水平方向上确定ROI的中线,表示为:x=Hroi/2,如图4所示,然后找出中线与所有检测到的车道标记之间的交点。彼此交叉点之间的距离应大于阈值T。通过充分的实验验证,在所提出的算法中将T设置为Wroi/6。具体来说,当我们获得候选线时,我们计算中线和候选线之间的交叉点,然后计算交叉点与检查的车道标线之间的所有距离。如果其中一个距离小于阈值,我们直接删除候选行。因此,我们可以有效地消除路面图像的污迹和边缘。
图3 ROI上检测区域
图4 示例限制线段的图像
1.3 传统的霍夫变换提取特征线原理
由于视野有限,大路上车道线连续、相互平行,车辆前方一定距离内可以视为直线,Hough变换用于直线检测时对噪声不敏感,因此,我们采用霍夫变换提取车道标记。霍夫变换实质是从坐标空间到参数空间的转换,坐标空间的直线对应参数空间内的一个点,霍夫变换的基本思想是点与线之间的对偶性,即图像空间中直线的斜率和截距对应于参数空间中的一点。由于垂直线的斜率是无穷大的,因此Hough变换通过以下方程将图像中的所有点转换为极坐标参数空间中的正弦曲线,表示为:
其中:(x,y)是图像空间中的点,幅度显示图像中存在线的概率。因此,检测直线的任务已经成为在参数空间中寻找峰值,有效地将检测到的整体特征转换为检测局部特征。
1.4 基于概率表决程序估计消失点
基于二维直方图技术的消失点检测算法已被用于各种视觉系统。以前的算法取得了一些好的结果,但仍然无法保持精度和时间的均衡性能。最近的研究表明,消失点检测可以转换为一维直方图搜索问题,这大大加快了程序。在本文中,我们基于类似思想以一种基于概率表决程序来估计消失点,该算法优点是消失点估计准确,缺点是处理时间较长,车道线识别需要很高的实时性,所以一直不被学者采用。但是本文采用多约束限制的HOUGH变换,处理过后所剩的线段对数比较少,处理时间大量减少,在公共数据库上测试我们的算法和文献 [14]liu等人的算法比较。我们的概率表决程序估计消失点算法在经过上文改进的霍夫变换提取特征线的基础上,处理时间更短,具有更好的实时性。
车道线的方向相对集中,在消失点处相交,在图像坐标中找到消失点,而树木,文字和其他斑块的阴影干扰可能出现在任何方向,因此我们可以用消失点来消除干扰线段。本文首先提出一种使用概率表决程序的鲁棒消失点估计方法,基于上文提取的候选车道线上增加约束。为了考虑像素对准误差,在所提出的方法中引入表示形成线段的像素的取向如何对齐的线段强度τ。τ被定义为将较高的值分配给较长的和良好对齐的更清晰的线段,如下所示:
其中:li是长度,wi是由霍夫变换算法提取的线段的宽度。具有较高τ值的线段相关度更高。用霍夫变换检测的线段模型如图5所示。线段的厚度表示线段的强度。
对于一对线段(Li,Lj),认为他的交点在图像规划α中被认为是高斯分布Ω,如下:
其中:(x,y)∈Ω,(mij;x,mij;y)是图像坐标中的交点(Li,Lj),σij;x和σij;y是沿x轴和y轴的标准偏差。在这个等式中,假定高斯模型是各向同性的,则有:
其中:σi=α·(1/τi),α是比例因子。这个高斯模型对于具有较高线段强度值的一对(Li,Lj)具有更尖锐和更窄的分布,并且将较高的作为消失点的概率赋予交点周围的区域。估计消失点的总体表决函数如下:
其中:N是线段的数量。最后,车道的消失点可以估计如下:
找到消失点后,通过消失点对检测出的线进行筛选,以消失点为中心画以wi/10为直径的小圆,经过消失点上的小圆的特征线保留下来,其余线删除,并且在阴影干扰的车道线识别效果良好。
1.5 经过改进的HOUGH变换的特征点提取
车道线经过本文算法中预处理过程得到的二值图像。理想的二值图像是只包括车道线的边缘特征,但是往往因为有阴影遮挡等原因,阴影边缘也会被检测出特征边缘,在进行了消失点约束车道线后的将车道线边缘像素筛选了出来,图5(a)为采集的一张车道线图片,任意选取其中被阴影遮挡的一行,提取其二值图像的像素点和灰度值之间的关系,如图5(b)是未采用传统的HT提取的结果,检测到多个线段特征,图5(c)是采用的本文算法改进的HT的二值图在这一行的像素与灰度值之间的关系,明显看到干扰像素特征点变少了。其中的灰度值变化多次很明显是树影对车道线的干扰。
图5 通过消失点HT变换提取特征点的过程
2 K-means聚类的算法分析
由于车道线在经HT后经常会产生多条经过消失点的线,如图6所示,我们对同一类的车道线进行聚类,这里采用K-means对特征线聚类。
K-means聚类算法是很典型的基于距离的聚类算法,采用欧式距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。车道线存在数目和几何形状特征不确定的问题。采用多次迭代的K-means聚类的方式,自动选择最优聚类中心通过聚类算法在纵向上将特征点组合,可以有效剔除孤立的特征点,明确检测目标,从而减少错误特征点的干扰。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。在车道线检测里具体算法描述如下:
1)首先将经过改进的HOUGH变换提取的特征线图像像素寻找距离特征线不大于d的特征点构成为一个具有n个样本数据对象的样本数据集R={ri|i=1,2,···n}从数据集中任意选择k个对象组成初始聚类中心集X={xj|j=1,2,···,k}。
2)将像素间的相似度定义为像素的差距,采用下式表示,计算样本数据集与初始选择的k个聚类中心的距离,将各个对象划分到与它距离最小的簇:
3)对于每一簇j,从新计算该类的质心:
式中,T为样本点集合,N为样本点数。
4)循环步骤2)和步骤3),直至质心收敛。
这里选一张典型的经过消失点约束的特征线车道线进行K-mean聚类,结果如图6所示。
图6 图上下两部分分别为特征线聚类前后
3 试验结果及分析
文献[14]车道线提取首先采用的是自适应分割方法对路面区域进行合理定位,然后用拉普拉斯滤波器消除外界干扰。其次,应用线段检测器检测到的线段表示车道的结构信息,用的是LSD(Line Segment Detector)检测的线段。第三,通过定位和消失点限制去除非车道候选标记。最后,从剩余的候选车道标记中准确提取车道。我们的算法和liu的方法如出一辙,但是我们用的更多的是形态学去限制特征线,用改进的HOUGH变换提取特征线段,然后是基于概率表决程序估计消失点来约束候选车道线。为了验证本文的算法可用性,与liu的方法进行比较,我们分别用了白天,晚上二种工况进行测试,每类库各250帧图,在PC平台上进行试验,算法使用硬件环境为 Intel i5 3320 CPU2.50 GHz,内存为 4.0 GB,软件是 WIN10系统,VS2014+openCV2.0库编程进行了试验。定义基于传统霍夫变换的消失点约束为A,文献[14]为B,本文算法为C来表示,检测统计结果如表1所示。
表1 不同算法在不同工况识别速度和处理时间
根据上表可以看出,本文所采用的算法在传统HOUGH变换基础上寻找消失点约束的算法上处理时间和错误率提高显著,文献[14]算法检测的正确率稍高于本文提出的算法,但是本文算法平均处理时间比文献[14]优秀很多。
为验证本文所提出的算法检测车道线的精确度、实时性和鲁棒性,采集了晚上和白天的视频数据进行试验。随机抽取检测视频中几帧代表性图片,如图7。还是使用硬件环境为Intel i5 3320 CPU2.50 GHz,内存为4.0 GB,软件是WIN10系统,VS2014+openCV2.0库编程进行了试验。
图7 两种天气下视频集环境下车道线的识别帧
在车道线识别程序的质量评价中,实时性和识别率是最重要的指标.我们分别取测试过的阴天和晴天视频集,筛选出匹配度不高和错误拟合的帧数,检测结果如表2所示。
表2 视频统计结果图
从表2晴天和阴天两种工况测试的视频段下的帧数检测的正确率和平均检测时间,可以看出,用本文算法对图像预处理后,再经过形态学多约束霍夫变换提取特征线,基于概率表决程序估计消失点,用消失点再次约束特征线,再通过K-mean聚类特征点,通过这三重优化来拟合车道线,有效的提高了车道线识别率并减少了平均检测时间。
4 结论
车道线存在数目和几何形状特征不确定的问题,提出了以形态学多约束霍夫变换提取特征线,基于概率表决程序估计消失点,再用消失点再次约束特征线,然后采用多次迭代的K-means聚类的方式,自动选择最优聚类特征线,可以有效剔除孤立的特征点,明确检测目标,从而减少错误特征点的干扰,如阴影、字标、光照情况等因素的影响导致抗噪性能较差。大量实验表明,提出的算法具有很好的鲁棒性、和错检率,实时性。