基于传统图像处理算法的车道线检测
2022-02-21杜学峰
张 勇,杜学峰,高 越,杨 伟
基于传统图像处理算法的车道线检测
张 勇,杜学峰,高 越,杨 伟
(长安大学 汽车学院,陕西 西安 710064)
在现代交通驾驶领域中,随着自动驾驶技术的迅速发展,车道线检测也变得至关重要。基于此,文章提出了一种基于传统图像处理算法的车道线检测方法,该方法利用了传统图像处理算法中的滤波算法、Canny边缘检测算法和Hough直线检测算法作为基本算法模型,采用只对ROI中进行检测的措施来满足对于前方车道线的准确检测。在检测中,使用了OpenCV开源图像处理库来对进行上述方法进行实现。此方法可极大减少对前方车道线检测的外界干扰,在汽车实验场中利用该方法,可以比较准确地检测出车辆前方的车道线,并且该算法在一般机器上能够实现实时级的车道线检测。但是在实验过程中,也发现当前方的障碍物较多的时候,所采用的算法不能很好地检测出车道线,对外界的抗干扰能力比较差。
自动驾驶;图像处理;霍夫变换;直线检测
引言
随着自动驾驶的快速发展,车道线的检测逐渐变得重要起来,在车辆的正常行驶中,其中一个很重要的控制决策就是在行车中所识别到的车道线的位置及识别的准确程度,因此相应的检测识别也越来越重要。车道线检测是智能驾驶领域的核心功能之一,也是很多后续识别算法的基础[1],近几年随着人工智能技术和自动驾驶技术的普及越来越广,关于图像检测和识别的算法越来越多。如基于灰度增强算法对不同光照的车道图像识别,基于HSV颜色空间的道路图像分类,基于车道线模型如:B-snake曲线、双曲线拟合、基于卷积神经网络和深度学习方法的车道线检测、车道线特征候选点提取等[2],本文主要采用基于传统图像处理的方法来对车道线进行检测。
1 图像预处理
1.1 图像采集
因本次所识别的车道线主要是具有直线特征的车道线。因此,在长安大学渭水汽车实验场采集图1所示图片,此图片中的车道主要具有直线特征的车道线,因此,可以通过使用传统图像处理中的算法来对车道线进行检测。本次所采用的图像处理库为OpenCV库,为了更有效地验证算法的准确性,使用的语言为脚本语言Python语言。
图1 采集的原始图片
1.2 图像滤波
原图像有着RGB三个通道的图像,而这样会使其通过传统图像算法处理起来不方便,因此为了接下来的操作方便,要先对图像进行灰度化处理。图像的灰度化处理算法为:=0.114×+0.587×+ 0.299×。
在对图像进行灰度化后,得到了一张像素值点在0~255的灰度图,但是如果只用目前处理的灰度图进行接下来的识别检测,那么将会得到很多的噪声像素信息。因此为了消除外界噪声,得到更好的识别效果,要对其进行滤波处理,主要的滤波方法有均值滤波、高斯滤波等,本文采用高斯滤波来对灰度图进行滤波处理。
图2 灰度图
图3 滤波图
经过滤波后,可以发现得到的滤波图更加模糊,这正是去除外界的噪声所得到的图像,从滤波后的图片进行后续的操作,可以避免噪声的干扰,从而得到更好的识别效果。
1.3 边缘检测
在灰度化并且滤波后,得到了一张没有噪声的并且灰度值在0~255的灰度图。而在图中灰度值发生剧变的地方就是有边缘即有车道线的地方,根据此,可以通过边缘检测算法Canny算法[3]得到该图像的边缘检测图,同时也将未滤波的灰度图进行边缘检测,可以明显发现未滤波的图像在经过边缘检测后会出现明显的噪声信息,这样会极大地干扰后续的车道线检测识别。
图4 滤波后的边缘检测图
图5 未滤波的边缘检测图
1.4 ROI区域提取
对于传统的图像处理,并没有办法对图像中的物体进行识别,因此也就没有办法通过一些传统图像处理的方法对车道线进行提取,在传统图像处理中,最多是对直线和圆形或者其他一些几何形状进行特征检测,而没有办法通过像机器学习、深度学习那样通过对图像学习来识别图像中的物体,本次车道线检测就是利用了传统图像处理算法中霍夫直线检测来寻找到车道线从而完成对车道线的识别。
由于本次并没有使用智能算法来识别车道线以外的其他物体,因此得到该边缘图像之后,可以继续提取当前图像的ROI,而这ROI中只有当前所要检测的车道线,使得所要检测的区域更加明显。
在得到ROI后,接下来,只需要在该ROI中找到具有直线特征的车道线即可。从图6中可以明显发现,该车道线有着直线特征,而在传统图像处理中,可以使用霍夫变换对图中直线进行特征提取,进而可以得到图中车道线在图像中的像素坐标点位置,从而获得出车道线在图像中的位置。
图6 ROI图
2 霍夫变换
霍夫变换作为一种特征检测方法在1972年由RichardDuda和PeterHart发现,经典的霍夫变换经常被用在直线检测上,霍夫变换是把图像中一个特征点变换到变换空间中的一条直线或曲线。对图像中给定直线或曲线上的所有特征点实施霍夫变换,结果将导致在变换空间中的某个特殊点处形成一个峰值[4]。本次则采用霍夫直线变换检测灰度图中的车道线。
在笛卡尔平面坐标系下,每一条直线都对应了一组极径和极角,即在以弧度值为横坐标,以笛卡尔坐标系的原点到直线的距离为纵坐标下的一个点,我们把这个坐标系称之为霍夫空间,也可称之为参数空间。而在笛卡尔坐标系下的一个点即在参数空间下的一条曲线,在笛卡尔坐标系下的直线所表示的方程在霍夫空间中就是一个点,而笛卡尔坐标系下的一个点在霍夫空间中即代表了一条曲线,不管笛卡尔坐标系中的直线在哪几个象限,当通过化简之后最后得到的霍夫空间函数曲线方程都是如下方程:
=cos+sin(1)
所以这样就能够确定笛卡尔空间和霍夫空间的一一对应性。当在笛卡尔坐标系中有两个点可以构成一条直线,那么在霍夫空间中就会有两条曲线相交,而当笛卡尔坐标系中多个点可以构成一条直线的时候,那么在霍夫空间中就会有多条曲线相交于一点,因此只要确定了霍夫空间中有相交点的地方观察有几条线是在此相交的,那么在笛卡尔坐标系下就可以通过对应的关系找到这几点,从而确定出这一条直线。
上述即霍夫变换的原理,经霍夫变换之后,即可得到在车道直线在原图像的横纵坐标,而得到坐标之后,即可通过OpenCV的API在原图中绘制出车道线的位置,以表示检测出的车道线的准确性。
得到的检测结果图如图7所示。
图7 实验结果
3 总结
在本次实验中,首先对图像进行了灰度化处理,再对其进行滤波去除噪声以获取更好的识别效果,经过滤波后,再对其进行边缘检测和ROI提取,从而获取车道线在图中的像素信息,在经过上述过程的处理之后,再通过传统图像中的直线检测算法霍夫变换算法去检测图像中的车道线以得到车道线在图中的像素点坐标,最后再将得到的直线点的坐标将车道线绘制在原图中,表示出检测的效果。从最终的效果图中可以发现,基本可以满足在该汽车实验场中对直线车道线的检测。
[1] 王荣本,郭烈,金立生,等.智能车辆安全辅助驾驶技术研究近况[J].公路交通科技,2007,24(7):107-111.
[2] 莫玲,李剑豪,肖苏华,等.基于灰度图像的车道线识别系统研究[J].轻工科技,2021,37(01):80-83.
[3] 赵芳,周旺辉,陈岳涛,等.改进的Canny算子在裂缝检测中的应用[J].电子测量技术,2018,41(20):107-111.
[4] 冈萨雷斯.数字图像处理(第三版)[M].阮秋琦,等译.北京:电子工业出版社,2017.
Lane Detection Based on Traditional Image Processing Algorithm
ZHANG Yong, DU Xuefeng, GAO Yue, YANG Wei
( Chang’an University, College of Automobile, Shaanxi Xi'an 710064 )
With the rapid development of autonomous driving technology, lane line detection has also become critical. Based on this, a lane line detection method based on traditional image processing algorithms is proposed. This method uses the filtering algorithm, Canny edge detection algorithm and Hough line detection algorithm in the traditional image processing algorithm as the basic algorithm model. The detection measures are taken to satisfy the accurate detection of the lane line ahead. In the detection, the OpenCV open source image processing library is used to implement the above method. This method can greatly reduce the external interference to the detection of the front lane line. Using this method in the automobile test field, the lane line in front of the vehicle can be detected more accurately, and the algorithm can achieve real-time lanes on general machines. Line detection. However, during the experiment, it was also found that when there were more obstacles in the front, the algorithm used could not detect the lane line well, and the anti-interference ability to the outside world was relatively poor.
Autopilot; Image processing; Hough transform; Line detection
U495
A
1671-7988(2022)02-20-04
U495
A
1671-7988(2022)02-20-04
10.16638/j.cnki.1671-7988.2022.002.005
张勇,就读于长安大学汽车学院,研究方向:智能网联车及无人驾驶。