APP下载

基于RC-DBSCAN 的车道线检测研究

2021-11-04邓元望蒲宏韬华鑫斌孙彪

湖南大学学报(自然科学版) 2021年10期
关键词:实时性质心卡尔曼滤波

邓元望,蒲宏韬,华鑫斌,孙彪

(湖南大学 机械与运载工程学院,湖南 长沙 410082)

车道线检测是辅助驾驶感知系统最重要的功能之一,提高车道线检测的准确性,将有利于保障智能汽车的安全行驶和驾驶员的人身安全[1].

目前,常见的车道线检测算法主要有基于特征检测、基于模型的检测和基于深度学习的检测.基于特征的检测主要的特征包括了边缘、纹理特征和颜色特征等[2-3].王家恩等提出了基于车道线宽度和边缘点数量统计的边缘检测算法,能有效抑制噪声的产生[4].Chen 等通过Sobel 算子进行边缘检测,并将图片转换到HSV 空间,进行颜色特征的车道线特征提取[5].文献[6]通过结合远视场LSD 直线检测和远视场的双曲线模型匹配对车道线进行拟合,取得了较好的效果.Wang 等利用密度聚类DBSCAN 算法动态确定邻域参数实现对车道线的提取,并使用抛物线模型对车道线进行拟合[7].Ajaykumar 等使用K-means 聚类算法对概率霍夫变换后的线段进行聚类,并利用轮廓系数确定最佳的聚类簇的数目,由于K-means 算法的局限性,聚类效果容易受到影响[8].He 等提出了基于点云卷积神经网络的车道线检测算法,在光照变化等复杂情况下,大大提高了检测精度[9].Neven 等将车道线检测问题转化为实例分割问题,利用LaneNet 网络获取每条车道线的像素级分割,从而提高了检测精度[10].

在车道线的跟踪领域,常见的跟踪算法可以分为基于模型参数的跟踪和基于感兴趣区域的跟踪.Lee 等通过上一帧图像车道线的位置信息,动态确定感兴趣区域,在此区域内对车道线进行追踪,具有很好的实时性[11].Wu 等利用卡尔曼滤波器对直线两端坐标参数进行跟踪,从而实现了对车道线的跟踪[12].

针对相关文献存在的鲁棒性、准确性与实时性无法有效兼顾的问题,为了在满足实时性的同时,更准确、全面地提取车道线信息,本文提出基于RCDBSCAN 的车道线检测跟踪与类型识别算法.

1 算法流程

本文在图像预处理部分,通过逆透视变换和对应点提取车道线感兴趣区域(Region of Interest,ROI),将Sobel 算子边缘检测结果和基于颜色空间HSL 和Lab 的最大类间方差法(OTSU)二值化结果进行数据融合,提取出车道线的边缘特征点;采用RC-DBSCAN 算法对特征点进行聚类;通过图像直方图峰值位置与簇点的质心位置排除路面干扰,并使用最小二乘法对车道线进行拟合;同时通过簇是否二次聚类和Lab 颜色空间中的簇点的颜色值对车道线类别进行判定;最后通过卡尔曼滤波对车道线进行跟踪,并划定可信区域对卡尔曼滤波的追踪结果进行判定和优化.总体算法流程如图1 所示.

图1 总体算法流程Fig.1 Overall algorithm flow chart

2 图像预处理

2.1 图片初处理

摄像头采集到的图片可分为三个区域:天空背景区域,车道线区域,车道线外背景区域.为了排除背景干扰,根据R、G、B 通道的值进行灰度化处理,灰度Gray 的计算式如下:

根据自车道范围,划定图片的感兴趣区域,本文选取图片下方2/5 左右的区域中的自车道线附近区域作为感兴趣区域.对图像进行基于对应点的逆透视变换处理[13],得到车道线的鸟瞰图.图2(a)为摄像头采集的某车道线原图,(b)为ROI 区域的逆透视变换图.

图2 图像的初处理Fig.2 Initial processing of image

2.2 基于Sobel 算子的车道线边缘提取

利用Sobel 算子通过模板,在x(水平),y(垂直)方向对图片进行卷积操作,通过对遍历点进行领域处理,达到提取边缘特征的效果,见图3.

设图像卷积中心点的坐标为(x,y),使用3×3的模板近似偏导数的计算式如下:

