一种基于LSTM预测和平滑分析思想的轨迹数据压缩方法

文档序号:25368687发布日期:2021-06-08 16:26阅读:276来源:国知局
一种基于LSTM预测和平滑分析思想的轨迹数据压缩方法
一种基于lstm预测和平滑分析思想的轨迹数据压缩方法
技术领域
1.本发明涉及一种基于lstm预测和平滑分析思想的轨迹数据压缩方法。


背景技术:

2.随着gps、rfid、无线传感器等技术设备的普及应用,产生了大量的移动对象轨迹数据,轨迹数据量以指数暴涨,对这些数据所蕴含的丰富信息进行提取成为了当下较为火热的研究方向之一。然而,轨迹数据的日益增加给现有的研究和存储设备都带来了巨大的挑战:数据量巨大、查询时间增长,数据冗余,因此对移动对象轨迹数据进行压缩成为当务之急。解决这三个问题可以通过使用减少轨迹数据的算法来解决。连续移动的物体采集到的轨迹数据是包含位置信息的离散轨迹点,越是以较高频率采集的运动物体的位置信息,越是接近原始物体真实的运动情况。因此,如何设计更好的轨迹压缩算法是解决问题的关键。
3.大规模轨迹数据的不断增加的同时,许多研究者提出了大量的轨迹压缩算法,用来减少冗余,保留对轨迹位置特征贡献大的轨迹点。传统的轨迹数据的压缩算法主要分为以下三类:
4.1、轨迹的线段压缩:轨迹的线段压缩通过设定误差阈值,在允许的误差阈值范围内用更少的点来表示原来的轨迹,需要关注的是算法的准确率和压缩比,删除了误差较小的点,保留误差较大即对轨迹贡献较大的点,它的主要目的就是输入一条轨迹曲线,用一条包含更少的轨迹点的曲线来近似的代替原来的曲线,并且要保证这条曲线与原始的曲线之间的误差较小。轨迹数据相比于普通的曲线,轨迹数据包含位置信息的同时,还包括了时间、速度和方向信息。轨迹的线段压缩误差阈值需要人为设定,需要不断尝试不同的误差阈值来查看实验效果,找到对应轨迹相对较优的误差阈值,操作过程十分繁琐。
5.轨迹的线段压缩又分为离线压缩和在线压缩两种。离线压缩算法是在获得完整的轨迹数据后进行压缩;在线压缩是随着移动对象的移动实时的对采集到的轨迹点进行取舍。
6.2、基于路网的轨迹压缩:移动对象的运动在一定地理空间范围内要受到路网结构的约束,路网结构是有限的,对那些空间信息相同的轨迹点只选择保留一份;在原始的轨迹数据中加入路网结构可以保证轨迹落在路段上,路网结构的不随意更改又使其具有稳定性。因为路网结构具有有限性和稳定性的优势,因此比较适合处理车辆轨迹,将车辆轨迹数据序列匹配成相对应的路段序列之后再进行压缩,基于路网的轨迹压缩因为路网的稳定性,局限于车辆的轨迹压缩,应用对象相对单一。
7.3、基于语义的轨迹压缩:人们不能理解原始轨迹和路网轨迹,但是可以理解语义轨迹,语义轨迹压缩是将一条轨迹进行拆分,拆分的各个事件,通过阅读语义轨迹,可以清楚地理解所阅读轨迹的起点、终点以及行驶的路段,这种轨迹压缩方法对原始轨迹提取了概要,不仅压缩了数据量,而且也使得轨迹的行为便于理解,输入一条原始轨迹就可以输出一段描述性文字,大体描述轨迹的行驶特征以及经过的重要位置。这种压缩方法在一定程
度上减少了空间开销,但同时也丢失了具体的位置信息。


技术实现要素:

