一种基于Transformer和LSTM的车辆轨迹预测方法

未命名 07-11 阅读:222 评论:0

一种基于transformer和lstm的车辆轨迹预测方法
技术领域
1.本发明属于车辆轨迹预测技术领域,具体涉及一种基于transformer和lstm的车辆轨迹预测方法。


背景技术:

2.随着人们对交通出行需求的增加,智能交通系统已成为当下关注的焦点,车辆轨迹预测则是智能交通系统中的重要组成部分。车辆轨迹预测的目的是预测一段时间内的车辆行驶路线,以便更好地支持智能交通系统的决策。但因为时间变量、环境变量和个体变量等因素,车辆轨迹预测也具有非常复杂的多变性。
3.现有技术中,车辆轨迹预测主要通过基于单模型的算法,如贝叶斯网络、隐马尔可夫模型等进行预测,这些方法可以有效地预测车辆的短期轨迹,但是由于变量较多,对于长期轨迹预测效果较差,而且容易受到外部环境的干扰,影响预测的准确性。目前的深度学习方法能做到对车辆轨迹地长时间预测,但是准确率还可以有所提高。


技术实现要素:

4.为解决上述现有技术存在的技术问题,本发明提出了一种基于transformer和lstm的车辆轨迹预测方法,该方法通过结合transformer模型的多头注意力机制和lstm模型的长时记忆能力,并加入inception-mixer机制以达到准确捕捉空间无向图中的高频信息,以准确预测车辆的行车轨迹。
5.本发明为实现上述发明目的,采取的技术方案如下:
6.一种基于transformer和lstm的车辆轨迹预测方法,包括以下步骤:
7.s1:车辆通过与周围车辆的信息交互获取周围车辆的行驶数据,包括前部中心的横向坐标、纵向坐标、速度以及加速度,并将车辆识别号整合到数据中;使用python内置工具将数据预处理为3维张量;
8.s2:将预处理过的数据构建为图数据结构;先用矩阵乘法计算出每两个节点间的跳数,然后根据最大跳数对节点间的关系进行分类,最终得到一个邻接矩阵;
9.s3:创建自定义的lstm模型;使用graph_conv_block处理图矩阵,并使用自定义的edge_importance_weighting函数提取可用的边权,然后重建图矩阵数据;最后,使用自定义的reshape函数对输出和原输入进行合成;
10.s4:创建自定义的transformer模型,其中包含空间注意力机制;使用xavier初始化编码器上层的数据,然后使用自定义的forward函数进行训练,得到输出;
11.s5:使用inception_mixer机制处理数据,提取数据中的高频信息,将得到的高频信息和低频信息拼接到一起,得到新的输出;
12.s6:将数据再次输入带有空间注意力机制的transformer中,使用gru解码器预测位置。
13.进一步的作为本发明的优选技术方案,s1中通过与周围车辆的信息交互获取周围
车辆的行驶数据,设过去的t时段中有n个对象,将原始数据处理成3维张量,并设置一个定量为5,用来表示一个对象在一个时间步长上的坐标(x,y)以及速度(u,v),并将所有的坐标和速度标准化到(-1,1)之间。
14.进一步的作为本发明的优选技术方案,所述s2的具体步骤包括:
15.s2.1、将预处理后的数据建立成空间图,将空间图的节点数设置为100,最大跳数设置为1,将图表示为g
t
={v
t
,e
t
},节点表示为边表示为
16.s2.2、先通过矩阵乘法的方式,计算出所有节点的传递矩阵,然后通过比较每个点之间的距离是否小于等于最大跳数,得出每个节点是否连接,并得到邻接矩阵a
t
,公式表示为:
[0017][0018]
s2.3、正则化化邻接矩阵,首先根据每行的和计算出度矩阵,然后通过矩阵乘法的方式,正则化邻接矩阵,公式为:
[0019]at
=g
t
×at

