APP下载

基于CNN和LSTM混合模型的车辆行为检测方法

2020-04-29王岩松王孝兰

智能计算机与应用 2020年2期
关键词:轨迹车辆检测

王 硕, 王岩松, 王孝兰

(上海工程技术大学 机械与汽车工程学院, 上海 201620)

0 引 言

随着汽车行业科学技术的发展,智能车辆成为未来汽车行业发展的必然趋势[1]。自动驾驶作为智能车辆的关键技术,引起了研究者的广泛关注。其中,环境感知技术通过传感器探测车辆周围环境,为智能车决策部分提供信息,是自动驾驶技术的重要前提。车辆作为道路环境的主体,其行为姿态的识别对自身车辆周围环境理解具有重要影响[2]。

车辆行为的分类主要采用隐马尔科夫模型(Hidden Markov Model,HMM)、贝叶斯网络、BP神经网络等方法。文献[3]采用贝叶斯网络对每个典型的轨迹建模进行分类。Regine等人[4]将当前场景与数据库中场景进行对比,选出最相似场景的基于案件推理的在线学习行为预测方法。黄慧玲等人[5]提出一种基于前方车辆行为识别的碰撞预警系统,通过梯度方向直方图和支持向量机来训练前方车辆检测模型,并结合Kalman滤波对车辆进行跟踪,最后通过 HMM算法建立车辆行为识别模型,完成前方车辆行为的识别。传统方法多存在检测和识别精度低的问题,并且传统方法的使用场景多是环境简单的道路路口或高速车道等固定场景,无法满足实际需求。

随着深度学习技术的发展,循环神经网络(RNN)[6]被用于处理行为识别问题。但RNN存在梯度消失和梯度爆炸等问题,标准的RNN网络对长序列的学习效果不佳。Hochreiter等人[7]对RNN进行改进,在1997 年提出长短期记忆网络(Long Short-Term Memory,LSTM),在长序列的处理上表现更好。Donahue等人[8]提出一种长效递归卷积神经网络(LRCN),初次将CNN与LSTM结合,用于视频识别、分类等领域。随后越来越多的研究者采用这种方式对人体行为进行识别,通过CNN模型提取特征,并采用LSTM进行训练分类[9-10]。文献[11]通过双卷积网络并行对关键帧的特征信息提取,利用LSTM网络建立序列模型,完成车辆行为动态识别,但存在实时性差与不能识别多台车辆行为的问题。车辆在实际行驶中会遇到阴影、光斑、畸变等因素影响,导致传统方法的车辆检测误检率高、目标偏差大与定位误差大的问题,基于深度学习的方法对硬件要求较高,实时性低。同时车辆之间的遮挡也会导致跟踪丢失目标,使得车辆轨迹难以跟踪,参数获取缺乏完整性和准确性,影响最后的行为识别精度。

本文针对上述情况提出一种基于CNN和LSTM混合模型的车辆行为检测方法,分别选择基于YOLOv3[12]的车辆识别方法,采用Kalman[13]滤波器跟踪车辆融合LSTM网络构建车辆行为识别模型。通过试验,验证本文提出方法的有效性和准确性。

1 车辆检测与跟踪

1.1 YOLOv3原理

YOLO算法将目标检测问题作为回归问题处理,一步完成分类与定位任务,直接预测目标的类别与位置,减少检测时间的同时提升了目标检测精度。YOLOv3算法是在YOLO的基础上进行改进,增加到3种检测尺度,有效地增加了算法对不同尺寸物体的检测精度,同时采用多尺度训练的方式增强了鲁棒性,并在DarkNet19基础上引入残差网络提出来新的特征提取网络DarkNet53。其网络结构如图1所示,DarkNet53主要由一系列1×1和3×3的卷积层组成,每个卷积层后跟一个Batch Normalization层和一个LeakyReLU层,进行5次下采样提取特征,采用FPN的思想,利用多尺度的特征增加特征丰富度,从而达到对不同尺寸目标的精确检测。

图1 YOLOv3网络结构

在目标检测阶段,YOLOv3首先将图片缩放到416×416的大小,并划分为S×S的等大单元格。当待检测目标中心落入单元格内,该单元格预测目标B个候选框的位置信息以及目标类别的条件概率,即中心坐标(x,y)和目标的宽w和高h,记为tx,ty,tw,th。目标中心所在单元格相对图像左上角有偏移(cx,cy),pw和ph代表该单元格对应候选框的宽高,计算出候选框的坐标如下:

bx=σ(tx)+cx,

(1)

by=σ(ty)+cy,

(2)

bw=pwetw,

(3)

bh=pheth.

(4)

当多个候选框检测到相同目标时,通过对置信度设定阈值筛选出高分的候选框,并利用非极大值抑制处理得到最终的预测结果。

1.2 车辆检测与跟踪模型

复杂环境下的车辆检测会受到遮挡影响,导致跟踪丢失目标,使得车辆轨迹难以跟踪,参数获取缺乏完整性和准确性,影响最后的行为识别精度。针对上述情况,利用Kalman滤波器对检测到的车辆目标大小(w,h)、位置(x,y)等确切信息进行跟踪预测。

