舰船科学技术  2023, Vol. 45 Issue (11): 143-146    DOI: 10.3404/j.issn.1672-7619.2023.11.029   PDF    
NoSQL数据库技术在船舶AIS数据系统的应用
郭立强1,2     
1. 南昌软件工程新技术创新重点实验室, 江西 南昌 330000;
2. 江西软件职业技术大学, 江西 南昌 330000
摘要: 为了发现潜在的危险,减少事故的发生,精准有效地预测船舶的运动轨迹十分重要。船舶运动轨迹预测方面的研究,主要以神经网络为主并融合一些混合算法。本文系统后端使用Spring Boot进行架构,吸收微服务思想,采用多种NoSQL现代数据库(MongoDB为主)作为持久化工具,用船舶自动识别系统(AIS)数据集训练模型,来验证LSTM相比于其他神经网络在船舶轨迹预测方面的有效性和准确性。NoSQL能够对数据进行良好的管理,并在管理对象数据的基础上增加数据分析、数据导出、数据异常处理措施。
关键词: NoSQL数据库     船舶轨迹     AIS数据系统    
The application of NoSQL database technology in ship AIS data system
GUO Li-qiang1,2     
1. Nanchang Key Laboratory of New Technology Innovation of Software Engineering, Nanchang 330000, China;
2. Jiangxi University of Software Professional Technology, Nanchang 330000, China
Abstract: In order to discover potential dangers and reduce accidents, it is very important to accurately and effectively predict the trajectory of ships. The research methods in the prediction of ship motion trajectory are mainly based on neural network and combined with some hybrid algorithms. In this paper, the backend of the system is structured using Spring Boot, absorbing the idea of microservices, using a variety of NoSQL modern databases (mainly MongoDB) as persistence tools, and using the ship automatic identification system (AIS) data set to train the model to verify the comparison of LSTM The effectiveness and accuracy of other neural networks in ship trajectory prediction. It aims to make good use of the characteristics of NoSQL to manage the corresponding data, and add data analysis, data export, and data exception handling measures on the basis of the management object data.
Key words: NoSQL database     ship trajectory     AIS data system    
0 引 言

在船舶行驶的过程中,会出现很多异常情况,如硬件故障(GPS失灵等),恶劣的海上环境影响(风、浪、礁石等),这些不确定因素都会导致船舶偏离预定航线的情况发生[1-3]。为了提高船舶航行安全,应当加强对船舶航行过程的指导,及时、准确地获取船舶航行信息,及时发现船舶航行时的异常轨迹。对船舶运动规律的预测和提高预测轨迹的可靠性是水上交通安全领域重要的研究课题[4-5]。为了改善船舶交通安全,本文基于NoSQL数据库技术采用一种新的导航系统AIS,自动向沿海相关部门以及海域内的其他船只提供关于目标船舶的航行信息。

1 NoSQL数据库持久化设计思路

本系统后端数据服务采用多数据库持久化策略,主要思路为在使用传统Mysql数据库进行开发的基础上引入多种主流NoSQL现代数据库,根据其对应特性选择适合的数据进行使用,如表1所示。

表 1 系统所用NoSQL数据库特性表 Tab.1 Characteristics of NoSQL database used in the system

通过以上特性分析,最终确定数据持久化方案如表2所示。

表 2 系统数据持久化方案表 Tab.2 System data persistence scheme
2 基于NoSQL数据库的预处理 2.1 AIS数据集的结构分析

AIS是一种船舶导航系统,在同一海域搭载AIS设备的船舶能够互相感知,它是船舶之间以及船岸之间重要的数据信息交互设备,具有大容量、多样性、快速度、真实性等特征。卫星,地面和装有AIS设备的船舶能不断接收AIS设备的广播信息。现在AIS已经非常普及,我国沿海以及河流港口水域基本上都被AIS系统覆盖,能够有效地提高船舶的通行效率,是船舶交通管理系统不可或缺的一部分,既能够有效跟踪船舶的状态,还可以向安全监管系统提供有效准确的信息,有效保障了船舶交通安全,同时这些数据也促进了对船舶交通安全领域的研究。

1)静态信息

MMSI唯一识别码、船名、呼号、货物类型、船舶长宽、IMO呼号等信息,这些信息一般固定不变,由人为填写。

2)动态信息

关于船舶的定位、航向、航速、经纬度等随着船舶的传感器同步更新的信息。

3)船舶的航行相关信息

船舶的目的港口地和预计到港时间、船舶吃水深度、船舶航行状态等。

4)安全相关信息

安全航行相关数据、船载人数等。