8.本发明的目的在于提供一种基于lstm预测和平滑分析思想的轨迹数据压缩方法,基于lstm预测的移动对象轨迹数据压缩方法,将深度学习模型应用到传统的轨迹压缩领域,使用神经网络预测得到距离误差和方向误差,并采用平滑分析的思想确定压缩阈值,不需要人为设定误差阈值,同时考虑距离和方向,充分保留了原始轨迹的重要信息,根据压缩轨迹自身的特点得到误差和确定误差阈值,能够更好的适用于具有不同特点的轨迹数据。
9.为了达到上述目的,本发明提供一种基于lstm预测和平滑分析思想的轨迹数据压缩方法,包含以下步骤:
10.步骤s1、对采集的原始轨迹数据进行数据清洗;
11.步骤s2、制作网络模型输入的数据集格式,将数据清洗后的数据归一化,划分数据集后制作多维多步网络输入数据集;
12.步骤s3、处理后的轨迹作为网络输入,输入基于lstm的预测网络模型得到预测轨迹,保存预测得到的轨迹数据;
13.步骤s4、恢复轨迹数据格式,多维多步数据格式恢复为最初的数据格式;
14.步骤s5、预测得到的数据集反归一化;
15.步骤s6、采用平滑分析的思想确定压缩所选取的误差阈值的范围,在随机产生的邻域半径内计算预测轨迹与数据清洗后的轨迹的距离和方向误差,得到压缩阈值sed误差和角度阈值angle

deviation;
16.步骤s7、根据确定的误差阈值压缩原始轨迹,保留大于误差阈值的原始轨迹点,保留点即为压缩后的轨迹。
17.所述步骤s1中对采集的原始轨迹数据进行数据清洗的方法包含:
18.缺失值的处理:删除某个特征的缺失值大于50%的轨迹,对于小于50%的轨迹使用均值填充;
19.去除异常点:去除速度大于25米每秒的轨迹点;
20.去除重复点:去除经纬度和高度重复的轨迹点。
21.所述步骤s2中制作网络模型输入的数据集格式的方法包含:
22.数据归一化:使用min—max标准化,让所有的轨迹数据最终落在[0,1]之间;
[0023]
分割数据集大小:按照4:1划分处理后的轨迹数据为训练集train和测试集test;
[0024]
制作网络输入所需多维多步的数据集格式:数据特征维度使用轨迹数据中的经度longitude、纬度latitude和海拔高度altitude三个维度数据,数据量维度设置为使用前3个时刻的轨迹数据,时间步长维度设置为3,预测后3个时刻步长的轨迹状态,定义轨迹集制作函数的回滚参数look_back为3,预测轨迹步长predict_n为3,依次添加到制作的数据集中,训练集train和测试集test使用数据集制作函数得到训练集train_x、train_y和测试集test_x、test_y。
[0025]
所述步骤s3中的设计基于lstm的预测网络模型的方法包含:
[0026]
预测网络模型包含4层lstm网络和1层全连接层dense;
[0027]
在每一层的lstm网络设置dropout层;
[0028]
误差函数使用均方误差mse;
[0029]
优化器为adam。
[0030]
所述步骤s4中恢复轨迹数据格式的方法包含:
[0031]
预测得到的数据是多维多步的三维数组形式数据,三维数组数据中每一个元素是一个二维数组,读取到的二维数组形式为(3,3);
[0032]
提取每一个读取到的二维数组的首行元素,所有提取到的首行元素合并为新的二维数组;
[0033]
最终提取到的二维数组为最初的数据格式。
[0034]
所述步骤s6中采用平滑分析的思想确定压缩所选取的误差阈值的范围的方法包含:
[0035]
计算预测轨迹与数据清洗后的轨迹之间对应轨迹点的空间距离d;
[0036]
随机产生随机半径k,k为正整数;
[0037]
从预测轨迹的第k+1个点p
k
开始选取其前k个点与后k个点,寻其与数据清洗后的轨迹所对应的空间距离d,寻找2k+1个点的最大空间距离值d
max
,并记下当前点的索引值i,再从k+2个点继续此操作,以此类推,寻找后续点在邻域k内的最大空间距离d的索引值;
[0038]
去掉索引数组中的重复索引值;
[0039]
计算数据清洗后的轨迹在对应索引值点的同步欧氏距离误差sederror,选择所有同步欧氏距离误差sederror中的最大值和最小值记为sederror
max
,sederror
min
,计算sederror
max
,sederror
min
的平均误差sederror
mean
,sederror
mean
即为压缩算法的同步距离误差阈值;
[0040]
分别计算预测轨迹与数据清洗后的轨迹各自的角度偏差angle

deviation;
[0041]
从预测轨迹的第k+1个点p
k
开始选取其前k个点与后k个点,寻其与数据清洗后的轨迹所对应的角度偏差angle

deviation之差的绝对值,计算2k+1个点的平均误差值angleerror
k
,记为当前点p
k
的平均误差,以此类推,计算后续点在邻域k的平均误差;
[0042]
选取在随机半径k下平均误差的最大值和最小值记为angleerror
max
,angleerror
min
,计算angleerror
max
,angleerror
min
的平均误差angleerror
mean
,angleerror
mean
即为压缩算法的同步距离误差阈值。
[0043]
计算同步欧氏距离sed的方法包含:
[0044]
原始轨迹中的一个点p
i
,p
i
在某个轨迹段内存在一个与之时间属性一致的对应点p
i

