一种基于cnn和bilstm的船舶轨迹预测方法
技术领域
1.本发明属于时间序列预测技术领域;具体涉及一种基于cnn和bilstm的船舶轨迹预测方法。
背景技术:
2.随着海运不断发展,加强船舶安全管理和重点目标监测更加迫切。在交通密集、状况复杂的很多沿海和港口的水域,海上交通事故预警的精确性和有效性也尤为重要。提前掌握船舶的走向信息能有效地减少船舶触礁和碰撞等海上交通事故的发生。船舶航行轨迹分析可以获得海上航道的有用信息和船舶的行为模式。由于船舶航行与车辆行驶特点不同,无明显路网约束,航迹随机程度较大,预测难度也更大。传统船舶轨迹预测采用构建动力学方程的方法,这类方法需要专业知识支撑,并且根据不同船舶和场景需进行针对性改造,方法适应性较差。目前主流的方法是采用机器学习,该方法能够根据历史轨迹和当前行驶轨迹进行参数学习,使预测模型具有较好的适应性。
3.目前由于水上交通环境日益复杂,单一模型在准确度方面已经很难满足使用要求,如何解决船舶航迹预测的实时性与准确度提出了新的挑战。
技术实现要素:
4.本发明提供了一种基于cnn和bilstm的船舶轨迹预测方法,用以解决复杂水上交通环境下船舶轨迹预测准确率较低的问题。
5.本发明通过以下技术方案实现:
6.一种基于cnn和bilstm的船舶轨迹预测方法,包括以下步骤:
7.步骤1:对信息数据进行预处理;所述信息数据为通过船舶自动识别系统ais采集的包括经度、纬度、航向和航速;
8.步骤2:将步骤1中预处理后的信息数据划分训练集和测试集;
9.步骤3:将步骤2的训练集导入到卷积神经网络cnn中进行特征提取;
10.步骤4:将步骤3提取到的特征和训练集的数据结合构成轨迹预测的输入数据;
11.步骤5:将步骤4的输入数据导入到bilstm神经网络模型进行学习,获得轨迹数据中的隐含的船舶运动规律模型;
12.步骤6:利用步骤5的模型进行船舶的轨迹预测。
13.进一步的,所述步骤1的预处理具体为筛选出船舶自动识别系统ais中与对船舶轨迹预测影响程度较大的信息,删除ais中明显错误的数据,对于船舶轨迹数据十分稀疏的数据全部删除,对于船舶轨迹数据缺失较少的数据,采用线性插值的方法进行修正。
14.进一步的,所述线性插值方法具体为,设(tj,pj)为缺失数据,距离缺失数据最近的两个数据分别为(ti,pi)和(tk,pk),则补全的数据为:
15.进一步的,所述步骤2将预处理后的信息数据进行归一化处理,再按照8:2将数据
分为训练集和测试集。
16.进一步的,所述步骤3中的训练集作为输入数据输入一维卷积神经网络,经过卷积层中卷积核的卷积计算获得数据特征。
17.进一步的,所述步骤4具体为,将卷积层输出的特征数据输入池化层并进行平均池化处理,缩小数据矩阵大小,最后把卷积神经网络的输出结果作为输入到bilstm中进行进一步的提取。
18.进一步的,所述步骤5具体为,bilstm网络的输入门,输出门,遗忘门分别对应本发明中船舶轨迹特征序列的写入、读取和先前状态的重置操作,在forward层从1时刻到t时刻正向计算一遍,得到并保存每个时刻向前隐含层的输出,在backward层沿着时刻t到时刻1反向计算一遍,得到并保存每个时刻向后隐含层的输出,最后在每个时刻结合forward层和backward层的相应时刻输出的结果得到最终的输出。
19.进一步的,在t时刻的表达示为:
20.f
t
=σ(wf*[h
t-1
,x
t
]+bf)
[0021]it
=σ(wi*[h
t-1
,x
t
]+bi)
[0022][0023][0024]ot
=σ(wo*[h
t-1
,x
t
]+bo)
[0025]ht
=o
t
*tanh(c
t
)
[0026]
其中,wf表示遗忘门对应的权重矩阵,wi表示输入门对应的权重矩阵,wc表示当前输入的单元状态对应的权重矩阵,表示wo输出门对应的权重矩阵;bf表示遗忘门的偏置项,bi表示输入门的偏置项,bc表示当前输入的单元状态的偏置项,bo表示输出门的偏置项;σ表示激活函数,tanh为双曲正切函数;x
t
表示t时刻的输入;表示当前输入的单元状态;c
t
代表当前时刻的单元状态;f
t
代表遗忘门;o
t
代表输出门。
[0027]
进一步的,所述步骤6具体为,将测试的预测结果与真实值做对比,采用均方误差来评估预测的准确度,均方误差是指预测值和真实值之差的平方和的平均值,mse的表达式为:
[0028][0029]
式中n表示预测的总时长,t为时间序列号,pre
t
表示轨迹的预测值,real
t
表示轨迹的真实值。
[0030]
本发明的有益效果是:
[0031]
本发明方便地采用现有的ais数据和深度学习框架进行模型的构建和预测。本发明首先对获取ais数据进行预处理,处理后的ais数据用于模型构建和训练的准备,然后使用深度学习框keras进行模型的构建,因此代价小,并且易于实现。
[0032]
本发明不同于以往的数值预测预测方法、统计预测方法、以及传统的机器学习预测方法。本发明利用深度学习自动提取变量之间的非线性关系的能力,以及cnn强大的特征提取能力和bilstm强大的时间特征提取能力,构建了一个针对船舶轨迹的深度学习模型,
实现了对船舶轨迹特征的深层特征提取。
[0033]
本发明有效地融合了两种神经网络算法,具有更强的泛化能力和较高的预测精度,能够在不同的ais数据集上保持出色的预测质量和稳定性。
[0034]
本发明采用上万个船舶轨迹数据样本对构建的模型进行训练,可以使用训练好的模型有效地提高船舶轨迹预测的准确率。
[0035]
本发明可以通过不同的需求,设置不同的预测目标,扩展性强。
附图说明
[0036]
图1为本发明中船舶轨迹预测方法流程图。
[0037]
图2为本发明中船舶轨迹稀疏图。
[0038]
图3为本发明中船舶轨迹点线性拟合图。
[0039]
图4为本发明中卷积神经网络中卷积处理图。
[0040]
图5为本发明中卷积神经网络中池化处理图。
[0041]
图6为本发明中双向长短时神经网络模型示意图。
具体实施方式
[0042]
下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043]
一种基于cnn和bilstm的船舶轨迹预测方法,包括以下步骤:
[0044]
步骤1:对信息数据进行预处理;所述信息数据为通过船舶自动识别系统ais采集的包括经度、纬度、航向和航速;
[0045]
所述步骤1的预处理具体为筛选出船舶自动识别系统ais中与对船舶轨迹预测影响程度较大的信息,删除ais中明显错误的数据,对于船舶轨迹数据十分稀疏的数据全部删除,对于船舶轨迹数据缺失较少的数据,采用线性插值的方法进行修正。
[0046]
由于船舶ais数据记录的数据信息比较多,为了避免其他无用的信息的干扰,首先筛选出ais中与船舶轨迹预测影响程度较大的信息,例如经度、纬度、航向、航速、时间和船舶唯一的标识等,除此之外,由于人为或者天气等外界因素,采集的ais数据可能存在一些错误数据,这些数据会导致后续预测的准确度,需要对这些原始数据进行处理,删除错误的数据。ais数据中明显错误包括一下几类:
[0047]
(1)船舶的经度大于180
°
或者为负值,船舶的纬度大于90
°
或者为负值;
[0048]
(2)船舶的航速为负值,船舶的航向大于360
°
或者为负值;
[0049]
(3)船舶的采集时间不在合理范围(如2022年1月1日),船舶的水上移动通信业务标识码(maritime mobile service identify,mmsi)不是9位数。
[0050]
对剔除后的数据观察还可以发现,ais数据还存在数据缺失的情况,数据缺失较多的数据如图2所示,全部删除;数据缺失较少的数据如图3所示,采用线性插值的方法进行修正。
[0051]
所述线性插值方法具体为,设(tj,pj)为缺失数据,距离缺失数据最近的两个数据
分别为(ti,pi)和(tk,pk),则补全的数据为:
[0052]
步骤2:将步骤1中预处理后的信息数据划分训练集和测试集;
[0053]
将原始数据转化为特定范围内的相对值,在计算过程中降低了其计算的复杂度,提高了寻求最优解的速度,减少了程序运行时间;另一方面是数据各属性的值被限定到同一特定范围内,减小了数据大小差异和计算过程中所产生的偏差,可以提升模型预测精度。之后把归一化后的数据按照8:2分为训练集和测试集。本发明采用的归一化公式:
[0054]
式中x
*
表示归一化后的数值,x表示待归一化的数据,x
min
表示数据中的最小值,x
max
表示数据中的最大值。
[0055]
步骤3:将步骤2的训练集导入到卷积神经网络cnn中进行特征提取;
[0056]
所述步骤3中的训练集作为输入数据输入一维卷积神经网络,经过卷积层中卷积核的卷积计算获得数据特征。
[0057]
设计cnn-bilstm网络,其中cnn用来接收输入数据,压缩和提取数据的重要特征,bilstm用于接收cnn的输出,捕捉长时间的依赖关系,提取时间特征,产生预测结果;
[0058]
卷积神经网络中卷积层通过卷积核卷积处理s2中输入的数据,输出卷积后的数据特征,卷积操作的公式为:
[0059]
其中i表示第i个卷积核;g(i)表示第i个特征图,a表示输入数据,x,y,z表示输入数据的维度,表示第i层卷积核的权值向量,bi表示第i层卷积核的偏置。
[0060]
本发明采用修正线性单元(rectified linearunit,relu)作为神经元的激活函数。如图4所示为一维卷积处理,其中x1~x6是输入,c1~c4是特征向量。c1~c4是通过卷积运算得到的,c1通过x1~x3卷积计算得到的,并且c1和x1~x3之间的连接具有不同的权重,在计算c2时,这3个权重对应于x2~x4。一维卷积的单个隐藏单元连接3到输入层的三个输入,这种连接大大减少了参数的数量,还加速了神经网络的训练过程。
[0061]
步骤4:将步骤3提取到的特征和训练集的数据结合构成轨迹预测的输入数据;
[0062]
所述步骤4具体为,将卷积层输出的特征数据输入池化层并进行平均池化处理,缩小数据矩阵大小,最后把卷积神经网络的输出结果作为输入到bilstm中进行进一步的提取。
[0063]
如图5所示为一维池化过程,c1~c4是卷积层计算的特征向量,pd是填充元素,p1~p3是池化层的输出,步幅为2。如图5所示p1由池化pd和c1计算得出。本发明采用平均池化方法,公式为:
[0064]
其中a
l
(i,t)表示第l层中第i个特征图的第t个神经元,w表示卷积核的宽度;j表示第j个池化核,avg表示求取平均值。
[0065]
按照平均池化方法将pd和c1的平均值作为p1的值,p2和p3值计算方法也相同。池化层将获得输出p1~p3,经过卷积层和池化层后,将输出结果作为输入到bilstm中进行进一步的提取。
[0066]
步骤5:将步骤4的输入数据导入到bilstm神经网络模型进行学习,获得轨迹数据中的隐含的船舶运动规律模型;
[0067]
所述步骤5具体为,bilstm网络的输入门,输出门,遗忘门分别对应本发明中船舶轨迹特征序列的写入、读取和先前状态的重置操作;输入门决定哪些信息比较重要以便记忆;输出门决定将要传递的信息;遗忘门决定应该记住或遗忘哪些信息;在forward层从1时刻到t时刻正向计算一遍,得到并保存每个时刻向前隐含层的输出,在backward层沿着时刻t到时刻1反向计算一遍,得到并保存每个时刻向后隐含层的输出,最后在每个时刻结合forward层和backward层的相应时刻输出的结果得到最终的输出。
[0068]
3个门的值设置在0和1之间,bilstm网络也采用修正线性单元relu作为神经元的激活函数。
[0069]
在t时刻的表达示为:
[0070]ft
=σ(wf*[h
t-1
,x
t
]+bf)
[0071]it
=σ(wi*[h
t-1
,x
t
]+bi)
[0072][0073][0074]ot
=σ(wo*[h
t-1
,x
t
]+bo)
[0075]ht
=o
t
*tanh(c
t
)
[0076]
其中,wf表示遗忘门对应的权重矩阵,wi表示输入门对应的权重矩阵,wc表示当前输入的单元状态对应的权重矩阵,表示wo输出门对应的权重矩阵;bf表示遗忘门的偏置项,bi表示输入门的偏置项,bc表示当前输入的单元状态的偏置项,bo表示输出门的偏置项;σ表示激活函数,tanh为双曲正切函数;x
t
表示t时刻的输入;表示当前输入的单元状态;c
t
代表当前时刻的单元状态;f
t
代表遗忘门,它决定了上一时刻的单元状态c
t-1
有多少保留到当前时刻c
t
;i
t
代表输入门,它决定了当前时刻网络的输入x
t
有多少保存到单元状态c
t
;o
t
代表输出门,它来控制单元状态c
t
有多少输出到当前输出值h
t
;h
t
为最终的输出,由输出门和单元状态共同决定的。
[0077]
步骤6:利用步骤5的模型进行船舶的轨迹预测。
[0078]
所述步骤6具体为,将测试的预测结果与真实值做对比,采用均方误差来评估预测的准确度,均方误差是指预测值和真实值之差的平方和的平均值,mse的表达式为:
[0079][0080]
式中n表示预测的总时长,t为时间序列号,pre
t
表示轨迹的预测值,real
t
表示轨迹的真实值。
[0081]
本发明针对以往的船舶轨迹预测的方法的不足,充分利用了已存在的研究成果,提出了基于两种深度神经网络融合的预测模型。该模型以cnn为底层,对输入数据进行重要特征的提取,其输出结果作为高层bilstm的输入,提取船舶轨迹的时间序列特征,可以充分考虑到船舶轨迹的时间关联性,得到更为具有精确的预测结果。
技术特征:
1.一种基于cnn和bilstm的船舶轨迹预测方法,其特征在于,包括以下步骤:步骤1:对信息数据进行预处理;所述信息数据为通过船舶自动识别系统ais采集的包括经度、纬度、航向和航速;步骤2:将步骤1中预处理后的信息数据划分训练集和测试集;步骤3:将步骤2的训练集导入到卷积神经网络cnn中进行特征提取;步骤4:将步骤3提取到的特征和训练集的数据结合构成轨迹预测的输入数据;步骤5:将步骤4的输入数据导入到bilstm神经网络模型进行学习,获得轨迹数据中的隐含的船舶运动规律模型;步骤6:利用步骤5的模型进行船舶的轨迹预测。2.根据权利要求1所述的基于cnn和bilstm的船舶轨迹预测方法,其特征在于:所述步骤1的预处理具体为筛选出船舶自动识别系统ais中与对船舶轨迹预测影响程度较大的信息,删除船舶自动识别系统ais中明显错误的数据,对于船舶轨迹数据十分稀疏的数据全部删除,对于船舶轨迹数据缺失较少的数据,采用线性插值的方法进行修正。3.根据权利要求2所述的基于cnn和bilstm的船舶轨迹预测方法,其特征在于:所述线性插值方法具体为,设(t
j
,p
j
)为缺失数据,距离缺失数据最近的两个数据分别为(t
i
,p
i
)和(t
k
,p
k
),则补全的数据为:4.根据权利要求1所述的基于cnn和bilstm的船舶轨迹预测方法,其特征在于:所述步骤2将预处理后的信息数据进行归一化处理,再按照8:2将数据分为训练集和测试集。5.根据权利要求1所述的基于cnn和bilstm的船舶轨迹预测方法,其特征在于:所述步骤3中的训练集作为输入数据输入一维卷积神经网络,经过卷积层中卷积核的卷积计算获得数据特征。6.根据权利要求1所述的基于cnn和bilstm的船舶轨迹预测方法,其特征在于:所述步骤4具体为,将卷积层输出的特征数据输入池化层并进行平均池化处理,缩小数据矩阵大小,最后把卷积神经网络的输出结果作为输入到bilstm中进行进一步的提取。7.根据权利要求1所述的基于cnn和bilstm的船舶轨迹预测方法,其特征在于:所述步骤5具体为,bilstm网络的输入门,输出门,遗忘门分别对应本发明中船舶轨迹特征序列的写入、读取和先前状态的重置操作,在forward层从1时刻到t时刻正向计算一遍,得到并保存每个时刻向前隐含层的输出,在backward层沿着时刻t到时刻1反向计算一遍,得到并保存每个时刻向后隐含层的输出,最后在每个时刻结合forward层和backward层的相应时刻输出的结果得到最终的输出。8.根据权利要求7所述的基于cnn和bilstm的船舶轨迹预测方法,其特征在于:在t时刻的表达示为:f
t
=σ(w
f
*[h
t-1
,x
t
]+b
f
)i
t
=σ(w
i
*[h
t-1
,x
t
]+b
i
))o
t
=σ(w
o
*[h
t-1
,x
t
]+b
o
)
h
t
=o
t
*tanh(c
t
)其中,w
f
表示遗忘门对应的权重矩阵,w
i
表示输入门对应的权重矩阵,w
c
表示当前输入的单元状态对应的权重矩阵,表示w
o
输出门对应的权重矩阵;b
f
表示遗忘门的偏置项,b
i
表示输入门的偏置项,b
c
表示当前输入的单元状态的偏置项,b
o
表示输出门的偏置项;σ表示激活函数,tanh为双曲正切函数;x
t
表示t时刻的输入;表示当前输入的单元状态;c
t
代表当前时刻的单元状态;f
t
代表遗忘门;i
t
代表输入门;o
t
代表输出门。9.根据权利要求7所述的基于cnn和bilstm的船舶轨迹预测方法,其特征在于:所述步骤6具体为,将测试的预测结果与真实值做对比,采用均方误差来评估预测的准确度,均方误差是指预测值和真实值之差的平方和的平均值,mse的表达式为:式中n表示预测的总时长,t为时间序列号,pre
t
表示轨迹的预测值,real
t
表示轨迹的真实值。
技术总结
本发明公开了一种基于CNN和BILSTM的船舶轨迹预测方法。步骤1:对信息数据进行预处理;所述信息数据为通过船舶AIS采集的包括经度、纬度、航向和航速;步骤2:将步骤1中预处理后的信息数据划分训练集和测试集;步骤3:将步骤2的训练集导入到卷积神经网络CNN中进行特征提取;步骤4:将步骤3提取到的特征和训练集的数据结合构成轨迹预测的输入数据;步骤5:将步骤4的输入数据导入到BILSTM神经网络模型进行学习,获得轨迹数据中的隐含的船舶运动规律模型;步骤6:利用步骤5的模型进行船舶的轨迹预测。本发明用以解决复杂水上交通环境下船舶轨迹预测准确率较低的问题。迹预测准确率较低的问题。迹预测准确率较低的问题。
技术研发人员:李芃 陈赛 孙宏放 张兰勇 李奕霏 刘洪丹
受保护的技术使用者:哈尔滨工程大学青岛船舶科技有限公司
技术研发日:2021.11.15
技术公布日:2022/3/8