[0020]
进一步的作为本发明的优选技术方案,所述s3中的创建自定义lstm网络,作为处理数据的第一层网络,在该模型中添加了三个graph_conv_block,以及一个batchnorm2d,该标准化层是为了标准化输入,每层图卷积的空间核大小是根据不同时段空间图的最大跳数和节点数确定,时间核大小固定,激活函数为relu,卷积层作用为提取图矩阵中的重要信息,在forward函数中,对图卷积块得到的数据进行前向计算,并用自定义函数edge_importance_weighting提取满足边权要求的节点信息,得到输出;将输出结果与原输入进行拼接,形成新的矩阵,传递给下层网络。
[0021]
进一步的作为本发明的优选技术方案,所述s4中的创建自定义的transformer模型,先对数据进行空间编码,并在注意力机制中只允许数据在临近节点之间传输;通过循环遍历所有参数,并使用xavier初始化方法初始化其中参数维度大于1的参数;在前向传播中,通过循环迭代,使用gru解码器生成输出和隐藏状态,并将结果存储在对应的数组位置;如果符合teacher_force方法的要求,就将其作为下一个输入;在空间交互过程中,使用message_passing函数处理隐藏状态和位置掩码,得到输出。
[0022]
进一步的作为本发明的优选技术方案,所述s4的具体步骤包括:
[0023]
s4.1、将s3所得的输出表示为h,用transformer自身的编码性质,将每个时间步长t的对象映射为
[0024]
s4.2、对于空间自注意力机制,可以看成是信息在无向图上传递;在时间步长t时的h
ti
(i=1,2...n),分别表示每个对象的查询向量、键向量和值向量,分别为:
[0025][0026][0027][0028]
定义空间图中从车辆i传递到车辆j的消息为t时间步长作用在邻接矩阵a
t
的注意力机制如下:
[0029][0030]
将车辆i的邻车集合表示为s={j|a
t
[i,j]=1},便用空间自注意力机制得到时间步长t时车辆i的多头注意力数据,将数据进行前向计算得到输出;
[0031]
s4.3、利用teacher_forcing机制,使用先验时间步长的输出作为输入,重复空间自注意力机制的过程。
[0032]
进一步的作为本发明的优选技术方案,所述s5将s4获得的输出进行输入,将输入分成几个通道,分别分配给高频分支和低频分支;高频分支中使用卷积和最大池化操作提取高频信息;低频分支中先使用平均池化操作,再使用空间注意力机制处理数据,最后进行上采样;最终,将高频结果和低频结果直接拼接在一起,得到最终输出。
[0033]
进一步的作为本发明的优选技术方案,所述s5的具体步骤包括:
[0034]
s5.1、将s4得到的结果输入另一层带有inception_mixer机制的transformer中,第一个分支x输入经过核大小为1
×
r的深度卷积,然后在进行核大小为r
×
1的深度卷积,r为时间步长t时的图节点个数;第二个分支x输入先进行maxpooling操作,增加数据特征,再进行核大小为r
×
r的深度卷积;这两个分支是进行高频信息提取,公式为:
[0035]
c1=dwcr×1(dwc1×r(x))
[0036]
c2=dwcr×r(maxpool(x));
[0037]
s5.2、第三个分支x首先进行aveagepooling操作,将数据特征缩减,然后使用r
×
r的深度卷积,最后进行upsample操作,调用插值函数将特征补全,公式为:
[0038]
p3=dwcr×r(avgpool(x))
[0039]
之后将特征矩阵连图连接起来过程为:
[0040]
o=layernorm(concat(c1,c2,p3))
[0041]
最后再用空间自注意力机制对获得的序列o和x进行训练,并在两个序列分别乘上查询向量矩阵wq、键向量矩阵wk和值向量矩阵wv,公式如下:
[0042][0043]
最终得到输出。
[0044]
进一步的作为本发明的优选技术方案,所述s6根据s5得到的数据,进行最后一层transformer训练,并用gru解码器获得最终预测位置。
[0045]
进一步的作为本发明的优选技术方案,所述s6的具体步骤包括:
[0046]
s6.1、将s5得到的输出,输入到与s4所述一致的transformer层进行训练,最后选用gru解码器对预测出的位置序列进行解码操作。
[0047]
s6.2、模型构建总损失函数,用预测出的位置序列y
pred
和真实位置序列y
true
来判定预测的准确率,公式为:
[0048][0049]
本发明所述的一种基于transformer和lstm的车辆轨迹预测方法,采用以上技术方案与现有技术相比,具有以下技术效果:
[0050]
本发明通过得到的目标信息和目标本身作为节点构建出空间无向图,将时序性信息转化成图矩阵形式,并保存其时序性。使用重构后的lstm模型处理图矩阵数据,并利用lstm的循环性处理数据的时序性。使用transformer的空间注意力机制从空间图矩阵数据中提取有效特征并训练模型。用inception_mixer模块继续处理高频信息和低频信息,将信息中的有效特征再次提取,保证了本方法的准确性和高效性。该方法可以高效地长时预测周围车辆的轨迹,有效地保障了行车安全和道路安全,可以应用于智能交通系统,提高交通安全性和效率,协助路线优化和路口预测等操作。
附图说明
[0051]
图1为本发明实施例的方法流程示意图;
[0052]
图2为本发明实施例车辆真实轨迹和预测轨迹示意图;
[0053]
图3为本发明实施例预设交通场景示意图。
具体实施方式
[0054]
下面结合附图详细的描述本发明的作进一步的解释说明,以使本领域的技术人员可以更深入地理解本发明并能够实施,但下面通过参考实例仅用于解释本发明,不作为本发明的限定。
[0055]
本发明是一种基于transformer和lstm的车辆轨迹预测方法,方法的流程如附图1所示。下面结合具体实施例进一步阐述本发明的技术方案:
[0056]
s1:预设交通场景如附图3所示,通过车辆交互获取周围车辆数据,在实例中用ngsim数据集的数据代替。将过去的t时段中的所有对象用n表示,初始数据为,分别为车辆id、车辆横向坐标、车辆纵向坐标、车辆速度以及加速度。将原始数据处理成3维张量,并设置一个定量为5,用来表示一个对象在一个时间步长上的坐标(x,y)以及速度(u,v),并将所有的坐标和速度标准化到(-1,1)之间。
[0057]
s2:将预处理过的数据构建为图矩阵结构。
[0058]
s2.1:将num_node设置为100,max_hop设置为1,用np.zeros()方法初始化矩阵,再用for循环将所有边赋值为1。
[0059]
s2.2:用np.linalg.matix_power()方法得到(max_hop+1,100,100)的转移矩阵;使用for循环实现矩阵从远到近的覆盖,将无限大值排除。
[0060]
s2.3:先用np.zeros()函数新建一个空矩阵,然后用for循环将当前节点连接的节点数的倒数赋值到空矩阵中,再用np.dot()方法正则化邻接矩阵。
[0061]
s3:创建自定义lstm网络,作为处理数据的第一层网络。模型加入图卷积模块处理图矩阵数据,模块第一层为batchnorm2d(in_channels),
[0062]
第二层为graph_conv_block(in_channels,64,kernel_size,1),
[0063]
第三层为graph_conv_block(64,64,kernel_size,1),
[0064]
第四层为graph_conv_block(64,64,kernel_size,1)。
[0065]
重构模块输出为(n*t,t,c),输入到lstm中,编码过程中使用的激活函数为tanh,解码过程使用relu和tanh函数。
[0066]
s4:创建含有空间多头自注意力机制的transformer模型。d_model参数设置为
128、d_inner设置为512、n_layers设置为2、n_head设置为4、d_k设置为32、d_v设置32、dropout设置为0.1、n_position设置为16。
[0067]
s4.1:使用transformer_encoder将给每条数据加上空间掩码,encoder参数为上述参数,nn.layernorm()参数给定为60,mutihheadattention()参数为上述参数。
[0068]
s4.2:forword函数的关键参数teacher_forcing_ratio设置为0.0,用if语句判断teacher_forcing_ratio是否满足条件,满足条件则用torch.einsum()对数据的空间掩码求和得到hidden,得到长度为4的元组,最后用decoder函数计算输出,参数设置为上层空间注意力机制最后观察位置和hidden。
[0069]
s5:使用inception_mixer机制对数据进一步提取。
[0070]
s5.1:第一分支先使用卷积核为(1,1)大小的深度卷积,激活函数为relu;再用卷积核大小为(3,3),激活函数为relu的深度卷积。第二分支使用核为(3,3),步长为(1,1)的maxpooling层;再使用卷积核为(1,1),激活函数为relu的深度卷积。
[0071]
s5.2:第三个分支先使用卷积核大小为(3,3),步长为(1,1)的avgpooling层;再使用卷积核为(1,1),激活函数为relu的深度卷积。使用concatenate函数拼接数据。用空间自注意力网络训练数据,网络激活函数为softmax,得到下层输入的掩码。
[0072]
s6:根据s5得到的数据,进行最后一层transformer训练,并用gru解码器获得最终预测位置。
[0073]
s6.1:将s5得到的输出,输入到与s4所述一致的transformer层进行训练,模型参数in_size设置为4,out_size设置为2,掩码个数设置为32,数据用torch.randn((32,4,16,22))重构。gru解码器embedding参数为output_size和hidden_size,激活函数为softmax,得到最终预测的位置序列。用python自带的matplotlib画图工具,画出真实轨迹和预测轨迹,如附图2所示。
[0074]
s6.2:用compute_rmse函数来计算损失,参数pred大小为(n,2,25,120),true大小为(n,2,25,120)。用torch.sum(torch.abs(pred-true)**2)计算损失。
[0075]
本发明将数据构建为空间无向图,为空间自注意力机制铺垫;使用含有图卷积模块的lstm模型处理图矩阵数据;将传统的transformer模型的自注意力机制更新为空间自注意力机制;在主模块后加入inception_mixer机制,并为其搭配自注意力机制。
[0076]
以上所述的具体实施方案,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述仅为本发明的具体实施方案而已,并非用以限定本发明的范围,任何本领域的技术人员,在不脱离本发明的构思和原则的前提下所做出的等同变化与修改,均应属于本发明保护的范围。

