一种基于注意力机制的车辆轨迹时空重构方法及系统

未命名 08-15 阅读:101 评论:0


1.本发明属于自动车辆识别轨迹的时空重构技术领域,涉及一种基于注意力机制的车辆轨迹时空重构方法及系统。


背景技术:

2.自动车辆识别技术(automatic vehicle identification,avi)被广泛应用于城市交通监测中,其准确而全面的轨迹数据极大地促进了智能交通系统的发展与应用。相比较于传统轨迹数据,avi数据的最大优点是其能够覆盖城市交通中几乎所有的出行车辆,同时,它还有着更快速的识别速度和更准确的识别能力。然而,受经济和环境成本的约束,城市中avi监测点的布设十分稀疏且分布不均匀,导致avi轨迹内的时空位置比较稀疏,这给轨迹内部带来了极大的不确定性,这种不确定性在很大程度上损害了avi轨迹的使用价值,因此,重构稀疏的avi轨迹为细粒度的轨迹,已成为avi轨迹挖掘的一个关键问题,具有重要的理论与现实意义。
3.相比较于传统的gps轨迹,自动车辆识别数据具有很多优点。首先,车辆自动识别数据精度高,这个精度高包含两个方面,一是由于车辆识别数据是在特定的位置进行采集,因此排除了轨迹中位置点上的不确定性。二是能十分准确的识别车辆并记录车辆的通行时间,尤其是基于射频识别技术(rfid)的自动车辆识别系统,能够对车辆达到几乎100%的识别精度。其次,自动车辆识别数据的数据量大,这个数据量大体现在三个方面,一是自动车辆识别系统可识别城市中所有类型的车辆,包括私家车、出租车、网约车、货车等,这是自动车辆识别系统最大的优点吗,能够涵盖几乎所有的出行车辆。二是车辆识别技术可以应用于多种场景,如收费站、城市道路等。第三,信息丰富。车辆识别数据能够获取更多的信息,例如车辆id,车辆类型、车辆用途等。因此车辆自动识别系统的数据量远超gps所能涵盖的场景和车辆。
4.但是相对的,车辆自动识别数据也具有一些缺点,其中最大的一点便是自动车辆识别数据采样率很低,因为车辆自动识别设备不能实时记录车辆位置,它只能在车辆经过采集点时记录车辆信息,而由于环境和经济等原因的限制,城市路网中的采集点往往布设得比较稀疏,两个相邻的采集点之间的距离短则几百米,长则数公里,这就直接导致基于车辆自动识别数据的车辆轨迹十分稀疏。而已有的研究告诉我们,稀疏的车辆轨迹会使得轨迹中的细节丢失,并对后续的研究与应用造成严重影响,因此,要想自动车辆识别轨迹在智能交通系统的建设中充分发挥其优势与作用,必须对稀疏的自动车辆识别轨迹进行重构。


技术实现要素:

5.有鉴于此,本发明的目的在于提供一种基于注意力机制的车辆轨迹时空重构方法及系统,从而准确地重构车辆的时空轨迹。
6.为达到上述目的,本发明提供如下技术方案:
7.一种基于注意力机制的车辆轨迹时空重构方法,该方法包括以下步骤:s1、针对当
前轨迹的空间轨迹,将其进行轨迹嵌入表达;s2、对多种历史轨迹进行嵌入表达;s3、采用一个基于注意力机制的时间序列预测模型,预测当前轨迹所对应的时间序列,并组合为时空轨迹;s4、利用真实数据训练整体模型,并在测试集中进行轨迹重构,最后根据预测结果和实际数据,对预测误差进行评价分析。
8.进一步,在步骤s1中,所述针对当前轨迹的空间轨迹,将其进行轨迹嵌入表达,具体包括:对当前轨迹的处理分为两部分,即对当前轨迹进行空间重构和对重构后的空间轨迹进行轨迹嵌入;对于一条行驶在相邻点对(ca,cb)之中的轨迹[(asa,ata),(asb,asb)],依据其空间轨迹重构结果,其空间轨迹表示为一个m维向量s=[s1,s2,

,sm],其中si表示空间轨迹中的第i个空间点;
[0009]
对当前轨迹,使用一个时间状态向量s
t
达其行程总时间特征,将行程总时间(at
a-atb)扩充为一个m维向量(与空间向量s同等维度),s
t
的计算方法如下所示:
[0010]st
=(at
b-ata)
×s[0011]
为了表示车辆出发时间对时空关系的影响,使用一个周期向量来表示车辆行驶周期,将一天的时间划分为c个时间片,然后使用cs来表示该行程的出发时间ata处于一天内的时间片位置,则该行程的周期向量可以表示为sc,且可以通过以下公式求得:
[0012][0013]
根据以上所提及的当前轨迹嵌入方式,嵌入后的当前轨迹c可表示为:
[0014]
c=concat(s,s
t
,sc)。
[0015]
进一步,在步骤s2中,对多种历史轨迹进行嵌入表达,对于一对给定的相邻采集点对(ca,cb)之间的一条确定的路径,其历史轨迹集合表示为th={tr1,tr2,

,trn},考虑到其中的一条轨迹tri,其内部时空位置的密度远低于路径空间点的密度,使用轨迹聚合方法将所有的历史轨迹聚合为一条完整的时空轨迹,具体包括:
[0016]
s21、历史轨迹聚合:
[0017]
通过将轨迹中的时空位置按照时间片分开,然后取每个时间片内的最大概率的位置作为聚合后的轨迹在该时间片上的位置。本发明的方法与之类似,不同点在于本发明将路径内的空间位置按照空间片切分而不是按照时间片切分,而后对于一个确定的空间片上,找到所有在该时间片上的时间点,使用这些轨迹点的平均时间作为聚合后轨迹在该空间片上的时间;因此,对历史轨迹集合th,聚合后的轨迹可表示如下:
[0018][0019]
其中tri表示历史轨迹集合th中的第i条轨迹,n表示轨迹集合中的轨迹数量,

