郭立強
(1. 南昌軟件工程新技術創新重點實驗室, 江西 南昌 330000;2. 江西軟件職業技術大學, 江西 南昌 330000)
在船舶行駛的過程中,會出現很多異常情況,如硬件故障(GPS 失靈等),惡劣的海上環境影響(風、浪、礁石等),這些不確定因素都會導致船舶偏離預定航線的情況發生[1–3]。為了提高船舶航行安全,應當加強對船舶航行過程的指導,及時、準確地獲取船舶航行信息,及時發現船舶航行時的異常軌跡。對船舶運動規律的預測和提高預測軌跡的可靠性是水上交通安全領域重要的研究課題[4–5]。為了改善船舶交通安全,本文基于NoSQL數據庫技術采用一種新的導航系統AIS,自動向沿海相關部門以及海域內的其他船只提供關于目標船舶的航行信息。
本系統后端數據服務采用多數據庫持久化策略,主要思路為在使用傳統Mysql 數據庫進行開發的基礎上引入多種主流NoSQL 現代數據庫,根據其對應特性選擇適合的數據進行使用,如表1 所示。

表1 系統所用NoSQL 數據庫特性表Tab. 1 Characteristics of NoSQL database used in the system
通過以上特性分析,最終確定數據持久化方案如表2 所示。

表2 系統數據持久化方案表Tab. 2 System data persistence scheme
AIS 是一種船舶導航系統,在同一海域搭載AIS設備的船舶能夠互相感知,它是船舶之間以及船岸之間重要的數據信息交互設備,具有大容量、多樣性、快速度、真實性等特征。衛星,地面和裝有AIS 設備的船舶能不斷接收AIS 設備的廣播信息。現在AIS 已經非常普及,我國沿海以及河流港口水域基本上都被AIS 系統覆蓋,能夠有效地提高船舶的通行效率,是船舶交通管理系統不可或缺的一部分,既能夠有效跟蹤船舶的狀態,還可以向安全監管系統提供有效準確的信息,有效保障了船舶交通安全,同時這些數據也促進了對船舶交通安全領域的研究。
1)靜態信息
MMSI 唯一識別碼、船名、呼號、貨物類型、船舶長寬、IMO 呼號等信息,這些信息一般固定不變,由人為填寫。
2)動態信息
關于船舶的定位、航向、航速、經緯度等隨著船舶的傳感器同步更新的信息。
3)船舶的航行相關信息
船舶的目的港口地和預計到港時間、船舶吃水深度、船舶航行狀態等。
4)安全相關信息
安全航行相關數據、船載人數等。
為了有效訓練模型,需要從AIS 數據集中選取船舶運動時的主要特征,其中包括經度、緯度、對地速度、船首向和對地航向,經度和緯度用來表示船舶的位置,速度用來表示船舶運動的快慢,對地航向表示船舶運動的方向,以此來作為輸入建立網絡模型,輸出為下一時刻的位置,也就是下一時刻的經度和緯度,充分利用與船舶位置狀態關系最密切的信息。所以在t時刻,目標船舶的狀態特征可以表示為:
式中:lat為船舶緯度,lon為船舶的經度,v為船舶的航行速度,c為船舶的對地航向,δ為船首向,選取的是MMSI 號為367 339 240 的船舶2022 年9 月的數據,部分數據如表3 所示。

表3 船舶AIS 信息Tab. 3 AIS Information of Ships
船舶軌跡是連續的,因為AIS 每次發送數據之間有一定的時間間隔,所以船舶的位置信息不是連續的,而是離散的,本文需要將這一系列離散的位置信息連起來才能構成船舶的軌跡,而軌跡的預測是指根據前一時刻船舶的狀態信息來推測船舶下一時刻的位置。船舶軌跡受到環境等不確定因素的影響呈現出以下特征:
1)非線性
由于海上環境具有諸多不確定性,會發生很多情況,而船舶的運動軌跡很容易受這些環境因素的影響,如風、海、浪、礁石等,這些環境因素又相互影響,讓船舶的軌跡呈現非線性的特征。
2)隨機性
在船舶的航行過程中也難免會受到很多不可控因素的影響,如船舶故障、交通管制,包括船員操作也具有隨機性,所以船舶的軌跡呈現出了隨機性的特征。
3)趨勢性
由于船舶的航行會有一個明確的目的地,所以船舶的整體航向趨勢不會有太大的變化,因此船舶的軌跡具有趨勢性。
4)周期性
大部分船舶都往返于兩地之間,而大致的路線相同,所以船舶的軌跡具有周期性的特點。
5)相關性
船舶每個時刻的位置都會受到上一個時刻或更久之前時刻位置狀態的影響,所以船舶的軌跡具有相關性的特點。
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
經過預處理后一共970 組數據,對預處理后的數據進行劃分,前800 組作為訓練集,放入神經網絡進行訓練,后170 組數據作為測試集。由于不同參數間的數量級相差較大,需要對經度、緯度、對地航向以及船首向參數除以100,來保證和對地速度差不多的數量級,可以有效提高精度。
本實驗編程語言為python3.9,基于NoSQL 數據庫選用公開的A I S 實驗數據, 其M M S I 號為367339240 的船舶在2021 年10 月和11 月中7 天的數據,一共970 組,選取其中重要的運動特征LAT,LON,SOG,COG,Heading 作為模型的輸入。
為了評估一個模型的精度,準確地衡量不同模型的差異,需要對模型進行評估,常用的模型評估函數有均方誤差(MSE)、均方根誤差(RMSE)、最大絕對誤差(MAE)等。
1)均方差(MSE)
均方誤差是將模型的預測值和真實值相減,再將差平方后求和取平均值,其值越接近于0 說明預測精度越高,模型的預測效果越好,其公式如下:
2)均方根誤差(RMSE)
均方根誤差是對均方差開根號,能夠讓結果在數量級的比較上更加直觀,其公式為:
3)最大絕對誤差(MAE)
最大絕對誤差是預測值和真實值相減取絕對值中最大的值,表現了預測值和觀測值之間最大的誤差,其公式為:
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
LSTM 模型的輸入同樣需要將時序數據轉換成為三維的輸入格式,并增加防止過擬合的Dropout 層,參數設置為0.1,損失函數選用均方誤差(mse),每次梯度更新的樣本數(batch_size)為269,迭代次數(epochs)為100 次,最后用均方差、均方根誤差、最大絕對誤差進行評估對比,其損失圖變化如圖4 所示??梢钥闯稣麄€LSTM 模型在優化后均方誤差明顯降低,效果良好。

圖4 LSTM 損失值變化Fig. 4 Changes in LSTM loss values
本文將NoSQL 數據庫應用于船舶AIS 數據系統中,對船舶軌跡進行分析預測。建立船舶軌跡模型,并對NoSQL 數據庫的AIS 數據進行預處理。通過對模型預測結果的分析和評估,發現NoSQL數據庫技術適合應用于船舶軌跡預測。