基于改进的卡尔曼滤波车道线跟踪算法研究

2023-01-12 03:57周发华
装备制造技术 2022年10期
关键词:卡尔曼滤波车道时刻

周发华

(南宁职业技术学院,广西 南宁 530008)

0 引言

车道线检测是实现车道线保持、车辆偏离预警等高级辅助驾驶的基础,但由于天气、光照、路况、线损等外界条件的干扰,基于图像识别的车道检检测检测准确率会降低。车道线误检轻则影响车辆在道路中的行驶状态,严重的会向车辆系统发出错误的指令,引导车辆突然偏离车道行驶,从而容易引发交通事故。因此在车道线检测识别的基础上,通过预测模型对车道线的发展进行预测跟踪,排除天气、光照、路况、线损等干扰,对提高车道线的检测准确率,提升高级辅助驾驶安全有重要的意义。

目前车道线跟踪识别应用的方法是卡尔曼滤波法。邓元望[1]等通过在车道线的两边划定一个可信区域,实现了对拟合后的车道线进行跟踪;陈洋[2]等提出了一种融合车辆与车道线的检测特征的卡尔曼滤波的车道线检测的跟踪系统;吴彦文等[3]结合高精度地图中车道线提出了一种扩展卡尔曼滤波的车道线状态追踪方法。还有一些研究人员对其他的车道线跟踪方法进行了研究,但均为被广泛应用。李春明[4]提出一种基于帧差法与窗口搜索的车道线跟踪方法。张森等在车道模型中引入多粒子滤波器,利用左右两侧车道线独立传播的粒子来侦测和追踪一对车道边界点,实现车道线的识别和跟踪[5]。

卡尔曼滤波法是主流的车道线跟踪识别方法。本研究基于机器视觉,结合道路图像中车道线的特点,改进优化了卡尔曼滤波跟踪方法,建立了跟踪模型。并以车载行车记录仪获取的道路视频为数据样本,选取了受干扰的车道线图像进行了实验,以验证文章提出的车道线内跟踪方法的有效性。

1 车道跟踪模型

车道线跟踪算法分车道线预测、车道线跟踪判定2个部分。车道线预测包括,通过检测获取前一帧道路图像和当前帧道路图像车道线的斜率、截距参数,计算出2帧道路图像车道线斜率、截距的变化率。检测计算获取的参数输入Kalman滤波器后得到当前帧道路图像车道线的预测值,以预测车道线中心更新当前帧道路图像感兴趣区域,通过opencv获取感兴趣区域内的车道线的数据,将获取的数据通过最小二乘拟合处理后,完成车道线的跟踪识别,车道线跟踪模型如图1所示。

图1 车道线跟踪流程图

2 车道跟踪算法分析

车道跟踪算法处理的图像是从车载记录仪获取的视频行车记录,视频是由一帧一帧的图像组成的。因此,基于机器视觉的车道线跟踪实质就是通过检测计算获取的上一帧道路图像中车道线参数信息,来预判下一帧道路图像中车道线的位置。预判的关键是要建立车道线跟踪的算法。目前车道线跟踪方法大多采用的是卡尔曼滤波。卡尔曼滤波算法利用前一时刻的状态参数预估当前时刻的状态,结合车道线跟踪,卡尔曼滤波算法就是对当前帧道路图像对应的噪时刻的车道线参数值与前一帧图像对应的噪-1时刻车道线的最优参数值进行比较,从而得出当前帧道路图像车道线的最优参数值。由于当前帧图像的最优参数值的确定只需要通过前一帧的状态确定,而不涉及当前帧往前的多帧图像。因此,卡曼滤波算法极大减少了数据处理量,车道线跟踪的实时性较好。

2.1 卡尔曼滤波原理