表示轨迹聚合操作,具体来说,针对一个固定位置的点,找到所有经过该位置的时间,使用所用经过该位置的时间的平均值作为该点的时间;对每一个位置点聚合时间后,将位置点按位置顺序排序,即得到聚合后的轨迹;
[0020]
s22、同周期的历史轨迹聚合:
[0021]
对同周期的历史轨迹的定义如下:给定一个相邻点对(ca,cb)及其之间的一条路径内的历史轨迹集合th={tr1,tr2,

,trn},对于一条待重构的轨迹[(asa,ata),(asb,atb)],
找到所有与该轨迹出发时间ata周期相同的历史轨迹,这些轨迹的集合即同周期的历史轨迹,表示为tc={tr1,tr2,

,trm},其中m表示集合中的轨迹数量,tri表示集合中的一条轨迹,对该同周期的历史轨迹进行聚合,操作公式如下所示:
[0022][0023]
s23、同状态的历史轨迹聚合:
[0024]
对同状态的历史轨迹的定义如下:给定一个相邻点对(ca,cb)及其之间的一条路径内的历史轨迹集合th={tr1,tr2,

,trn};对于一条待重构的轨迹[(asa,ata),(asb,atb)],首先根据行程时间(at
b-ata)计算出该行程的通行状态,然后对于th中的所有轨迹,根据其行程时间计算出每一条轨迹的通行状态,将所有与待重构轨迹相同状态的轨迹集合,表示为ts={tr1,tr2,

,tro},其中o表示集合中的轨迹数量,tri表示集合中的一条轨迹,对该同状态的历史轨迹进行聚合,操作如以下公式所示,其中