Kalman 滤波具体的原理和过程分析如下:

(5)

Pk|k-1=APk-1|k-1AT+Q,

(6)

Kk=Pk|k-1HT(R+HPk|k-1HT),

(7)

(8)

Pk|k=Pk|k-1-KkHPk|k-1.

(9)

其中,A、B表示系统参数;H表示观测系统参数;Q、R分别为系统噪声和观测系统噪声的方差。

图2 前方车辆运动轨迹

2 前方车辆行为识别

2.1 LSTM网络

循环神经网络具有强烈的时间序列性,其当前时刻的输出由之前时刻的状态和当前时刻的输入决定,保留了时间维度上的信息。LSTM是循环神经网络的一种,为了解决一般循环神经网络梯度消失只能对短时间序列建模的问题,LSTM引入输入门、遗忘门、输出门三个部分更新系统状态,可以有效处理时间序列中间隔和延迟较长的信息。其网络结构如图3所示。

图3 LSTM原理图

LSTM通过输入门it、遗忘门ft、输出门ot丢弃时间序列中的无用的信息并传递后续时刻所需信息。其中,it和ot控制信息的流入和流出,ft代表遗忘门的输出,具体公式为:

ft=sigmoid(Wf·[ht-1,xt]+bf),

(10)

it=sigmoid(Wi·[ht-1,xt]+bi),

(11)

(12)

(13)

ot=sigmoid(Wo·[ht-1,xt]+bo),

(14)

ht=ot*tanh(Ct).

(15)

其中,xt,ht表示当前时刻单元的输入和输出;Ct表示更新后的单元;Wi,Wf,Wc,Wo与bi,bf,bc,bo分别表示加权项与偏置项。

2.2 车辆行为识别模型

利用YOLOv3目标检测算法与Kalman滤波对前方车辆视频中的车辆目标进行实时检测与跟踪,结合LSTM网络构建前方车辆行为识别模型。

本文网络结构模型如图4所示。首先,对输入的视频利用训练的YOLOv3车辆检测模型逐帧检测,提取前方车辆目标,得到目标类别、检测框尺寸和目标中心点坐标;其次,结合kalman滤波对前方车辆视频中的车辆目标进行实时检测与跟踪,获取目标大小、位置、轨迹等信息,获取准确的车辆运动轨迹特征;再次,将车辆运动轨迹特征输入到 LSTM 网络框架中,建立时间序列模型,分析序列间特征,最终识别前方车辆的行为。

图4 前方车辆行为识别模型

3 实验结果

3.1 实验平台与数据集

实验平台配置:Windows 10操作系统,CPU为Inter Core i5-8400,内存为16 GB,GPU为NVIDIA GeForce GTX1070Ti,深度学习框架为Tensorflow。

本文采用自行搭建的车载试验平台所采集的视频数据集,数据采集设备固定于车辆前挡风玻璃正前方,在自身车辆不变道的情况下,采集前方车辆的行驶行为。数据集包含城区、高速、乡村和学校等场景采集的真实视频数据,每段视频中包含车辆、行人和电动车等各种目标,还包括光照变化、树木阴影和目标被各种程度的遮挡与截断等情况。根据实际应用场景,车辆视频数据分为7类别,分别为直行、左转、右转、左变道、右变道、左切入和右切入。车辆行为数据集如图5所示,本文选取300个视频作为实验数据,其中80%作为训练集,20%作为验证集。

3.2 实验结果

经过训练得到前车行为识别网络模型,其实验结果见如下。

图6为车辆行为识别结果。图6(a)中靠近本车的车辆在接下来的5 s向右侧变道,远方车辆保持直行,采用本文方法识别出2台目标车辆,并进行轨迹跟踪。识别结果显示,正确地识别出了不同车辆的右变道与直行行为。图6(b)识别出3台目标车辆并进行跟踪,采用本文方法正确识别出3辆车的直行行为。

图5 车辆行为数据集

(a)场景一

(b) 场景二

表1为前车直行、左转、右转、左变道、右变道、左切入和右切入行为识别结果统计表。由表1分析可得, 直行行为的识别正确率较高,而右转和右变道行为识别的正确率略低,主要原因是车辆变道与转向操作前期轨迹特征相似,易误检为前车左转和右转行为,对于左切入和右切入两种行为,本文方法可以做到有效识别。

表1 车辆行为识别结果

4 结束语

本文提出一种基于CNN和LSTM混合模型的车辆行为检测方法,首先训练YOLOv3网络模型进行前方车辆识别,然后使用Kalman滤波跟踪检测车辆;最后训练LSTM网络模型对车辆行为进行建模,完成前方车辆行为识别。实验结果表明,根据前方车辆运动轨迹可在复杂环境下识别多车行为。但是,本文的研究存在自身车辆保持直行的局限性,下一步的重点应放在自身车辆行为变化的情况下识别前方车辆行为上。

猜你喜欢

轨迹车辆检测
解析几何中的轨迹方程的常用求法
德国车辆来波兰加油
轨迹
轨迹
车辆
必修二 Modules 1—6综合检测题
冬天路滑 远离车辆
“整式的加减”检测题
“整式”检测题