基于长短期记忆网络的司机驾驶行为自动化分析方法与流程

文档序号:23277952发布日期:2020-12-11 21:15阅读:156来源:国知局
基于长短期记忆网络的司机驾驶行为自动化分析方法与流程

本发明属于电子信息技术领域,特别涉及基于长短期记忆网络的司机驾驶行为自动化分析方法。



背景技术:

机器学习与汽车工业的融合为智能网联汽车产业注入了新的动力。然而,仍有许多难题需要解决,例如司机驾驶行为自动化分析等。由于乘客舒适性一直是汽车行业关注的焦点,司机驾驶行为自动化分析具有很大的应用价值。例如,针对私家车,驾驶行为自动化分析可以改善司机的驾驶习惯,减少交通事故的发生;面向公交车、网约车等公司,可以招聘驾驶行为优秀的司机,为乘客带来更舒适的乘车体验,从而提高服务质量和公司影响力。

每个人都有自己特定的行为习惯。例如,当一个作者在写作的时候,其写作习惯会通过一支笔传递到字体上,形成独特的笔迹。同样,每个驾驶员都有自己特殊的驾驶行为习惯,这些习惯会通过汽车can总线以数据的形式传递给各个控制器(如传输控制模块、车身控制模块等),从而控制车辆的状态。

在现阶段,还没有利用司机的行车数据自动化分析司机的驾驶行为的相关工作。因为司机驾驶行为自动化分析受到以下因素的限制:

1)汽车can总线数据中包含大量的汽车状态信息,如何从汽车can总线数据中提取司机驾驶行为就是一项重大挑战。

2)司机驾驶行为的好坏由汽车加速度、速度、方向盘角速度等多个因素共同影响,如何从大量车载传感器识别司机驾驶特征是一项具有挑战的工作。

3)司机的驾驶行为习惯与时间有关。例如,整个加速/减速/转弯动作都是在一个时间段内完成的,而不是在一个时间点完成的。如何从一个时间段内提取司机驾驶行为习惯是司机驾驶行为自动化分析的一大难点。



技术实现要素:

本发明为了克服上述现有技术不足,提供了一种基于长短期记忆网络的司机驾驶行为自动化分析方法,首先从汽车can总线提取含有司机驾驶行为的行车数据;然后利用乘客的乘车体验对司机驾驶行为进行打分,并将其作为司机行车数据评价的标签;随后利用长短期记忆网络(lstm)对大量司机的行车数据和标签数据进行深度训练,学习司机驾驶行为习惯,并建立驾驶行为自动化分析库;最后,当任意司机驾驶汽车时,lstm网络都能够根据其行车数据实现司机驾驶行为的自动化分析,判断司机是否具有优秀的驾驶行为习惯。

本发明所述的基于lstm网络实现驾驶行为自动化分析的网络模型设计,包括以下步骤:

步骤1,特征数据的提取和预处理:从汽车can总线收集与车辆行车数据,并将数据处理为司机驾驶行为自动化分析模型可识别的输入数据;

步骤2,滑动窗口的设计:利用固定长度和宽度的滑动窗口从车辆预处理数据中进行数据采样,使司机驾驶行为自动化分析网络的每个输入都是一个[t×m]的矩阵(t为lstm网络的时间序列长度,输入数据具有m个特征)。

步骤3,驾驶行为自动化分析网络的搭建:基于lstm网络,设计出能够自动化分析司机驾驶行为的网络模型结构,实现司机驾驶行为的自动化分析。

进一步的,步骤1中驾驶数据的提取具体包括:

从汽车can总线中采集不同驾驶员的行车数据。由于在can数据中不仅包含司机的驾驶行为数据,还包含了很多与司机驾驶行为无关的干扰数据。为了避免无关数据对实验结果的干扰并提高实验的准确率,实验需要从can总线中提取与驾驶行为相关的数据。目前,车载诊断工具已经具备良好的数据监控和记录功能,图1列出了车载诊断设备监控的部分车辆数据。其中,随着汽车的运动,加粗部分的数据不断变化,其余部分的数据保持不变。因此,实验从can数据中提取加粗的数据作为驾驶行为特征数据,在实验中,这些数据包含m个特征。

