结合卡尔曼滤波器噪声分析的车道线检测跟踪算法

2016-11-23 10:02郭克友王艺伟郭晓丽
计算机测量与控制 2016年5期
关键词:高斯分布卡尔曼滤波控制点

郭克友,王艺伟,郭晓丽

(北京工商大学材料与机械工程学院,北京 100048)

结合卡尔曼滤波器噪声分析的车道线检测跟踪算法

郭克友,王艺伟,郭晓丽

(北京工商大学材料与机械工程学院,北京100048)

使用卡尔曼滤波对视频序列图像中的具体信息进行跟踪的研究目前是跟踪方向的一个热点;但是在处理卡尔曼滤波跟踪过程中的过程噪声和测量噪声,大部分研究普遍采用的是初始赋值;通过不断的调整参数,达到较好的跟踪效果;但是这样做不但没有遵循原始数据的规律,同时调整参数是一项耗时的工作;基于这个原因,提出了一种对卡尔曼滤波的过程噪声和测量噪声进行预估计的方法并将其应用到车道线跟踪过程中;通过对一部分离线数据进行处理,可以基本估计出系统的噪声参数;最后采用车道线跟踪算法对论文中的方法进行验证,实验证明,提出的参数估计方法在车道线的跟踪过程中达到很好的效果,同时处理每帧的时间为50 ms左右,满足了实时性的要求。

卡尔曼滤波;噪声分析;车道线检测;B曲线;控制点

0 引言

视频图像序列中目标的检测跟踪是智能视觉监控的重要课题,也是后续更高级处理的基础。卡尔曼滤波以其对有限观测数据的需要和通过递推完成跟踪的优点得到了很多学者的青睐。其中也不乏有很多研究使用卡尔曼滤波进行车道线检测与跟踪。但是大部分对卡尔曼滤波进行应用时,噪声的处理或者没有明确的给出,或者是在跟踪之前设定一个初始值,然后通过不断的对参数进行调整,以达到更好的跟踪效果。武汉大学彭红的论文《基于扩展卡尔曼滤波器的车道线检测算法》[1]中仅对噪声做了简要的介绍,并没有对具体的赋值进行介绍。电子科技大学的马超在其论文《基于单目视觉的车道偏离预警系统设计》[2]中提到了卡尔曼滤波过程中参数的赋值问题,但是仅仅是赋值,没有实际的分析所赋的数值是如何通过分析得到的。文章提出一种结合卡尔曼滤波跟踪过程中噪声分析的车道线检测跟踪方法。能够预先为跟踪过程设定合理的跟踪参数。

1 车道线检测算法介绍

通过对采集的视频进行图像预处理得到边缘图像后,设置四部分感兴趣区域,在每个感兴趣区域内使用Hough变换检测到直线[3],通过简化的CHEVP算法[4]找到拟合左右车道线的控制点,同时使用卡尔曼滤波跟踪对控制点进行滤波[5],保证拟合的稳定性,最后使用B曲线拟合并绘制车道线[6]。

1.1图像预处理

对采集到的视频帧首先进行灰度化处理,采用大小为3× 3的核对灰度化后的图像进行双向滤波去除图像中的部分噪声,对滤波后的图像进行阈值分割,得到二值化的图像,由于图像中会存在类似“毛刺”的部分,所以对二值化的图像进行腐蚀去除“毛刺”的干扰[7]。然后用canny算子检测图像中的边缘[8],虽然边缘检测算子可以根据像素间的差异检测出轮廓边界的像素,但是并没有将轮廓作为一个整体。OpenCV中cvFind Contours()函数将这些边缘像素组装成轮廓,更方便之后的直线检测。

1.2寻找控制点

将预处理之后的边缘图像分为4个部分(如图1所示),从上到下依次编号为1、2、3、4。由于第1区域的直线不容易检测,因此只对2、3、4三个区域做处理。在每个区域内采用霍夫变换检测其中的直线。从图中可以看出,由于车道线存在一定的宽度,因此在使用霍夫变换检测车道线时在同一水平方向上会有两条直线,为了之后算法的方便,车道线近似的以内侧检测到的直线代替,并延长该直线至其所在区域的边界。以第4区域为例,如图2所示,在视频序列中找到左右两边的车道线对应的直线(图中所示的虚线)的交点,即消失点;连接两条车道线的末端点并取其中点设为control[0];连接消失点与中点得到的直线与4区域上边界交于一点,设为control[1]。令左右两侧直线的末端的端点为拟合车道线的第一个控制点,分别为leftControl[0]和rightControl[0]。令左右两条虚线与4区域上边界交点之间的距离为d,则两侧车道线拟合所需的第二个控制点的横坐标分别Leftcontrol[1].x=Control[1].x-d/2;rightcontrol[1].x=Control[1].x+d/2;纵坐标是4区域上边界的值。这样就分别得到了左右两侧车道线的两个控制点。然后在3区域中按照上述的方法分别寻找第3个控制点。需要注意的是,如果第一步在4区域中没有同时检测到左右两侧的车道线,则检测3区域中,leftControl[0]和rightControl[0]按照上述求解leftcontrol[1]和rightcontrol[1]的方法求解。拟合左右两侧车道线的最后一个控制点按照4区域消隐点—3区域消隐点--2区域消隐点的顺序选取。目的是既可以避免控制点选取的遗漏,同时也尽可能将拟合效果做到最好。所有的控制点选取完毕之后,采用B曲线分别对左右两侧的车道线进行拟合。拟合效果见图3。

