劉亞帥,曹 偉,管志強
(中國船舶重工集團公司第七二四研究所,南京211153)
由于海上異常軍事目標的航跡多表現為位置異常與航向異常,所以為了能夠檢測出異常航跡,識別出異常船舶,需要首先構建出正常船舶航路的位置與航向模型,然后在此模型下與待檢測航跡進行對比檢測。
當前,船舶自動識別系統(Automatic Identification System,AIS)[1]的廣泛應用為基于 AIS數據構建正常船舶航路模型及檢測異常航跡提供了海量數據儲備。縱觀國內外基于AIS數據對航路建模的研究,多基于單一目標的小樣本進行。例如,Pallotta等[2]采用改進后的 DBSCAN (density?based spatial clustering of appli?cations with noise)聚類算法進行航道挖掘,Guillarme等[3]采用軌跡分割聚類的方法實現軌跡數據的聚類,Osekowska 等[4?6]將勢場的概念應用于船舶航道的提取,寧建強等人[7]采用一種細粒度網格化的方法對海上船舶航道進行提取。這些方法在海量數據背景下都會導致樣本描述整體出現偏差的可能性增大,甚至發生錯誤和遺漏[8]。
為了基于海量AIS數據實現正常船舶航路的建模,從而實現異常航跡的檢測,本文提出了一種基于網格化的船舶航跡異常檢測算法。該算法首先采用了一種網格化壓縮方法對原始航跡進行壓縮處理,去除冗余數據;然后基于網格化重構了航跡方向屬性,為壓縮后的航跡增加了方向屬性;之后采用分類處理的思路和變閾值設計方法實現了航路建模;最后設計了一種基于滑窗檢測的方法,實現了異常航跡的檢測。實驗結果表明,該算法可以有效實現部分類型的異常航跡檢測。
本文基于網格化的船舶航跡異常檢測算法的總體架構,如圖1所示。

圖1 船舶航跡異常檢測算法總體流程
由于從數據庫中抽取的原始AIS數據存在大量噪聲信息,所以本文首先通過從MMSI(Maritime Mobile Service Identity)號及經緯度角度對其進行篩選去噪。
定義1空窗期
由于主觀或客觀環境的干擾導致目標離開監控窗口,監測儀器在一段相當長的時間內丟失對這個目標的跟蹤,而且在再次跟蹤到該目標時無法忽略中間缺失過程產生的誤差。這段缺失過程就是該目標的一個空窗期。
由于同一MMSI號的航跡存在多個空窗期,為了滿足后續網格化壓縮處理中對軌跡數據連續性的要求,需要將同一MMSI號對應的AIS數據根據空窗期分割成若干連續的航跡,即航跡切割。
為了基于海量AIS數據實現正常航路的建模,本節通過以下3步進行處理:
(1)為了從海量AIS數據中提取出有用的航跡信息,去除冗余信息,本節提出一種網格化壓縮的方法直接剔除了航跡數據中的冗余信息,提取出航跡數據中的有用信息;
(2)由于壓縮后的航跡缺失了航跡的航向屬性,而后續異常檢測過程需要航向信息,所以本節基于網格化為航跡重構了航向屬性;
(3)在上述兩步的基礎上,本節在重構的8個航向上分別建立了8個航向上的航路模型。
定義2網格化壓縮方法
如公式(1)所示,已知一條連續的航跡是S,其中(loni,lati)是航跡S的第i個航跡點的經緯度坐標;然后,通過坐標變換,使得(lon′i,lat′i)等于航跡點(loni,lati)所在網格中心點的坐標,從而形成航跡S′;最后,對航跡S′按照點跡的先后順序進行去重壓縮,最終得到壓縮后的航跡S″,而且n>m。