所表示轨迹聚合:
[0025][0026]
s24、历史轨迹融合:
[0027]
对已聚合的三种历史轨迹,为了让模型能捕获到轨迹内部的时空关系以及轨迹之间的时空关系,使用一个拼接操作将轨迹融合,并作为模型的历史轨迹输入h,具体操作如下述所示:
[0028][0029]
由上述使用的三种历史轨迹可知,在历史轨迹集合中是包含有同周期的历史轨迹集合和同状态的历史轨迹集合的,而之所以还要将其单独提取出来,是为了在神经网络中加强这两种轨迹的权重,因为待重构的轨迹可能与这两种轨迹有着更高的相似性。
[0030]
进一步,在步骤s3中,为了重构当前空间轨迹的时间序列,考虑到从历史轨迹中学习轨迹内的时空关系,即模型的输入是历史的时空轨迹和当前的空间轨迹,输出是当前空间轨迹对应的时间序列;针对该时间序列生成任务,采用一个编码器-解码器架构,其中,编码器负责处理历史的时空轨迹,模型使用多头自注意力机制对历史的时空轨迹编码,提取出历史轨迹中的时空关系;在解码器中,输入空间轨迹,依然使用多头自注意力机制提取其中的空间特征,并在其中使用交叉注意力(cross attention)联合编码器与解码器,以此从编码器的输出中学习轨迹内的时空关系;在模型的最后使用一个长短期记忆网络来捕捉轨迹之间的时间关系,最后输出所需要的时间序列。
[0031]
进一步,所述模型分为编码器、解码器两个部分,编码器负责对历史轨迹进行编码,解码器负责对处理当前轨迹并联合编码器的输出生成时间序列,具体包括:
[0032]
编码器:编码器的输入为历史轨迹h,为了让编码器能更好地提取其中的特征,使用一个线性层对该历史轨迹进行嵌入表达,将其映射至更高维的隐空间中:
[0033]hh
=linear(h)
[0034]
其中hh为线性层的输出;在时空轨迹中,其时空关系不仅与该轨迹的状态相关,还与其所处的时间周期相关,并且其时空关系与其通过该路径的总时间高度相关,因此,使用多头注意力机制来捕获其时空关系,首先将输入序列hh映射到qh,kh和vh三个子空间:
[0035]
qh=w
qhh
[0036]
kh=w
khh
[0037]vh
=wvhh[0038]
其中wq、wk、wv分别为q,k,v的权重矩阵,即将hh映射至q,k,v三个隐空间;对此,多头自注意力的操作被定义为:
[0039][0040]
multihead(q,k,v)=[head1,head2,...,headh]wo[0041]
headi=attention(qw
iq
,kw
ik
,vw
iv
)
[0042]
其中h为注意力头的数量,wo是最终输出的权重矩阵;在多头自注意力之后,模型接着使用了残差连接和层归一化层,具体公式如下:
[0043]
layernorm(x+multiheadattention(x))
[0044]
其中残差连接是指x+multiheadattention(x),x指的是多头自注意力的输入;layernorm指层归一化,它会将每一层的神经元的输入的均值和方差都转换统一,编码器部分中的多头自注意力和残差连接&层归一化模块重复l次,上一层的输出作为下一层的输入,直到编码器最后一层的输出,再使用注意力公式将其最后一层的输出映射至k、v两个隐空间上,供解码器查询;
[0045]
解码器:解码器的输入为当前轨迹c,当前轨迹c中包含了当前轨迹的空间信息、状态信息、周期信息和行程时间信息;为了让解码器更容易提取其中的信息,使用一个线性层对当前轨迹c进行嵌入表达,以此将其映射至更高维度的隐空间中,具体操作如下:
[0046]ch
=linear(c)
[0047]ch
为线性层的输出;在对轨迹进行嵌入表达之后,解码器中使用了双层自注意力机制来捕捉轨迹内和轨迹间的时空关系,在第一层的自注意力模块和残差连接&层归一化中,对空间轨迹的处理与编码器中的自注意力机制一致;
[0048]
在第二层多头自注意力模块中,使用交叉注意力机制(cross attention),目的是让编码器中的输出,根据解码器中的输入不同,最终输出不同的值。在此层中,将编码器的最终输出映射到k,v两个隐空间中,并将解码器上一层的输出映射到隐空间q中,然后对映射之后的q,k,v做多头自注意力运算;之后针对交叉注意力机制的输出,为了让解决模型训练中的问题和让模型更快地收敛,依然使用一个残差连接&层归一化处理交叉注意力机制的输出;与此同时,编码器也使用多层结构,上一层解码器的输出作为下一层解码器的输入,直至最后一层的输出。
[0049]
最后,为了让模型能捕捉到轨迹之间的时间及时空关系,使用一个长短期记忆网络来处理解码器的输出,在此之前,为了让lstm能更好的捕捉到轨迹间的时间关系,将解码器的输出与原始的空间轨迹合并,即连接起来。最终lstm的输出即所需要的时间序列:
[0050]
t=lstm(concat(o
dec
,c))
[0051]
其中t表示最终生成的时间序列,o
dec
表示解码器的输出,c表示嵌入后的空间轨迹;
[0052]
在生成时间序列后,只需将其与未嵌入的空间轨迹按位拼接起来,即可得到重构后的时空轨迹。
[0053]
本发明的有益效果在于:
[0054]
本发明提供的基于注意力机制的车辆轨迹时空重构方法及系统,能够准确高效地
重构车辆的时空轨迹,相对于现有的技术方案来说,本发明技术方案具有更高的准确率和效率,本方案具有广阔的应用前景。
[0055]
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
[0056]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
[0057]
图1为本发明的模型图;
[0058]
图2为本发明的时间序列预测模块图;
[0059]
图3为本发明的实验效果图。
具体实施方式
[0060]
下面结合附图对本发明技术方案进行详细说明。
[0061]
图1为本发明的模型图,如图所示,本发明提供的一种基于注意力机制的车辆轨迹时空重构方法,主要包括以下步骤:s1、针对当前轨迹的空间轨迹,将其进行轨迹嵌入表达;s2、对多种历史轨迹进行嵌入表达;s3、采用一个基于注意力机制的时间序列预测模型,预测当前轨迹所对应的时间序列,并组合为时空轨迹;s4、利用真实数据训练整体模型,并在测试集中进行轨迹重构,最后根据预测结果和实际数据,对预测误差进行评价分析。
[0062]
在本实施例中,步骤s1针对当前轨迹的空间轨迹,将其进行轨迹嵌入表达。在本发明的模型中,对当前轨迹的处理是非常重要的一块,因为原始的当前轨迹中仅包含起始点和结束点的时空位置信息,想要依靠这两个点的信息生成轨迹中间无数点的信息是十分困难的,因此,采取先重构空间轨迹,再根据空间轨迹重构时空轨迹的做法,因此,对当前轨迹的处理分为两部分,即对当前轨迹进行空间重构和对重构后的空间轨迹进行轨迹嵌入;对于一条行驶在相邻点对(ca,cb)之中的轨迹[(asa,ata),(asb,atb)],依据其空间轨迹重构结果,其空间轨迹表示为一个m维向量s=[s1,s2,

,sm],其中si表示空间轨迹中的第i个空间点;
[0063]
对当前轨迹,使用一个时间状态向量s
t
达其行程总时间特征,将行程总时间(at
a-atb)扩充为一个m维向量(与空间向量s同等维度),s
t
的计算方法如下所示:
[0064]st
=(at
b-ata)
×s[0065]
为了表示车辆出发时间对时空关系的影响,使用一个周期向量来表示车辆行驶周期,将一天的时间划分为c个时间片,然后使用cs来表示该行程的出发时间ata处于一天内的时间片位置,则该行程的周期向量可以表示为sc,且可以通过以下公式求得:
[0066][0067]
根据以上所提及的当前轨迹嵌入方式,嵌入后的当前轨迹c可表示为:
[0068]
c=concat(s,s
t
,sc)。
[0069]
在步骤s2中,对多种历史轨迹进行嵌入表达,对于一对给定的相邻采集点对(ca,cb)之间的一条确定的路径,其历史轨迹集合表示为th={tr1,tr2,

,trn},考虑到其中的一条轨迹tri,其内部时空位置的密度远低于路径空间点的密度,使用轨迹聚合方法将所有的历史轨迹聚合为一条完整的时空轨迹,具体包括:
[0070]
s21、历史轨迹聚合:
[0071]
通过将轨迹中的时空位置按照时间片分开,然后取每个时间片内的最大概率的位置作为聚合后的轨迹在该时间片上的位置。本发明的方法与之类似,不同点在于本发明将路径内的空间位置按照空间片切分而不是按照时间片切分,而后对于一个确定的空间片上,找到所有在该时间片上的时间点,使用这些轨迹点的平均时间作为聚合后轨迹在该空间片上的时间;因此,对历史轨迹集合th,聚合后的轨迹可表示如下:
[0072][0073]
其中tri表示历史轨迹集合th中的第i条轨迹,n表示轨迹集合中的轨迹数量,