考虑到车道线图像中存在较多水平方向的灰度阶跃变化,故可在水平方向与垂直方向的卷积的加权处理中,增大水平方向卷积的权重,即增大gx的权重,可以更加有效的检测出车道线信息.经过大量直道、弯道图像的测试,本文最终设定gx,gy的权重分别为:70%和30%,这样得到的车道线边缘信息更与实际符合.图4 为Sobel 算子在不同路段的提取效果.

图4 Sobel 算子边缘提取图Fig.4 Sobel operator edge extraction graph

2.3 基于HSL 和Lab 颜色空间的特征提取与融合

为了提高算法的鲁棒性,考虑到HSL 颜色空间中L 分量对白色像素点比较敏感,Lab 颜色空间[14]的b 通道对与黄色像素点十分敏感,本节采用HSL,Lab颜色空间对特征点进行提取[15].

图5(a)逆透视变换图包含了黄色车道线(左侧),白色车道线(右侧).由于HSL 颜色空间的L 分量对白色像素点比较敏感.本节在L 通道上通过OTSU 二值化处理,如图5(d)所示;在Lab 颜色空间中,b 通道对与黄色像素点十分敏感,同样利用OTSU 算法在b 通道上进行二值化处理,如图5(e)所示.为了提高算法的实时性,本文还设定了b 通道中的灰度值阈值Tb(Tb=180),若此通道下图片像素最大灰度值bmax小于Tb,可认为图中没有黄色车道线,跳过此步骤.

最后将两个通道上得到的二值图进行“或”运算,得到基于颜色空间的特征点提取结果.将其与边缘提取的结果进行融合,最后对结果二值图进行形态学膨胀处理,如图5(f),从而可以得到更加准确的提取结果.使用融合的方式,只提取车道线边缘附近的像素点,减少了非必要的特征点数量,能提高聚类算法的实时性.

图5 颜色模型下的车道线提取Fig.5 Lane extraction based on color model

3 基于RC-DBSCAN 的车道线提取

3.1 RC-DBSCAN 算法

针对实际道路车道线可能为虚线或缺失的特征,本文结合DBSCAN 聚类结果的投影质心距离与车道线分布特征,提出了基于RC-DBSCAN 的特征点聚类算法.下面给出其算法流程:

系统输入大小是1 920×1 080 的车道线二值图像,样本点集为:

设领域的阈值为Ep,划分为簇的最小点数为Mp,对任意点p 的邻域Np的定义和核心点条件进行了定义:

根据上述条件,进行DBSCAN 聚类[16,17],如图6所示.将DBSCAN 聚类后得到的n 个簇投影到图片坐标系x 轴.设第n 个簇的簇点数为numn,通过公式(7)计算质心Cn,可以得到n 个位于x 轴上的质心集合centroids,如公式(8):

设定临界质心距离的阈值Dt,分别计算centroids 中不同簇的质心间的欧式距离.如果簇i,j 满足式(9),则将簇i,j 合并为一个簇:

否则仍然划为不同的簇.如图6 所示,r1与r2簇的投影质心距离D12小于设定的阈值,故被合并为一个簇;而r3簇到r1与r2的距离都大于了阈值,故被认为是单独的簇:

图6 二次聚类图解Fig.6 Reclustering diagram

对于单帧车道线二值图像,RC-DBSCAN 算法的流程图如图7 所示:

图7 RC-DBSCAN 算法流程图Fig.7 Flow chart of RC-DBSCAN algorithm

相比传统特征点处理算法,DBSCAN 聚类算法能在一定程度上降噪,更好的排除干扰特征点.利用车道线纵向分布的已知信息,根据DBSCAN 聚类的结果的投影质心进行二次聚类,能有效合并虚线或缺失车道线,避免了动态调整聚类的邻域参数,提高了算法的实时性.

3.2 RC-DBSCAN 与DBSCAN 的检测效果对比

为了使不同的簇被分到不同的类,通过预实验,本文设置邻域参数:Ep=10,Mp=10,Dt=50.为了验证改进后的聚类算法的聚类效果,本文进行了大量的实验.图8(a)表示了有虚线车道线时的ROI 图像.采用DBSCAN 算法进行聚类后,得到的效果图如图8(b)所示,左侧虚线车道线被聚类为多个类别;而采用RC-DBSCAN 后,如图8(c)所示,左侧虚线车道线被正确的聚类为一类.