卡尔曼滤波方法是卡尔曼在20世纪60年代提出的一种线性滤波方法。为了排除因噪声等原因引起的检测结果失真和检测准确率不高的问题,卡尔曼滤波通过对检测对象上一时刻的状态,来预测判定当前时刻检测对象的状态。预测的前提条件是基于检测对象状态发展的连续性和状态不出现突变。具体的做法就是将当前状态时刻测得的检测值与前一状态时刻系统计算的最优值进行加权,加权的结果作为当前检测对象的状态,当前的状态符合系统状态的变化发展趋势。而不是只将当前时刻的检测结果作为当前状态判断的依据。该方法可有效避免检测错误和噪声引发的系统状态突变。

车道线卡尔曼滤波系统状态方程和状态评估方程可分别表示如下:

式中,用x(噪)表示噪时刻车道线的系统状态,Z(噪)表示噪时刻车道线的观测方程。x(噪-1)为噪-1时刻车道线系统的状态;A和B为车道线系统的状态参数矩阵;H为测量参数矩阵;U(噪)为噪时刻对车道线系统的控制量;W(噪)表示系统动态噪声,V(噪)表示系统测量噪声。

定义当前时刻车道线系统状态为x(噪),将上一帧道路图像车道线状态x(噪-1)输入到车道线系统模型预测当前时刻车道线状态的值:

式中,X(噪-1/噪-1)为系统当前车道线状态X(噪)的预测值,该值是依据前一时刻X(噪-1)的值修正得出的最优结果。车道线系统协方差预测方程:

式中,AT是A的转置矩阵,P(噪/噪-1)是噪时刻预测值X(噪/噪-1)的协方差,P(噪-1/噪-1)是噪-1时刻更新后的协方差值,Q是系统工作过程中产生的噪声。

接下来使用测量值对预测结果X(噪/噪-1)进行修正,获得时刻的最优估计值X(噪/噪)为:

其中,Kg为卡尔曼增益:

最后,更新最优估计值X(噪/噪)对应的协方差进行P(噪/噪-1)卡尔曼滤波的递归运算。协方差更新后表达为:

从原理分析看,卡尔曼滤波系统包含了预测和校正2个步骤,系统重复进行预测和校正的过程就是Kalman滤波。

2.2 系统初值设定

Kalman滤波通过对车道线系统的预测状态估计,实现对车道线的跟踪。文章以左车道的跟踪检测为例定义卡尔曼滤波器如下。

当前帧道路图像对应的噪时刻左车道线的跟踪状态向量X(噪)的定义为:

式(8)中slopeL和bL是当前帧道路图像对应的时刻左车道线的斜率和截距,uL和vL是左车道线的斜率slopeL和截距bL的变化率。车道线跟踪系统初始向量为:

系统的状态转移矩阵可以表示为:

系统测量矩阵为:

系统的测量向量为:

2.3 改进的卡尔曼滤波车道线跟踪方法

在分析了卡尔曼滤波原理和设定了车道线系统初值后,需要设计车道线跟踪的具体工作流程,最终完成车道线的跟踪检测。首先要确定车道线卡尔曼滤波系统的2个工作状态:初始状态和预测跟踪状态。初始状态是卡尔曼滤波系统启动的条件,预测跟踪状态是进入卡尔曼滤波系预测车道线的工作状态。

2.3.1 系统的初始化状态

在进行车辆跟踪之前,需要获取前一帧道路图像车道线的参数作为卡尔曼滤波器的输入。系统初始化,就是将当前帧作为第一帧,识别拟合出第一帧图像中的车道线,获取车道线的斜率、截距等参数,初始化获取的参数就可以作为卡尔曼滤波器的输入,用于预测下一帧车道线,判定当前帧车道线是否为最优估值。系统初始化的流程如图2所示。将第一帧道路图像所在区域设定为感兴趣区域,提取所有车道线段的端点数据集,通过最小二乘完成车道线的拟合。

图2 系统初始化

2.3.2 预测跟踪

系统初始化之后,可以将初始化时获得的第一帧车道线的参数作为卡尔曼滤波器的输入计算预测当前帧道路图像车道线的估值,确定当前帧道路图像的感兴趣区域,拟合出当前车道线,完成车道线的跟踪。预测跟踪的主要步骤:

(1)修正车道线估值:最优估计值是对当前帧道路图像车道线值估计,估计的基础来自于前一帧道路图像车道线的数据参数。具体步骤是:将上一帧道路图像中车道线的参数作为卡尔曼滤波器的输入,输入的参数和当前帧车道线测量值经系统运算后,得出当前帧车道线的最优估计值。估值修正的具体步骤是:设定一个偏离阈值作为判断车道线跟踪的误差范围,将卡尔曼滤波器计算出的车道线估值和最小二乘法计算出的车道线检测值作差,差值如果在偏离阈值的范围内,则判定当前帧车道线车道线的检测值有效;超出范围则判定检测值无效,系统以估计值作为卡尔曼滤波器的输入,追踪下一帧道路图像的车道线。

(2)更新感兴趣区域:跟踪状态下,利用连续2帧道路图像车道线发展趋势的连贯性,可以将跟踪的区域设置在车道线附近,进一步将当前帧道路图像的感兴趣区域范围缩小,以减少数据处理量,提高跟踪系统响应的速度。如当前帧通过计算修正得到左右两条车道线,则以左右车道线为中心,将向车道线分别向左向右平移1个车道线宽度的距离D,左右车道线平移后的2条直线构成的区域即为下一帧道路图像的感兴趣区域。如图3所示,更新后的感兴趣区域RIO MASK明显缩小了。

图3 更新后的感兴趣区域

2.3.3 车道跟踪状态切换

因实际道路路况复杂,车道线并不是完整清晰地呈现在道路图像中。车道线的磨损、车道线的颜色污浊等会引起的道路图像中车道线的缺失,导致系统检测到的车道线参数发生突变。因此,忽略当前帧的参数,将前一帧的参数值作为输入后一帧。如果连续4帧追踪失效,则初始化系统,重新对车道线进行检测。系统由初始状态切换为跟踪状态的条件为:能够在初始帧中检测到左右2条车道线的参数。

3 车道线跟踪实验结果分析

为了验证改进的卡尔曼滤波跟踪算法的有效性,本实验用PC机配置为Intel Corei5-10代处理。在Pycharm开发环境下,以python3.7作为编程语言,利用OpenCV3计算机视觉库,设计了车道线检测跟踪的程序。实验选用了4段视频对车道线跟踪的情况进行了验证,包括车道线磨损、雨天、车道线中间噪声等多种干扰情况,实验结果见表1。

表1 路视频车检检测跟踪的计算结果

是各种干扰情况下车道线检测跟踪的实验结果如图4所示。

在图4(a)中,车道线整体磨损明显,尤其是右边的车道线。系统检测时会出现多帧道路图像的车道线的丢失的情况。此时会将上一帧道路图像车道线的修正值作为当前帧道路图像车道线的值,显示出右边的车道线。

在图4(b)中,雨天路况比较复杂,水面掩盖车道线的情况经常发生,车道线参数信息会因此会丢失。此时系统会多次执行初始化操作,检测跟踪车道线。

在图4(c)中,道路中间的横断线横跨了左右2条车道线,更新后的感兴趣区域能将2车道线中间和2车道线外侧的干扰信息排除,提高检测的成功率。

在图4(d)中,隧道中光线比较暗,但车道线信息丢失较少,检测跟踪效果较好。

图4 干扰条件车道线下检测跟踪效果

4 结语

针对干扰环境下车道线检测失效的问题,提出一种改进的卡尔曼滤波车道线跟踪识别方法。该算法以结构化道路车道线检测为前提条件,将前一帧车道线参数作为基础,预测计算出当前帧车道线的估值。通过实验验证,该算法有良好的准确性与实时性。对排除因干扰引起的车道线错检漏检,提高辅助驾驶的安全性有重要的理论和现实意义。

猜你喜欢
卡尔曼滤波车道时刻
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
冬“傲”时刻
北斗+手机实现车道级导航应用
捕猎时刻
避免跟车闯红灯的地面车道线
浅谈MTC车道改造
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
斑马线前该如何礼让
基于有色噪声的改进卡尔曼滤波方法