表示轨迹聚合操作,具体来说,针对一个固定位置的点,找到所有经过该位置的时间,使用所用经过该位置的时间的平均值作为该点的时间;对每一个位置点聚合时间后,将位置点按位置顺序排序,即得到聚合后的轨迹;
[0074]
s22、同周期的历史轨迹聚合:
[0075]
考虑到路径上轨迹的周期性对车辆运动规律的影响,从历史轨迹中提取出同周期的历史轨迹,并将其聚合后的轨迹也作为模型的输入;对同周期的历史轨迹的定义如下:给定一个相邻点对(ca,cb)及其之间的一条路径内的历史轨迹集合th={tr1,tr2,

,trn},对于一条待重构的轨迹[(asa,ata),(asb,atb)],找到所有与该轨迹出发时间ata周期相同的历史轨迹,这些轨迹的集合即同周期的历史轨迹,表示为tc={tr1,tr2,

,trm},其中m表示集合中的轨迹数量,tri表示集合中的一条轨迹,对该同周期的历史轨迹进行聚合,操作公式如下所示:
[0076][0077]
s23、同状态的历史轨迹聚合:
[0078]
考虑到车辆在道路上运动时的规律受到通行状态(快速通过/拥堵)的影响,可以根据车辆在两相邻点点间运动的时间计算出车辆的通行状态,即拥堵或者快速通过,当车辆的通行时间大于平均时间的1.5倍时,认为该行程拥堵;对同状态的历史轨迹的定义如下:给定一个相邻点对(ca,cb)及其之间的一条路径内的历史轨迹集合th={tr1,tr2,

,trn};对于一条待重构的轨迹[(asa,ata),(asb,atb)],首先根据行程时间(at
b-ata)计算出该行程的通行状态,然后对于th中的所有轨迹,根据其行程时间计算出每一条轨迹的通行状态,将所有与待重构轨迹相同状态的轨迹集合,表示为ts={tr1,tr2,

,tro},其中o表示集合中的轨迹数量,tri表示集合中的一条轨迹,对该同状态的历史轨迹进行聚合,操作如以下公式所示,其中

