计算机系统应用  2020, Vol. 29 Issue (2): 187-197   PDF    
高速路的车道检测与车辆跟踪
刘金清1, 陈存弟2     
1. 福州外语外贸学院, 福州 350202;
2. 福建师范大学 光电与信息工程学院 医学光电科学与技术教育部重点实验室, 福州 350007
摘要:基于智能交通的快速发展, 研究了基于高速路的车道检测和车辆跟踪技术. 对于多车道检测, 根据路面与分道线灰度级相差较大的特点来实现车道路面的分割, 接着结合直线方程和Catmull-Rom Spline插值算法来拟合分道线. 对于单车道检测, 首先基于HSV颜色空间和Sobel边缘提取方法对其进行有效分割, 接着在透视变换空间中提取分道线坐标点并用二次多项式拟合分道线. 针对车辆检测, 使用Hog+Gentle-Adaboost分类算法实现无人车前方路面车辆的检测, 接着基于车底阴影的特征对车底阴影进行检测以验证学习算法检测到的车辆区域的真伪性. 针对车辆跟踪, 采用动态二阶自回归模型的方法预测车辆的状态. 其中, 对于粒子滤波固有的粒子退化问题, 引入Thompson_Taylor算法改善了粒子退化和低多样性的缺陷. 本文的车道检测和车辆跟踪算法能较容易地移植在嵌入式平台, 可靠性和准确性较高, 且有助于进一步实现车道偏离报警和前向防撞系统.
关键词: 车道检测    车辆检测    车辆跟踪    粒子退化    嵌入式平台    
Lane Detection and Vehicle Tracking on Highway
LIU Jin-Qing1, CHEN Cun-Di2     
1. Fuzhou University of International Studies and Trade, Fuzhou 350202, China;
2. Key Laboratory of Optoelectronic Science and Technology for Medicine (Ministry of Education), College of Photonic and Electronic Engineering, Fujian Normal University, Fuzhou 350007, China
Foundation item: National Natural Science Foundation of China (61179011); Young Scientists Fund of National Natural Science Foundation of China (41701491)
Abstract: Based on the rapid development of intelligent transportation, this work studies the lane detection and vehicle tracking technology of high-speed sections. For multi-lane detection, the road surface is segmented by using the feature that the gray level difference between the road surface and the dividing line is rather large. Then, the line equation and the Catmull-Rom Spline interpolation algorithm are used to fit the lane dividing line. For single-lane detection, the single lane is first effectively segmented based on the HSV color space and Sobel edge extraction method, and then the lane separation coordinate points are extracted in the perspective transformation space and the segmentation line is fitted with a quadratic polynomial. Aiming at the vehicle detection, the HOG+Gentle-Adaboost classification algorithm is firstly used to detect the vehicle in front of the unmanned vehicle, and then the shadow of the vehicle is detected based on the characteristics of the shadow at the bottom to verify the authenticity of the vehicle area detected by the learning algorithm. For vehicle tracking, the dynamic second-order autoregressive model method is used to predict the state of the vehicle. For the inherent particle degradation problem of particle filtering, this study innovatively introduces the Thompson-Taylor algorithm to improve the defects of particle degradation and low diversity. The lane detection and vehicle tracking algorithms in this study can be easily transplanted on the embedded platform with high reliability and accuracy, and further to realize the lane departure warning and forward collision avoidance system.
Key words: lane detection     vehicle detection     vehicle tracking     particle degradation     embedded platform    

自动驾驶是智能交通的必然产物, 而机器视觉感知技术是自动驾驶中的“眼睛”, 它能够通过对无人驾驶车辆所在的路面车辆动态图像进行智能识别以实现安全驾驶. 本文主要研究无人车所在路面的车辆动态图像的智能识别技术, 基于嵌入式平台选择适用于高速路的车道检测、车辆监测和跟踪算法.

近些年, 车道检测和车辆跟踪技术的进步得益于国内外学者广泛的关注与研究. 车道检测技术有: 基于逆透视变换的方法[1,2], 基于Hough变换的方法[3,4], 基于抛物线的方法[5], 基于B样条曲线的方法[6,7].

适用于车辆检测的目标检测算法主要以深度学习算法为主, 如以CNN结构为基础的AlexNet、GoogleNet、LeNet[8]、VGG、ResNet等算法, 而这些算法需要高性能CPU+GPU作为训练和运行载体, 因而并不适用于嵌入式平台上的实时性要求. 基于Adaboost分类器简单且运算量较小, 较容易移植到嵌入式平台.

基于动态背景下的车辆跟踪方法有: 基于卡尔曼滤波KF (Kalman Filter)的车辆跟踪[9,10], 基于扩展卡尔曼滤波EKF (Extended Kalman Filter)的车辆跟踪[11], 基于均值漂移(Mean-Shift)的车辆跟踪[12], 基于粒子滤波PF (Particle Filter)的车辆跟踪[13,14], 基于核化相关滤波KCF (Kernelized Correlation Filters)的车辆跟踪[15], 基于一种新的单目标长时间跟踪TLD (Tracking Learning Detection)的车辆跟踪[16], 基于多示例学习MIL (Multiple Instance Learning)的车辆跟踪[17,18]. 本文选用适用于多目标跟踪且非线性系统的粒子滤波算法来实现车辆跟踪.

