基于OpenCV的车道线检测算法的设计与实现

作者: 邢笑笑 姚雨琴 李杰

基于OpenCV的车道线检测算法的设计与实现0

摘要:车道线检测是自动驾驶领域的一个重要研究课题,能够提高车辆的安全驾驶和减少车辆交通事故的发生。本文研究的主要内容是利用OpenCV来实现车道线的检测,首先从视频文件中提取出道路图像;然后对图像进行预处理,主要包括灰度化处理、平滑处理、灰度增强以及边缘检测等。最后,车道线的检测通过Hough变换与Shi-Tomasi角点检测相结合的方法来实现。实验结果表明本文所采取的方法对车道线检测的精度有明显提升。

关键词:车道线检测;Candy算法;Hough特征变换;Shi-Tomasi角点检测

中图分类号:TP3        文献标识码:A

文章编号:1009-3044(2022)24-0091-02

1 引言

随着汽车产业的发展、运输量的加大以及汽车持有量的快速增长,我国交通道路变得越来越拥堵,交通事故呈不断上升趋势。为了从根本上解决这一问题,人们开始使用各种方法和技术,其中自动驾驶技术是这一研究领域非常热点的问题,而在自动驾驶领域中,车道线检测是必不可少的一个环节。

近年来,许多国内外研究学者都致力于研究车道线检测技术,并提出了一系列的相关算法。Borkar等人[1]在使用Hough变换和迭代匹配滤波器进行车道检测的基础上,提出了一种利用RANSAC和卡尔曼滤波器的鲁棒性来检测车道线的方法,Duong等人[2]利用边缘检测和形态学操作来生成边缘图像,使用Hough变换和滑动窗口提取车道线,用拟合的方法来提取车道线。Aminuddin等人[3]提出了一种基于Hough变换的高速公路车道线检测算法,该方法首先使用图像增强和Sobel滤波器的边缘提取技术,最后使用Hough变换实现车道线的检测。唐阳山等人[4]提出了一种基于Canny算子和Hough变换的车道线识别算法。刘康婷等人[5]提出了一种基于视觉的车道线检测技术,该方法首先将图像转换为鸟瞰图,然后车道线提取使用LaneRidge检测器,最后用RANSAC算法对虚实车道线进行分类。

本文提出了一种基于OpenCV的车道线检测算法。首先对图像进行预处理,主要包括对彩色图像进行灰度化处理、运用中值滤波去除图像中的椒盐噪声、进行灰度增强优化处理以及使用Canny算子进行边缘检测;其次使用Hough变换与Shi-Tomasi角点检测相结合的方法检测车道线;最后使用最小二乘法对每个车道上的线路进行最小拟合,将拟合好以后得到的直线映射到原视频中,使得车道线被识别出来。

2 道路图像的预处理

为了得到更好的车道线检测结果,对图像进行预先的处理是非常有必要的。预处理的主要目的是消除图像里面无关的信息,凸显出有用的信息。

2.1 道路图像灰度化

摄像头获取到的道路图像通常都是彩色图像,处理起来非常麻烦。因此需要对彩色图像进行灰度化处理,使得三个通道转换成一个通道。这样做的目的主要是减少算法的计算量,从而降低算法的运行时间。对彩色图像进行灰度化处理是使用RGB颜色空间到YUV颜色空间的转换来实现的[6],其中YUV色彩模型中明视度信息Y与色调信息U和V是相互独立的,由亮度信息Y构成的图为灰度图,U和V的为单色彩图。本文根据YUV和RGB的函数关系,建立了YUV颜色空间Y通道与R、G、B三通道之间模型公式:

[Y=0.299R+0.587G+0.114B]          (1)

可以得到如下公式:

[Vgray=0.299R+0.587G+0.114BR=G=B=Vgray]          (2)

因此本文只采用YUV颜色空间Y通道图作为后续车道线检测的样本图像。

2.2 道路图像平滑与增强处理