所表示轨迹聚合:
[0079][0080]
s24、历史轨迹融合:
[0081]
对已聚合的三种历史轨迹,为了让模型能捕获到轨迹内部的时空关系以及轨迹之
间的时空关系,使用一个拼接操作将轨迹融合,并作为模型的历史轨迹输入h,具体操作如下述所示:
[0082][0083]
由上述使用的三种历史轨迹可知,在历史轨迹集合中是包含有同周期的历史轨迹集合和同状态的历史轨迹集合的,而之所以还要将其单独提取出来,是为了在神经网络中加强这两种轨迹的权重,因为待重构的轨迹可能与这两种轨迹有着更高的相似性。
[0084]
在步骤s3中,模型中的时间序列生成模块,是一种序列到序列模式,即输入是一个序列,输出是另外一个序列;在本模型中,为了重构当前空间轨迹的时间序列,考虑到从历史轨迹中学习轨迹内的时空关系,即模型的输入是历史的时空轨迹和当前的空间轨迹,输出是当前空间轨迹对应的时间序列;针对该时间序列生成任务,采用一个编码器-解码器架构,其中,编码器负责处理历史的时空轨迹,模型使用多头自注意力机制对历史的时空轨迹编码,提取出历史轨迹中的时空关系;在解码器中,输入空间轨迹,依然使用多头自注意力机制提取其中的空间特征,并在其中使用交叉注意力(cross attention)联合编码器与解码器,以此从编码器的输出中学习轨迹内的时空关系;在模型的最后使用一个长短期记忆网络来捕捉轨迹之间的时间关系,最后输出所需要的时间序列。图2为本发明的时间序列预测模块图。
[0085]
所述模型分为编码器、解码器两个部分,编码器负责对历史轨迹进行编码,解码器负责对处理当前轨迹并联合编码器的输出生成时间序列,具体包括:
[0086]
编码器:编码器的输入为历史轨迹h,为了让编码器能更好地提取其中的特征,使用一个线性层对该历史轨迹进行嵌入表达,将其映射至更高维的隐空间中:
[0087]hh
=linear(h)
[0088]
其中hh为线性层的输出;在时空轨迹中,其时空关系不仅与该轨迹的状态相关,还与其所处的时间周期相关,并且其时空关系与其通过该路径的总时间高度相关,因此,使用多头注意力机制来捕获其时空关系,首先将输入序列hh映射到qh,kh和vh三个子空间:
[0089]
qh=w
qhh
[0090]
kh=w
khh
[0091]vh
=wvhh[0092]
其中wq、wk、wv分别为q,k,v的权重矩阵,即将hh映射至q,k,v三个隐空间;对此,多头自注意力的操作被定义为:
[0093][0094]
multihead(q,k,v)=[head1,head2,...,headh]wo[0095]
headi=attention(qw
iq
,kw
ik
,vw
iv
)
[0096]
其中h为注意力头的数量,wo是最终输出的权重矩阵;多个注意力头创造出了多个子空间,将输入数据映射到多个子空间上,然后联合关注这些子空间的表征信息,以此有效捕捉轨迹中的时空关系信息;
[0097]
在多头自注意力之后,模型接着使用了残差连接和层归一化层,目的是解决多层网络训练问题和加快收敛。具体公式如下:
[0098]
layernorm(x+multiheadattention(x))
[0099]
其中残差连接是指x+multiheadattention(x),x指的是多头自注意力的输入;残差连接这种做法在残差网络中经常用到,它可以让网络只关注当前差异的部分,通常用于解决多层网络训练的问题,在此使用该层来解决模型训练的问题;layernorm指层归一化,它会将每一层的神经元的输入的均值和方差都转换统一,这样可以加快收敛;编码器部分中的多头自注意力和残差连接&层归一化模块重复l次,上一层的输出作为下一层的输入,直到编码器最后一层的输出,再使用注意力公式将其最后一层的输出映射至k、v两个隐空间上,供解码器查询;
[0100]
解码器:解码器的输入为当前轨迹c,当前轨迹c中包含了当前轨迹的空间信息、状态信息、周期信息和行程时间信息;为了让解码器更容易提取其中的信息,使用一个线性层对当前轨迹c进行嵌入表达,以此将其映射至更高维度的隐空间中,具体操作如下:
[0101]ch
=linear(c)
[0102]ch
为线性层的输出;在对轨迹进行嵌入表达之后,解码器中使用了双层自注意力机制来捕捉轨迹内和轨迹间的时空关系,在第一层的自注意力模块和残差连接&层归一化中,对空间轨迹的处理与编码器中的自注意力机制一致;
[0103]
在第二层多头自注意力模块中,使用交叉注意力机制(cross attention),目的是让编码器中的输出,根据解码器中的输入不同,最终输出不同的值。在此层中,将编码器的最终输出映射到k,v两个隐空间中,并将解码器上一层的输出映射到隐空间q中,然后对映射之后的q,k,v做多头自注意力运算;之后针对交叉注意力机制的输出,为了让解决模型训练中的问题和让模型更快地收敛,依然使用一个残差连接&层归一化处理交叉注意力机制的输出;与此同时,编码器也使用多层结构,上一层解码器的输出作为下一层解码器的输入,直至最后一层的输出。
[0104]
最后,为了让模型能捕捉到轨迹之间的时间及时空关系,使用一个长短期记忆网络来处理解码器的输出,在此之前,为了让lstm能更好的捕捉到轨迹间的时间关系,将解码器的输出与原始的空间轨迹合并,即连接起来。最终lstm的输出即所需要的时间序列:
[0105]
t=lstm(concat(o
dec
,c))
[0106]
其中t表示最终生成的时间序列,o
dec
表示解码器的输出,c表示嵌入后的空间轨迹;
[0107]
在生成时间序列后,只需将其与未嵌入的空间轨迹按位拼接起来,即可得到重构后的时空轨迹。
[0108]
本实施例实验结果:
[0109]
实验数据集:使用重庆市的真实自动车辆识别数据集,数据集包含重庆市主城区中的330个rfid监测点,这些监测点在空间上分布很不均匀,其相邻关系可以从其轨迹数据中得知,两个相邻的检测点之间的距离短则几百米,长则数公里,其间道路结构复杂,相邻点间的轨迹不确定性较大。另一个数据集包含重庆市15000多辆出租车在2021年10月(2021.10.1-2021.10.31)一个月的gps数据,重庆市出租车gps设备每10-15秒记录一次出租车位置,这一个月中共有大约15亿条出租车记录,提取出租车的行程后共有约1200万条载客行程,用于训练模型。
[0110]
评价指标:
[0111]
时空线性结合距离(spatiotemporal linear combine distance,stlc)。时空线性组合距离的思路是将一条轨迹拆开为一个时间序列和一个空间序列,并在与另外一条轨迹计算距离时分别考虑时间序列之间的距离和空间序列之间的距离,然后按照一定的权值将时间距离和空间距离组合起来,作为总体的轨迹距离。
[0112]
时空最长公共子序列(spatiotemporal longest common sub-sequence,stlcss)。与最长公共子序列(lcss)类似,不过在时空最长公共子序列中,额外考虑了时间因素。原本只设定了一个空间误差范围,在考虑空间因素后,还要额外考虑点的时间误差范围,需要时间误差和空间误差同时匹配才能认为点匹配
[0113]
实验结果:
[0114]
图3为本发明的实验效果图,由于avi轨迹极度稀疏的特性,在本发明的模型中,将轨迹的时空重构分为了两步,先重构轨迹的空间特征,再根据轨迹的空间特征重构轨迹的时间属性,因此,在对比实验中,方法也分为两部分,即轨迹的空间重构方法和轨迹的时间预测方法。具体方法如下所示:
[0115]
空间重构方法主要包含以下三个:rick、mpr以及hmm。
[0116]
时间预测方法主要包含以下几个,其中history和linear属于传统基于统计学习的方法,rnn和lstm属于使用深度学习的方法。
[0117]
线性模型(linear):线性模型是一种简单的基于统计的学习方法,利用线性函数拟合出轨迹中时空之间的关系,即对于每一个的空间点,认为其时间与空间之间存在一个线性的关系,从历史数据中学习该线性关系,并以此线性关系预测每一空间点的时间。
[0118]
历史最高频访问(history):历史最高频访问是一种简单的基于历史数据的预测方法,即对于任意一个固定的空间点,使用访问该空间点最高频的时间点作为经过该空间点的时间。
[0119]
循环神经网络(rnn):循环神经网络使用一个神经网络对同一轨迹中的时空关系进行建模,即输入一条轨迹的空间序列,输出该轨迹的时间序列,使用循环神经网络对轨迹进行建模可以有效提取出轨迹内不同位置之间的时空关系。
[0120]
长短期记忆网络(lstm):长短期记忆网络是循环神经网络的一种变体,但是不同的是,相比较于循环神经网络,长短期记忆网络的优点就在于能有效地保留轨迹序列中的长期依赖,在序列较长时会比循环神经网络效果更好。
[0121]
表1
[0122]
[0123][0124]
实验结果如表1所示,对实验结果进行进一步分析,可以发现,当使用固定时间预测方法,分别分析不同的空间重构方法对时空重构的影响时,从实验结果中可以得知,相比较于mpr和hmm,rick方法在实验中表现得更好,而mpr也略微优于hmm方法。相比较于这些传统方法,本发明的效果则更优,且有着不小的提升。而当固定空间重构方法,分别使用不同的时间预测方法来进行轨迹重构时,可以发现,在传统方法中,history方法的效果要略微优于linear方法,而在此基础上,基于深度学习且考虑到了轨迹内时空规律的方法rnn和lstm则要优于history和linear方法,且优于lstm能捕获轨迹内长期依赖的性质,lstm的实验效果要稍好于rnn。而本发明所提出的时间预测方法,因为其不仅能考虑到轨迹内的时空依赖,还能从历史轨迹的轨迹中学习时空关系,因此本发明方法的实验效果最佳。
[0125]
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