1 车道检测 1.1 基于路面与分道线灰度级之差实现车道分割

车道经过摄像机成像后, 由原先三维空间中的客观物体投影在二维空间上, 车道线不可避免地在图像中出现透视效果. 针对任意的分辨率图像, 如本文处理的路面图像大小为480×320, 在算法设计时先设置分道线最大宽度为 $MLW = 0.1 \times IW = 48$ 个像素, 其中 $IW$ 表示图像宽度. 假设路面的ROI区域高度为 $ROI\_H$ , 那么从ROI区域的底部到消失点所在的行数, 其分道线宽度的变化可用(1)表达式表示:

$\left\{\begin{split} &LW = 15 + [MLW \times (i - VLine)]/ROI\_H\; \\ & {{i}} \in {\rm{[}}VLine,VLine + ROI\_H] \\ \end{split} \right.$ (1)

利用式(1)和式(2)遍历原图I, 可表述为: 在ROI区域内, 针对第i行的LW, 计算坐标 $(c,r)$ 点的灰度值与 $(c - LW,r)$ 点灰度值之差diffL和坐标为 $(c,r)$ 点和 $(c + LW,r)$ 点的灰度值之差diffR, 再综合diffLdiffR的差值来重定义原来的灰度图.

$\left\{ \begin{split} & dif\!\!f_L = I.(c,r).data - I.(c - LW,r).data \\ & dif\!\!f_R = I.(c,r).data - I.(c + LW,r).data \\ & dif\!\!f\;\; = dif\!\!f_L + dif\!\!f_R - \left| {dif\!\!f_L{\rm{ - }}dif\!\!f_R} \right| \\ & {\rm{if}} \;\;\;\;\;\;\;\;\;\;dif\!\!f > 255 \;\;\;\;\to F.(c,r).data = 255 \\ & {\rm{ else\;if}}\;\;\;dif\!\!f <0\;\;\;\;\;\;\;\; \to F.(c,r).data = 0 \\ & {\rm{ else}}\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; \to F.(c,r).data = dif\!\!f \\ \end{split} \right.$ (2)

图1(a)为重新定义的灰度图F, 图1(b)为二值化的结果.

图 1 自适应阈值二值化

1.2 基于路面与分道线灰度值之差的自适应阈值法

图2中, 白色横线处的灰色分布如图3所示, 分道线的灰度值与路面灰度值之差约为100. 利用式(3)扩展得到式(4), 车道分割自适应阈值Th就为: $Th = I\left( {c,r} \right).$ $ data/2$ , 接下来使用Th对图像F进行二值化处理, 得到图1(b)结果.

图 2 路面上白色横线

图 3 白色横线路面灰度值

$3{\rm{*}}\left( {c,r} \right).data - 2{\rm{*}}\left( {c - LW,r} \right).data - 2{\rm{*}}\left( {c + LW,r} \right).data > 0$ (3)
$dif\!\!f = dif\!\!f_L + dif\!\!f_R - \left| {dif\!\!f_L - dif\!\!f_R} \right| > \left( {c,r} \right).data/2$ (4)
1.3 基于车道轮廓特征提取分道线

成像路面不但包含有真正的分道线, 而且还有伪分道区域, 要想拟合出正确的分道线, 就必须剔除伪分道线. 如图4所示, 分道线经过相机系统投影成像后, 分道线表现有如下特征:

图 4 车道最小矩形模型

(1)分道线是细长的连通域.

(2)求白色连通域的最小矩形, 可知道其与水平边的夹角控制在一定的范围内, 夹角范围为 $\theta \in \left[ {{\rm{2}}0,{\rm{7}}0} \right]$ .

(3)白色连通域所含的像素数不可能很小.

(4)分道线质心所在的行不小于图像高度的2/3.

本文使用Suzuki S提出的轮廓提取算法[19]寻找二值图的轮廓, 首先提取二值图连通域轮廓, 接着提取每个轮廓的最小矩形, 同时计算每个连通域最小矩形的质心, 根据以上的4点特征, 过滤掉多余的伪分道线. 结果如图5所示.

1.4 拼接断裂的分道线

高速结构路面上同向车道经常被分成几条车道, 由虚线、实线、虚实线和双实隔开. 为了避免在分道线拟合时同一车道错误识别为多条车道, 有必要对断裂的车道线进行合并. 图6为合并示意图.

图 5 车道分割结果

图 6 车道拼接示意图

(1)断裂的分道线或虚线分道线, 其连通域之间是上下关系, 加上相机系统投影成像后出现透视效果的原因, 行间距相差不大: $\left| {y_1 - y_2} \right| < {T_1}$ .

(2)最小矩形与水平线的角度 $\theta $ 相差不大: $\left| {{\theta _{\rm{1}}}{\rm{ - }}{\theta _{\rm{2}}}} \right| < $ T2.

(3)根据最小矩形的质心和 $\tan \theta $ 求得的直线表达式能以最短的距离交于彼此的最小矩形区域. 如图6(b) ${L_1}$ ${L_2}$ 的延长线彼此相交于最小矩形.

(4)针对虚实分道线或者双实分道线, 依据两个连通域最小矩形与水平线的夹角不大15°的规则: $\left| {{\theta _{\rm{1}}} - {\theta _{2}}} \right| \le $ $ {15} $ , 提取斜边最长的连通域作为最终的分道线.

图7所示, 分别是断裂分道线的连接结果和多余分道线连接结果.

1.5 基于线性方程和样条曲线的分道线拟合

针对车道中的直线分道线部分, 用直线方程拟合, 而对于车道中曲线分道线部分, 采用的是基于Catmull-rom[6]的样条曲线拟合.

(1)斜截式: ${\rm{y}} = kx + b$

(2) Catmull-rom splines

Catmull-rom样条曲线实质上是三次多项式(式(5)). 假设有两点 ${p_i}$ ${p_{i + 1}}$ , 且已知两点对应的导数为 ${p_i}'$ ${p_{i + 1}}'$ , 根据 ${p_i}$ ${p_{i + 1}}$ ${p_i}'$ ${p_{i + 1}}'$ 计算处多项式的系数 ${a_j},\;{j = 0,1,2,3}$ , 便可拟合两点的曲线. 本文将 ${p_i}$ ${p_{i + 1}}$ 相邻两点的斜率作为 ${p_i}'$ ${p_{i + 1}}'$ 导数, 得到样条曲线的表达式(6). 从式(6)可以看出, 如果要拟合两点之间的曲线, 则须知道4个坐标点.

$P(t) = {a_0} + {a_1}t + {a_2}{t^2} + {a_3}{t^3};\;\;t \in [0,1]$ (5)
$P(t) = \frac{{\rm{1}}}{{\rm{2}}} \cdot \left[ {1\;\;t\;\;{t^2}\;\;{t^3}} \right]\left[ \begin{gathered} {\rm{0}}\;\;\;\;{\rm{2}}\;\;\;\;0\;\;\;\;\;0 \\ {\rm{ - 1}}\;\;\;0\;\;\;\;1\;\;\;\;\;0 \\ {\rm{2}}\;\;\;{\rm{ - 5}}\;\;\;\;{\rm{4}}\;\; - 1 \\ {\rm{ - 1}}\;\;\;\;{\rm{3}}\;\;\;{\rm{ - 3}}\;\;\;\;\;1 \\ \end{gathered} \right]\left[ \begin{gathered} {p_{i - 1}} \\ {p_i} \\ {P_{i{\rm{ + 1}}}} \\ {P_{i + 2}} \\ \end{gathered} \right]$ (6)

(3)直线方程拟合车道

车道上用于Catmull-Rom拟合的点模型如图8所示. 取接近图像底部的两点计算出直线方程, 并延伸到车道图像的底边缘. 拟合结果如图9所示, 延长直线即是以直线方程拟合的结果.

图 7 分道线提取结果

图 8 曲线拟合点模型

图 9 车道直线部分

(4) Catmull-spline拟合曲线车道

${p_1},{p_2},{p_3},{p_v}$ 作为Catmull-spline算法的拟合坐标点, ${p_v}$ ${p_2}$ ${p_3}$ 的线性方程延长点, 因此拟合出来的样条曲线能经过 ${p_1},{p_2},{p_3}$ 3点, 如图10所示.

图 10 弯曲车道拟合

1.6 基于HSV空间和Sobel边缘提取的单车道分割

针对无人车在高速路上不变更车道或者不超车的情况下, 只检测当前行驶车道, 既能降低路面车道检测算法的复杂度, 又能提高运行速度和检测的准确度. 本文基于HSV颜色空间和Sobel梯度设置一定的阈值范围来分割单车道.

1.6.1 路面图像二值化

图11为车道图像的RGB空间图像和HSV空间图像. 图12(a)是Sobel水平方向边缘图. 根据HSV颜色空间特性和Sobel边缘特性, 各自设定特定的阈值, 便可以得到分割出路面的二值图. 经过大量的实验数据比较, 本文设定S通道灰度值在 ${S_g} \in $ [170, 255], V通道灰度级设定在 ${V_g} \in \left[ {30,255} \right]$ , Sobel图灰度值转成 $\left[ {{\rm{0,255}}} \right]$ 范围后设定的灰度阈值为 $S{b_g} \in \left[ {{\rm{65}},{\rm{100}}} \right]$ , 如果满足 $\left( {{S_g} \wedge {V_g}} \right) \vee S{b_g}$ 关系则认为是分道线. 如图12(b)所示即是分割后的路面二值图.

图 11 HSV颜色空间各通道图

图 12 车道二值化图像

1.6.2 基于透视变换提取分道线坐标点

基于透视变换提取分道线坐标点的步骤如下:

(1)车辆的视觉传感器安装后位置方向均固定不变, 因此, 可以根据拍摄到的路面图像, 预先设定车道的ROI区域. 如图13(a)所示.

图 13 寻找透视空间车道点

(2)设定ROI区域主要是用在二值图中, 对ROI区域透视变换, 如图13(b)所示.

(3)在透视空间寻找分道线的坐标点. 将透视空间分成左右两半, 分别以小矩形滑动窗口的方式遍历出左右分道线的坐标点. 滑动窗口自下往上计算在滑动窗口中的投影值, 取投影值最大的列和窗口底边所在的行作为透视空间中的分道线坐标点, 如图13(b)的红点.

1.6.3 基于二次多项式拟合分道线

选用二次多项式来拟合分道线. 对于多项的求解, 可定义为对给定的一组数 $\left( {{x_i},{y_i}} \right),\;{{i = 0}},{\rm{1}}, \cdots, {{m}}$ , 求次数不超过m的多项式(7)且满足差平方之和最小式(8):

${P_n}(x) = \sum\limits_{k = 0}^n {{a_k}{x^k}} \;\;(n \le m)$ (7)
$I\left( {{a_0},{a_1}, \cdots ,{a_n}} \right) = \sum\limits_{i = 0}^m {{{\left[ {{P_n}\left( {{x_i}} \right) - {y_i}} \right]}^2}} = \min $ (8)

根据式(8)求得系数 ${a_i}$ 得到 ${P_n}(x)$ 即是最小二乘拟合的多项式. 如图14(a)所示, 红点表示原来提取到的点, 蓝点所示二次多项式拟合后的点. 将透视空间的坐标点逆变换到原图像上, 其结果如图14(b)所示.

图 14 单车道透视结果

2 车辆检测 2.1 基于Gentle-Adaboost的车辆检测

本文检测车辆是基于HOG+Adaboost[20]分类算法和基于车底阴影特征相结合的方法.

车辆检测框图如图15所示.

图 15 车辆检测框图

HOG相关参数:

① cell单元为8×8像素;

$[0,2\pi ]$ 划分成9个bins;

③ 设置block大小为16×16像素, 滑动步长为4×4.

每个cell的特征矢量维度为9, 2×2个cell组成block对应的特征矢量维度为36. 所有待训练的车辆图像均尺度缩小为32×32, 且block的滑动窗口步长为4, 因此一幅图像的HOG特征维度为36×7×7=1764. 将特征向量输入由多个强分类器组成的Cascade[21]分类器, 得到最终的分类结果. 车辆检测结果图16所示.

图 16 车辆检测结果

2.2 车辆校验

为了过滤Adaboost算法的误检区域, 引入车底阴影的方法作为车辆的校验, 同时能找到车辆底部与路面的交线, 有助于建立三维模型精确计算车距.

2.2.1 提取车辆区域子图并二值化

对2.1节得到的车辆矩形框放大一倍得到车辆区域子图 ${F_{bw}}$ , 接着依据结构路面上分道线与路面的灰度级分布近似呈正态分布的规律, 计算出相应的阈值来二值化车辆区域子图. 本文二值化方法如下:

(1)高速路面上的安全车距一般保持在50米以上, 因此在图像底部设定一个ROI区域能够确保仅包含有路面而不会包含其他车辆, 称该子图为 $Fl$ , 如图17所示.

图 17 $Fl$ 子图

(2)灰度化 $Fl$ , 计算灰度均值 $\mu $ 和路面方差 $\sigma $ :

$\left\{\begin{split} & {\mu = \frac{{ \displaystyle\sum\limits_{y = 0}^h { \displaystyle\sum\limits_{x = 0}^w {g\left( {x,y} \right)} } }}{{h{\rm{*}}w}}}\\ & {\sigma = \sqrt {\frac{{ \displaystyle\sum\limits_{y = 0}^h { \displaystyle\sum\limits_{x = 0}^w {{{\left[ {g\left( {x,y} \right) - \mu } \right]}^2}} } }}{{h{*}w}}} }\end{split} \right.$ (9)

(3)统计路面像素点: ${g_\sigma }\left( {x,y} \right) \in \left[ {\mu - \sigma ,\mu + \sigma } \right]$ , 然后求像素点的均值 ${\mu _\sigma }$ 和方差 ${\sigma _\sigma }$ :

$\left\{\begin{split} & {{\mu _\sigma }= \frac{{ \displaystyle\sum\limits_{i = 0}^{Count} {g_\sigma ^i\left( {x,y} \right)} }}{{Count}}}\\ & {\sigma = \sqrt {\frac{{ \displaystyle\sum\limits_{i = 0}^{Count} {{{\left[ {g_\sigma ^i\left( {x,y} \right) - {\mu _\sigma }} \right]}^2}} }}{{Count}}} }\end{split} \right.$ (10)

(4)根据 ${\mu _\sigma }$ ${\sigma _\sigma }$ 可设置路面灰度级的置信度在 $\left[ {{\mu _\sigma }{\rm{ - 3}} \cdot {\sigma _\sigma },{\mu _\sigma }{\rm{ + 3}} \cdot {\sigma _\sigma }} \right]$ , 而一般车底的阴影灰度级比车道的灰度级范围小, 因此设置路面与车底阴影的分割阈值为: $T = {\mu _\sigma }{\rm{ - 3}} \cdot {\sigma _\sigma }$ . F二值化后如图18所示.

图 18 二值化

2.2.2 提取车底阴影与路面的交线

本文根据以下规则来提取车底阴影与路面交线:

(1)在图 ${F_{bw}}$ 下半区域寻找车底阴影块. 如图19(a)所示, 车底阴影的上下线分布关系为:

$A.x < D.x\;\;\& \& \;\;C.x < B.x\;\;\& \& \;\;C.y - A.y < 30$ (11)

(2)遍历所有独立阴影区域的最小列 $\min \_L$ 、最大列 $\max \_R$ 和最大行 $\max \_D$ , 两两比较独立阴影区域的最大行y间距, 满足式(12)关系则合并为一个阴影区:

$\left\{ \begin{array}{l} \max \_{R^{\left( j \right)}}.x > \min \_{L^{\left( i \right)}}.x\;(i,j{\text{表示独立的阴影区域}})\;\;\\ \& \& \;\;\max \_{R^{\left( i \right)}}.x > \min \_{L^{\left( j \right)}}.x\\ \& \& \;\;\left| {\max \_{D^{\left( i \right)}}.y - \max \_{D^{\left( j \right)}}.y} \right| \le 30 \end{array} \right.$ (12)

(3)计算 $\max \_R$ $\min \_L$ 之差, 如式(13), 其差值大于 ${F_{bw}}$ 宽1/4的阴影区域可初步设定为车底阴影.

$\max \_R - \min \_L > {F_{bw}}.w\;{\rm{*}}\;1/4$ (13)

(4) $\max \_R$ $\min \_L$ 之差最大时作为阴影与路面的交线, 如图19(b).

(5)对于不能在(1, 2, 3, 4)验证规则中找到阴影区域的矩形框认定为非车辆区域. 结果如图19(c)图19(d)所示.

图 19 检测结果

3 基于粒子滤波的车辆跟踪

相机以30 f/m的速度采集, 且车辆在高速路上行驶的最高速度为120 km/h, 最低速度为60 km/h, 故可计算出帧间车辆行驶的距离为(0.55–1.11) m, 可引入跟踪算法. 粒子滤波是一种基于蒙特卡洛方法, 其核心思想是从后验概率中抽取随机状态粒子来近似蒙特卡洛积分, 进而估计出下一个跟踪状态. 该方法切合于所有能用状态空间模型表示的非线性系统, 滤波过程中抽取的随机状态粒子可以逼近最优估计的精度.

3.1 目标模型描述

将车辆的粒子模型定义为:

$particle = \left\{ \begin{gathered} x,y,s,{x_p},{y_p},{s_p},{x_0},{y_0}, \\ width,height,histogram,w \\ \end{gathered} \right\}$ (14)

其中, xy是最优估计中心位置, s是尺度因子, ${x_p}$ ${y_p}$ 是前一帧的最优估计中心位置, ${s_p}$ 是前一帧的尺度因子, ${x_0}$ ${y_0}$ 保存检测到的车辆原始坐标; $width$ $height$ 分别是车辆区域的宽和高, $w$ 是粒子的权重. $histogram$ 是维度为110的HSV颜色直方图, 本文的提取规则为式(15)所示:

$\left\{ \begin{split} & {\rm{if}}\;\;V \ge 0.2\;\;\;\;S \ge 0.2 \\ &\;\;\;\;\;hd = MIN\left( {10*H/{H_{\max }},9} \right) \\ &\;\;\;\;\;sd = MIN\left( {10*S/{S_{\max }},9} \right) \\ &\;\;\;\;\;histogram\left[ {sd*10 + hd} \right] = histogram\left[ {sd*10 + hd} \right] + 1 \\ & {\rm{else}} \\ & \;\;\;\;\;vd = MIN\left( {10*V/{V_{\max }},9} \right) \\ & \;\;\;\;\;histogram\left[ {100 + vd} \right] = histogram\left[ {100 + vd} \right] + 1 \\ &\rm{ end} \end{split} \right.$ (15)

提取规则中, HSV为HSV空间中的3个通道像素值, 认为分量 $V$ 或者 $S$ 的值小于0.2为无色块, 则将无色块的直方图分配在下标为 $\left[ {{\rm{100,109}}} \right]$ 之间, 否则将 $S$ $V$ 分量值各分成10个区间, 组合成维度为100的特征矢量, 因此, 基于HSV的颜色直方图采集每个车辆的特征矢量维度为110.

3.2 循环跟踪车辆目标

计算前一帧车辆所有粒子的状态转移预测, 实质上是在获取车辆目标后, 在目标附近场景中按照高斯分布的规则分撒粒子来搜索目标对象. 本文在动态二阶自回归模型中融入高斯分布规则来实现粒子更新, 如式(16)所示:

高斯分布产生随机数: $Rnd\left( t \right) = \dfrac{1}{{\sqrt {2\pi } }}\exp \left( { - \dfrac{{{t^2}}}{2}} \right);$ $ T \sim \left( {{\rm{0,1}}} \right)$

$\left\{ \begin{aligned} & {A_1} = 2.0;\;\;{A_2} = - 1.0; \\ & px = {A_1}\left( {x - {x_0}} \right) + {A_2}\left( {{x_p} - {x_0}} \right) + Rnd\left( t \right) + {x_0} \\ & py = {A_1}\left( {y - {y_0}} \right) + {A_2}\left( {{y_p} - {y_0}} \right) + Rnd\left( t \right) + {y_0} \\ & ps = {A_1}\left( {s - 1.0} \right) + {A_2}\left( {{s_p} - 1.0} \right) + Rnd\left( t \right) + 1.0 \\ & pwidth \!=\! width;pheight \!=\! height;phistogram \!=\! histogram \end{aligned} \right.$ (16)

得到本帧的所有粒子状态转移结果, 粒子的属性有:

$ \left\{ \begin{gathered} px,py,ps,p{x_p},p{y_p},p{s_p},p{x_0},p{y_0}, \\ pwidth,pheight,phistogram,pw \\ \end{gathered} \right\} $

${A_1}$ ${A_2}$ 系数分别表示相邻帧跟踪结果的信任度和间隔帧的信任度. 粒子滤波的观测概率密度函数以第n个粒子的归一化颜色直方图与前一帧最优状态估计的归一化颜色直方图的相似度来衡量. 颜色直方图归一化为式(17)所示:

$histogram[i] = \frac{{histogram[i]}}{{ \displaystyle\sum\limits_{i = 0}^{N - 1} {histogram[i]} }}$ (17)

计算两个归一化颜色直方图的巴氏距离作为该粒子的权重值, 权重值越大的粒子, 说明该粒子与上一帧的最优估计车辆区域越相近. 假设前一帧的归一化颜色直方图为 ${H_p}\left[ i \right]$ , 当前帧归一化颜色直方图为 $H\left[ i \right]$ , 其巴氏距离 $pw$ 的计算公式为式(18):

$pw = \exp \left( { - \lambda \cdot \sqrt {1 - \sum\limits_{i = 0}^{N - 1} {\left( {{H_p}[i] \cdot H[i]} \right)} } } \right)\;\; {\rm{s.t.}} \;\;N = 110,\lambda = 10$ (18)

计算完一个车辆目标的所有粒子权重后, 归一化权重以更好地衡量每个粒子的相对作用度, 归一化后最大权重的粒子可以被视为本次跟踪的最优状态评估. 车辆长时间跟踪过程中总会出现粒子退化现象, 传统的重采样方法是直接删除与目标对象不相似的粒子, 依据权重大小复制与目标对象相似度高的粒子. 传统的重采样方法:

① 大到小的顺序对预测的粒子权重排序如下:

$\left\{ {p{w_{Num}} > p{w_{Num - 1}} > \cdots > p{w_i} > \cdots > p{w_1}} \right\}$ (19)

② 假设每个跟踪目标的粒子数为 $Num$ 个, 按权重大小顺序复制粒子数为:

$n{p_i} = Num*p{w_i}$ (20)

③ 循环②步, 根据权重顺序累加 $n{p_i}$ 个权重为 $p{w_i}$ 的粒子, 直到累加数量达到 $Num$ 个则停止复制粒子.

传统重采样方法尽管能够解决粒子退化问题, 但缺陷是粒子的多样性缺失问题被引入. 本文设置跟踪目标的粒子数为 $Num = 50$ 个, 当有效粒子数 ${N_{eff}}$ 少于30个时则认为粒子退化. 消除退化的粒子, 也就是对粒子重采样, 同时确保粒子不失多样性. 本文改进的重采样方法如下:

(1)计算有效粒子数 ${N_{eff}}$ , 若 ${N_{eff}} < 30$ , 则进入步骤(2), 否则跳到步骤(3).

(2)设定 $w{p_h} = \dfrac{1}{{Num}},w{p_l} = \dfrac{1}{{2*Num}}$ , 对于权重小于 $w{p_l}$ 的粒子直接剔除, 直接保留权重在 $w{p_i} \in\left( w{p_l},w{p_h} \right]$ 范围内的粒子, 对于权重大于 $w{p_h}$ 的粒子按照Thompson_Taylor算法产生新的粒子.

① 随机选取粒子 ${x^{(i)}}$ , 找到距离 ${x^{(i)}}$ 最小的m=6个粒子.

② 求m+1个粒子的加权平均值:

$ {\overline x ^{(i)}} = \dfrac{1}{{m + 1}} \displaystyle\sum\limits_{j = 1}^{m + 1} {w{p_j} \cdot x_j^{(i)}} $

③ 产生m个均匀分布量: ${U_j} \sim U\left[ { - \sqrt {3w{p_j}} ,\sqrt {3w{p_j}} } \right]$ .

④ 循环①~③步, 利用 ${U_j}$ 产生新的粒子来代替原来权重大于 $w{p_h}$ 的粒子, 并且补充原来剔除掉小于 $w{p_l}$ 的粒子, 直到粒子数达到 $Num$ 则停止粒子的产生.

新生成的粒子: $s = \displaystyle\sum\limits_{j = 1}^m {{U_j}\left( {x_j^{(i)} - {{\overline x }^{(i)}}} \right) + } {\overline x ^{(i)}}$ .

⑤ 重置每个粒子的权重为: $w{p_j} = 1/Num$ .

(3)计算粒子的加权平均值作为最终的最优状态估计: $\overline X = \displaystyle \sum\limits_{i = 1}^{Num} {w{p^{\left( i \right)}}} \cdot {x^{\left( i \right)}}$ .

图20为粒子退化图, 可看出粒子散布很散乱且范围大, 这是由于随着迭代次数的增加, 大部分粒子的权重会缩小, 少部分的粒子权重变得极大, 导致粒子间的权重方差会随着迭代次数而不断增大产生的. 图21是采用传统的重采样法更新的粒子图, 由图可看出按照权重排序来复制粒子时, 权重越大的粒子被复制的数量越多, 导致显示在图像上的粒子数量越少, 继而引进粒子多样性降低问题. 如图22所示, 为了既能克服粒子退化问题又能解决传统重采样方法导致粒子多样性缺失问题, 本文改进的粒子重采样方法, 不但提高了粒子分布的多样性, 而且粒子能够均匀地分布在车辆区域中.

图 20 粒子退化

图 21 传统的重采样法粒子图

图 22 改进的重采样粒子图

4 实验结果 4.1 多车道检测实验结果

6种不同性质路面上的多车道检测实验结果如图23所示.

4.2 单车道检测实验结果

3种不同性质路面上的单车道检测实验结果如图24所示.

4.3 车辆检测与跟踪结果

不同帧次的车辆视频跟踪实验结果如图25所示.

4.4 实验结果说明

本文使用多个视频流来检验算法的检测结果. 4.1节中使用两个路段上的路面视频测试多车道算法, 截取6张正常光照路面、减速标志路面、隧道路面、弯曲路面和上坡路面上的车道检测结果; 4.2节是单车道在有阴影、强光和花白路面的结果; 4.3节截取的是第1、10、40、60、70、90、100、150、200帧的跟踪结果. 通过实验结果可看出, 本文检测结果良好, 有助于进一步地移植在嵌入式平台并实现车道偏离报警和前向防撞系统.

对于车辆检测, 检测集200张图片, 有248个车辆, 采用不同算法实验统计检测到的车辆识别率和误检区域个数如表1所示. 采用传统的单独使用Hog+Gentle-Adaboost算法, 检测到的车辆有239个, 误检区域52个; 采用Hog+Gentle-Adaboost算法结合车底阴影校验算法检测到的车辆有239个, 误检区域只有2个, 大大减少误检的区域个数, 进而避免跟踪算法不必要的跟踪运算, 提高跟踪效率. 实验表明采用本文检测算法效果良好.

5 结论与展望

本文车道检测与车辆跟踪算法[22]能较好地检测高速路段车辆行驶的分道线和前方车辆, 可靠性和准确性较高, 较容易移植到嵌入式平台. 尽管目前的深度学习算法对目标检测精度较高, 但是难以在嵌入式平台得到运用, 而且本文的算法是针对视频流处理, 所采用的Hog+Adaboost算法检测到车辆后则使用跟踪算法实现车辆的跟踪, 能在嵌入式平台内存和运算能力有限的情况下得到可靠的运用.

针对车道检测, 本文将车道分为单车道和多车道来检测, 对于正常光照路面、减速标志路面、隧道路面、弯曲路面和上坡路面均能得到较好的结果.

图 23 多车道检测实验结果图

图 24 单车道检测实验结果图

针对车辆跟踪, 采用动态二阶自回归模型的方法预测车辆的状态. 对于粒子滤波固有的粒子退化问题, 创新性地引入Thompson_Taylor算法改善了粒子退化和低多样性的缺陷.

针对车辆检测, 首先使用Hog+Gentle-Adaboost分类算法实现无人车前方路面车辆的检测, 接着基于车底阴影的特征对车底阴影进行检测以验证学习算法检测到的车辆区域的真伪性, 同时提高了车辆的跟踪效率.

图 25 车辆检测与跟踪结果图

表 1 采用不同算法的车辆识别率和区域误检数对比表

不足之处是车道检测和车辆检测算法过于繁琐, 接下来的研究工作是优化算法, 进一步结合嵌入式平台实时运行本文算法, 同时根据车道提取和车辆检测反馈的结果, 基于机器视觉建立车距检测模型, 不但要检测出前方车辆与本车的距离, 还要计算出前方车辆相对于摄像机光轴的偏转角度, 以实现车道偏离的及时报警.

参考文献
[1]
Shin BS, Tao JL, Klette R. A superparticle filter for lane detection. Pattern Recognition, 2015, 48(11): 3333-3345. DOI:10.1016/j.patcog.2014.10.011
[2]
Song GY, Lee KY, Lee JW. Vehicle detection by edge-based candidate generation and appearance-based classification. Proceedings of 2008 IEEE Intelligent Vehicles Symposium. Eindhoven, The Netherlands. 2008. 428–433.
[3]
Sun P, Chen H. Lane detection and tracking based on improved Hough transform and least-squares method. Proceedings of SPIE 9301, International Symposium on Optoelectronic Technology and Application 2014: Image Processing and Pattern Recognition. Beijing, China. 2014. 93011U.
[4]
Yi SC, Chen YC, Chang CH. A lane detection approach based on intelligent vision. Computers & Electrical Engineering, 2015, 42: 23-29.
[5]
洪敏, 周鸣争, 梁祥君, 等. 基于线性抛物线模型的车道检测与跟踪方法. 长江大学学报(自科版), 2013, 10(7): 53-57.
[6]
Wang Y, Shen DG, Teoh EK. Lane detection using spline model. Pattern Recognition Letters, 2000, 21(8): 677-689. DOI:10.1016/S0167-8655(00)00021-0
[7]
Wang Y, Teoh EK, Shen DG. Lane detection and tracking using B-Snake. Image and Vision Computing, 2004, 22(4): 269-280. DOI:10.1016/j.imavis.2003.10.003
[8]
Haykin S, Kosko B. Gradient-Based Learning Applied to Document Recognition. New Jersey: Wiley-IEEE Press, 2009.
[9]
Mantripragada K, Trigo FC, Martins FPR, et al. Vehicle tracking using feature matching and Kalman filtering. Proceedings of the 22nd International Congress of Mechanical Engineering. Ribeirão Preto, Brazil. 2013.
[10]
Li H, Bai PR, Song HJ. Car tracking algorithm based on Kalman filter and compressive tracking. Proceedings of the 2014 7th International Congress on Image and Signal Processing. Dalian, China. 2014. 27–31.
[11]
Hostettler R, Birk W, Nordenvaad ML. Extended Kalman filter for vehicle tracking using road surface vibration measurements. Proceedings of the 2012 51st IEEE Conference on Decision and Control. Maui, HI, USA. 2012. 5643–5648.
[12]
Bouttefroy PLM, Bouzerdoum A, Phung SL, et al. Vehicle tracking by non-drifting mean-shift using projective Kalman filter. Proceedings of the 2008 11th International IEEE Conference on Intelligent Transportation Systems. Beijing, China. 2008. 61–66.
[13]
王相海, 方玲玲, 丛志环. 卡尔曼粒子滤波的视频车辆跟踪算法研究. 中国图象图形学报, 2010, 15(11): 1615-1622. DOI:10.11834/jig.090888
[14]
Teo KTK, Chin RKY, Rao NSVK, et al. Vehicle tracking using particle filter for parking management system. Proceedings of the 2014 4th International Conference on Artificial Intelligence with Applications in Engineering and Technology. Kota Kinabalu, Malaysia. 2014. 193–198.
[15]
Uzkent B, Rangnekar A, Hoffman MJ. Tracking in aerial hyperspectral videos using deep kernelized correlation filters. IEEE Transactions on Geoscience and Remote Sensing, 2019, 57(1): 449-461. DOI:10.1109/TGRS.2018.2856370
[16]
Kalal Z, Mikolajczyk K, Matas J. Tracking-learning-detection. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2012, 34(7): 1409-1422. DOI:10.1109/TPAMI.2011.239
[17]
Babenko B, Yang MH, Belongie S. Visual tracking with online multiple instance learning. Proceedings of 2009 IEEE Conference on Computer Vision and Pattern Recognition. Miami, FL, USA. 2009. 983–990.
[18]
Babenko B, Yang MH, Belongie S. Robust object tracking with online multiple instance learning. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33(8): 1619-1632. DOI:10.1109/TPAMI.2010.226
[19]
Suzuki S, Be K. Topological structural analysis of digitized binary images by border following. Computer Vision, Graphics, and Image Processing, 1985, 30(1): 32-46. DOI:10.1016/0734-189X(85)90016-7
[20]
阮体洪. 基于交通视频的车辆检测和车辆行为识别研究[硕士学位论文]. 杭州: 浙江工业大学, 2015.
[21]
Viola P, Jones M. Rapid object detection using a boosted cascade of simple features. Proceedings of 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. Kauai, HI, USA. 2001. I-511–I-518.
[22]
陈存弟. 基于DSP的智能交通车辆动态图像识别[硕士学位论文]. 福州: 福建师范大学, 2018.