基于双向长短记忆网络的异常驾驶行为检测
2020-12-26邢美华
惠 飞,郭 静,贾 硕,邢美华
长安大学 信息工程学院,西安710064
1 引言
随着经济与社会的发展,生活水平逐渐提高,人们的出行已经离不开交通工具的帮助。相关交通工具给人们带来便利的同时,也带来了交通拥挤、交通安全等各种问题[1]。我国是世界上受道路交通安全伤害最严重的国家之一,每年发生交通事故达20 多万起。而激进型驾驶行为[2]如急加速、急减速等是导致交通事故的发生主要原因之一。因此,准确识别行驶车辆的异常驾驶行为对交通安全、车辆安全有着重要意义。
目前已有很多关于驾驶行为的研究,但大多数致力于针对驾驶人本人的驾驶行为或意图检测[3],或者利用图像以及视频对行驶车辆进行检测[4],Kumtepe等人[5]在利用车载摄像头获取视觉数据的基础上,通过检测道路线和道路上的车辆来提取车道偏离率和可能的碰撞时间等特征,而后使用这些特征训练分类器识别激进型驾驶行为。所采用的方法大多也是使用聚类算法对驾驶行为进行识别以及统计,Lee 等人[6]提出了一种基于两层聚类的框架,以评估大规模驾驶记录,识别潜在的侵略性驾驶行为。而对于在道路上行驶时周围车辆的相关驾驶行为的识别成为一个积极又具有挑战的新兴研究领域,目前已有部分研究者对这部分内容进行了研究。Li等人[7]仿照语音识别技术,使用一种结合隐马尔可夫模型(HMM)和贝叶斯滤波(BF)技术的新算法来识别驾驶员换道意图;哈尔滨工业大学的罗沂等人[8],采集车辆行驶的GPS数据,针对自由行驶、跟车行驶、环道行为和超车行为等四种驾驶行为分别建立HMM模型,并获取表征参数,最终实现对以上四种驾驶行为的识别。
随着通信技术及智能交通系统(ITS)、传感技术[9]的最新进展,车-车通信创建车联网大环境[10]使越来越多精确行驶数据可用于异常驾驶行为检测。在网络内的车辆通过接收周围车辆的实时驾驶数据等信息,提高驾驶员对周围环境的认知,实现更安全有效的驾驶动机,使异常驾驶行为识别结果更为准确、客观。Ding等人[11]提出了基于调频连续波雷达系统的疏忽驾驶行为检测方法。Talebpour等人[12]在使用车联网数据的基础上,提出了一种基于博弈论方法的变道模型预测换道行为。Bejani 等人[13]提出了一种包括智能手机标定、机动分类和驾驶风格评估的CADSE 系统,以考虑交通水平和车辆类型对驾驶评估的影响。
除了以上传统的识别方法之外,随着神经网络的发展,出现了新的驾驶行为的识别方法,并取得了较好的检测效果。Huang 等人[14]介绍了深度学习融合技术,并引入了三种基于深度学习的融合模型,实现了基于视频的异常驾驶行为检测任务。Zyner等人[15]提出了一种基于递归神经网络的预测方法,从基于激光雷达的跟踪系统系统中获取数据,为潜在冲突在发生之前提供了一个预测窗口。Altché等人[16]通过使用长短时记忆(LSTM)神经网络,对高速公路车辆未来的纵向和横向轨迹进行准确预测,为实现轨迹预测的关键一步。Zhao等人[17]提出了一种使用长短记忆神经网络来预测交通流量的方法,取得了较好的结果。
以上方法或是在宏观角度对驾驶行为进行分类,或是利用图像数据对固定行为的车辆进行异常驾驶行为识别,针对车辆本身在驾驶员的角度对驾驶行为进行识别的研究较少。本文使用一种拓展神经网络(BiLSTMFC 网络)模型对异常驾驶行为进行识别。该网络利用车辆行车数据,在车辆行驶的过程中准确识别周围车辆的驾驶行为,该模型具有两层结构。第一层是RNN 结构的变体BiLSTM[18],利用该网络在处理时间序列数据方面的优势来处理行车数据,通过从前-后两个方向对驾驶行为的数据序列进行处理,突出异常驾驶行为发生时的行车数据的数据特证,有利于提高异常驾驶行为的识别精度。第二层是全连接神经网络,用于驾驶行为的分类。利用上一层BiLSTM 模型的输出作为这一层模型的输入,突出了驾驶行为运动特征的数据作为输入比单纯使用车辆行车数据作为输入具有更高的精度。具体流程如图1所示。
图1 系统流程图
2 驾驶行为数据处理及其特征分析
2.1 驾驶行为数据获取
本篇文章中所使用的相关行车数据均来自美国交通安全部安全试验模型部署所采集的样本数据(SSPDSafety Pilot Model Deployment Data),该数据于2014年10 月由模型部署的试验和测试团队发布,数据版权为美国交通部(USDOT)智能交通系统(ITS)联合项目办公室(JPO)所有。
本研究中所使用的数据均从配备了数据采集系统(DAS)的车辆中收集,DAS以10 Hz的频率获取车辆基本行驶数据以及路测单元中的数据,获取之后以csv 的格式存储。驾驶行为发生的时间一般较短,10 Hz 的采集频率足以详细描述驾驶行为发生过程中数据的变化过程,并支撑神经网络学习。所采集的数据集包含车辆位置信息:经度和纬度等;状态信息:油门、刹车等;运动信息:速度、加速度和转向角等;以及瞬时驾驶环境:周围物体和最近物体的距离等。
本研究使用来自26辆车的132段行程数据,其中包含510多万条原始数据,每一条数据描述当前车辆在某一时刻的驾驶信息。由于传感器和通信设备的在运行过程中会受到各方面的因素影响,从而导致数据的质量出现各种问题,例如数据重复、数据缺失、数据错误、数据波动等问题,所以在使用数据前需对数据进行数据预处理,如缺失数据填补、误差数据处理、重复数据删除等预处理以提高数据的质量,如公式(1)~(4)所示:
公式(1)为数据填补公式,其中xi为缺失数据;xi…xi-k为缺失数据前的正常数据;k为数据采用长度,本文取3 s 的数据量。公式(2)为误差数据处理公式,根据原始数据序列x1,x2,…,xn,求得每个序列的算术平均值xˉ和每个数据的误差ai,依据贝塞尔公式求得σ,作为判断阈值,对于序列中的所有数据:
如|xi-xˉ|>3σ,误差过大,将xi剔除;
如|xi-xˉ|<3σ,误差正常,将xi保留。
经过数据预处理后,对数据进行初步统计,由于相关车辆均在城市内行驶,不存在倒车情况,故速度值均大于零。本文中随机挑选一段行程,对速度v、GPS 速度vG、纵向加速度a、转向角以S及油门位置T等五个运动特征分别计算相关数学统计量,包括均值、中值、最大值、最小值以及方差等。相关数据的运动特征及统齐计量结果如表1所示。
2.2 异常驾驶行为特性分析
在交通相关法律法规中,急加速、急减速行为并不属于违法或是违规行为,但也会造成追尾等交通事故的发生,对驾驶安全有一定程度的影响。我国现行的交通法规对于异常驾驶行为没有明确的定义,按照违反交通安全行为的特征分类,异常驾驶行为是突然改变通行状态对他人安全造成影响的不文明、不安全驾驶行为,是有意影响道路交通安全的驾驶行为。
在日常的驾驶过程中,驾驶员的驾驶行为绝大多数时间内趋于稳定,即速度、加速度等相关参数在相当时间内变化幅度较小甚至保持不变。但是当驾驶人员的操作出现异常行为时,速度加速度等相关参数会突然发生变化。所以本文中阐述的异常驾驶行为检测,是通过提取众多数据中的加速度或转向角明显有异于正常值的数据,来获取驾驶行为中异常驾驶行为。
文献[19]中关于驾驶行为中速度等数据的统计分析发现在所有驾驶时间中,15%驾驶行为是不稳定(加速时间占15%,减速时间占15%)的。结合这一分布以及现实数据的实际情况,对数据中加速度以及转向角在不稳定概率内的数据进行标定,将在连续3 s时间内加速度、转向角均异常的数据进行提取,标注为异常驾驶行为。
在驾驶的过程中,任何驾驶行为都会持续一定的时间,不会在瞬时完成所有动作。将异常驾驶行为发生的过程用包含一段包含驾驶行为异常点的时间连续数据段来表示。本文中数据获取频率f=10 Hz(0.1 s),一般驾驶行为完成的时间t<3 s,故定义时间窗口的长度为30,窗口内包含车辆行驶时的30 组数据,滑动窗口,可在包含X组数据的行为序列中获得X-29 段驾驶行为。
驾驶过程中的平稳驾驶、正常的加速、减速或转向与异常驾驶行为的区别如图2 所示。图2(a)表示了车辆急加速行驶时加速度的变化过程:图中红色曲线表示平稳驾驶行为的加速度变化曲线,加速度在小范围内波动-0.5 m/s2<a<0.5 m/s2;黄色曲线表示正常加速行驶时的加速度变化曲线,曲线的增长趋势较平缓,加速度峰值不高;蓝色曲线所示为急加速驾驶行为,曲线增长速度较快,加速度明显持续的大于正常值,且峰值较高。
图2(b)表示了车辆急减速行驶时加速度的变化过程。黄色曲线表示正常减速行驶时的反向加速度变化曲线,曲线的下降趋势平缓。而蓝色曲线所示为急减速驾驶行为,曲线下降趋势较快,在一段时间内,反向加速度明显持续的小于正常值,且出现了加速度的最低点。
图2(c)与图2(d)分别表示异常左向急转弯与右向急转时的转向角的数据变化过程。所示图中,两根竖直红色虚线内的部分为标注的异常驾驶行为。当车辆正常平稳行驶时,转向角稳定在零附近,如图中红线所示;在城市道路交通中,车辆变道及转弯行驶时是减速行驶的,转向角变化较平缓,且峰值不会很高,持续时间较短,如图中黄线所示;但是当车辆出现异常的左转或右转时,如车辆避险时,车辆的转向角变化较明显,数据出现突然的上升或下降,且具有较高的峰值。如图中蓝色线所示。
表1 数据运动特征及其统计量
2.3 异常驾驶行为数据集的建立
根据异常驾驶行为的定义,通过异常点检测,在原始数据中找到异常驾驶行为所在位置,并利用滑动窗口截取相应数据段来表示驾驶行为。单个数据异常很有可能是由于硬件或传输异常造成,所以对于某一时刻出现加速度或速度异常时不作为异常驾驶行为考虑。本文中共截取1 200 个数据段建立数据集,其中包括400段正常行驶数据段、200段急加速数据段、200段急减速数据段以及200段左向急转弯数据段和200段右向急转弯数据段。从1 200 个数据段中选取80%作为训练集,20%作为验证集,其中各驾驶行为类别在训练集与验证集所占比例均与其在所有数据集中所占比例相同。
图2 异常驾驶行为数据
3 BiLSTM-FC模型构建
异常驾驶行为识别主要使用的数据是车辆行驶过程中的数据,这些数据具有时间连续性,每一时刻的数据前后互相关联。后期数据的变化是在前期数据的基础上完成,而BiLSTM模型可以更好地捕捉驾驶行为在时间序列上的双向依赖。同时其循环结构,选择性地记忆或遗忘输入的数据。因此,在处理车辆运动学数据时,可以保存对结果有重要影响的数据,如速度、转向角等;而不影响结果的数据将被遗忘。因此,本文使用的拓展模型是基于一层BiLSTM 网络以及一层全连接神经网络。BiLSTM网络将前面的信息进行记忆,保存在网络的内部状态中,并应用于当前输出的计算中,即隐含层之间有链接,并且隐含层的输入包含输入层的输出以及上一时刻隐含层的输出。利用BiLSTM这一优势,获取原始数据中的驾驶行为特征,所得结果作为下一层全连接神经网络的输入,对异常驾驶行为进行识别分类。
这里的输入t有30个时间段,与数据集中每个异常驾驶行为的时间长度相同,每条数据内容中包含速度、加速度、GPS经纬度等11个特征值,将原始输入调整为具有30个元素的矢量,每个元素为1×11 的数组。这30个时序一次送入BiLSTM 中,具如图3 所示。根据数据输入维度,建立异常驾驶行为检测模型。
图3 BiLSTM模块结构图
3.1 BiLSTM模块
LSTM 作为RNN 的一种变体,由Hochreiter 等人[20]于1997 年提出,LSTM 在继承了RNN 在处理时间序列方面优点的同时解决了RNN梯度消失的问题,BiLSTM将前向与后向LSTM相结合,能更好地从两个方向获取数据特征。由于车辆的行车数据具有时间连续性,如果时间序列数据直接由全连通神经网络处理,会造成数据丢失,降低模型精度。此外,在处理时间序列数据时,BiLSTM会考虑数据序列中数据之间的相关性,这样可以最大限度地利用时间数据。
BiLSTM有向前和向后两个训练层,每一层训练序列都是由长短记忆网络(LSTM)构成,而且这两个都连接着一个输出层。这个结构提供给输出层输入序列中每一个点的完整的过去和未来的上下文信息,即驾驶行为在发生时前后时间内的数据在顺时和逆时两个时间方向的信息都会通过隐藏层保留。本文所使用的BiLSTM 如图4 所示,一个沿着时间展开的双向长短记忆网络,包含输入层、前向LSTM层、后向LSTM层以及输出层。图中x1,x2,…,xn是新时刻输入的信息,本文中n=30,x1,x2,…,x30代表数据集中连续30 个时刻的驾驶行为数据;Ct-1与at-1上文信息的表示,Ct与at表示本层传递给下一层的相关信息。六个独特的权值在每一个时步被重复的利用,六个权值分别对应:输入到向前和向后隐含层(w1,w3),隐含层到隐含层自己(w2,w5),向前和向后隐含层到输出层(w4,w6)。前向和后向隐含层之间没有信息流,展开图是非循环的,前向后向LSTM 对异常驾驶行为数据的处理结果依据权值(w4,w6)直接到达输出层。
图4 BiLSTM模块结构图
另外,Wf与与Wb分别代表前向与后向LSTM,本文使用变体LSTM:窥视孔连接[21](Peephole),该结构弥补了传统LSTM 中遗忘门中的缺点,使得当前的cell 状态能够通过输入门和遗忘门影响到下一时刻cell 对数据的处理,补充传统LSTM 中cell 对上个序列处理中所丢失的部分数据,运用在车辆的行驶数据可以保留数据在时间序列上的变化特征,Peephole 展开后具体如图5所示。
图5 Peephole结构图
Peephole 由一个或多个内存单元和三个门控制器(gate controllers)单元组成:输入门、输出门和遗忘门。其中xt是当前的输入向量,本实验中为每个时刻行车数据的输入,ht是当前隐藏层向量,ht包含LSTM细胞的输出,以及i,f,o和g分别是输入门、遗忘门、输出门和细胞向量,所有这些都与隐藏向量hi的大小相同,c为长期状态。遗忘门(forget gate,由ft控制)决定哪些长期记忆被遗忘;输入门(input gate,由it控制)决定被添加到长期记忆的内容;输出门(output gate,由ot控制)决定长期记忆中读取和输出的内容。具体计算公式如下:
其中,公式(5)为输入门计算公式,公式(6)为遗忘门计算公式,公式(7)为内部神经元计算公式,公式(8)为输出门计算公式,公式(9)及公式(10)分别为长期状态及隐藏状态的计算公式。Wxi,Wxf,Wxc,Wxo是4个全连接层关于输入向量xt的权重矩阵。Whi,Whf,Whc,Who是4个全连接层关于短期记忆ht-1的权重矩阵。bi,bf,bo,bg是4个全连接层的偏置项。bf初始为全是1的矩阵。
3.2 全连接神经网络模块
全连通网络是最基本、最简单的神经网络,该网络由于参数量以及计算量较大等原因,使用越来越少,但是在本文中,输入及输出尺寸固定且数量较少,不存在上述问题;而且其在多参数融合中表现良好,且对输出维度没有具体要求,同时具有可靠性高、低延时等特点,适用于对本文中异常驾驶行为进行分类因此采用全连通网络作为分类网络。全连接神经网络结构如图6 所示。本文中将BiLSTM 的输出作为全连接神经网络的输入,输出神经元个数与分类结果的类别个数相同。
图6 全连接神经网络层结构图
在本文中,提取的所有驾驶行为数据,包括速度、加速度以及GPS 点等经过BiLSTM 处理,BiLSTM 输出数据维度与输入数据维度相同,输出数据作为全连接网络层的输入,最后利用softmax 函数完成分类。结果分为急加速、急减速、左线急转、右向急转以及正常行驶五类,输出维度为5。
4 实验过程及结果验证
本文所使用的算法是在Keras框架中使用Python3.7编译器算法构建的。建立算法模型后,输入数据集中的样本。在训练时,为了防止过拟合,在前向及后向LSTM网络后添加Dropout函数;网络模型包含三层,分别是正向LSTM、反向LSTM以及最后的全连接层。
为了验证本文使用的算法对异常驾驶行为检测识别的准确性,分别使用相同的训练数据来训练多个算法网络,分别是BiLSTM-FC 网络、LSTM 网络、RNN 网络以及传统的BP 网络。对比在训练过程中,识别率的大小以及损失函数的变化(算法模型的识别结果与实际结果的差异)均是反映算法的效果模型好坏的重要参数。识别率越高、损失函数值越小,识别结果越接近真实结果,识别效果越好。
如图7 所示,图7(a)为本文中使用的BiLSTM-FC拓展神经网络的识别率,图中蓝色线分别表示了训练过程中的识别率变化曲线,绿色线为测试时识别率的变化曲线;图7(b)为损失函数,图中蓝色线为训练过程中的损失函数,橘色线为测试时的损失函数。图8中,(a)为RNN网络的识别率,(b)为BP网络的识别率。其中,橘色线代表训练过程中识别精度的变化趋势,蓝色线代表测试过程中识别精度的变化趋势。图中accuracy 的值发生突变是由于神经元的权值变化对网络输出有显著影响,受输入数据差异的影响,在迭代中产生了较大训练误差。随着训练过程的进行,权值的变化幅度会逐渐减小,accuracy 值的突变也就会逐步减小。如图7、图8所示,BiLSTM-FC的识别率要优于RNN网络和BP网络的识别率。对比两种模型损失函数变化曲线。LSTMFC 较其他模型识别率较高,随着训练次数的增多趋于平缓,收敛速度较快,损失函数值也较低,说明BiLSTMFC的识别效果具有显著优势。
从上述实验结果中可以得出BiLSTM-FC模型对于异常驾驶行为的识别优于RNN 以及LSTM 等,为了降低实验结果的偶然性,使用同样的数据集分别对各网络模型做三次实验,并对识别率、损失值等实验结果取平均值,最终根据平均值对各网络模型进行比较,具体异常驾驶行为的检测识别结果如表2所示。其中BP的识别率不是很理想,最终为86.82%,BiLSTM 的识别率最高达到了98.08%。
表2 数据运动特征及其统计量
图7 BiLSTM模型识别率与损失函数
图8 RNN模型识别率与BP模型识别率
5 结论
异常驾驶行为是影响交通安全、导致交通事故的主要原因之一。目前已有的研究中,使用深度学习对驾驶行为进行识别的工作还较少。使用神经网络建立模型,使实时识别出的驾驶行为能够具体到准确的时间、准确的车辆,提高驾驶行为识别在提高交通安全方面的作用。本中使用车辆终端采集的车辆行驶数据来识别异常驾驶行为。数据预处理后,采用统计方法对异常加速度点进行分类。然后结合相关驾驶经验,分割车辆驾驶数据,提取出用于训练模型的数据样本,构建异常驾驶行为训练模型用于识别行驶时车辆的驾驶行为。模型中第一层BiLSTM处理时间序列数据,第二层全连接神经网络用于对异常驾驶行为进行检测识别,该模型对异常驾驶行为的识别率达到98.08%。实验结果表明,所使用的BiLSTM-FC拓展网络模型能够识别异常驾驶行为,具有较高的识别率。研究结果有助于提高交通行驶安全性。