李茂月 吕虹毓 王 飞 贾冬开
哈尔滨理工大学机械动力工程学院,哈尔滨,150080
车道线检测是利用数字图像处理与模式识别技术,在采集到的路面图像中提取目标特征信息进行计算与分析来拟合车道线。车道线精准的检测提取,为自动巡航驾驶、原有车道位置保持、车辆变道超车等技术提供重要的信息基础,为车辆的可靠驾驶提供安全保证。基于机器视觉的车道线检测技术可以检测出理想的道路标志线,以便使下一步智能驾驶决策环节顺利进行,同时可预判汽车的可行驶区域,并为无人驾驶行驶规划提供重要依据,因此,它也是智能驾驶系统的重要组成部分之一[1]。
对于复杂道路环境的车道线检测问题,王永忠等[2]针对阴影、路面破损及遮挡等因素导致车道检测不准确的问题,提出利用结构化道路两侧车道线上具有相反方向梯度的性质,将两侧车道线的检测转化为梯度点对约束下的车道中线及宽度进行检测。赵翔等[3]提出了一种基于视觉传感器与毫米波雷达的车道区域确定方法,通过摄像头检测车道线,用圆曲线模型进行拟合,并使用雷达检测道路两旁的护栏边沿,获取道路的边界信息,然后对比车道线与道路边沿的相对位置关系,从而进行车道定位。KAZUYUKI等[4]将模板匹配技术与Hough变换相结合,在此基础上设计了一种带有反射镜面相机装置的试验车,通过实验证明了该方法具有一定的消除室外光晕影响的效果。ZHOU等[5]提出了一种基于Gabor滤波器与几何模型的车道线识别方法,在智能车前方存在车道标示线的前提下,通过局部Hough变换和感兴趣区域(region of interest,ROI)定位估算所需参数,确定最优模型并完成与实际车道线的匹配。LPEZ等[6]提出除了常用的边缘特性之外,还可利用分析道路脊线提取车道线。另外,赵逸群等[7]和CAO等[8]采用色域转换方法,解决了受光照影响的视觉检测问题且效果较好。
针对车道线识别算法效率问题,KIM[9]提出了一种基于随机样本一致性和粒子滤波的快速鲁棒算法,可以迅速对样本进行评估和分组,将基于似然的目标识别算法与马尔可夫过程理论相结合,可应用于一般的基于车道线的目标跟踪问题。姜朝曦等[10]提出一种全新的车道图像识别处理方式,根据运动的动态信息缩小敏感区的范围,既可以可靠地定位车道线,又能够提高准确性、实时性。郭克友等[11]提出一种车道线分类检测算法,采用LSD算法检测灰度图像中的直线部分并确定车道线的方向,在此基础上,选取符合车道线灰度范围内的像素点,对远距离的像素点采用抛物线拟合,近距离的像素点采用直线拟合。张伟伟等[12]设计了一种基于FPGA算法的车道线识别方法,提出关于多尺度匹配滤波方法,并根据改进的恒虚警率检测模型来预测局部噪声情况,从而对目标进行动态提取。
综上所述,车道线检测存在的主要问题如下:易受环境影响,在车道环境复杂情况(光照强度多变、阴影遮挡、道路线缺损)下难以完整识别车道线或造成误检测。另外,近年来深度学习的迅速发展使卷积神经网络在图像识别领域应用广泛,但存在需要训练模型、算法复杂、对硬件水平要求较高等问题[13-14]。针对以上情况,本文提出一种适用于较复杂环境的鲁棒车道线识别方法。
ROI作为智能视频编码的一种方法,其作用是在图像质量不受损的前提下提高处理过程的效率。在进行车道线检测时存在无用信息,合理去除冗余信息,有助于消除噪声干扰以及提高特征检测效率。
确定ROI,首先要把非车道区域与路面区域分割处理。传统方法大多以道路消失线为参考,同时采用基于固定坐标位置的区域分割方法。该方法对于不同环境,如车辆在上坡与下坡时,由于相机视线与地平线之间夹角发生变化,导致固定位置的ROI划分方法对不同环境的车道敏感区域划分不准确。然而,先进汽车辅助驾驶功能的实现往往需要准确的车道环境信息为依据,所以合理且准确划分车道敏感区域极其重要。不同驾驶情况下的道路消失线如图1、图2所示。
图1 上坡车道消失线位置
图2 下坡车道消失线位置
针对以上问题,本文提出一种基于像素候选统计的道路消失线自适应确定方法。将灰度图分割为多个子统计区域,图像分割流程如图3所示。
图3 消失线统计域分割流程
将图像完成分割后的对应区域的像素判断值定义为Cij,并对该部分进行候选分类,将大于阈值的记为1,否则为0,公式如下:
(1)
其中,g(xi,yj)为道路消失线所在候选点的灰度值,σ为道路边界的阈值。对候选点完成分类后所得的有效像素点数值进行求和,并将其定义为第i个子计算像素区域中所包含的有效候选像素点个数Si:
(2)
为了使统计结果更直观,将λ定义为增强系数,取值大小不影响整体结果。分别计算S0,S1,…,Sn,之后统计每个子计算空间中的候选点数,候选子区域峰值所对应横坐标即为道路消失线所在位置。具有最多有效像素数Si的子计算区域中的统计像素点数V为
V=max(Si)
(3)
消失线候选位置投票统计结果如图4所示,统计图中峰值处对应坐标为(257.661 pixel,465.016)。由统计结果计算并得到车道区域的分割结果,如图5所示。
图4 消失线候选位置投票统计结果
图5 道路消失线及感兴趣区域划分的效果
由于在传感器采集及传输过程中会导致图片质量受损,故本研究采用双边滤波算法,在消除噪声的同时有效保留边缘,其公式如下:
(4)
其中,f(k,l)为原始图像中点(k,l)的像素值,g(i,j)代表滤波后图像中的点(i,j)的像素值,ω(i,j,k,l)为权重系数,等于空间高斯滤波器核函数ωd(i,j,k,l)与值域滤波核函数ωr(i,j,k,l)的乘积,分别表示为
(5)
其中,σd为空域滤波半径,σr为值域滤波半径。各滤波算子检测效果的对比如图6所示。图6显示,双边滤波算子同时具有较好的去噪效果和优秀的保边能力。
(a) 高斯滤波效果
目前,对于目标边缘特征的提取多基于Canny算子或Sobel算子。Canny算子可以提取精细的车道边缘,但同时也提取出路面标志、路边阴影、减速带等干扰物体的边缘信息,这些干扰信息不仅降低车道线检测效率,而且影响车道线识别精度[15-16]。对比效果如图7、图8所示,通过比较可以发现:采用Sobel算子可以避免提取干扰特征。所以对于路面场景,本文选用Sobel算子进行特征检测,同时对Sobel算子进行合理改进以提高检测精度。
图7 Canny算子检测效果
图8 Sobel算子检测效果
由于传统的边缘检测算子采用水平、竖直梯度方向进行边缘检测,不能根据实际情况的需要进行合理匹配,且无法解决车道线检测存在的易受噪声干扰及需要一定的检测精度等问题,故本研究设计了一种多尺度Sobel算子,使用Lab色域、LUV色域对车道线特征值进行阈值过滤,可以有效保留有用信息,针对复杂环境下的车道线识别具有较好的效果。
首先,对原始图像滤波得到可处理的平滑图像。其次,由于车道线边缘梯度方向不确定,尤其是在复杂环境下的检测效果欠佳。因此,本文对滤波平滑后的图像,采用改进划分角度的检测算子进行边缘检测。
由于传统Sobel算子存在一定局限性(仅对水平与竖直方向边缘敏感),在道路图像中若仅考虑两个方向的梯度值,会在边缘检测的过程中造成漏检,无法获得较高的边缘精度。本文对Sobel算子在检测角度上进行优化,对算子进行四方向梯度加权,划分检测梯度方向分别为0°、45°、90°、135°,角度划分如图9所示,其3×3模板卷积核如图10所示。
图9 道路检测角度划分结果
(a) 0°卷积核
算子根据像素点上下、左右邻点灰度加权结果,在边缘处达到极值这一现象来检测边缘。边缘梯度值Gi计算公式为
(6)
i=0°, 45°, 90°, 135°
其中,Ki为对应角度的卷积核矩阵,A为待计算图像像素矩阵,m、n代表矩阵值对应的位置,x、y为矩阵中心点坐标。通过式(6)计算相应的边缘梯度值结果,以0°方向为例,计算梯度值、最终计算结果G分别为
G0°=(f(x+1,y-1)+2f(x+1,y)+f(x+1,y+1))-
(f(x-1,y-1)+2f(x-1,y)+f(x-1,y+1))
(7)
(8)
边缘图像处理效果对比如图11所示。通过比较图11a、图11b的效果可以看出,相较传统检测算子,多尺度Sobel算子刻画的边缘图像更为准确清晰。
(a) 传统3×3 Sobel算子梯度处理效果
具有复杂环境的车道如图12所示,其中,存在阴影遮挡、光照不均匀等情况。传统Sobel算子图像检测效果如图13所示。
图12 复杂环境车道图像
图13 传统Sobel算子图像检测效果
图13中,传统检测算法对于此类场景的识别效果不够理想,其原因如下:①传统方法无法解决图像中车道线在强光照影响下使其边缘特征钝化的问题;②无法有效区分由于光线照射产生的其他物体阴影遮挡形成新的边缘,所以对车道线识别造成一定干扰。为此,本文采用多尺度Sobel算子计算边缘,并将原始图像从RGB色域分别转为Lab色域、LUV色域,对车道图像的阈值进行过滤。
Lab颜色模型弥补了RGB和CMYK两种色彩模式的不足。Lab颜色模型由三个要素组成,第一个要素L是亮度(light),另外两个要素为a和b,分别代表两个颜色通道。a包括的颜色是从深绿色到灰色再到亮红色,b是从亮蓝色到灰色再到黄色。这种颜色混合后将会产生亮度效果。因此,针对黄色车道线目标采用Lab色域三通道中的b通道进行阈值过滤、保留目标信息。Lab色域模型如图14所示。
图14 Lab颜色模型 Fig.14 Lab color model
首先,RGB色域与CIE 1931 XYZ色域(后文简称XYZ)转换关系为
(9)
其中,T为色域转换矩阵,公式内系数的确定可参考文献[17],将系数代入整理得
(10)
然后,将XYZ转为Lab,即可完成转换,关系式如下:
(11)
其中,Xn、Yn、Zn为固定值,分别取95.047,100.0,108.883。f(t)的表达式为
(12)
对图像中强光下的白色虚线部分采用LUV色域的L通道进行过滤及效果增强。其中,L为亮度,U、V表示色差,LUV模型如图15所示。
图15 LUV色域模型
在RGB-LUV转换过程中,通过式(9)、式(10)确定RGB色域与XYZ色域转换关系后,将XYZ色域转换为LUV色域关系:
(13)
其中,u′、v′、u′n、v′n的表达式分别为
(14)
完成色域转换后,为得到二值化边缘的最终结果,将多尺度Sobel算子与Lab、LUV色域过滤后的二值边缘结果进行或运算:
Ebin=ESob|ELab|ELUV
(15)
采用以上方法可以有效提取复杂光照环境下的黄色、白色车道线,最终效果如图16所示。与图13相比,本文提出的多尺度Sobel算子可较完整地检测出图16中的车道线。
图16 优化二值图像处理效果
由于车载传感器安装时与地面有一定角度,导致车道图像呈现近大远小的情况,使原本平行的左右车道线产生倾斜角度,对车道线产生影响,不利于车道线检测,因此,对车道图像采用透视变换,将实际车道图像转换为车道俯视图,恢复车道线平行关系。
图像透视变换坐标转换原理如图17所示。即把平面Ⅰ中的A1、B1、C1、D1点的包围区域,将O点为基准向平面Ⅱ投影,对应的投影点分别为A2、B2、C2、D2。两平面中对应点的关系如下:
(16)
图17 透视变换坐标转换原理
整理式(16)可得
(17)
(18)
u、v为投影前UV坐标系下的点坐标,x、y为前者在投影后在XY坐标系中对应点的坐标,将式(16)中3×3矩阵记为a,它代表坐标转换矩阵。其中,当透视变换为二维坐标系转换关系时,w'=w=1。相机俯视视角车道模型与转换后视角车道模型如图18所示。
图18a所示为实际检测区域,图18b所示为理论检测区域。以图像中的对应点A1(u,v)、B1(u,v)、C1(u,v)、D1(u,v)与A2(x,y)、B2(x,y)、C2(x,y)、D2(x,y)的点坐标为依据,即可确定原视角与理论视角图透视变换的转换矩阵a。转换效果如图19所示。
图19a、图19c、图19e为相机拍摄的原始图像,图19b、图19d、图19f为车道透视变换后的理论俯视图。通过对车道图像采取透视变换,可使相机的检测视角转换为理论视角,从而更有利于车道线检测。
(a) 转换前车道视角
(a) 原始图像1
为了获取更细致的道路信息,采用DBSCAN(density-based spatial clustering of applications with noise)聚类方法结合Hough变换,设计了一种车道线预筛选方法。首先,参考Hough变换原理,将图像坐标系转化为极坐标系,利用极坐标系下的每个对应点(ρ,θ)映射原始图像中的特定线段,即
ρ=xsinθ+ycosθ0°<θ<180°
(19)
根据直角坐标系中线段与x轴夹角进行直方图投影。由于车道与路面边缘平行,所以直方图中θ值为90°处即为视场内的车道线方向。考虑到由于车辆行驶过程中俯仰角变化,影响图像透视变换结果,所以根据直方图投影结果,将峰值左右5°内的线段进行筛选并做聚类处理。投影统计结果如图20所示,聚类结果如图21所示。
图20 极坐标下车道线θ值投影统计
图21 车道线聚类统计
NURBS(non-uniform rational B-splines)曲线具有控制灵活、适于计算机编程、自由度高、适于拟合直线及曲线等特点[18],可以更好、更平滑地拟合车道线。
对拟合的目标采用三次NURBS形式,表示第i段曲线:
(20)
采用NURBS曲线拟合道路线,并利用随机抽样一致法对拟合结果进行连续迭代,对车道线模型进行优化以滤除误匹配。具体步骤如下:
(1)检索图像中目标特征的有效像素点,生成实验所需的原始数据点集。
(2)根据NURBS曲线模型,在原始数据点集中随机选取若干样本点作为曲线拟合的初始点,生成初始曲线。
(3)计算剩余数据点与初始曲线的相对距离,将不超过距离阈值的数据点靠近初始曲线,然后将这些点生成有效点集。
(4)当有效点集中的数据点达到预设曲线模型的有效点个数的阈值时,执行步骤(5),否则重复步骤(2)、(3),直至迭代数达到迭代次数上限。
(5)利用当前有效点集中的数据对曲线进行修正,保留最佳的曲线拟合结果。当迭代次数达到上限值时,算法停止。
匹配结果分别如图22~图24所示。
(a) 二值化车道理论视角
(a) 二值化车道理论视角
(a) 二值化车道理论视角
通过计算拟合相对误差,判断图22~图24车道线的拟合效果,由软件测试得到的车道线拟合相对误差的数据见表1。由表1数据可知,在车辆左转、右转及直行时,拟合的最大相对误差小于10%、平均相对误差小于5%,且数据方差较小。
表1 各行驶情况车道线拟合相对误差
使用车载相机采集各类环境的车辆行驶视频,并将检测算法在计算机中进行测试,在车辆行驶过程中,观察车道线的动态检测效果及检测的正确率。
硬件配置如下:Inter(R) Core(TM) i5-8300 CPU @2.30 GHz, NVIDIA GeForce GTX1050 Ti。软件测试环境如下:Windows10 64 bit, Python3.7.4 64 bit, OpenCV3.4.7.28。
在OpenCV中利用滑动窗口,对经过透视变换的车道线进行跟踪识别,测试效果如图25~图27所示。各行驶工况车道线识别准确率见表2。
图25 树荫遮挡道路识别效果
图26 强光照及缺损道路识别效果
图27 雨天及车辆干扰道路识别效果
表2 各车辆行驶工况车道线识别准确率
(1)提出了一种基于像素候选统计的道路消失线自适应确定方法,可以针对不同情况的车道自适应地将车道区域与非车道区域分离,可有效消除干扰信息,并提高特征检测效率。
(2)针对传统特征检测算子存在的缺陷,采用改进划分角度的检测算子进行车道线特征检测,同时对车道图像有针对性地采用多色域模型处理,使算法具有较好的环境适应性。
(3)采用DBSCAN聚类算法及NURBS曲线拟合道路线,并利用随机抽样一致法对车道线模型进行优化以滤除误匹配。实验结果表明,当车辆左转、右转及直行时,拟合的最大相对误差小于10%,平均相对误差小于5%,且方差较小。
(4)在17 447帧的车道线动态测试中的检测数据表明,本文方法在各工况下的平均识别准确率为97.39%。