进一步的,步骤1中特征数据预处理具体包括:

提取汽车can总线中的特征数据后,需要将数据进行预处理以便更好地从自动化分析网络输入数据。首先,将十六进制数据转换为十进制数据。其次,需要统一can总线中特征数据的频率。在车辆运动中,每个id号代表一个电子控制单元(ecu)。id号越小,数据传输优先级越高,发送频率越高。为了统一特征数据的频率,计算每个特征数据在一秒内的平均值作为一个识别单元,从而得到[l×m]的数据集(表示数据有l行m列)。

进一步的,步骤2中具体为:

为了更容易地从数据中提取司机的驾驶行为习惯,对训练数据和测试数据进行归一化操作是必不可少的。在图2的自动化分析网络中,输入数据是一个具有形状的张量[timesize×inputsize×batchsize],因此训练/测试数据集都需要在固定宽度的滑动窗口中采样。其中,滑动窗口长度与lstm网络中的时间序列t有关。经过大量的实验,本发明选择t=120s作为滑动窗口的长度。滑动窗口的宽度为m,因为can数据包含m个特征并且特征之间是相关联的。为了确保驾驶行为自动化分析网络能够实时工作,滑动窗口每1秒钟滑动一次。因此,驾驶行为自动化分析网络的每个输入都是一个[120×m]的矩阵。

进一步的,步骤3中lstm网络内部结构的详细设计过程具体包括:

由于司机的驾驶行为习惯具有时间依赖特性(例如司机过弯道时的驾驶习惯指在一个时间段的动作,而不是某个时间节点的动作),因此实验选择利用lstm网络提取司机的驾驶习惯。lstm内部网络结构如图3所示。原始的循环神经网络(rnn)只有一种状态,lstm网络在rnn网络的基础上添加了另一种状态c(单元状态),使得lstm网络具备了长期记忆并能够从司机的行车数据中学到司机的驾驶行为习惯。在图3中,c由三个开关(又被称作为门)进行控制,即遗忘门、输入门和输出门。其中遗忘门决定了前一时刻ct到当前时刻ct-1将保留多少驾驶行为信息,它可以表示为

ft=σ(wf×[ht-1,xt]+bf),

其中wf代表遗忘门的权重矩阵,[ht-1,xt]是将两个矩阵拼接成一个更长的矩阵,bf是计算遗忘门保留的驾驶行为特征时给的偏置项,σ是一个sigmoid函数。

输入门决定了在当前时刻有多少输入的驾驶行为信息xt被保存到ct中,它可以表示为

it=σ(wi×[ht-1,xt]+bi)。

根据数据的输入,还可以求得t时刻的瞬时单元状态(c′t)和t时刻的单元状态(ct),如下所示

c′t=tanh(wc×[ht-1,xt]+bc),

其中,是阿达玛乘积。实验能根据司机驾驶行为的瞬时单元状态和单元状态求得当前输出门的值,它被用来控制当前记忆ct对输出值ht的影响。可以将其表示为

gt=σ(wg×[ht-1,xt]+bg)。

最后,输出门的值和保存的长期记忆共同决定了当前输出的驾驶行为特征(ht),可以表示为

通过三个门对单元状态c的控制,lstm网络具备了长期记忆并能够从一段时间内的驾驶数据中提取驾驶员的驾驶行为习惯。

进一步的,步骤3中司机驾驶行为自动化分析网络的设计过程具体包括:

本发明通过lstm网络对输入的行车数据进行深度训练,提取司机隐藏的驾驶行为习惯,生成驾驶行为特征数据。在图2中,所建立的lstm模型采用了多到一的rnn网络架构,即将输入一个特征向量的时间序列(一组[t×m]的矩阵)转换为一个概率向量(ht)输出。考虑到驾驶行为自动化分析网络识别的准确率和样本训练速率,lstm模型只有一个隐藏层,且隐藏层的特征维数设置为128。为了防止过拟合现象,实验在lstm网络中加入了dropout函数。它能够在网络训练过程中,以一定概率丢弃部分神经元,使得每个batch的训练网络均不相同,从而提高网络的泛化能力。