图8 RC-DBSCAN 与DBSCAN 的检测效果对比Fig.8 Comparison of detection effect between RC-DBSCAN and DBSCAN

图8(d)为有交通标志干扰的场景.采用DBSCAN 算法聚类后的结果如图8(e)所示,箭头交通标志能够被较好的识别分离出来,但右侧的虚线车道线被错误的聚类为多个类别;采用RC-DBSCAN后,虚实车道线以及交通标志都被正确的聚类,如图8(f)所示.

由于需要将簇向二值图的x 轴投影并计算质心,故算法的误差主要来源于二值图的车道线分布情况.因此本算法要求二值图中的车道线之间尽量平行且纵向分布,有助于减小误差.

3.3 车道线簇的提取与拟合

对于自车道识别,为了有效的提取出左右两条车道线,需要去除路间的交通标志干扰.图片直方图的左右峰值处可认为是车道线的大致位置[18],取质心距离Lmax,Rmax最小的簇分别为左右车道线的簇,公式(10)、(11)中L 与R 对应的i 分别为左右车道线的簇序号.

对于图8(d),其直方图如图9(a)所示,其中横轴为横向的像素点坐标,纵轴为二值图中此横轴对应的白色像素点个数,其左右峰值的横坐标分别为76,220,取投影后的质心点距离聚类峰值最近的簇作为左右车道线的簇,其他远离峰值的簇可作为噪声簇剔除.剔除噪声簇后,路面干扰被正确的剔除了,如图9(b)所示.

图9 路标干扰的剔除与车道线拟合Fig.9 Elimination of road sign interference and lane fitting

根据国家公路标准,结构化道路上的车道线有直道和弯道,且弯道线的曲率较小,有直线拟合、抛物线拟合、样条曲线拟合等拟合方式[19].为了减小拟合算法的复杂性,本文使用抛物线模型进行车道拟合,并采用最小二乘拟合的拟合方法.其模型和误差平方和E 的表达式为:

拟合后,将车道线变换到原图,其结果图如图9(c)所示.

4 结构化道路的车道线类型识别

对于标准的公路道路,车道线按照颜色和形状一般可以分为黄线与白线,实线与虚线.为了全面的提取车道线信息,保证车辆决策的正确性,有必要将不同车道线的种类信息识别出来.

对于某条车道线的簇,如果其进行了二次聚类,则认为其为虚线车道线,否则判定为实线.此外,车道线有黄色、白色两种颜色,考虑到Lab 颜色空间对黄色的敏感性,本文将车道线的簇点对应到Lab 空间.为了在满足算法是实时性的同时判断出车道线的颜色,可在车道线簇中随机选取N 个点,并设定一个颜色阈值Ty,并计算这些点在Lab 空间中的平均灰度值Lavg:

若Lavg大于Ty,则认为此车道线为黄色车道线,否则为白色车道线.判别流程如图10 所示.

图10 车道线类型识别算法图Fig.10 Lane type recognition algorithm

5 基于卡尔曼滤波的车道线跟踪

卡尔曼滤波在目标跟踪领域具有广泛的应用,它分为状态的预测和更新两个部分[20,21].在本文中,卡尔曼滤波主要用来跟踪车道线模型的参数值A、B、C,状态向量x 包含了六个状态,分别是抛物线的三个参数和它们的变化量:A、B、C、ΔA、ΔB、ΔC.状态向量,状态转移矩阵分别为:

首先通过式(17)、(18)进行状态预测:

通过式(19)计算卡尔曼系数,来尽可能地衡量预测量与观测量之间的权重系数,并利用卡尔曼系数对状态量与协方差估计量进行更新.更新过程如公式(20)、(21):

式中:Ht为t 时刻的观测矩阵,衡量本身状态与观测状态之间的转换,观测状态为车道线模型的三个参数:A,B,C,Rt表示t 时刻的观测噪声协方差矩阵;Kt为卡尔曼系数.