2.2 船舶轨迹模型的建立

为了有效训练模型,需要从AIS数据集中选取船舶运动时的主要特征,其中包括经度、纬度、对地速度、船首向和对地航向,经度和纬度用来表示船舶的位置,速度用来表示船舶运动的快慢,对地航向表示船舶运动的方向,以此来作为输入建立网络模型,输出为下一时刻的位置,也就是下一时刻的经度和纬度,充分利用与船舶位置状态关系最密切的信息。所以在t时刻,目标船舶的状态特征可以表示为:

$ \begin{array}{c}Y\left({t}\right)=\left\{{l}{a}{t},{l}{o}{n},{v},{c},{\delta }\right\}{\text{。}}\end{array} $

式中:lat为船舶纬度,lon为船舶的经度,v为船舶的航行速度,c为船舶的对地航向,δ为船首向,选取的是MMSI号为367339240的船舶2022年9月的数据,部分数据如表3所示。

表 3 船舶AIS信息 Tab.3 AIS Information of Ships
2.3 船舶轨迹数据的特点

船舶轨迹是连续的,因为AIS每次发送数据之间有一定的时间间隔,所以船舶的位置信息不是连续的,而是离散的,本文需要将这一系列离散的位置信息连起来才能构成船舶的轨迹,而轨迹的预测是指根据前一时刻船舶的状态信息来推测船舶下一时刻的位置。船舶轨迹受到环境等不确定因素的影响呈现出以下特征:

1)非线性

由于海上环境具有诸多不确定性,会发生很多情况,而船舶的运动轨迹很容易受这些环境因素的影响,如风、海、浪、礁石等,这些环境因素又相互影响,让船舶的轨迹呈现非线性的特征。

2)随机性

在船舶的航行过程中也难免会受到很多不可控因素的影响,如船舶故障、交通管制,包括船员操作也具有随机性,所以船舶的轨迹呈现出了随机性的特征。

3)趋势性

由于船舶的航行会有一个明确的目的地,所以船舶的整体航向趋势不会有太大的变化,因此船舶的轨迹具有趋势性。

4)周期性

大部分船舶都往返于两地之间,而大致的路线相同,所以船舶的轨迹具有周期性的特点。

5)相关性

船舶每个时刻的位置都会受到上一个时刻或更久之前时刻位置状态的影响,所以船舶的轨迹具有相关性的特点。

2.4 AIS数据预处理

AIS数据集中存放着大量船舶不同时刻的位置信息,但AIS系统在接收数据过程中会受到噪声的影响,导致数据错误、数据丢失等问题。其中错误信息一般有如下几类:

1)用来区分船舶的水上移动通信业务唯一标识码(MMSI)不是9位,或存在相同时间的MMSI号且其位置数据冲突。

2)船速(SCG<0)、船向(COG>360)的数据是不合理数据,属于噪声。

3)经度(LON>180)、纬度(LAT>90)为不合理数据。

删除这些非法数据、重复数据、空值数据后能很好地减少噪声对轨迹建模的影响,减少预测误差。

同时可能由于设备老化、人为操作等问题导致数据集中还存在许多数据缺失,本文可以从AIS数据集中的DataBaseTime中看出每一个数据的传送间隔大概是1 min左右,但数据集中会出现2个数据相隔好几分钟的情况,这其中就出现了数据缺失,导致时间间隔不均匀,对模型预测下一时刻的位置时产生较大的影响。

数值缺失的原因主要可分为无意的缺失、有意的缺失和本身就不存在。无意的缺失是由于人员操作疏忽、数据采集器故障等造成的,经常发生在对系统实时性要求比较高的时候。有意的缺失是数据集在特征描述中将缺失值也作为一种特征值,不存在是指特征属性根本不存在,显然AIS数据集的缺失是无意的。而数据的缺失又可分为完全随机缺失、随机缺失、非随机缺失,由于AIS数据集缺失数据的概率和已观察到的数据和未观察到的数据无关,属于完全随机缺失,对于这种缺失,常用的方法有特殊值插补、均值插补。本文选用均值插补,用一个时间间隔内观测值的平均值来插补缺失的值,该方法计算快速、方便,对船舶的轨迹补差前后的对比如图1所示。

图 1 均值补差前后轨迹对比 Fig. 1 Comparison of trajectories before and after mean compensation
2.5 数据集的划分

经过预处理后一共970组数据,对预处理后的数据进行划分,前800组作为训练集,放入神经网络进行训练,后170组数据作为测试集。由于不同参数间的数量级相差较大,需要对经度、纬度、对地航向以及船首向参数除以100,来保证和对地速度差不多的数量级,可以有效提高精度。