乘客在乘坐汽车后依据乘车体验对驾驶员的驾驶行为进行评价。在驾驶行为评价任务中,需要利用大量的乘客评价标签和行车数据来提取不同评价等级的驾驶行为习惯。如图2所示,驾驶行为评价分为三个等级:a(优秀)、b(良好)和c(不合格)。在驾驶行为自动化分析网络模型经过大量带有评价标签的行车数据进行训练后,当任一司机驾驶汽车时,驾驶行为自动化分析网络能够直接利用其驾驶数据来提取司机的驾驶习惯,并得出他的驾驶行为等级。在图2中,实验利用一个全连接层对行车数据任务进行分类。其中,全连接层中隐藏层的神经元数为3,表示驾驶行为的三个等级。最后利用softmax函数得到驾驶行为评价的结果。

本发明基于lstm网络设计出一种司机驾驶行为自动化分析方法。这种方法能够依据司机的行车数据来判断司机是否具有优秀的驾驶行为习惯。解决了当前汽车工业中对司机驾驶行为无法进行量化评价的难题。本发明具有如下优点:

第一:在步骤1中特征数据的提取和预处理中,实验是从汽车can总线数据提取司机的驾驶行为习惯。汽车数据能够直接从汽车obd-ii端口获得,获取数据方便快捷,并且利用can总线数据能够实现对司机驾驶行为的实时监控;

第二:由于司机的驾驶行为习惯是表现在一段时间内(例如:汽车转弯时的时间段内),而不是一个时间点。因此需要寻找一个合适的并具备长期记忆能力的学习网络。lstm网络能够学到一段时间内的驾驶行为习惯,因此在步骤3中使用了lstm网络完成了对司机驾驶行为习惯数据的提取。

第三:本方案首次提出了一种司机驾驶行为自动化分析方法。本发明设计出了一种驾驶行为自动化分析网络模型,并且利用实验证明了网络模型的可行性。据了解,本发明首次解决了当前汽车工业中对司机的驾驶行为好坏无法进行量化评价的难题。

第四:本发明具有很高的应用价值。例如,针对私家车,驾驶行为自动化分析可以改善司机的驾驶习惯,减少交通事故的发生;面向公交车、网约车等公司,可以招聘驾驶行为优秀的司机,为乘客带来更舒适的乘车体验,从而提高服务质量和公司影响力。

附图说明

图1为车载诊断设备监控的部分车辆数据。

图2为司机驾驶行为自动化分析网络模型的结构图。

图3为lstm网络内部结构的详细设计。

图4为司机驾驶行为自动化分析的accuracy和loss曲线

具体实施方式

本发明所述的利用lstm网络实现驾驶行为自动化分析的网络模型结构,流程分为特征数据的提取和预处理、滑动窗口的设计和驾驶行为自动化分析网络的搭建三部分组成。

1、特征数据的提取和预处理

1.1驾驶数据的提取

首先从汽车can总线中采集不同驾驶员的行车数据。由于在can数据中不仅包含司机的驾驶行为数据,还包含了很多与司机驾驶行为无关的干扰数据。为了避免无关数据对实验结果的干扰并提高实验的准确率,需要从can总线中提取与驾驶行为相关的数据。目前,车载诊断工具已经具备良好的数据监控和记录功能,图1列出了车载诊断设备监控的部分车辆数据。其中,随着汽车的运动,加粗部分的数据不断变化,其余部分的数据保持不变。因此,需要从can数据中提取加粗部分的数据作为驾驶行为特征数据,在实验中,这些数据包含m个特征。

1.2特征数据预处理

提取到汽车can总线中的特征数据后,需要将数据进行预处理以便更好地从自动化分析网络输入数据。首先,将十六进制数据转换为十进制数据。其次,需要统一can总线中特征数据的频率。在车辆运动中,每个id号代表一个电子控制单元(ecu)。id号越小,数据传输优先级越高,发送频率越高。为了统一特征数据的频率,计算每个特征数据在一秒内的平均值作为一个识别单元,从而得到[l×m]的数据集(表示数据有l行m列)。

2、滑动窗口的设计

