基于OpenCV的车道线智能检测和识别
2020-07-13白松让曹景胜杨晓丽
白松让,段 敏,曹景胜,郑 苏, 杨晓丽
基于OpenCV的车道线智能检测和识别
白松让,段 敏,曹景胜,郑 苏, 杨晓丽
(辽宁工业大学 汽车与交通工程学院,辽宁 锦州 121001)
随着智能驾驶系统的发展和普及,准确识别驾驶环境变得非常关键,车道线检测技术可以为车辆提供自身位置信息是高级驾驶辅助系统和自动驾驶系统的重要组成部分。提出了一种基于开源计算机视觉库(OpenCV)进行车道线智能检测和识别的方法,首先对图像进行灰度化、高斯模糊得到模糊图像,然后通过坎尼(Canny)边缘检测算法得到边缘图像,最后对得到的边缘图像进行霍夫变换实现智能检测并识别出车道线。
车道线检测;开源计算机视觉库;Canny边缘检测;霍夫变换
近年来,随着车辆数量的急剧增加,国内外对智能交通领域方面的关注与投入日益提高,交通安全问题开始受到越来越多人们的关注,据相关研究,由于驾驶员的疏忽造成了众多交通事故的发生,为了降低驾驶员的驾驶难度和疲劳程度,保证车辆的安全行驶,降低交通事故的发生率,车道线检测识别、前车检测识别、行人检测识别、交通标识检测识别等高级驾驶辅助系统关键技术成为了研究热点,张道芳等采用语义分割的DeeplabV3+模型实现了一种优于传统检测的方法[1]。刘萍等采用了最优阈值法和反透视变换法实现对车道线的划分并及对无人车的导航[2]。计算机视觉库(OpenCV)由C函数和C++类构成,能够实现图像处理和计算机视觉方面的通用算法,具有轻量高效的特点,被广泛应用于自动驾驶和汽车安全驾驶系统。本文以机器视觉理论为基础,基于开源计算机视觉库(OpenCV),以采集的道路图像为研究对象,提出了一种结合Canny边缘检测和霍夫变换的车道线检测和准确识别的方法。
1 车道线识别的基本步骤
车道线检测和识别基本流程如图1所示通过高精度摄像头获取自车行驶的前方道路原始图像后,对原始图像进行灰度化处理、图像降噪(高斯模糊)、Canny算子边缘提取得到边缘图像后,经霍夫变换检测直线并与原图结合准确识别出车道线。
图1 车道线检测和识别基本流程图
2 彩色图像灰度化
在对图像进行数字处理时,往往需要把彩色图像转换为灰度图像以加快图像处理速度,其中24位的彩色图像用三个字节表示每个像素,每个字节分别对应着RGB中三个分量的亮度。当RGB中3个分量亮度值不同时,图像便表现为彩色图像;当RGB中3个分量亮度值相同时,图像表现为灰度图。图像灰度转换的方法有分量法,最大值法,平均值法和加权平均法,对应的算法公式如下所示:
(1)最大值法:
(3)加权平均法:
本次采用的灰度转换的方法为加权平均法,其根据RGB和HSV颜色空间的变化关系,将RGB三通道分量分别乘以不同的比例(权值)后相加。其中绿色通道所占的权值最高,蓝色光线所占权值最低,符合人眼对于光线的敏感程度,故按照加权平均法对彩色图像RGB三通道分量进行加权平均便能得到较合理的灰度图像。图像的灰度转换可以通过OpenCV库中的CvtColor函数实现。其灰度化后的图像如图2所示。
3 高斯模糊
高斯模糊又叫高斯平滑或者高斯滤波,是一种常用的用于消除图像中的高斯噪声的线性平滑滤波算法,其本质上是低通滤波器,即输出图像像素点的像素值是原图像对应像素点与周围像素点的像素值进行加权求和之后得到值,即用高斯分布权值矩阵与原始图像矩阵做卷积运算。在计算机视觉计算中,高斯模糊所使用的高斯核为x方向和y方向上的两个一维高斯的乘积,两个维度上的方差通常相同。高斯模糊的数学公式为:
(1)一维高斯分布:
(2)二维高斯分布:
其中,是方差,和表示示所用高斯核的中心。
对图像的处理为二维高斯分布的应用,高斯模糊后图像的平滑程度取决于方差的大小。高斯模糊的输出为对应像素领域像素的加权平均,而离中心像素越近的像素权重越高。由于在计算过程中引入了权值和方差的概念,故经过高斯模糊处理后的图像与均值滤波处理后图像相比平滑效果会更好图像会更加柔和,并且对图像边缘保留的程度也会更好。至于高斯分布的权重矩阵,是对二高斯函数进行采样和归一化之后的结果。高斯矩阵的尺寸越大,标准差就会越大,处理后图像的模糊程度就会越强,通常采用3*3的高斯核对图像进行处理。
4 Canny边缘检测
本次采用的Canny边缘检测算法是一种边缘检测算法,在灰度转换和高斯模糊的基础上进行梯度幅值和方向的计算,通过非最大信号抑制和高低阈值的连接,输出二值图像,Canny算法与其他算法相比其抗干扰能力更强,噪声更小,输出的图像更平滑边缘连续性更好,Canny算法的流程如下。
图3 高斯模糊处理后的图像
4.1 计算梯度的幅值和方向
4.2 非最大信号抑制
进行像素梯度处理后的图像需要进行非最大信号抑制来细化图像边缘,去除非边缘信号,并检测边缘像素周围像素,若其像素值小于边缘信号的像素值则将像素值取零(去除),只留下边缘信号,非最大信号抑制保留了局部梯度值最大的信号,抑制了所有其他的梯度值信号。因此经非最大信号抑制处理后图像只保留了梯度变化中最锐利的位置。
图4 Canny边缘检测处理后的图像
4.3 高低阈值的连接
在非最大信号抑制的基础上对图像进行高低阈值的连接,处理时需提前设定一个高阀值和一个低阀值来进行边缘像素的区分。将边缘像素点梯度值大于高阀值的像素点视作强边缘点;边缘梯度值小于高阀值,大于低阀值的视作弱边缘点;像素值小于低阀值的像素点则抑制掉。再将强边缘点附近的弱边缘点与强边缘点连接得到最终的二值图像。进行Canny算法处理过的图像如图4所示。
5 霍夫变换检测直线
霍夫变换直线检测需在边缘检测完成的前提下进行,在图像中寻找直线,实现图像从平面空间到极坐标空间的转换。
=* cos+* sin
式中:为直角坐标系中原点到直线的距离;为与x轴的夹角。
极坐标系中的表达式=*cos(),=*sin()。因原图像在平面坐标系中,故点(,)已知,可以将参数与看成未知数,则在原图像中同一条直线上的点的和在参数坐标系(-中的图象是共点的,又每个(,)点,在参数坐标系中都对应一条相应的曲线,所以如果个点(,)共线,这个点在参数坐标系中所对应的曲线会有一个公共点,如图5(2)所示,对于每个像素点来说,不同的对应的不同,对图像中的所有边缘点进行处理,找出所有公共点,再反算到平面坐标中就可得到直线上各点的像素坐标,通过设置参数累加器和直线绘制函数得到直线。
基于上述研究进行实验测试和分析,选用的硬件平台为 Intel CORE i5 处理器、4 G 内存,软件方面基于计算机视觉库 OpenCV 3 4. 1 版本,采用 C + +语言在 Visual Studio 2015 开发环境中进行了算法代码开发。经过霍夫变换直线检测后的图像如图6所示。
图6 霍夫变换检测车道线
6 结语
车道线的智能检测与识别是实现汽车无人驾驶的关键技术之一,本文以数字图像处理为理论研究了车道线检测和识别的步骤,在此基础上基于OpenCV开源计算机视觉库在Visual Studio 2015开发环境中进行了代码编写,经过运行,成功检测并准确识别出车道线,达到了预期的设计目标。
[1] 张道芳, 张儒良. 基于语义分割的车道线检测算法研究[J]. 科技创新与应用, 2019(6): 14-16.
[2] 刘萍, 孙耀航. 基于反透视变换的车道线检测算法[J]. 计算机与数字工程, 2019, 47(3): 678-681.
[3] 王文豪, 高利. 一种基于OpenCV的车道线检测方法[J].激光杂志 ,2019, 40(1): 44-47.
[4] 任桐慧, 曹为政. 基于opencv的视频道路车道线检测方法研究[J]. 科学技术创新, 2018(23): 74-75.
[5] 李亚娣, 黄海波, 李相鹏, 等. 基于Canny算子和Hough变换的夜间车道线检测[J]. 科学技术与工程, 2016, 16(31): 234-237.
[6] 姜良超, 李传友, 殷凡青. 基于OpenCV的车道线检测[J]. 摩托车技术, 2018(8): 41-44.
Intelligent Detection and Recognition of Lane Line Based on OpenCV
BAI Song-rang, DUAN Min, CAO Jing-sheng, ZHENG Su,YANG Xiao-li
(School of Automobile and Traffic Engineering, Liaoning University of Technology, Jinzhou 121001, China)
With the development and popularization of the intelligent driving system, it is very important to accurately identify the driving environment, and the lane detection technology can provide the position information of the vehicle to be an important components of advanced driving assistance system and the automatic driving system. A method for intelligent detection and identification of lane lines based on open source computer vision library (OpenCV) is presented in this paper. First, the image is gray-scale, the Gaussian blur gets the fuzzy image, then the edge image is obtained by the Canny edge detection algorithm, And finally Hough transform on the obtained edge image is carried out to realize the intelligent detection and identify the lane line.
lane detection; open source computer vision library; canny edge detection; hoff transform
TP391.41
A
1674-3261(2020)02-0092-04
10.15916/j.issn1674-3261.2020.02.006
2019-07-07
白松让(1996-),男,吉林松原人,硕士生。
段 敏(1963-),女,辽宁锦州人,教授,硕士。
责任编校:刘亚兵