網格化壓縮具體操作流程如下所述:
(1)如圖2所示,對研究區域W根據經緯度值劃分成大小為step的網格(圖中A′是A的放大);
(2)將落在網格中的所有航跡點的經緯度坐標都壓縮成為網格中心點的經緯度坐標(對于落在網格邊界線上的點統一移到左側或上側的格子中),即將所有落到A′格子中的點都壓縮到中心點處;
(3)將每一條連續的航跡按照時間屬性(UDT_TM)進行排序,并對經緯度采用一階差分的算法進行計算;
(4)將經緯度差分為零的點去掉,至此實現了網格化壓縮。

圖2 網格化壓縮過程圖
定義3航向屬性重構規則
設初始軌跡點為P0(Lon0,Lat0),下一軌跡點位置為P1(Lon1,Lat1),根據矢量的定義法則,P0點的矢量方向(Lon1?Lon0,Lat1?Lat0)。 圖 3 是一個九宮格編碼格,9號格為初始軌跡點P0,下一軌跡點P1將會落到剩余的軌跡格中的任意一個格中,則P0的方向編碼為P1點落到的格子對應的編碼號。

圖3 九宮格編碼圖
在定義3的基礎上,首先假設一條航跡(如圖4所示),則軌跡點a的軌跡方向編碼為7,軌跡點b的軌跡方向編碼為2,軌跡點c的軌跡方向編碼為1。這樣這條軌跡方向的整體編碼形式就是7?2?1。依此原理對所有壓縮后的點跡進行航向屬性重構。

圖4 假設軌跡圖
為了便于后續從不同航向角度對航跡進行異常檢測,本節首先按照重構的航向屬性的8個編碼值將航跡數據分成8個數據集,之后在每個數據集上分別建立該航向上對應的航路模型,以此實現不同航向上的航路建模。具體算法流程如圖5所示。

圖5 正常航路建模流程圖
定義4核心密度網格
在網格密度值計算中,一般直接對每個網格中點跡數量進行計數從而作為其相應的密度。同時規定,若某個網格中的點跡數(即網格密度)大于等于設置的密度閾值,則該網格被稱為核心密度網格,否則稱為噪聲網格。
定義5密度閾值設置方法
設航向i(i=1,2,…,8)上的網格密度值集合為DIi(Di1,…,Dij,…,Din),其中Dij是航向i上的第j個網格中的密度值(Dij>0),則如公式(2)所示,其中μi為航向i上的網格密度值的均值,σi為航向i上的網格密度值的標準差,TDi為航向i上的密度閾值,m為一個系數(m>0)。

由于本文是通過提取核心密度網格作為正常航路模型,所以需要設置密度閾值來過濾噪聲網格。因為重構的8個航向上的數據分布存在差異,為了適應不同航向上數據分布的特點,本文采用定義5的方法分別設置不同航向上的密度閾值TDi,之后通過閾值判決實現不同航向上的航路建模。
詩意美是《雨巷》最為突出的特點之一。“藝術作品的形式美,歸根結底,也正是這樣一種生命感應的產物”。詩歌作為一種充滿藝術性的作品形式,與其他體裁相比,簡潔而又含蓄,卻能將作者的心緒、感受完美地詮釋;精練的語言,短小的篇幅,卻能引人遐想。
本文采用的異常檢測流程如圖6所示。

圖6 異常檢測流程圖
為了便于航跡與航路模型對比,首先需要對航跡也進行網格化壓縮及航向重構,其壓縮方法和航向重構方法與航路建模中的一致。之后設置滑窗大小為N2,對滑窗內的航跡采用滑窗異常檢測方法進行檢測(見定義 6)。
定義6滑窗異常檢測方法
首先采用滑窗N2對航跡按照時間順序截取矩陣A,其中矩陣A中航跡所在位置的元素值為1,其余位置的元素值為0(如圖7所示)。同時采用滑窗分別對8個模型截取矩陣B1至B8,其中Bm矩陣對應模型中核心密度網格的元素值為α(α>0),其余元素為β(β<0)。

圖7 窗口截取矩陣過程
如公式(3)所示,其中P為整個滑窗中的航跡異常度,M是模型的個數,本文中取M=8,N是滑窗的大小,ωm中是每個模型輸出異常度的權值,fm(Ym)是一個sigmoid函數,其輸出值是每個模型對應的異常度,Ym是矩陣A與矩陣Bm點乘之后并求和的結果。

