基于霍夫变换的复杂情况下车道线检测
2019-06-12吴恩泓
摘 要 本文提出了一种新的基于霍夫变换的复杂情况下车道线检测的算法,这个算法能够成功在夜晚,白天,有阴影,车道线磨损不太严重等复杂情况下检测出车道线。传统的车道线检测算法主要为直接在图像中进行霍夫变换,这种算法实时性差,计算量大。本文提出的算法将先对原图像进行处理,设置ROI区域减少计算量,转换颜色空间并且扫描图像灰度值划分出有阴影的区域进行处理,最后判断最有可能出现车道线的区域,进行霍夫变换检测出车道线。经过实验表明,这种算法的实时性更好,能够成功在复杂情况下检测到车道线。
关键词 霍夫变换 车道线检测 复杂情况 感兴趣区域
中图分类号:TP391.41文献标识码:A
0引言
近年来,自动驾驶汽车的概念开始流行,其中如何使汽車成功检测到车道线的算法,在自动驾驶,汽车安全相关应用领域中越来越受到重视。基于视觉的车道线检测算法是当今自动驾驶汽车的主要研究热点之一。
目前,国内外的许多学者已经提出了相当多的基于视觉的车道线检测算法,而基于视觉的车道线检测算法需要满足实时性,准确性,适用性等要求,因此他们通常采用不同的模型和合适的边缘检测技术来检测车道线,比如其中有直线,曲线,分段切换模型等道路模型以及最小二乘法拟合,Hough变换,改进cany算子,基于小波变换的边缘提取等边缘检测技术,但是这些单一的算法都会因为摄像头因为光线等因素造成的影响而产生非常大的误差,对车道线检测的鲁棒性和准确性都有一定程度的影响,并且Hough变换因为计算量很大,因此会有一定的延迟性,这是在利用Hough变换来检测车道线算法的一个难题。
对于上述所讲到的问题,许多学者采用了改进Hough变换的方法,本文设计了一种结合图像预处理和改进Hough变换的算法,来解决这些问题。在遇到强光照,弱光照,有树荫等阴影遮挡,车道线磨损的复杂的情况下,该算法能够成功检测到车道线并且实时性很好,准确性很高。本论文所设计的算法将首先根绝颜色空间分布情况,设置ROI区域以减少计算量,然后进行灰度拉伸等操作尽量去除光照以及阴影等干扰,再进行Hough变换检测出车道线,最后进行判别。
经过实验,该算法能够实现在复杂道路情况下检测出车道线的功能。
1根据情况的复杂给图像分类
为了保证光照鲁棒性来进行检测。本算法将首先根据车载摄像头所采集的图像中的信息来对图像进行分类。
通常来说,光照强度较强的图像,其灰度值变化是比较快的,并且车道线与除了车道线以外的其他图像信息之间的对比度比较大,往往会出现图像中会出现全白的路面。这会导致图像中有用的信息,比如车道线没有办法检测出来,如图1中(a)所示,其对比度相对于其他的图像来说都是偏大,而为了解决这一类问题,将会对光照强度较强的图像进行对比度的均值化处理,并且采用灰度值均值化的处理能够成功采集到图像中的有用信息。
光照强度较弱的图像,例如夜晚的时候所采集到的图像,其灰度值变换是比较慢的,比较平缓的,在一张图像中灰度值不会发生太剧烈的变换,并且图像中的车道线与其他景物的对比度非常低,很容易将车道线与其他景物进行混淆,导致不能成功检测出车道线。如图1中的(b)所示,很难在图像中检测到车道线的存在。在这一类图像中,将会采取增大对比度,进行灰度值拉伸等操作来恢复有用信息车道线在图像中的显示,从而成功检测出车道线。
对于有阴影遮挡住的车道线的图像,因为在这一类的图像中同一条车道线的灰度值是不相等的,并且树荫等阴影也会有边界线,这将导致在进行检测车道线的过程中,不仅将需要检测的车道线检测出来,还会将所不需要检测的阴影边界线检测出来,或者处于阴影中的车道线因为灰度值和对比度的影响从而导致没有办法检测出来等一类后果,如图1中的(c)所示。在这一类图像中,将会对图像进行扫描,对有阴影的图像进行二值化处理,然后再进行灰度值拉伸操作,去除阴影对图像的影响,再进行车道线的检测。
在本文中将会采取计算整体图像的灰度均值来对图像进行分类。计算整体图像的灰度均值的计算公式如下:
其中P为像素均值,N为像素总数目,p(i)为每个像素的数值。
根据计算我们得到,图1中(a)的像素均值为P=155,图1中(b)的像素均值为P=60,图1中(c)的像素均值为P=140。根据图像的像素均值能够很好的反映所采集的图像光照强度,因此可首先根据图像的像素均值对图像进行分类,分为白天及夜晚所采集的图像,并在后续中对二者进行不同的处理。
在对图像进行了光照强度的分类之后,需要对图像进行有无阴影遮挡车道线的分类。针对这个问题,本文所采取的方法是对图像进行颜色空间的识别和处理,继而进行分类。
2图像预处理
为了降低图像中的噪声以及消除其他物品对车道线检测的影响,并且减少Hough变换的计算量,我们将首先对图像进行预处理。
2.1根据颜色分布确定车道线所在位置设置ROI区域
因为在后续的处理中都将会把BGR颜色空间的图像转换为Gray颜色空间的图像进行处理,所以将首先解决阴影对车道线检测所造成的印象。
在图像处理的过程中,因为车道线总是在图像的下半部分,上半部分的天空及树叶等其他颜色会干扰到图像的处理,所以最开始进行的处理是设置图像的下半部分为ROI区域,仅对此区域进行颜色空间上的处理与划分车道线检测区域。
本文采集的所有图像均为BGR三通道颜色空间的图像,因此选择蓝色分量值的大小作为区分车道线与阴影的依据。
方法主要是对图像进行扫描,从而记录出图像每一行各个像素的蓝色分量值,通过蓝色分量值的大小来判断该像素是否位于车道线内。为了降低噪声的影响并且减少检测误差,在扫描图像的过程中,将采取每采集五个像素点的蓝色分量值进行均值化处理的方式,采用公式(2)对采集到的蓝色分量进行平滑处理。
其中B(x)为平滑处理后的蓝色分量值,b(x)为平滑处理前的蓝色分量值,x为图像中每一个点的横坐标值。检测过程如图2所示。以扫描线经过无阴影遮挡车道线与有阴影遮挡车道线两个时刻进行分析,将得到在扫描线中蓝色分量值的分布示意图,分别如图3,图4所示。
通过分析图3与图4蓝色分量值分布图,可以发现在有阴影遮挡车道线跟无阴影遮挡车道线的两种情况下,蓝色分量值在图像中的分布趋势没有改变,仅仅改变了蓝色分量值数值的大小,因此选定图像中蓝色分量跳变的开始部分与结束部分作为车道线可能存在的区域,设置这个区域为ROI区域并且对此区域进行后续处理。
2.2对光照强度不同的图像进行灰度处理
针对光照强度较强的图像,它所存在的问题是车道线与背景的对比度较大,像素灰度值普遍较高,容易导致图像中出现全白的路面。因此需要对光照强度较大的图像进行灰度均衡化处理。
灰度均衡化实际采用的是直方图均衡化,中心思想是把原始图像的灰度直方图从比较集中的某个区域变成在全部灰度范围内的均匀分布。直方图均衡化通过用来增加图像的局部对比度,因此这种方法能够在图像背景太强的时候,使目标区域即车道线从背景中脱离出来。
而在直方图均衡化中引入了累计分布函数CDF,其定义为对于连续函数,所有小于等于a的值,其出频率的和:
针对于灰度级从[0,L-1]的图像,则是统计各个灰度级的累计分布概率,灰度值k(0 图像在经过灰度值均衡化操作之后,图像的灰度值范围有一定浮动的空间,更加有利于后面灰度化,阈值化,二值化的处理。强光照图像经过灰度值均衡化操作后的效果图如图5所示。 针对光照强度较弱的图像,此类图像所存在的问题是车道线与背景的对比度很小,很难将车道线与背景物体区分开,并且夜晚的图像因为光照不足,灰度值普遍偏低,因此需要将弱光照图像进行灰度拉伸处理。 灰度拉伸是通過扩展图像灰度级动态范围来实现的,它可以扩展对应的全部灰度范围,能够对图像感兴趣的地方进行增强,而对图像不感兴趣的部分进行抑制。而实现灰度拉伸通常采用如下三段线性变换函数: 图像在经过灰度拉伸后,车道线与背景路面的对比度增强使得容易区分,在后续的阈值化,二值化等一系列操作中效果明显。弱光照的图像经过灰度拉伸处理后得到的效果图如图6所示。 2.3对图像进行阈值化处理 在上述操作中,已经将车道线的特征进行了加强并且过滤了图像噪声,去除了阴影遮挡对车道线检测的影响。但是在图像中仍然存在一些依靠灰度处理难以去除的影响,例如太过明亮的灯光,路面反射的强光等,并且还需要对图像进行边缘的增强。 因此针对于强光照造成的灰度处理无法处理掉的问题,将会采取阈值化处理。阈值化操作的作用主要为对图像中的像素做出取舍,将高于阈值的像素舍弃掉,低于阈值的像素留下。在上述问题中,阈值化操作能够滤去高曝光度的影响,即像素值太大以至于不可能出现车道线的区域舍弃掉,加快后续检测速度。处理结果如图7所示。 3进行Hough变换检测车道线 上述操作为图像预处理部分,目的是为了尽量减少Hough变换的计算量以及背景物体对Hough变换造成的影响。接下来将对预处理结束的图像进行Hough变换检测出车道线并且得到最后结果。 Hough变换是图像处理中的一种特征提取技术,该过程在一个参数空间中可通过计算累计结果的局部最大值得到一个符合特定形状的集合作为Hough变换的结果。这种方法的特点是它对数据的不完全或者噪声不是很敏感。 Hough变换的基本思想是点—线的对偶性,即图像空间里共线的点对应参数空间里相交的直线,反过来,参数空间相交于同一点的所有直线在图像空间里都有共线的点与之对应。而为了解决垂直直线斜率无限大的问题,一般在极坐标方程中进行Hough变换。 通过对Hough变换的原理和具体步骤的描述,会发现如果直接对原图像进行Hough变换,将会耗费大量的时间用以计算除了车道线以外的干扰景物,从而对实时性造成很大的影响。因此本文中的算法将首先对图像进行预处理,加强车道线,去除干扰,减少干扰物对车道线的影响从而使得Hough变换的实时性得到提高。 4实验结果 本文中的车道线检测算法流程图如图8所示。 采集到图像之后首先扫描图像,在颜色空间上选择蓝色分量值作为判别车道线是否可能存在的依据,从而设定车道线所在区域并且去除阴影遮挡车道线所带来的影响,接下来计算图像的像素均值,根据像素均值对图像进行判断,确认采集图像的时间是白天还是夜晚,针对白天采集到的图像对比度太大,路面出现全白无法识别车道线的情况,则采用灰度均衡化增强车道线,针对夜晚采集到的图像对比度太小,车道线与背景容易混淆的情况,则采用灰度拉伸化处理增强车道线与背景的对比度,然后对经过灰度化处理的图像进行阈值化处理留下需要的车道线信息加快Hough变换的计算时间,最后进行Hough变换得到效果图。 本文中的算法基于VS2012环境和OpenCV图像处理库实现,并且对本算法进行了大量的实验。采用本文中检测车道线的算法,在实时性和所得到的准确度上都有了较大的改善。传统Hough变换的平均执行时间约为13ms,采用本文中先对图像进行预处理再进行Hough变换的算法,其执行时间约为8ms。 图9是对采集到的图像中选取的样本车道线检测效果。 5结束语 本文提出了一种基于Hough变换的用于在复杂情况,如白天光照很强,夜晚光照很弱,有阴影遮挡车道线等情况下车道线检测方法。首先对图像进行颜色空间上的选择,去除阴影造成的影响,再通过灰度变化加强车道线和减弱背景对车道线检测的影响,最后利用Hough变换检测车道线。极大减少了传统Hough变换检测车道线的时间和增加了车道线检测的稳定性。通过实验证明,本算法在不同情况下均有较好的检测效果。 基金项目:2018年5月3日国家大学生创新创业训练计划基金资助项目:一种基于视觉与GPS的AGV—201810497222。 作者简介:吴恩泓(1997.8-),男,汉族,广州惠州人,本科在读,研究方向:机器视觉。 参考文献 [1] 方睿.基于视觉的车道线检测技术综述[J].内江科技,2018(07):41-42. [2] 段汝娇,赵伟,黄松岭,陈建业.一种基于改进Hough变换的直线快速检测算法[J].仪器仪表学报,2010(12):2774-2480. [3] 刘富强,张姗姗.一种基于视觉的车道线检测与跟踪算法[J].同济大学学报(自然科学版),2010(02):223-229+300. [4] 隋靓,党建武,王阳萍.基于分段切换模型的快速车道线检测[J].计算机应用与软件,2017(08):201-205. [5] 孙伟,张小瑞,唐慧强,等.Hough变换和最小二乘拟合的车道线协调检测[J].光电工程, 2011(10):13-19. [6] 赵颖,王书茂,陈兵旗.基于改进Hough变换的公路从车道线快速检测算法[J].中国农业大学学报,2006(03):104-108. [7] 王保军,趙海清,刘超.基于Canny算子改进的边缘检测算法[J],科学技术创新,2018(27):13-14. [8] 余天洪,王荣本,郭烈.不同光照条件下直线型车道标识识别方法研究[J].汽车工程,2005,27(05):510-513+569. [9] 杨喜宁,段建民,高德芝,郑榜贵.基于改进Hough变换的车道线检测技术[J].计算机测量与控制,2010(02):292-294+298. [10] 王洪雁,邱贺磊,郑佳,裴炳南.光照变化下基于逆向稀疏表示的视觉跟踪方法[J].电子与信息学报,2018(11):10-18. [11] 武星,张颖,李林慧,楼佩煌,何珍.复杂光照条件下视觉导引AGV路径提取方法[J].农业机械学报,2017(10):15-24. [12] 吕艳娜,朱晓,朱长虹.计算机数字图像处理常用颜色空间及其转换[J].计算机与数字工程,2006(11):54-56+171. [13] 毛星云,冷雪飞.OpenCV3编程入门[M].北京:电子工业出版社,2015:100. [14] 滕今朝,邱杰.利用Hough变换实现直线的快速精确检测[J].中国图象图形学报,2008,13(02):234-237. [15] 宋寅卯,赵明珍,刁智华,王会丹.基于Hough变换的机器视觉目标检测技术研究[J].中国农机化学报,2015(04):225-231.