,同步欧式距离就是指p
i
与p
i

之间的距离,对应点p
i

(x
i
,y
i
)坐标位置的具体计算公式如下:
[0045]
δe=t
e

t
s
[0046]
δi=t
i

t
s
[0047][0048][0049]
由此可得,同步欧式距离的计算公式如下:
[0050][0051]
计算角度偏差angle

deviation的方法包含:
[0052]
设定轨迹点的索引值i为整数a,b,m,n,其中a>b,m>n,则得到两个轨迹段用和表示,规定方向用θ表示,θ的范围为[0,2π],两个轨迹段和的方向为和则轨迹段和的角度差定义为
[0053]
移动点p
m
在p
m
的角度偏移量定义为轨迹点p
m
的角度偏差,使用符号p
m.εd
表示,其中,角度差为修正角度差为角度偏差:当δθ≤—π时,p
m.εd
=δθ+2π;当π>δθ>—π时,p
m.εd
=δθ;当π≤δθ时,p
m.εd
=δθ

2π。
[0054]
所述步骤s7中根据确定的误差阈值压缩原始轨迹的方法包含:
[0055]
设定压缩距离误差阈值为sederror
mean
,角度误差阈值为angleerror
mean

[0056]
从数据清洗后的第一个轨迹点p0开始选取保留的轨迹点,若p
i
的欧式距离sed误差大于sederror
mean
或者角度偏差angle

deviation大于angleerror
mean
,p
i
被保留,否则p
i
将从原轨迹中被删除;
[0057]
最终保留的轨迹点集合为最终的压缩轨迹。
[0058]
本发明解决了传统的轨迹压缩算法压缩效果差,人为寻找误差和设定误差阈值实验繁琐的问题。本发明提出基于lstm预测的移动对象轨迹数据压缩方法,将深度学习模型应用到传统的轨迹压缩领域,使用神经网络预测得到距离误差和方向误差,并采用平滑分析的思想确定压缩阈值,不需要人为设定误差阈值,并且本发明同时考虑距离和方向,充分保留了原始轨迹的重要信息,相比于传统的轨迹压缩算法,本发明根据压缩轨迹自身的特点得到误差和确定误差阈值,能够更好的适用于具有不同特点的轨迹数据。
附图说明
[0059]
图1是本发明实施例中提供的一种轨迹数据压缩方法的流程图。
[0060]
图2是本发明实施例中的数据集格式图。
[0061]
图3是本发明实施例中涉及到的lstm神经网络原理图。
[0062]
图4是本发明实施例中的lstm预测网络模型图。
[0063]
图5是本发明实施例中的同步欧氏距离sed误差原理图。
[0064]
图6是本发明实施例中的角度偏差angle

deviation计算原理图。
[0065]
图7是本发明实施例中的角度偏差angle

deviation修正范围图。
具体实施方式
[0066]
以下根据图1~图7,具体说明本发明的较佳实施例。
[0067]
本实施例中提供了一种基于lstm预测和平滑分析思想的轨迹数据压缩方法,把深度学习模型运用到传统的轨迹压缩领域,并同时考虑角度误差angle

deviation和同步欧
氏距离sed误差,采用平滑分析的思想确定压缩算法的阈值范围,压缩数据量较大的轨迹数据。
[0068]
如图1所示,本实施例中提供的一种基于lstm预测和平滑分析思想的轨迹数据压缩方法包含以下步骤:
[0069]
步骤s1、对采集的原始轨迹数据进行数据清洗;
[0070]
步骤s2、制作网络模型输入的数据集格式,将数据清洗后的数据归一化,划分数据集后制作多维多步网络输入数据集;
[0071]
步骤s3、处理后的轨迹作为网络输入,输入基于lstm的预测网络模型得到预测轨迹,保存预测得到的轨迹数据;
[0072]
步骤s4、恢复轨迹数据格式,多维多步数据格式恢复为最初的数据格式;
[0073]
步骤s5、预测得到的数据集反归一化,便于后续计算;
[0074]
步骤s6、采用平滑分析的思想确定压缩所选取的误差阈值的范围,在随机产生的邻域半径内计算预测轨迹与数据清洗后的轨迹的距离和方向误差,得到压缩阈值sed误差和角度阈值angle