图1 边缘图像划分为4个区域

图2 控制点选取原理图

图3 控制点选取效果图

2 卡尔曼滤波跟踪

卡尔曼滤波是一种对动态系统的状态序列进行线性最小方差估计的算法。通过状态方程和观测方程来描述一个动态系统[9]。它的一个典型实例是从一组有限的,包含物体位置和噪声的观察序列中预测出物体的坐标位置及速度。

2.1卡尔曼滤波原理介绍

卡尔曼滤波估计是将系统的运行看作状态变换的过程,将状态空间的理论利用数学方法进行模型建立,利用一个n维的向量表示系统状态,系统通过状态转移量和输入,控制状态向量的变换。

卡尔曼滤波跟踪主要分为两个部分,预测和更新[10]。在预测阶段,首先需要为系统赋上用于测量的系统初始状态的值,为了能实现更好的跟踪效果,论文采用前十帧图像为系统初始状态循环赋值,以期达到最好的初态效果。初始状态赋值完成之后,采用式(1)和式(2)完成系统的预测。

其中:X-k表示k时刻系统通过对k-1时刻的状态分析所做的先验估计。F是状态转移矩阵,其隐含指示了n-1时刻的状态会影响到n时刻的状态。B是控制输入矩阵,其隐含指示了n时刻给的驱动如何影响n时刻的状态。u(k-1)是外界控制量。wk是过程噪声。Q(k-1)是过程噪声的协方差矩阵。

在更新阶段,首先使用式(3)计算新信息相对已知信息的权重,得到权重之后就可以通过式(4)和式(5)计算最优更新值。

其中:Hk是观测矢量。通常情况下是单位矩阵,但不一定是方阵。Zk即测量值。Rk是测量噪声的协方差矩阵。

2.2过程建模

论文采用的是最基本的卡尔曼滤波器,因此被估计的信号,即论文中八组控制点的横坐标的建模采用的是线性模型,则其过程可以描述为如下模型。

xk=A xk-1+B uk-1+wk-1(6)

其中:增益矩阵A将上衣时刻的状态线性的映射到当前K时刻状态。矩阵B代表可选的控制输入u的增益,论文中没有控制输入,因此B矩阵为0。wk-1为过程激励噪声。

同时,定义测量方程为

zk=Hxk+vk(7)

其中:矩阵H表示状态向量xk对测量变量zk的增益,在论文中为单位矩阵。vk为观测噪声。

2.3噪声分析

对于论文中系统的状态向量为左右车道线一共8个控制点的横坐标,是一个8×1的向量。没有对纵坐标进行预测是因为论文中检测到的直线都被延长至相应区域的边界处,所以纵坐标的值都是固定的。卡尔曼滤波要求过程噪声和测量噪声满足高斯分布[11],在这里将视频图像处理中真实值默认是测量值。过程噪声的获得借鉴了参考文献[12]中的方法。即从视频序列中找到三幅连续的图像,编号为n,n+1,n+2,则对应于这三帧图像任意一个控制点的横坐标为xn,xn+1,xn+ 2,这样横坐标在第

n+1幅图像中的导数为

x′n+1=(xn+1-xn)/ΔT(8)

这里ΔT代表相邻两幅图像的时间间隔,然后估计第n+2幅图像的参数

^xn+2=xn+1+x′n+1ΔT(9)

则估计值和真实值之间的误差即为

error=xn+2-^xn+2(10)

通过对八组数据进行数据分析,得到其分布如图4所示。同时用matlab的cftool工具对这些误差值进行高斯分布拟合,得到其参数值如表1所示。

表1 过程噪声高斯分布参数表

图4 过程噪声高斯分布图

图5 测量噪声分布图

由表1可得,高斯分布的均值基本在0附近,标准差基本在1.5左右附近,为了算法实时性的要求,对这八组噪声做独立同分布处理,即其高斯分布的均值为0,标准差为1.5。对于测量噪声,将公式(7)做一下变形,即vk=zk-Hxk(11)

将测量值减去每一次的预测值即得到了观测噪声,如图5所示。从图中可以看到测量噪声很小,且在0值附近波动。因此为测量噪声赋值为0均值同时标准差较小的高斯分布。

2.4控制点选取

由于卡尔曼滤波依赖于前一帧的检测状态,因此前一帧结果的准确与否直接影响了下一帧的结果。所以在使用测量值对更新值进行计算时,测量值的选取遵循以下原则:如果上一帧中的预测值和由2.2节中得到的测量值做差值在一定范围内(论文中该范围为20像素),则使用测量值做更新计算。如果超出给定的范围则使用预测值做更新计算,这样避免了测量值的不准确造成的跟踪失败。