技术特征:
1.一种基于注意力机制的车辆轨迹时空重构方法,其特征在于:该方法包括以下步骤:s1、针对当前轨迹的空间轨迹,将其进行轨迹嵌入表达;s2、对多种历史轨迹进行嵌入表达;s3、采用一个基于注意力机制的时间序列预测模型,预测当前轨迹所对应的时间序列,并组合为时空轨迹;s4、利用真实数据训练整体模型,并在测试集中进行轨迹重构,最后根据预测结果和实际数据,对预测误差进行评价分析。2.根据权利要求1所述的一种基于注意力机制的车辆轨迹时空重构方法,其特征在于:在步骤s1中,所述针对当前轨迹的空间轨迹,将其进行轨迹嵌入表达,具体包括:对当前轨迹的处理分为两部分,即对当前轨迹进行空间重构和对重构后的空间轨迹进行轨迹嵌入;对于一条行驶在相邻点对(c
a
,c
b
)之中的轨迹[(as
a
,at
a
),(as
b
,at
b
)],依据其空间轨迹重构结果,其空间轨迹表示为一个m维向量s=[s1,s2,...,s
m
],其中s
i
表示空间轨迹中的第i个空间点;对当前轨迹,使用一个时间状态向量s
t
达其行程总时间特征,将行程总时间(at
a-at
b
)扩充为一个m维向量,s
t
的计算方法如下所示:s
t
=(at
b-at
a
)
×
s为了表示车辆出发时间对时空关系的影响,使用一个周期向量来表示车辆行驶周期,将一天的时间划分为c个时间片,然后使用c
s
来表示该行程的出发时间at
a
处于一天内的时间片位置,则该行程的周期向量可以表示为s
c
,且可以通过以下公式求得:根据以上所提及的当前轨迹嵌入方式,嵌入后的当前轨迹c可表示为:c=concat(s,s
t
,s
c
)。3.根据权利要求2所述的一种基于注意力机制的车辆轨迹时空重构方法,其特征在于:在步骤s2中,对多种历史轨迹进行嵌入表达,对于一对给定的相邻采集点对(c
a
,c
b
)之间的一条确定的路径,其历史轨迹集合表示为t
h
={tr1,tr2,...,tr
n
},考虑到其中的一条轨迹tr
i
,其内部时空位置的密度远低于路径空间点的密度,使用轨迹聚合方法将所有的历史轨迹聚合为一条完整的时空轨迹,具体包括:s21、历史轨迹聚合:将路径内的空间位置按照空间片切分,而后对于一个确定的空间片上,找到所有在该时间片上的时间点,使用这些轨迹点的平均时间作为聚合后轨迹在该空间片上的时间;因此,对历史轨迹集合t
h
,聚合后的轨迹可表示如下:其中tr
i
表示历史轨迹集合t
h
中的第i条轨迹,n表示轨迹集合中的轨迹数量,表示轨迹聚合操作,具体来说,针对一个固定位置的点,找到所有经过该位置的时间,使用所用经过该位置的时间的平均值作为该点的时间;对每一个位置点聚合时间后,将位置点按位置顺序排序,即得到聚合后的轨迹;s22、同周期的历史轨迹聚合:
对同周期的历史轨迹的定义如下:给定一个相邻点对(c
a
,c
b
)及其之间的一条路径内的历史轨迹集合t
h
={tr1,tr2,...,tr
n
},对于一条待重构的轨迹[(as
a
,at
a
),(as
b
,at
b
)],找到所有与该轨迹出发时间at
a
周期相同的历史轨迹,这些轨迹的集合即同周期的历史轨迹,表示为t
c
={tr1,tr2,...,tr
m
},其中m表示集合中的轨迹数量,tr
i
表示集合中的一条轨迹,对该同周期的历史轨迹进行聚合,操作公式如下所示:s23、同状态的历史轨迹聚合:对同状态的历史轨迹的定义如下:给定一个相邻点对(c
a
,c
b
)及其之间的一条路径内的历史轨迹集合t
h
={tr1,tr2,...,tr
n
};对于一条待重构的轨迹[(as
a
,at
a
),(as
b
,at
b
)],首先根据行程时间(at
b-at
a
)计算出该行程的通行状态,然后对于t
h
中的所有轨迹,根据其行程时间计算出每一条轨迹的通行状态,将所有与待重构轨迹相同状态的轨迹集合,表示为t
s
={tr1,tr2,...,tr
o
},其中o表示集合中的轨迹数量,tr
i
表示集合中的一条轨迹,对该同状态的历史轨迹进行聚合,操作如以下公式所示,其中所表示轨迹聚合:s24、历史轨迹融合:对已聚合的三种历史轨迹,为了让模型能捕获到轨迹内部的时空关系以及轨迹之间的时空关系,使用一个拼接操作将轨迹融合,并作为模型的历史轨迹输入h,具体操作如下述所示:由上述使用的三种历史轨迹可知,在历史轨迹集合中是包含有同周期的历史轨迹集合和同状态的历史轨迹集合的,而之所以还要将其单独提取出来,是为了在神经网络中加强这两种轨迹的权重,因为待重构的轨迹可能与这两种轨迹有着更高的相似性。4.根据权利要求3所述的一种基于注意力机制的车辆轨迹时空重构方法,其特征在于:在步骤s3中,为了重构当前空间轨迹的时间序列,考虑到从历史轨迹中学习轨迹内的时空关系,即模型的输入是历史的时空轨迹和当前的空间轨迹,输出是当前空间轨迹对应的时间序列;针对该时间序列生成任务,采用一个编码器-解码器架构,其中,编码器负责处理历史的时空轨迹,模型使用多头自注意力机制对历史的时空轨迹编码,提取出历史轨迹中的时空关系;在解码器中,输入空间轨迹,依然使用多头自注意力机制提取其中的空间特征,并在其中使用交叉注意力联合编码器与解码器,以此从编码器的输出中学习轨迹内的时空关系;在模型的最后使用一个长短期记忆网络来捕捉轨迹之间的时间关系,最后输出所需要的时间序列。5.根据权利要求4所述的一种基于注意力机制的车辆轨迹时空重构方法,其特征在于:所述模型分为编码器、解码器两个部分,编码器负责对历史轨迹进行编码,解码器负责对处理当前轨迹并联合编码器的输出生成时间序列,具体包括:编码器:编码器的输入为历史轨迹h,使用一个线性层对该历史轨迹进行嵌入表达,将其映射至更高维的隐空间中:h
h
=linear(h)其中h
h
为线性层的输出;使用多头注意力机制来捕获其时空关系,首先将输入序列h
h
映射到q
h
,k
h
和v
h
三个子空间:
q
h
=w
q
h
h
k
h
=w
k
h
hvh
=wvh
h
其中w
q
、w
k
、wv分别为q,k,v的权重矩阵,即将h
h
映射至q,k,v三个隐空间;对此,多头自注意力的操作被定义为:multihead(q,k,v)=[head1,head2,...,head
h
]w
o
head
i
=attention(qw
iq
,kw
ik
,vw
iv
)其中h为注意力头的数量,w
o
是最终输出的权重矩阵;在多头自注意力之后,模型接着使用了残差连接和层归一化层,具体公式如下:layernorm(x+multiheadattention(x))其中残差连接是指x+multiheadattention(x),x指的是多头自注意力的输入;layernorm指层归一化,它会将每一层的神经元的输入的均值和方差都转换统一,编码器部分中的多头自注意力和残差连接&层归一化模块重复l次,上一层的输出作为下一层的输入,直到编码器最后一层的输出,再使用注意力公式将其最后一层的输出映射至k、v两个隐空间上,供解码器查询;解码器:解码器的输入为当前轨迹c,当前轨迹c中包含了当前轨迹的空间信息、状态信息、周期信息和行程时间信息;使用一个线性层对当前轨迹c进行嵌入表达,以此将其映射至更高维度的隐空间中,具体操作如下:c
h
=linear(c)c
h
为线性层的输出;在对轨迹进行嵌入表达之后,解码器中使用了双层自注意力机制来捕捉轨迹内和轨迹间的时空关系,在第一层的自注意力模块和残差连接&层归一化中,对空间轨迹的处理与编码器中的自注意力机制一致;在第二层多头自注意力模块中,使用交叉注意力机制,在此层中,将编码器的最终输出映射到k,v两个隐空间中,并将解码器上一层的输出映射到隐空间q中,然后对映射之后的q,k,v做多头自注意力运算;之后针对交叉注意力机制的输出,依然使用一个残差连接&层归一化处理交叉注意力机制的输出;最后,使用一个长短期记忆网络来处理解码器的输出,最终lstm的输出即所需要的时间序列:t=lstm(concat(o
dec
,c))其中t表示最终生成的时间序列,o
dec
表示解码器的输出,c表示嵌入后的空间轨迹;在生成时间序列后,只需将其与未嵌入的空间轨迹按位拼接起来,即可得到重构后的时空轨迹。6.一种基于注意力机制的车辆轨迹时空重构系统,其特征在于:该系统采用如权利要求1至5中所述方法。

技术总结
本发明涉及一种基于注意力机制的车辆轨迹时空重构方法及系统,属于自动车辆识别轨迹的时空重构技术领域。该方法包括以下步骤:S1、针对当前轨迹的空间轨迹,将其进行轨迹嵌入表达;S2、对多种历史轨迹进行嵌入表达;S3、采用一个基于注意力机制的时间序列预测模型,预测当前轨迹所对应的时间序列,并组合为时空轨迹;S4、利用真实数据训练整体模型,并在测试集中进行轨迹重构,最后根据预测结果和实际数据,对预测误差进行评价分析。本发明能够准确高效地重构车辆的时空轨迹,相对于现有的技术方案来说,本发明技术方案具有更高的准确率和效率,本方案具有广阔的应用前景。本方案具有广阔的应用前景。本方案具有广阔的应用前景。


技术研发人员:郑林江 陈鑫 刘卫宁
受保护的技术使用者:重庆大学
技术研发日:2023.05.22
技术公布日:2023/8/14
版权声明

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

飞行汽车 https://www.autovtol.com/

分享:

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

相关推荐