deviation;
[0075]
步骤s7、根据确定的误差阈值压缩原始轨迹,保留大于误差阈值的原始轨迹点,保留点即为压缩后的轨迹。
[0076]
进一步,所述步骤s1中对采集的原始轨迹数据进行数据清洗的具体步骤包含:
[0077]
缺失值的处理:删除某个特征的缺失值大于50%的轨迹,对于小于50%的轨迹使用均值填充;
[0078]
去除异常点:去除速度过大的轨迹点,设定速度上限值为25米每秒;
[0079]
去除重复点:去除经纬度和高度重复的轨迹点。
[0080]
所述步骤s2中制作网络模型输入的数据集格式的具体步骤包含:
[0081]
数据归一化:使用min—max标准化,让所有的轨迹数据最终落在[0,1]之间,避免不同维度量纲不同影响实验效果,有利于后续数据的处理;
[0082]
分割数据集大小:按照4:1划分处理后的轨迹数据为训练集train和测试集test;
[0083]
制作网络输入所需多维多步的数据集格式:本发明设计多维多步的网络预测模型,数据特征维度使用轨迹数据中的经度longitude、纬度latitude和海拔高度altitude三个维度数据,数据量维度设置为使用前3个时刻的轨迹数据,时间步长维度设置为3,预测后3个时刻步长的轨迹状态,定义轨迹集制作函数的回滚参数look_back为3,预测轨迹步长predict_n为3,依次添加到制作的数据集中,训练集train和测试集test使用数据集制作函数得到训练集train_x、train_y和测试集test_x、test_y。
[0084]
图2所示是本发明技术方案的数据集格式图,数据特征维度为3,分别为经度longitude,纬度latitude,海拔高度altitude;数据量维度为3,表示每次使用前3个时刻数据预测未来的位置;时间步维度为3,每次使用历史时刻轨迹数据预测未来3个时刻位置的轨迹点。
[0085]
所述步骤s3中的设计基于lstm的预测网络模型的具体步骤包含:
[0086]
图3所示是lstm的原理图,lstm包括输入门,遗忘门和输出门,lstm能够避免梯度消失和梯度爆炸的问题。c
t
‑1是上一时刻的单元状态,h
t
‑1是上一时刻lstm的输出值,σ是sigmoid函数,f
t
与c
t
‑1计算决定要丢弃的历史信息,w
f
为遗忘门的权重,w
i
为输入门的权重,
w
o
为输出门的权重,x
t
是当前网络的输入值,i
t
是要保留下来的新信息即输入门,o
t
是计算的输出门,c
t
是当前时刻的单元状态即新数据形成的控制参数,h
t
是当前时刻lstm的输出值即利用新的控制参数产生输出,b
f
是遗忘门偏差,b
i
是输入门偏差,b
o
是输出门偏差。利用sigmoid函数将网络的记忆状态作为输入计算,如果输出结果达到阈值则将该门输出与当前层计算结果相乘作为下一层输入,如果没有达到阈值则将输出结果遗忘掉。
[0087]
lstm的记忆单元在预测某个时刻的输出时会忘记一些不重要的历史信息,记住一些重要的历史信息,遗忘门的输出公式如下:
[0088]
f
t
=σ(w
f
·
[h
t
‑1,x
t
]+b
f
)
[0089]
输入门是用来控制输入进出多少或者是否允许进出的门控设备,输入门的计算公式如下:
[0090]
i
t
=σ(w
i
·
[h
t
‑1,x
t
]+b
i
)
[0091]
输出门是用来控制时刻状态值c
t
中有多少输出到当前时刻lstm的输出值h
t
中,输出门的计算公式为:
[0092]
o
t
=σ(w
o
·
[h
t
‑1,x
t
]+b
o
)
[0093]
图4所示是本发明设计的预测网络模型,包括4层lstm网络加1层全连接层dense;
[0094]
为防止网络模型过拟合,在每一层的lstm设置dropout层,dropout层在前向传播的过程中让神经元以一定的概率p停止工作,增强模型的泛化性;最后输出层使用全连接层dense;激活函数使用relu;输入层shape设置为(3,3)输出维度为3
[0095]
误差函数使用均方误差mse;
[0096]
优化器为adam。
[0097]
所述步骤s4具体包含以下步骤:
[0098]
预测得到的数据是多维多步的三维数组形式数据,三维数组数据中每一个元素是一个二维数组,读取到的二维数组形式为(3,3);
[0099]
提取每一个读取到的二维数组的首行元素,所有提取到的首行元素合并为新的二维数组;
[0100]
最终提取到的二维数组为最初的数据格式。
[0101]
所述步骤s6中,采用平滑分析的思想确定压缩所选取的误差阈值的范围的具体步骤包含:
[0102]
计算预测轨迹与数据清洗后的轨迹之间对应轨迹点的空间距离d;
[0103]
随机产生随机半径k,k为正整数;
[0104]
从预测轨迹的第k+1个点p
k
开始选取其前k个点与后k个点,寻其与数据清洗后的轨迹所对应的空间距离d,寻找2k+1个点的最大空间距离值d
max
,并记下当前点的索引值i,再从k+2个点继续此操作,以此类推,寻找后续点在邻域k内的最大空间距离d的索引值;
[0105]
去掉索引数组中的重复索引值;
[0106]
计算数据清洗后的轨迹在对应索引值点的同步欧氏距离误差sederror,选择所有sederror中的最大值和最小值记为sederror
max
,sederror
min
,计算sederror
max
,sederror
min
的平均误差sederror
mean
,sederror
mean
即为压缩算法的同步距离误差阈值;
[0107]
分别计算预测轨迹与数据清洗后的轨迹各自的角度偏差angle

