一、课题背景
为了提高车道线识别算法的实时性和准确性,提出了一种基于改进Hough变换的车道线检测方法。在车道线的预处理阶段,首先确定图像中的感兴趣区域,然后对图像进行平滑处理、自适应阈值分割、边缘检测,从而减少了后期的处理数据量,排除了大部分的干扰因素。在车道线的识别阶段,根据圆和椭圆的性质,对传统的霍夫变换进行改进,极大减小了在检测圆和椭圆时的计算量,并提高了检测的准确性。最后使用OpenCV图像处理库编写程序,证明了新算法的正确性,得到了理想的结果。
关键词:车道线识别 椭圆检测 霍夫变换
车道线的预处理
预处理是车道线识别过程中一个十分重要的一环。良好的预处理能使排除各种干扰,使运算量大大下降,大大提高车道线识别的实时性和准确性,反之,则不仅会使识别效率降低,甚至导致得到错误的结果。
预处理的过程主要分为车道线的设置感兴趣区域、平滑滤波、阈值分割、边缘检测。本章首先简要介绍车道线的基本知识,然后对感兴趣区域的原理和应用进行分析,并针对车道线的具体特征和要得到的目标选择合适的预处理方法,进而对每种预处理过程中的算法进行分析讨论,得出适合的预处理算法。
认识车道线
车道分界线是用来分隔同方向行驶的交通流的交通标志线,凡同方向车行道有两条或两条以上车道时,均应划车道分界线。车道分界线有两种,即车道分界虚线和导向车道分界实线。车道分界虚线,在保证安全的原则下,准许车辆越线超车或变更车道行驶;导向车道分界实线,不准车辆越线或变更车道。
图(2-1)所示为各种车道线:
白色虚线:划于路段中时,用以分隔同向行驶的交通流或作为行车安全距离识别线;划于路口时,用以引导车辆行进;
白色实线:划于路段中时,用以分隔同向行驶的机动车和非机动车或指示车行道线;划于路口时,用作导向车道线或停车线;
黄色虚线:划于路段中时,用以分隔对向行驶的交通流,划于路侧或缘石上时,用以禁止车辆长时在路边停放。
黄色实线:划于路段中时,用以分隔对向行驶的交通流;划于路侧或缘石上时,用以禁止车辆长时或临时在路边停放。
双白虚线:划于路口时作为减速让行线;划于路段中时,作为行车方向随时间改变之可变车道线;
双黄实线:划于路段中时,用以分隔对向行驶的交通流;
黄色虚实线:划于路段中时,用以分隔对向行驶的交通流。黄色实线一侧禁止车辆超车、跨越或回转,黄色虚线一侧在保证安全的情况下准许车辆超车、跨越或回转;
双白实线:划于路口时,作为停车让行线。
通过对各种车道线的比较,我们可以法线,车道线基本分为两种形状:直线和圆,其他的形状还包括三角形等,但它们的基本组成元素仍然是直线,所以我们同样能对其运用直线的方式处理。但是必须注意的是,由于图像采集设备与道路之间有一定的倾角,所以道路中的圆出现在图像中时将会变为椭圆。
通过将基本的识别目标固定在直线和椭圆的范围中,我们便将车道识别的问题抽象为直线和椭圆的识别,研究方向进一步固定。
感兴趣区域简称为ROI(region of interest)是将图像中的重要区域进行标记,随后的各种算法和分析将主要针对ROI。这样做的好处是不仅使处理的数据量变少,而且也排除了非重点区域的潜在干扰。
观察采集到的图像,如图所示,我们可以发现,图像中的上部是天空和较远处的信息,这一部分信息是不需要的,而且可能会对处理结果造成干扰。所以,在图像的处理中我们应当适当选取ROI,对于以后的处理有莫大裨益。
如图(2-2)所示,其中下部较暗的区域即为我们的感兴趣区域:
各类图像处理系统在图像的采集、获取、传送和转换(如成像、复制扫描、传输以及显示等)过程中,均处在复杂的环境中,光照、电磁多变,所有的图像均不同程度地被可见或不可见的噪声干扰。噪声源包括电子噪声、光子噪声、斑点噪声和量化噪声。如果信噪比低于一定的水平,噪声逐渐变成可见的颗粒形状,导致图像质量的下降。除了视觉上质量下降,噪声同样可能掩盖重要的图像细节,因此,在对采集到的原始图像做进一步的处理时,需要对图像进行必要的滤波降噪处理。
均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素,模板大小一般为3×3、5×5、或7×7 ,用其临近区域像素值的均值来替代目标像素。
均值滤波的原理如图(2-3)所示,其中a)图中1-8为像素点的临近区域,b)图为的权系数矩阵:
均值滤波方法如公式(2-1)所示:
(2-1)均值滤波具有算法简单,计算速度快的优点,但它的缺点也很明显:降低噪声
的同时使图像产生模糊,特别是景物的边缘和细节部分。
中值滤波是一种非线性数字滤波器技术,经常用于去除图像或者其它信号中的噪声。
中值滤波的思想是将一个像素替换为其临近区域的所有像素的中值,临近区域一般选以此像素为中心的奇数大小的窗口,常用的为3×3、5×5、7×7等。
中值滤波的计算方法如公式(2-2)所示:
2-2中值滤波法对消除椒盐噪声非常有效,在光学测量条纹图象的相位分析处理方法中有特殊作用,但在条纹中心分析方法中作用不大.
中值滤波在图像处理中,常用于保护边缘信息,是经典的平滑噪声的方法。
图(2-4)为中值滤波效果图:
高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的思想是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。
高斯滤波的效果图如图2-5所示:
通过比较以上三种滤波方法,可以看出三者的区别和适用范围。均值滤波算法简单,但会造成图像的模糊,中值滤波对椒盐噪声有非常好的去除效果,并且能够保存边缘信息,高斯滤波则对高斯噪声具有很好的处理效果。
图像边缘的信息对于本论文中的车道线识别算法有重要作用,所以在选择滤波算法上应优先选用中值滤波和高斯滤波。
图像的二值化就是将一副灰度图像转换为二值图像,例如设定一个阈值K,像素值小于K的置为0,反之则置为255,如公式(2-3)所示:
(2-3)虽然通过给定一个阈值能实现图像的二值化,但在很多时候并不能给出一个合适的阈值,为了解决这个问题,人们提出了许多自适应的阈值分割方法,以适应不同灰度分布的图像,其中应用广泛的有大津法自适应阈值等。
大津法阈值分割如图2-6所示:
边缘提取
图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。图象的边缘部分集中了图象的大部分信息,图象边缘的确定与提取对于整个图象场景的识别与理解是非常重要的,同时也是图象分割所依赖的重要特征,边缘检测主要是图象的灰度变化的度量、检测和定位。
Sobel算子主要用作边缘检测。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量。
Sobel算子边缘提取效果如图(2-8)所示,a)图为源图像,b)图为X方向边缘检测结果,c)图为Y方向边缘检测结果
Canny边缘检测算子是一个多级边缘检测算法,它的目标为实现最优的边缘检测算法。
Canny算子的处理过程分为几个步骤,首先要对输入图像进行高斯平滑处理,然后使用一个二维一阶导数算子作用与平滑处理后的图像,用于突出图像中高一空间导数的图像区域,这样我们就从原始图像生成了图像中每个点亮度梯度图以及亮度梯度的方向。随后Canny跟踪这些亮度梯度并且保留局部最大值而把其他值设为0,即非极大值抑制,最后使用双阈值算法检测和连接边缘。
对图(2-8)中图像进行Canny边缘检测效果如图(2-9)所示:
根据前面的分析,道路车道线经过图像采集设备采集后,其原本的圆将会变化为椭圆,所以我们更应该关注椭圆的检测。
根据Hough变换圆检测的算法,进一步讨论椭圆的检测,由于椭圆上一点的法线并不过椭圆的中心,所以上面的圆检测算法不能直接用于椭圆的检测,需要进一步的改进。根据椭圆的性质:椭圆上两点法线的交点与这两点中点所确定的直线过椭圆中心。我们自然而然便能对圆检测算法加以改进以适应椭圆的检测。
由图可以看出,该方法能正确的检测出图像中的椭圆,说明了此方法的正确性和可靠性。
综合分析前面章节中的处理过程和算法,总结出车道线识别的流程,如图(4-1)所示:
车道线的识别,如图(4-2)所示:
从识别的结果可以看出,算法能对车道线进行准确的识别,达到了预期的目的和理想的效果。