为了更容易地从数据中提取司机的驾驶行为习惯,对训练数据和测试数据进行归一化操作是必不可少的。在图2的自动化分析网络中,输入数据是一个具有形状的张量[timesize×inputsize×batchsize],因此训练/测试数据集都需要在固定宽度的滑动窗口中采样。其中,滑动窗口长度与lstm网络中的时间序列t有关。经过大量的实验,本发明选择t=120s作为滑动窗口的长度。滑动窗口的宽度为m,因为can数据包含m个特征并且特征之间是相关联的。为了确保驾驶行为自动化分析网络能够实时工作,滑动窗口每1秒钟滑动一次。因此,驾驶行为自动化分析网络的每个输入都是一个[120×m]的矩阵。

3、驾驶行为自动化分析网络的搭建

3.1lstm网络内部结构的详细设计

由于司机的驾驶行为习惯具有时间依赖特性(例如司机过弯道时的驾驶习惯指在一个时间段的动作,而不是某个时间节点的动作),因此实验选择利用lstm网络提取司机的驾驶习惯。lstm内部网络结构如图3所示。原始的循环神经网络(rnn)只有一种状态,lstm网络在rnn网络的基础上添加了另一种状态c(单元状态),使得lstm网络具备了长期记忆并能够从司机的行车数据中学到司机的驾驶行为习惯。在图3中,c由三个开关(又被称作为门)进行控制,即遗忘门、输入门和输出门。其中遗忘门决定了前一时刻ct到当前时刻ct-1将保留多少驾驶行为信息,它可以表示为

ft=σ(wf×[ht-1,xt]+bf),

其中wf代表遗忘门的权重矩阵,[ht-1,xt]是将两个矩阵拼接成一个更长的矩阵,bf是计算遗忘门保留的驾驶行为特征时给的偏置项,σ是一个sigmoid函数。

输入门决定了在当前时刻有多少输入的驾驶行为信息xt被保存到ct中,它可以表示为

it=σ(wi×[ht-1,xt]+bi)。

根据数据的输入,还可以求得t时刻的瞬时单元状态(c′t)和t时刻的单元状态(ct),如下所示

c′t=tanh(wc×[ht-1,xt]+bc),

其中,是阿达玛乘积。实验能根据司机驾驶行为的瞬时单元状态和单元状态求得当前输出门的值,它被用来控制当前记忆ct对输出值ht的影响。可以将其表示为

gt=σ(wg×[ht-1,xt]+bg)。

最后,输出门的值和保存的长期记忆共同决定了当前输出的驾驶行为特征(ht),可以表示为

通过三个门对单元状态c的控制,lstm网络具备了长期记忆并能够从一段时间内的驾驶数据中提取驾驶员的驾驶行为习惯。

3.2驾驶行为自动化分析网络的设计

本发明通过lstm网络对输入的行车数据进行深度训练,提取司机隐藏的驾驶行为习惯,生成驾驶行为特征数据。在图2中,所建立的lstm模型采用了多到一的rnn网络架构,即将输入一个特征向量的时间序列(一组[t×m]的矩阵)转换为一个概率向量(ht)输出。考虑到驾驶行为自动化分析网络识别的准确率和样本训练速率,lstm模型只有一个隐藏层,且隐藏层的特征维数设置为128。为了防止过拟合现象,实验在lstm网络中加入了dropout函数。它能够在网络训练过程中,以一定概率丢弃部分神经元,使得每个batch的训练网络均不相同,从而提高网络的泛化能力。

乘客在乘坐汽车后依据乘车体验对驾驶员的驾驶行为进行评价。在驾驶行为评价任务中,需要利用大量的乘客评价标签和行车数据来提取不同评价等级的驾驶行为习惯。如图2所示,驾驶行为评价分为三个等级:a(优秀)、b(良好)和c(不合格)。在驾驶行为自动化分析网络模型经过大量带有评价标签的行车数据进行训练后,当任一司机驾驶汽车时,驾驶行为自动化分析网络网络能够直接利用其驾驶数据来提取司机的驾驶习惯,并得出他的驾驶行为等级。在图2中,实验利用一个全连接层对行车数据任务进行分类。其中,全连接层中隐藏层的神经元数为3,表示驾驶行为的三个等级。最后利用softmax函数得到驾驶行为评价的结果。

