0 前言
近年来,随着智能交通系统的发展,车辆的自动驾驶技术已成为汽车行业发展的趋势。车道线检测作为实现车辆自主导航和安全驾驶的关键技术,能显著提升车辆的智能驾驶能力。
为了实现车辆的自动驾驶,需使其能够实时感知周围环境。相比激光雷达,视觉传感器不仅价格低,且更适用于区分明显的车道线与路面特征,在车道线检测中表现出更好的鲁棒性和实用性。本文将主要讨论基于视觉的车道线检测技术。
目前,基于视觉的车道线检测算法主要分为两类:一类是基于传统方法的检测算法,此类包括基于图像特征和基于模型这两种检测方法;另一类是基于学习的车道线检测算法。本文提出的方法是一种基于传统方法的检测算法。
基于图像特征的检测方法无须考虑道路的形状信息,一般依据车道线的颜色、边缘或梯度变化等特征信息来区分车道线和背景区域。基于模型的车道线检测方法则主要根据道路的轨迹特征,通过随机采样一致算法(RANSAC)和最小二乘法等方法求解模型参数,以此建立相关的直、曲线模型。
刘宗等通过感兴趣区域提取、图像灰度化、平滑滤波和边缘检测等方法实现了对车道线图像的预处理。查俊林等在这一方面则采用了图像灰度化、阈值分割和形态学运算等方法,两者实现的效果略有不同。高越等利用索贝尔算子(Sobel)提取道路图像中沿水平方向的边缘特征,并采用直方图和滑动窗口检测确定了车道线的具体位置。谢茜采用霍夫变换的方法,对直线型车道线具有较好的检测效果。
上述车道线检测方法都有较好的检测效果,但图像预处理结果仍存在不足,具体表现为环境噪声信息和车道线边缘噪声信息显著。为了减小噪声,提高检测准确性,本文提出一种采用多种图像处理方式的车道线检测方法。通过图像去畸变和图像校正得到车道线图像的俯视图,在图像颜色空间转换的基础上使用颜色特征提取(阈值分割)和Canny边缘检测算子提取出车道线信息,通过形态学滤波去除噪声,使用图像直方图确定车道线的大致位置,利用霍夫变换和滑动窗口搜索法确定车道线的几何形状。
1 图像预处理
1.1 图像去畸变
车道线检测中使用的视觉传感器等成像设备,在图像采集过程中会引入畸变,主要包括径向畸变和切向畸变。这些畸变会导致图像中的物体形状、大小和位置发生变化,影响后续的图像处理和分析。
因此,需要通过图像去畸变进行校正,使图像中的物体保持真实的形状和位置关系,提高图像处理的准确性与可靠性。
图像去畸变的过程通常包括摄像头的标定和畸变校正两个步骤。
摄像头的标定是指确定摄像机的内、外参数和畸变参数的过程。可通过OpenCV标定法实现。畸变校正则是利用以上参数对摄像头拍摄的图像进行处理,从而消除图像中的畸变,可通过OpenCV中的initUndistortRectifyMap和remap函数来实现。
在车道线检测中,去除图像畸变可以显著提高算法的准确性和稳定性,使得车道线形状更接近实际情况,从而提高检测性能。
1.2 图像校正
在车道线检测中,视觉传感器通常从汽车视角拍摄路面图像。这种倾斜视角导致图像具有透视效果,即远处的车道线看起来更靠近,近处的车道线看起来更宽,这对后续的图像处理是不利的。
为了消除透视效果带来的车道线几何变形,可通过透视变换将斜视图像转换为俯视图,使得两条车道线在图像中呈现为近似平行的直线,具体步骤如下:
首先,建立两幅图像的透视变换方程:
式中:t11、t12、t21、t22为旋转参数;t13、t23为平移参数;t31、t32为透视失真参数;t33为比例因子。
得到透视变换矩阵T 后,需要获取公共特征点并进行重合配对,即通过式(1)将目标图像的特征点与原始图像的对应特征点配对。
最后,将透视变换应用到整个图像,对所有像素点进行透视变换。
OpenCV提供了函数getPerspectiveTransform和warpPerspective来实现图像的透视变换,两者分别用于计算透视变换矩阵T和应用透视变换。
1.3 图像颜色特征提取
RGB颜色空间使用红色(R)、绿色(G)和蓝色(B)三个通道描述颜色,模型如图1a所示。每个通道的取值范围为0~255,代表对应颜色分量的强度。由于颜色是由三个分量组合表示的,因此颜色分量间有较强的耦合性。
图1 颜色空间模型对比
Hue,Saturation,Value(HSV)颜色空间则使用色调(H)、饱和度(S)和色明度(V)三个分量表示颜色,模型如图1b所示。其中,色调表示颜色类型,饱和度表示颜色接近光谱色的程度,色明度表示颜色的明暗程度。
HSV颜色空间具有较强的色彩分离能力,因其色调(H)分量直接表示颜色类型,简化了阈值(颜色)分割的过程。而在RGB颜色空间中,色彩分离则需要同时处理三个通道的复杂关系。
因此,在对车道线图像进行颜色特征提取时,首先需要将图像的颜色空间由RGB转换为HSV,可通过OpenCV中的函数cvtColor实现。
在HSV颜色空间中设定阈值,可有效地将目标颜色的车道线从道路背景中分离出来,得到一张仅含车道线信息的二值图,实现阈值分割(ThresholdSegmentation,TS)。
1.4 边缘检测
图像的边缘是指图像中物体周围灰度发生阶跃变化的像素集合。在车道线检测的图像中,边缘通常存在于目标车道线与背景之间。车道线的边缘检测旨在确定车道线的位置和方向,为后续的检测和跟踪提供信息。
在实际应用中,需要在灰度图像上进行边缘检测,因为灰度图像的每个像素都只包含一个通道的信息(灰度值),可以更容易地表示图像中的梯度变化。将RGB图像转换为灰度图像的灰度,转换公式为:
在车道线检测中,常见的边缘检测算子有Sobel和Canny。
Sobel边缘检测算子是一种基于微分运算的边缘检测方法,通过计算图像在水平方向和垂直方向的梯度来检测边缘,其使用了两个3×3的卷积核(SobelX、SobelY),分别用于计算水平和垂直方向的梯度,公式为:
Sobel边缘检测的结果是在领域内做灰度加权和差分运算:
Canny边缘检测算子是一种多级边缘检测算法,其包括高斯滤波、计算梯度幅值与方向、非最大值抑制、双阈值检测和区域连通等多个步骤。这种在进行微分运算前先对图像进行平滑滤波的算子,理论上能够有效抑制噪声的干扰。
边缘检测(Edgedetection,ED)的结果同样为二值图。
1.5 形态学滤波
在常见的图像预处理流程中,通常只进行边缘检测或阈值分割后滤波,这种简化的处理流程得到的图像一般存在较大的噪声。因此,本文改进性地结合使用阈值分割、边缘检测和形态学滤波,来对噪声信息进行优化。
形态学滤波是一种基于图像形状的处理方法,适用于二值图像处理。其通过不同形态的结构元素(0、1)对图像进行集合运算,以消除车道线边缘和非车道线区域的噪声,主要包括膨胀(Dilation,DIL)、腐蚀(Erosion,ERO)、开运算(Opening,OPN)和闭运算(Closing,CLO)等基本操作。
腐蚀和膨胀是基本形态学操作。腐蚀通过结构元素与图像做“相与”操作,将图像中的对象缩小一圈。与之相反,膨胀操作则是将图像中的对象扩大一圈。
开操作和闭操作是两种高级形态学操作,两者通过将膨胀和腐蚀操作通过不同的方式进行结合来实现不同的效果。开操作通过先腐蚀后膨胀,使图像轮廓光滑并断开细小连接。闭操作则通过先膨胀后腐蚀,连接断开的部分、消除鸿沟,并填补轮廓线中的裂缝。
2 车道线检测
2.1 图像直方图
对图像预处理后,可开始进行车道线处理。为了降低运算复杂度,需要提前确定车道线的大致位置,这可通过图像直方图实现。
图像直方图是指对于一副二值图像,沿着横轴方向统计每一列中白色像素点的个数,其横坐标表示图像的列数,纵坐标表示每列中白色像素点的数量。
2.2 霍夫(Hough)变换
2.2.1 基本原理
霍夫变换是一种用于检测图像中的基本几何形状(如直线、圆)的图像处理技术。其基本原理是将图像空间中的点转换到参数空间,并通过参数空间中的峰值来确定几何形状。
在直线检测中,霍夫变换充分利用点与线的对偶性,即图像空间中的直线与参数空间中的点对应,参数空间中的直线与图像空间中的点对应。具体而言:如图2a所示,在图像空间x-y坐标系中,一条直线可以表示为y=kx+b(其中k和b分别表示直线的斜率和截距),过图中点A(x_0,y_0)的所有直线的参数均满足方程y0=kx0+b,即点A确定了一族直线。若将方程y0=kx0+b改写为b=-kx0+y0,则在参数空间k-b中形成了一条直线,如图2b所示,即图像空间中的点A(x0,y0)对应了参数空间中的直线b=-kx0+y0。
图2 霍夫变换原理
在实际应用中,参数空间一般采用极坐标系ρ–θ,直线表达式为:
2.2.2 标准霍夫变换
霍夫变换通常应用于边缘检测的结果图像,一般步骤如下:首先需要为每条可能的直线确定其在参数空间中的坐标,通过极坐标形式表示为式(5)。其次是投票环节,即对每一个边缘特征点,在参数空间中找到所有可能的直线,并对这些直线的参数进行投票。投票完成后,参数空间中投票数较大的局部最大值点代表图像中存在的直线,这些点对应的参数值即图像中直线的参数值。最后,将这些符合直线定义的边缘特征点连接起来,得到完整的直线。
2.2.3 概率霍夫变换与直线拟合
除上文中提到的标准霍夫变换外,另一种霍夫变换形式是概率霍夫变换。区别在于,概率霍夫变换可以检测到图像中的多条短直线段,同时返回所有直线的端点信息。
概率霍夫变换返回的是一系列线段的两个端点,且端点是从边缘图像中检测到的离散点,可以通过拟合的方式,如最小二乘法,得到整体的直线模型。
在车道线检测中,车道线可能由于遮挡、路面状况等原因出现断裂或不连续,使用概率霍夫变换可以更好地应对这种情况。
2.3 滑动窗口搜索法
滑动窗口搜索是一种常见的图像处理方法,通过在图像上滑动一个固定大小的窗口逐行扫描图像,以识别目标的像素位置。在车道线检测中,可以采用这种方法来扫描图像的每一行,确定车道线的像素位置。
搜索步骤为:首先确定搜索窗口的大小(宽度与高度)。其次,确定左右车道线窗口的大致起始搜索位置,由图像直方图提供。接下来按搜索窗口的数量逐行扫描,实现对车道线像素的全覆盖,再根据每个滑窗内像素的位置与数量,确定该部分像素区域的中心点。最后,利用多项式拟合函数找到这些中心点的最佳二阶拟合多项式参数,并计算出车道线的像素位置。
3 试验结果分析
3.1 试验对象与评价指标
试验选取某张含多车道且环境信息丰富的图像为研究对象。
选取平均噪声水平(MeanNoiseLevel,MNL)和定位误差(LocalizationError,LE)分别作为图像预处理和车道线检测模型的评价指标。
MNL的计算如式(6)所示:
式中,MNL为平均噪声水平;r和c为图像在行和列上的检测数量(即将图像按r行、c列分成共rc个检测区域);N(i,j)为区域内噪声检测结果,有噪声即为1。
LE的计算如式(7)所示:
式中,LE为定位误差;Li、Ri、Pi分别为第 i 行实际车道线左右像素位置和拟合后车道线的像素位置;n 为总检测行数。
3.2 图像去畸变与校正结果
图像去畸变和图像校正可提高后续处理的准确性与可靠性,对原始图像进行去畸变和透视变换的结果如图3所示。
如图3所示,经过去畸变和透视变换,图像畸变和透视效果被消除,左右两条车道线在图像中呈现为近似平行的直线,使得后续对车道线的检测更加准确与直观。
a)原始图像 b)去畸变与透视变换
图3 图像校正前后对比
3.3 阈值分割与边缘检测结果
将图3b所示的RGB颜色空间的图像转换为HSV颜色空间,并利用OpenCV提供的二值化函数inRange提取出白色车道线的结果,如图4所示。
图4 阈值分割结果
由图4可得,提取白色车道线的效果整体较好,但仍存在一定环境噪声信息,且出现虚线部分车道线像素信息丢失的情况,因此,在阈值分割结果(Tsr)的基础上进行车道线检测是不合适的。
将图3b所示的图像按式(2)灰度化,并分别进行Sobel和Canny边缘检测的结果,如图5所示。
a)灰度化 b)Sobel c)Canny
图5 边缘检测结果
由图5可得,Canny边缘检测算子的精度更高,能够精确定位图像中的边缘,同时,其对噪声的抑制作用也更好,能够得到更加稳定的车道线边缘结果。但边缘检测的结果所存在的问题与阈值分割类似,同样存在环境噪声信息。因此,为了减小噪声,提高准确度,本文改进性地将阈值分割和边缘检测的结果叠加,如图6所示,并在此基础上进行形态学滤波,以实现减小噪声的目标。
图6 阈值分割与边缘检测结果叠加
3.4 形态学滤波结果
将图6所示的叠加结果进行多种形态学滤波操作的结果如图7所示。
图7 形态学滤波结果
由图7a、图7b可得,经膨胀和腐蚀操作后,车道线边缘的噪声信息被较好地过滤了。但在腐蚀操作后,较小的车道线也几乎被过滤了,同时,膨胀操作使得车道线外围的环境噪声信息被放大。由图7c、图7d可得,开操作和闭操作较好地解决了单一的腐蚀或膨胀操作消除车道线像素或放大环境噪声信息的问题,可见经过闭操作后的车道轮廓线远光滑于开操作的结果,同时左侧车道线中较少像素的部分也被保留下来了,且较为完整,没有明显缩小的迹象,但道路两侧的环境噪声信息仍然存在。由图7e、图7f可得,在开、闭操作的基础上再进行膨胀和腐蚀操作,所得的车道线信息均较为理想且噪声较小,相比之下,闭操作加腐蚀的车道线边缘更加光滑,可作为最终选用结果。
综上所述,采用阈值分割与边缘检测结果融合再进行形态学滤波的方法在降低图像噪声方面是有效的,与其他情况的MNL指标(检测区域选为20×40)对比如表1所示。
由表1可得,综合使用阈值分割、边缘检测和形态学滤波的方法,相比单独使用阈值分割或边缘检测的结果,平均噪声水平指标MNL下降了约0.5%~3%。
3.5 霍夫变换结果
对上文得到图像预处理结果进行标准霍夫变换,并将变换结果标注于图3b的结果如图8所示。
图8 标准霍夫变换结果
由图8可知,在车道线边缘笔直的情况下,霍夫变换能够很好地检测出边缘的直线,但出现了大量冗余的相似直线,通过为直线参数ρ和θ设置差值阈值的方式来去除冗余直线的结果如图9所示。
a)ρ=10,θ=15 b)ρ=15,θ=15
图9 标准霍夫变换结果(设置阈值)
由图9可知,通过为直线参数设置阈值,大量的冗余直线被去除,但随机性较大,无法确定保留下来的直线是否准确度更高。
试验图像的车道线中存在非连续区域,可使用概率霍夫变换,检测结果和最小二乘法拟合结果如图10所示。
由图10可知,概率霍夫变换可以更好地应对车道线不连续的情况,且最小二乘法拟合直线的效果较好。
a)检测结果 b)拟合结果
图10 概率霍夫变换结果
3.6 滑动窗口搜索结果
相比仅适用于直线的霍夫变换检测,滑动窗口搜索法在检测精度、曲线拟合等方面更具优势。
对3.4中所得的图像预处理结果求取图像直方图,结果如图11所示,由此可确定左右车道线的大致起始位置,减少滑窗的搜索时间。
图11 图像直方图
滑窗搜索和曲线拟合的结果如图12所示,以右车道线为例。
a)滑窗搜索 b)曲线拟合
图12 滑窗搜索结果
由图12可知,滑动窗口搜索法对车道线的检测准确度和拟合精度均优于霍夫变换,为了更客观地分析检测效果,定位误差指标LE对比如表2所示。
由表2可得,滑动窗口搜索对于车道线的拟合精度高于霍夫变换,将定位误差限制在了3个像素以内。
4 结论
这种基于视觉的车道线检测方法是有效且有前景的。该方法的主要改进点在于融合使用了多种图像处理技术以实现精确的车道检测能力。多步骤的图像预处理流程,在图像去畸变和图像校正结果的基础上,结合使用了阈值分割、边缘检测和形态学滤波。试验结果显示,相比单独使用阈值分割或边缘检测的结果,其抑制噪声的能力更加突出,图像平均噪声水平显著降低,保证了后续车道线检测的准确性。对比使用了不同形式的霍夫(Hough)变换和滑动窗口搜索法,用实际检测结果和定位误差证明滑窗搜索法在拟合车道线方面有更佳的表现。
参考文献
[1] 刘宇,韩磊,王程庆,等.基于视觉的车道线检测算法研究综述[J].汽车实用技术,2021,46(22):24-27.DOI:10.16638/j.cnki.1671-7988.2021.022.006.
[2] 闫宏政.基于改进CNN的车道线检测算法的研究与实现[D].重庆:西南大学,2024.DOI:10.27684/d.cnki.gxndx.2023.001691.
[3] 吴一全,刘莉.基于视觉的车道线检测方法研究进展[J].仪器仪表学报,2019,40(12):92-109.DOI:10.19650/j.cnki.cjsi.J1905719.
[4] 江漫,徐艳,吕义付,等.基于计算机视觉的车道线检测技术研究进展[J].信息技术与信息化,2022(11):21-24.
[5] 刘宗.基于视觉的车道线检测研究[D].武汉:湖北工业大学,2021.DOI:10.27131/d.cnki.ghugc.2019.000101.
[6] 查俊林.基于视觉的道路图像处理与车道线检测研究[D].重庆:重庆大学,2021.DOI:10.27670/d.cnki.gcqdu.2019.000336.
[7] 高越,张勇,杜学峰,等.一种基于视觉的车道线检测及追踪方法[J].汽车实用技术,2021,46(15):51-52+78.DOI:10.16638/j.cnki.1671-7988.2021.015.014.
[8] 谢茜.基于视觉的车道线检测与识别[D].武汉:武汉理工大学,2013.
[9] 王文豪,高利.一种基于OpenCV的车道线检测方法[J].激光杂志,2019,40(01):44-47.DOI:10.14016/j.cnki.jgzz.2019.01.044.
[10] 靳景浩.基于视觉的无人机车道巡线技术研究[D].成都:电子科技大学,2022.DOI:10.27005/d.cnki.gdzku.2021.000590.
[11] 井志强.基于视觉的车道线检测算法研究[D].南京:南京航空航天大学,2022.DOI:10.27239/d.cnki.gnhhu.2022.002183.
[12]王梓楠,何东,赵茂杰.基于滑动窗口搜索的车道线检测与车道偏离预警算法[J].汽车工程师,2023(09):15-20+28.DOI:10.20104/j.cnki.1674-6546.20230342.
本文为“AI汽车制造业”首发,未经授权不得转载。版权所有,转载请联系小编授权(VOGEL100)。本文作者:张弛楷,单位:北京理工大学 。责任编辑龚淑娟,责任较对何发。本文转载请注明来源:AI汽车制造业
AI汽车制造业
龚淑娟
李峥
2024-09-06
2024-09-01
2024-09-03
2024-09-03
2024-09-04
2024-09-01
评论
加载更多