对于复杂路况导致的观测值突变的情况,仅靠卡尔曼滤波无法实现准确检测.由于帧间车道线位置差异很小,本文将前一帧图片检测得到的车道线的位置进行左右分别平移距离D,划定一个可信区域R(如图11 线框),如果下一帧的观测车道线不在R 内,则认为此帧图像的路面为检测异常路面,观测值误差过大,此时将卡尔曼滤波的预测参数值作为车道线参数的输出,直到车道线观测结果恢复为正常路面.

图11 车道线的可信区域Fig.11 Believable area of lane line

6 实验与分析

为了检验本文算法在实际工况下的工作性能,本文采集了某路段的车道线视频并结合Tusimple 数据集,在多场景下对算法进行验证.实验视频由车载相机采集,视频帧率为29 帧/s,图片分辨率大小为1 920×1 080,车速范围为60-90 km/h,实验平台为PC 端(Inter Core i5-9400F CPU,2.9GHz),内存为8G.

6.1 车道线检测

图12 列举了在直道、弯道、虚实车道线、光照变化以及车辆遮挡等情景下,本文算法的工作效果图.(a)为有路间标识干扰的直道车道线,左侧为实线,右侧为虚线;(b)(c)(d)分别表示车辆干扰以及光照变化的场景,通过卡尔曼滤波,预测了正确的车道线位置;(e)(f)为Tusimple 数据集中的场景,包含了道路破损等复杂路况.

图12 多场景下的车道线检测Fig.12 Lane detection in multiple scenes

本文选取复杂工况下的多场景车道线视频进行实验,结果如表1 所示.组1 中包括了较多的交通标识干扰和车辆干扰,以及光照变化(进出隧道)等情况;组2 包含了大量弯道,有较多的车道线模糊甚至丢失、部分路面的阴影干扰的情况;组3 为Tusimple数据集中选择的800 帧图片,图片大小为1 280 ×720,包含了车道线不清晰,道路破损等情况.

表1 车道线检测实验Tab.1 Lane detection experiment

同样是在路况良好的城市道路中,文献[7]使用了动态DBSCAN 聚类算法,图片分辨率为1280 ×720,平均每帧耗时约为100 ms.而本文的特征融合提取减少了非必要特征点数量,且二次聚类算法不需要动态调整DBSCAN 聚类的邻域参数,具有更高的实时性,对于分辨率为1 920×1 080 的图片,每帧耗时平均约79ms.文献[22]用传统霍夫变换的方法来检测车道线,在Tusimple 数据集中的准确率为88.1%.本文采用了多特征融合的特征点提取方式,在复杂路况下的提取效果更理想,在Tusimple 数据集中的准确率可达94.88%.

6.2 车道线类型识别

为了验证结构化道路上,算法对车道线的类型识别的效果,本文设置了:Yellow,White,Segmented,Solid 标签.如图13 所示,(a)为直线车道,(b)为有路面干扰的弯道,(c)左侧为黄色车道线,右侧为白色车道线,结果表明本文算法具有良好的适应性.

图13 结构化道路的车道线类型识别Fig.13 Lane type recognition of structured road

为了验证算法对车道线类型判断的准确性,本文选取了道路良好的结构化道路进行车道线类型识别的实验,结果如表2 所示.

表2 车道线类型识别实验Tab.2 Lane type recognition experiment

7 结论

在车辆行驶的复杂工况下,车道线的提取存在鲁棒性和实时性不高的问题,本文在边缘特征与颜色空间特征提取的基础上,提出了RC-DBSCAN 聚类算法和车道线类型识别算法,结合卡尔曼滤波,在弯道、路面干扰、隧道等复杂工况下进行了实车实验.结果表明,RC-DBSCAN 算法相比于传统的聚类算法具有更好的鲁棒性和实时性,在复杂工况下的车道线检测准确性可达95%,对于分辨率为1 920 ×1 080 的图片,每帧耗时平均约79 ms,具有较好的实时性,在结构化道路上,车道线类型识别的准确率达98%.

猜你喜欢

实时性质心卡尔曼滤波
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
重型半挂汽车质量与质心位置估计
基于GNSS测量的天宫二号质心确定
脉冲星方位误差估计的两步卡尔曼滤波算法
巧求匀质圆弧的质心
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
汽车质心高度计算及误差分析方法研究
航空电子AFDX与AVB传输实时性抗干扰对比
计算机控制系统实时性的提高策略