deviation;
[0108]
从预测轨迹的第k+1个点p
k
开始选取其前k个点与后k个点,寻其与数据清洗后的
轨迹所对应的角度偏差angle

deviation之差的绝对值,计算2+1个点的平均误差值angleerror
k
,记为当前点p
k
的平均误差,以此类推,计算后续点在邻域k的平均误差;
[0109]
选取在随机半径k下平均误差的最大值和最小值记为angleerror
max
,angleerror
min
,计算angleerror
max
,angleerror
min
的平均误差angleerror
mean
,angleerror
mean
即为压缩算法的同步距离误差阈值。
[0110]
所述步骤s7中,根据确定的误差阈值压缩原始轨迹的具体步骤包含:
[0111]
设定压缩距离误差阈值为sederror
mean
,角度误差阈值为angleerror
mean

[0112]
从数据清洗后的第一个轨迹点p0开始选取保留的轨迹点,若p
i
的欧式距离sed误差大于sederror
mean
或者角度偏差angle

deviation大于angleerror
mean
,p
i
被保留,否则p
i
将从原轨迹中被删除;
[0113]
最终保留的轨迹点集合为最终的压缩轨迹。
[0114]
图5所示是同步欧氏距离sed的计算原理图,原始轨迹中的一个点p
i
,p
i
在某个轨迹段内存在一个与之时间属性一致的对应点p
i

,同步欧式距离就是指p
i
与p
i

之间的距离,图5其中对应点p
i

(x
i
,y
i
)坐标位置的具体计算公式如下:
[0115]
δe=t
e

t
s
[0116]
δi=t
i

t
s
[0117][0118][0119]
由此可得,同步欧式距离的计算公式如下:
[0120][0121]
图6所示是角度偏差angle

deviation的计算原理图,设定轨迹点的索引值i为整数a,b,m,n,其中a>b,m>n,则得到两个轨迹段用和表示,规定方向用θ表示,θ的范围为[0,2π],两个轨迹段和的方向为和则轨迹段和的角度差定义为的角度差定义为
[0122]
移动点p
m
在p
m
的角度偏移量定义为轨迹点p
m
的角度偏差,使用符号p
m.εd
表示,其中,角度差为在图7中将修正角度差为角度偏差:当δθ≤—π时,p
m.εd
=δθ+2π;当π>δθ>—π时,p
m.εd
=δθ;当π≤δθ时,p
m.εd
=δθ

2π。
[0123]
本发明解决了传统的轨迹压缩算法压缩效果差,人为寻找误差和设定误差阈值实验繁琐的问题。本发明提出基于lstm预测的移动对象轨迹数据压缩方法,将深度学习模型应用到传统的轨迹压缩领域,使用神经网络预测得到距离误差和方向误差,并采用平滑分析的思想确定压缩阈值,不需要人为设定误差阈值,并且本发明同时考虑距离和方向,充分保留了原始轨迹的重要信息,相比于传统的轨迹压缩算法,本发明根据压缩轨迹自身的特点得到误差和确定误差阈值,能够更好的适用于具有不同特点的轨迹数据。
[0124]
需要说明的是,在本发明的实施例中,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述实施例,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0125]
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0126]
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1