实验环境:

(1)招聘司机和乘客

在实验中,需要招募司机(获取驾驶数据)和乘客(收集乘客评价)。为了使实验结果更具有说服力,本实验招募了45名司机(30名男性,15名女性)。其中,这些司机涉及不同年龄段和驾龄。在驾驶行自动化分析实验中,由于主观因素的影响,乘客对驾驶员的评价会有所差异。为了尽可能降低主观因素的影响,本实验招募了12名乘客,他们负责对司机的驾驶行为进行打分(1-10分),然后计算出12名乘客的平均分,并将其作为司机驾驶行评价的最终得分。

(2)实验车辆及路线

本实验使用汽车诊断工具(canalyst-ii)从汽车obd-ii端口收集车辆行车数据并存储在笔记本电脑中。为了让司机能够较为全面地展示自己的驾驶习惯并且使乘客有更合理的评价,本实验设计了一个复杂的驾驶路线图,该路线全程约6.5公里,每圈用时约12-15分钟。为了减少外界环境对实验结果的影响,实验数据在晴天进行采集。

(3)样本和标签的采集

本实验从45名志愿者驾驶员中挑选40名驾驶员的行车数据作为训练数据,5名驾驶员的行车数据为测试数据。每个驾驶员控制实验车辆沿指定路线行驶6圈。与此同时,12名乘客被分为3组,每位司机搭载每组乘客行驶2圈,然后12名乘客依据乘车体验给每位司机打分s(1≤s≤10)。驾驶行为评分被划分为三个等级:a(8≤s≤10),b(6≤s<8)和c(1≤s<6)。12名乘客评价的平均分被作为每位司机的最终评分,从而求得每位司机的驾驶行为等级,并将其作为驾驶行为评价的标签。最后,实验获取了足够的训练样本、测试样本和驾驶行为评价标签。

(4)硬件和软件环境

经过对司机的行车数据和驾驶行为评分惊醒进行建模论证,证明了本发明所设计的驾驶行为自动化分析网络具有优越的性能。在实验中,计算机硬件为i5-6500cpu,8gbram,gpu为nvidiagtx1660ti。在软件方面,实验使用python语言和tensorflow框架构建司机驾驶行为自动化分析网络,整个实验使用jupyternotebook实现。

实验结果:

本实验从纳智捷车辆中提取到23个驾驶行为特征(m=23),在每个驾驶员的行车数据中分别选取3000组带有驾驶行为评价标签的训练序列(每组训练序列为一个[120×23]的矩阵),最终得到一个[120×23×120000]且带有标签的训练样本。

驾驶行为评价的意义司机驾驶行为自动化分析模型训练好后,其可以直接应用于日常车辆中。驾驶行为自动化分析模型在获取新的行车数据后,能够快速判断驾驶员的驾驶行为等级。不仅如此,司机还可以根据自动化分析模型的结论去改善自己的驾驶行为习惯。在实验中,选择5个驶员的行车数据作为测试样本(其驾驶数据不包含在训练数据中),分别从每位司机的行车数据中选择600组作为测试序列。其中,乘客对5位司机的驾驶行为评分为1个a、3个b和1个c。实验结果如图4,表1和表2所示。

图4描述了司机驾驶行为自动化分析的accuracy和loss曲线。由图4可知,司机驾驶行为自动化分析的准确率为0.951,损失值为0.076,具有优越的性能。表1给出了驾驶行为评价的混淆矩阵(%)。从对角线上的数值结果可知,驾驶行为等级a、b和c的识别精度分别为92.76%、94.89%和98.17%。表2为司机驾驶行为自动化分析模型对5位驾驶员分析的详细结论。从表2中能够看出,司机驾驶行为自动化分析模型能够准确的预测出司机的驾驶行为等级。实验结果表明,本发明提出的基于长短期记忆网络的驾驶行为自动化分析方法能够准确的识别司机驾驶行为的好坏,对汽车行业具有重要的应用价值。

表1为驾驶行为评价混淆矩阵(%)

表2司机驾驶行为自动化分析结论

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1