通過比較滑窗內的航跡異常度P與異常度閾值ThP來檢驗滑窗內的航跡是否異常。當P低于ThP時表示航跡異常,則結束檢測并輸出異常;當P高于ThP時表示航跡正常,則進一步判斷該條航跡是否已檢測完成,如果檢測完成,將結束檢測并輸出正常;如果未檢測完成,將向下一時間節點處移動滑窗繼續檢測,依次循環直到檢測完成。
本實驗使用的是基站采集的廈門港口海域近一個月的AIS數據,其總量達到300 496 123條數據。
4.2.1 網格化壓縮效果分析
本文采用 0.02°×0.02°網格進行劃分,這樣既可以充分壓縮又不會丟失轉向信息。由于數據量太大,受硬件平臺的限制,無法對原始數據進行一次性壓縮,所以將1個月的數據分割成3個數據集分別進行處理。表1所示是3次數據壓縮的效果,其壓縮的倍數都在250~300倍之間。

表1 數據壓縮效果表
4.2.2 航跡異常檢測效果
本實驗中采用表1中的前20天數據構建航路模型,采用最后10天數據進行航路檢測。參數設置:航路模型構建中,密度閾值設置中(即公式(2)中)的m=0.3;異常檢測中α=1,β=-1,ωm=1 且ThP=0.5。 實驗中通過對這10天中較長的3 018條待檢測航跡進行異常檢測,檢測出38條異常航跡,檢測過程耗時63.86 s。其中較明顯異常航跡有26條,圖8所示是其中部分異常航跡。

圖8 部分異常航跡展示
圖8(a)~(d)中船舶航跡發生異常轉向問題,尤其是圖8(a),所以該類異常航跡主要表現為轉向異常;圖8(e)中正常船舶不可能在短時間內發生如此大的位移,所以該類異常航跡表現為偽裝異常;圖8(f)~(h)由于航跡進入異常區域,所以該類異常表現為區域異常。
除了以上圖8中檢測出來的異常,實驗中還將部分正常航跡誤判為異常航跡(如圖9所示)。這主要是由于基站雷達存在威力范圍,在雷達威力邊緣區域收集的AIS數據較少,使得其航跡密度值較低,很容易將其誤判成噪聲區域,從而使得部分航行到該區域的正常航跡誤判成異常航跡。

圖9 部分誤判航跡展示
為了基于海量AIS數據實現正常船舶航路的建模,從而實現異常航跡的檢測,本文提出一種基于網格化的船舶航跡異常檢測算法。該算法針對原始AIS數據中存在冗余信息并嚴重影響后續處理效率和航道模型建立的問題,提出了一種網格化壓縮方法,有效去除了航跡數據中的冗余數據,提高了海量數據處理的計算效率。由于壓縮后的航跡數據缺少航向信息,不利于后續異常檢測中航向的檢測,本文在網格化的基礎上重構了船舶航向屬性,為壓縮后的航跡增加方向屬性,同時也有效去除了原始航跡中航向抖動的問題,為后續航向異常檢測提供條件。之后本文采用分類處理的思想在重構的8個航向上分別構建正常航路模型,為異常檢測提供了模型條件。最后本文借助構建的8個航向的正常航路模型采用一種滑窗檢測方法,通過計算滑窗內航跡的異常度實現最終的航跡異常檢測。實驗結果顯示可以有效提取出部分類型的異常航跡。該算法為船舶航跡異常檢測提供了一種算法支持。
本文雖然可以檢測部分類型的異常檢測,但是對于超出雷達威力范圍的航跡容易出現誤判,尤其當密度閾值TDi選取較大時越發明顯;同時由于異常檢測閾值ThP是一個經驗值,不便于后續遷移到其他數據進行應用,所以需要進一步閾值的設置進行實驗探索研究及理論證明。