3 实验结果分析

实验对直道、前方存在路标干扰以及有遮挡分别进行了测试。实验结果如图6所示。同时与仅使用CHEVP算法的效果进行对比。单一采用CHEVP算法时,在检测的过程当中如遇到地表提示性符号的干扰,车道线的识别就会出现如图6(c)所示的问题。论文中采用卡尔曼滤波器对控制点的坐标进行跟踪,从图中可以看出,当道路上存在的车标噪声使得控制点选取错误时,或者前方有车辆遮挡了车道线的识别,使用卡尔曼跟踪进行预测仍然可以得到车道线的准确模型,保证了检测的准确性。

4 结论

文章提出一种结合卡尔曼滤波噪声分析同时采用B曲线和卡尔曼滤波跟踪相结合的车道线检测算法,不仅可以适应直线车道同时由于采用了卡尔曼滤波算法,很大程度上提升了算法对于路标干扰以及前方车辆的遮挡的鲁棒性。在实时性方面,算法处理的每帧的大小为480×320像素大小,每秒处理的帧数为20帧,满足了实时性的要求。相对于已有的算法,客观的分析了卡尔曼滤波的噪声分布,合理的给出了噪声分布的参数值,同时将B曲线拟合与卡尔曼滤波结合,提升了车道线检测的准确性。

[1]彭红,肖进胜,程显,等.基于扩展卡尔曼滤波器的车道线检测算法[J].光电子·激光,2015,03:567-574.

[2]马超.基于单目视觉的车道偏离预警系统设计[D].成都:电子科技大学,2011.

[3]王雷.一种基于双曲线模型的车道线跟踪检测算法设计与实现[D].长春:吉林大学,2014.

[4]Yue Wang,Eam Khwang Teoh,Dinggang Shen.Lane detection and tracking using B-Snake[J].Image and Vision Computing,2003,224.

[5]胡会珍,黄晋英.卡尔曼滤波器模型的建立及其对车道线的跟踪[J].机械工程与自动化,2008 (3):52-53.

[6]耿静静.基于单目视觉的车道线检测与识别[D].哈尔滨:哈尔滨工业大学,2007.

[7]孙晓军,李华.基于Facet模型的一种车道线提取方法[A].中国智能交通协会.第八届中国智能交通年会论文集[C].中国智能交通协会,2013.

[8]王全.一种改进 Hough变换的车道线检测算法[J].计算机与数字工程,2014,11:2164-2167.

[9]杜超,刘伟宁,刘恋.一种基于卡尔曼滤波及粒子滤波的目标跟踪算法[J].液晶与显示,2011 (3):384-389.

[10]王炜.基于卡尔曼滤波的多区域关联视频目标跟踪研究[D].南京:南京理工大学,2013.

[11]于宏啸,段建民.关于车道线图像识别轨迹规划跟踪仿真 [J].计算机仿真,2015(4):144-148.

[12]刘国荣.基于图像的车道线检测与跟踪算法研究[D].长沙:湖南大学,2014.

Lane Detecting and Tracking Algorithm with Noise Analysis of Kalman Filter

Guo Keyou,Wang Yiwei,Guo Xiaoli
(School of Material Science and Mechanical Engineering,Beijing Technology and Business University,Beijing100048,China)

Research of using Kalman filter to do specific information track in video image sequences is a hot topic in the tracking direction currently.But most researches processed the noise of Kalman filter by assigning a specific value in the initial step.By constantly tuning the parameters the algorithm can achieve better tracking results.However,working in this way not only did not follow the rules of the original data,but also adjusting parameters is a time-consuming job.For this reason,the paper proposes a Kalman filter process noise and measurement noise assignment algorithm which is used in lane detection.By processing part of the offline data,the algorithm can estimate the basic parameters of the noise.Use lane tracking to validate the algorithm in this article and experiments show that the proposed methods achieve good detection results while the time of processing each frame is about 50 ms which meet the real-time requirements.

Kalman filter;noise analysis;lane detection;B spline curve;control points

1671-4598(2016)05-0216-04

10.16526/j.cnki.11-4762/tp.2016.05.061

TP751

A

2015-11-12;

2015-12-07。

交通运输部信息化科技项目(2012-364-835-110);北京工商大学2015年研究生科研能力提升计划项目。

郭克友(1975-),男,博士后,副教授,硕士生导师,主要从事汽车安全驾驶方向的研究。

猜你喜欢
高斯分布卡尔曼滤波控制点
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
GNSS RTK高程拟合控制点选取工具设计与实现
脉冲星方位误差估计的两步卡尔曼滤波算法
顾及控制点均匀性的无人机实景三维建模精度分析
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
NFFD控制点分布对气动外形优化的影响
在航集装箱船舶摇摆姿态的概率模型
改进的自适应高斯混合模型运动目标检测算法
改进RRT在汽车避障局部路径规划中的应用