技术特征:
1.一种基于transformer和lstm的车辆轨迹预测方法,其特征在于,包括以下步骤:s1:车辆通过与周围车辆的信息交互获取周围车辆的行驶数据,包括前部中心的横向坐标、纵向坐标、速度以及加速度,并将车辆识别号整合到数据中;使用python内置工具将数据预处理为3维张量;s2:将预处理过的数据构建为图数据结构;先用矩阵乘法计算出每两个节点间的跳数,然后根据最大跳数对节点间的关系进行分类,最终得到一个邻接矩阵;s3:创建自定义的lstm模型;使用graph_conv_block处理图矩阵,并使用自定义的edge_importance_weighting函数提取可用的边权,然后重建图矩阵数据;最后,使用自定义的reshape函数对输出和原输入进行合成;s4:创建自定义的transformer模型,其中包含空间注意力机制;使用xavier初始化编码器上层的数据,然后使用自定义的forward函数进行训练,得到输出;s5:使用inception_mixer机制处理数据,提取数据中的高频信息,将得到的高频信息和低频信息拼接到一起,得到新的输出;s6:将数据再次输入带有空间注意力机制的transformer中,使用gru解码器预测位置。2.根据权利要求1所述的一种基于transformer和lstm的车辆轨迹预测方法,其特征在于,s1中通过与周围车辆的信息交互获取周围车辆的行驶数据,设过去的t时段中有n个对象,将原始数据处理成3维张量,并设置一个定量为5,用来表示一个对象在一个时间步长上的坐标(x,y)以及速度(u,v),并将所有的坐标和速度标准化到(-1,1)之间。3.根据权利要求1所述的一种基于transformer和lstm的车辆轨迹预测方法,其特征在于,所述s2的具体步骤包括:s2.1、将预处理后的数据建立成空间图,将空间图的节点数设置为100,最大跳数设置为1,将图表示为g
t
={v
t
,e
t
},节点表示为边表示为s2.2、先通过矩阵乘法的方式,计算出所有节点的传递矩阵,然后通过比较每个点之间的距离是否小于等于最大跳数,得出每个节点是否连接,并得到邻接矩阵a
t
,公式表示为:s2.3、正则化化邻接矩阵,首先根据每行的和计算出度矩阵,然后通过矩阵乘法的方式,正则化邻接矩阵,公式为:a
t
=g
t
×
a
t
。4.根据权利要求1所述的一种基于transformer和lstm的车辆轨迹预测方法,其特征在于,所述s3中的创建自定义lstm网络,作为处理数据的第一层网络,在该模型中添加了三个graph_conv_block,以及一个batchnorm2d,该标准化层是为了标准化输入,每层图卷积的空间核大小是根据不同时段空间图的最大跳数和节点数确定,时间核大小固定,激活函数为relu,卷积层作用为提取图矩阵中的重要信息,在forward函数中,对图卷积块得到的数据进行前向计算,并用自定义函数edge_importance_weighting提取满足边权要求的节点信息,得到输出;将输出结果与原输入进行拼接,形成新的矩阵,传递给下层网络。5.根据权利要求1所述的一种基于transformer和lstm的车辆轨迹预测方法,其特征在于,所述s4中的创建自定义的transformer模型,先对数据进行空间编码,并在注意力机制
中只允许数据在临近节点之间传输;通过循环遍历所有参数,并使用xavier初始化方法初始化其中参数维度大于1的参数;在前向传播中,通过循环迭代,使用gru解码器生成输出和隐藏状态,并将结果存储在对应的数组位置;如果符合teacher_force方法的要求,就将其作为下一个输入;在空间交互过程中,使用message_passing函数处理隐藏状态和位置掩码,得到输出。6.根据权利要求5所述的一种基于transformer和lstm的车辆轨迹预测方法,其特征在于,所述s4的具体步骤包括:s4.1、将s3所得的输出表示为h,用transformer自身的编码性质,将每个时间步长t的对象映射为s4.2、对于空间自注意力机制,可以看成是信息在无向图上传递;在时间步长t时的分别表示每个对象的查询向量、键向量和值向量,分别为:分别表示每个对象的查询向量、键向量和值向量,分别为:分别表示每个对象的查询向量、键向量和值向量,分别为:定义空间图中从车辆i传递到车辆j的消息为t时间步长作用在邻接矩阵a
t
的注意力机制如下:将车辆i的邻车集合表示为s={j|a
t
[i,j]=1},便用空间自注意力机制得到时间步长t时车辆i的多头注意力数据,将数据进行前向计算得到输出;s4.3、利用teacher_forcing机制,使用先验时间步长的输出作为输入,重复空间自注意力机制的过程。7.根据权利要求6所述的一种基于transformer和lstm的车辆轨迹预测方法,其特征在于,所述s5将s4获得的输出进行输入,将输入分成几个通道,分别分配给高频分支和低频分支;高频分支中使用卷积和最大池化操作提取高频信息;低频分支中先使用平均池化操作,再使用空间注意力机制处理数据,最后进行上采样;最终,将高频结果和低频结果直接拼接在一起,得到最终输出。8.根据权利要求7所述的一种基于transformer和lstm的车辆轨迹预测方法,其特征在于,所述s5的具体步骤包括:s5.1、将s4得到的结果输入另一层带有inception_mixer机制的transformer中,第一个分支x输入经过核大小为1
×
r的深度卷积,然后在进行核大小为r
×
1的深度卷积,r为时间步长t时的图节点个数;第二个分支x输入先进行maxpooling操作,增加数据特征,再进行核大小为r
×
r的深度卷积;这两个分支是进行高频信息提取,公式为:c1=dwc
r
×1(dwc1×
r
(x))c2=dwc
r
×
r
(maxpool(x));s5.2、第三个分支x首先进行aveagepooling操作,将数据特征缩减,然后使用r
×
r的深度卷积,最后进行upsample操作,调用插值函数将特征补全,公式为:
p3=dwc
r
×
r
(avgpool(x))之后将特征矩阵连图连接起来过程为:o=layernorm(concat(c1,c2,p3))最后再用空间自注意力机制对获得的序列o和x进行训练,并在两个序列分别乘上查询向量矩阵w
q
、键向量矩阵w
k
和值向量矩阵w
v
,公式如下:最终得到输出。9.根据权利要求8所述的一种基于transformer和lstm的车辆轨迹预测方法,其特征在于,所述s6根据s5得到的数据,进行最后一层transformer训练,并用gru解码器获得最终预测位置。10.根据权利要求9所述的一种基于transformer和lstm的车辆轨迹预测方法,其特征在于,所述s6的具体步骤包括:s6.1、将s5得到的输出,输入到与s4所述一致的transformer层进行训练,最后选用gru解码器对预测出的位置序列进行解码操作。s6.2、模型构建总损失函数,用预测出的位置序列y
pred
和真实位置序列y
true
来判定预测的准确率,公式为:

技术总结
本发明属于自动辅助驾驶技术领域,具体涉及一种无车道线道路环境下的自适应虚拟车道线绘制方法。本发明通过得到的目标信息和目标本身作为节点构建出空间无向图,将时序性信息转化成图矩阵形式,并保存其时序性。使用重构后的LSTM模型处理图矩阵数据,并利用LSTM的循环性处理数据的时序性。使用Transformer的空间注意力机制从空间图矩阵数据中提取有效特征并训练模型。用inception_mixer模块继续处理高频信息和低频信息,将信息中的有效特征再次提取,保证了本方法的准确性和高效性。该方法可以高效地长时预测周围车辆的轨迹,有效地保障了行车安全和道路安全,可以应用于智能交通系统,提高交通安全性和效率,协助路线优化和路口预测等操作。和路口预测等操作。和路口预测等操作。


技术研发人员:程邓阳 顾翔 钱聪 杜超楠 张一迪 王进
受保护的技术使用者:南通大学
技术研发日:2023.03.23
技术公布日:2023/7/6
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