用车载摄像头采集的道路图像会混杂一些没有用的噪声。通常情况下,所需要的车道线检测特征信息会被这些噪声信息所覆盖。噪声的存在对图像后续的车道线检测和分析有极大的影响,在实际的图像处理过程中对图像进行预先的去噪处理是非常重要的。OpenCV中经典的图像去噪算法有:高斯滤波、均值滤波、中值滤波和非局部平均滤波[7-10]。用车载摄像头采集到的道路图像中的噪声主要是椒盐噪声,因此本文中使用的滤波算法是中值滤波。中值滤波可以将图像中的噪声或干扰去除,同时又能使图像中的边缘结构信息得以保留。该方法首先以待处理像素点为中心,确定一定大小的模板,然后将这个模板里面的像素值按从大到小的顺序进行排序,取排序结果的中间值代替初始图像中待处理像素点处的值,可以表示为:

[g(i)=medianj∈Ωi[g(j)]]             (3)

式中,[g(i)]表示进行中值滤波后i点处的像素值,[g(j)]表示输入图像。

在阳光充足的情况下,车道线能够很好地展现在图像画面中,这样能够更好地判断车是否在车道线区域中,但在光线弱的情况下,对车道线的检测会有一定的影响。因此,为了得到更好的结果,在车道线检测之前需要对图像进行增强处理,本文所使用的方法是直方图均衡化。

2.3 图像边缘检测

图像中像素的灰度值发生跳跃性变化的地方称为图像边缘,图像绝大部分信息都在边缘处。因此,能否准确地提取出图像的边缘信息对于后续分析整个图像具有非常重要的意义。本文选择的是Canny边缘检测算法,因为Canny边缘检测算法能够尽可能多地标识出图像中的实际边缘。Canny算子采用的是一阶微分方程算子,在抑制噪声干扰中起到很好的作用,能够较好地掌握方向和精度。

3 基于OpenCV的车道线检测算法

图像经过上面一系列预处理后,可以很好地显现出图像里面的车道线信息,然后识别出车道图像中的车道线并使用最小二乘法拟合出车道线的轮廓将其加入到彩色视频图像中。

3.1 基于霍夫变换与Shi-Tomasi角点检测相结合的车道线检测算法

Hough变换[11-12]是车道线直线提取算法中最常用的方法之一。该方法是对直线进行检测,表示直线的方法很多,最常用的表示方法就是将直线方程用y=a*x+b表示。在这种情况下,如果当直线趋近于垂直方向,即直线斜率无穷大时就无法表示,解决这一问题的一个方法是使用法线来表示直线:

[r=xcosθ+ysinθ]                    (4)

式中,直线到原点的距离用r表示,[θ]表示直线与横轴的夹角。

在图像中由已知的一个点[(r,θ)]可以计算出直线方程,以此得到想要的车道线。Hough变换有很好的抗干扰和直线检测能力。但是在面对多变路况的车道线检测时,结果不太理想,如:车道线的缺失、阴影地方过大、对比度的降低、其他物品的遮挡等不利因素。因此,需要在此基础上使用Shi-Tomasi角点检测来对车道线信息进行提取,首先通过提取识别出局部道路区域的车道线,然后通过一个动态的区域特征点进行划分,筛选视频车道线的特征点,这样有利于多方面车道线的拟合。利用Hough特征变换与Shi-Tomasi角点检测结合可以提取出两种方法累加的车道线,使得车道线的检测结果更加准确。

3.2 车道线拟合

最小二乘法是车道线检测过程中常用的一种拟合方法,它是将误差的平方和最小化,来寻找数据的最佳函数匹配。在这种操作过程中,可以高效快速地进行计算,获取不一定需要事先知道的数据点,并且数据点子集间计算的平方误差和是最小的。本文主要用的拟合方法是通过改进的最小二乘法来进行车道线直线的拟合,然后将直线检测拟合以后得到的直线映射到原彩色图像中,最终使得车道线被识别出来。

4 实验结果和分析