3 模型预测结果的分析与评估 3.1 实验的环境与数据

本实验编程语言为python3.9,基于NoSQL数据库选用公开的AIS实验数据,其MMSI号为367339240的船舶在2021年10月和11月中7天的数据,一共970组,选取其中重要的运动特征LAT,LON,SOG,COG,Heading作为模型的输入。

3.2 模型评估函数

为了评估一个模型的精度,准确地衡量不同模型的差异,需要对模型进行评估,常用的模型评估函数有均方误差(MSE)、均方根误差(RMSE)、最大绝对误差(MAE)等。

1)均方差(MSE)

均方误差是将模型的预测值和真实值相减,再将差平方后求和取平均值,其值越接近于0说明预测精度越高,模型的预测效果越好,其公式如下:

$ {\rm{MSE}}=\dfrac{1}{{n}}\sum _{{i}=1}^{{n}}{\left(\widehat{{{y}}_{{i}}}-{{y}}_{{i}}\right)}^{2} \text{。} $

2)均方根误差(RMSE)

均方根误差是对均方差开根号,能够让结果在数量级的比较上更加直观,其公式为:

$ \begin{array}{c}{\rm{MSE}}=\sqrt{\dfrac{1}{{n}}\displaystyle\sum _{{i}=1}^{{n}}{\left(\widehat{{{y}}_{{i}}}-{{y}}_{{i}}\right)}^{2}}\end{array} \text{。} $

3)最大绝对误差(MAE)

最大绝对误差是预测值和真实值相减取绝对值中最大的值,表现了预测值和观测值之间最大的误差,其公式为:

$ \begin{array}{c}{\rm{MAE}}={\rm{MAX}}\left(\left|\widehat{{{y}}_{{i}}}-{{y}}_{{i}}\right|\right)\end{array} \text{。} $
3.3 RNN模型的预测结果

RNN神经网络将船舶的时序数据转换为三维的格式进行输入,取数据集中800组数据作为训练集,剩余170组数据作为测试集,损失函数选用均方误差(mse)进行计算,RNN损失值变化如图2所示。

图 2 RNN损失值变化 Fig. 2 Changes in RNN loss values

图2为100次训练后的损失值变化,其预测轨迹与实际轨迹之间的对比如图3所示。

图 3 RNN轨迹预测图 Fig. 3 RNN trajectory prediction
3.4 LSTM模型预测结果

LSTM模型的输入同样需要将时序数据转换成为三维的输入格式,并增加防止过拟合的Dropout层,参数设置为0.1,损失函数选用均方误差(mse),每次梯度更新的样本数(batch_size)为269,迭代次数(epochs)为100次,最后用均方差、均方根误差、最大绝对误差进行评估对比,其损失图变化如图4所示。可以看出整个LSTM模型在优化后均方误差明显降低,效果良好。

图 4 LSTM损失值变化 Fig. 4 Changes in LSTM loss values
4 结 语

本文将NoSQL数据库应用于船舶AIS数据系统中,对船舶轨迹进行分析预测。建立船舶轨迹模型,并对NoSQL数据库的AIS数据进行预处理。通过对模型预测结果的分析和评估,发现NoSQL数据库技术适合应用于船舶轨迹预测。

参考文献
[1]
刘慧慧. 基于NoSQL技术的卫星配载数据管理系统设计[J]. 廊坊师范学院学报:自然科学版, 2021, 21(4): 34-37.
[2]
李克祥, 潘海华, 王国庆, 等. 基于大规模AIS数据的渔船碰撞预警及事故回溯算法[J]. 船舶物资与市场, 2023, 31(1): 10-13. DOI:10.19727/j.cnki.cbwzysc.2023.01.004
[3]
李宾郎, 段建丽, 柴昱含. 基于AIS的船舶航迹数据应用研究[J]. 长江信息通信, 2021, 34(12): 4-5. DOI:10.3969/j.issn.1673-1131.2021.12.002
[4]
刘敬一, 高晓倩, 郭琦, 姚晨, 裴新宇, 陈金勇. 基于运动属性约束的船舶AIS航迹去纠缠方法[J]. 无线电工程, 2023, 53(3): 678-685. DOI:10.3969/j.issn.1003-3106.2023.03.022
[5]
郑枫凡, 蒋仲廉, 余诚强, 等. 基于AIS数据的蜿蜒河段船舶动态领域特征[J]. 中国航海, 2023, 46(1): 1-8+15. DOI:10.3969/j.issn.1000-4653.2023.01.001