本文的算法采用C/C++编写并使用OpenCV2.4.9来实现,计算平台为dell-PC Intel(R) Core(TM) i7-7700 VPU @ 3.60 GHZ,8GB内存的计算机。采用的车道数据集是由车载相机在高速公路上进行拍摄,得到车辆前方的道路图像视频,一共有632帧。所有场景中包含许多干扰路况的场景,比如车道线不清楚、其他车辆以及高速公路上标志线干扰等。

图1所展示的道路图像是从车道视频中提取出的若干帧车道视频图像,并进行车道线检测结果的拟合图,图中的直线是Hough变换与Shi-Tomasi角点检测相结合提取出来的。

如果只用Hough变换进行车道线检测,有一些车道线是没有被检测出来的,而本文算法得到的直线是两者结合起来,这样可以使车道线检测的效果提高。由实验结果图可以看出,对于典型路况的场景,本文的算法可以接近准确地将车道线展现出来。但是图1最后两幅图像在一些外物干扰的情况下,如其他车辆产生的阴影、光照不佳的环境下车道线检测的效果不太理想,需要进一步改进。

5 总结

本文研究了一种基于OpenCV的车道线检测算法。该算法首先采用一系列的图像处理方法对车载摄像头采集到的道路图像进行预处理,达到定位出图像中车道线的目的,然后使用Hough变换与Shi-Tomasi角

点检测相结合的方法对具体的道路图像进行车道线的检测。通过采用该算法对采集到的视频进行车道线检测实验,试验结果表明,该算法对高速公路上没有干扰的车道线能够准确识别,但是对一些有干扰的情况还需要进一步研究。总的来说,本文的算法具有一定的使用价值,可以为自动驾驶中车道线的识别起到一定的辅助作用。

参考文献:

[1] Borkar A,Hayes M,Smith M T.Robust lane detection and tracking with ransac and Kalman filter[C]//2009 16th IEEE International Conference on Image Processing.Cairo,Egypt.IEEE, 2009:3261-3264.

[2] Duong T T,Pham C C,Tran T H P,et al.Near real-time ego-lane detection in highway and urban streets[C]//2016 IEEE International Conference on Consumer Electronics-Asia.Seoul,Korea (South).IEEE, 2016:1-4.

[3] Aminuddin N S,Mat Ibrahim M,Mohd Ali N,et al.A new approach to highway lane detection by using Hough transform technique[J].Journal of Information and Communication Technology, 2017,16(2):244-260.

[4] 唐阳山,李栋梁,朱停仃,等.基于canny和霍夫变换的车道线识别算法研究[J].汽车实用技术,2017(22):81-83.

[5] 刘康婷,高坤,赵奉奎.基于视觉的车道线检测技术研究[J].智能计算机与应用,2021,11(4):139-142,148.

[6] 向方明,朱遵义,许敬,等.YUV到RGB颜色空间转换算法研究[J].现代电子技术,2012,35(22):65-68.

[7] Huang H C,Lee T C M.Data adaptive Median filters for signal and image denoising using a generalized SURE criterion[J].IEEE Signal Processing Letters,2006,13(9):561-564.

[8] Yuan S Q,Tan Y H.Impulse noise removal by a global-local noise detector and adaptive Median filter[J].Signal Processing,2006,86(8):2123-2128.

[9] 许录平.数字图像处理[M].北京:科学出版社,2007.

[10] Buades A,Coll B,Morel J M.A non-local algorithm for image denoising[C]//2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition.San Diego,CA,USA.IEEE,2005:60-65.

[11] Zhao Y,Pan H B,Du C P,et al.Principal direction-based Hough transform for line detection[J].Optical Review,2015,22(2):224-231.

[12] 段汝娇,赵伟,黄松岭,等.一种基于改进Hough变换的直线快速检测算法[J].仪器仪表学报,2010,31(12):2774-2780.

【通联编辑:代影】

上一篇 点击页面呼出菜单 下一篇