周春輝 譚林旭* 黃 亮 戴紅良 劉宗楊 嚴(yán) 釔
(武漢理工大學(xué)航運(yùn)學(xué)院1) 武漢 430063) (武漢理工大學(xué)智能交通系統(tǒng)研究中心2) 武漢 430063) (浙江省交通運(yùn)輸科學(xué)研究院3) 杭州 310039)
在水上交通安全管理中,渡船(包括客渡船和汽渡船)是重要的監(jiān)管對象,一方面是因為其渡江行為需要穿越航道中的主要交通流,使交通態(tài)勢變的復(fù)雜,增加了船舶碰撞事故風(fēng)險;另一方面是因為渡船事故常常造成大量人員傷亡的嚴(yán)重后果.當(dāng)前對船舶活動的跟蹤管理包括雷達(dá)、船舶自動識別系統(tǒng)(automatic identification system,AIS)、攝像機(jī)等,可以跟蹤船舶的運(yùn)動軌跡.船舶軌跡數(shù)據(jù)中蘊(yùn)含著豐富的行為語義信息,可用于識別內(nèi)河船舶渡江行為.
船舶活動軌跡的數(shù)據(jù)廣泛應(yīng)用于船舶運(yùn)動模式識別、船舶類型識別、船舶異常行為檢測、重點水域識別等方面.馬文耀等[1]使用譜聚類通過對船舶軌跡進(jìn)行分類將船舶運(yùn)動模式進(jìn)行劃分,得到進(jìn)出港口不同線路的船舶軌跡.魏照坤等[2]采用無監(jiān)督的DBSCAN聚類算法對軌跡結(jié)構(gòu)距離進(jìn)行改進(jìn),作為軌跡相似度的評價標(biāo)準(zhǔn),得到瓊州海峽的5種不同的船舶運(yùn)動模式.王桃蘋等[3]基于AIS數(shù)據(jù)進(jìn)行船舶軌跡時空數(shù)據(jù)挖掘,識別重點水域、檢測異常軌跡,劃分港口層次.董婉婷等[4]提出一種基于分段化動態(tài)規(guī)劃的漁船AIS軌跡相似性度量方法,了解漁船作業(yè)規(guī)律,并且及時發(fā)現(xiàn)漁船的異常行為.崔彤彤等[5]結(jié)合一維卷積神經(jīng)網(wǎng)絡(luò)和長短期記憶網(wǎng)絡(luò),研究了一種1D CNN-LSTM混合模型,通過綜合考慮船舶軌跡整體分布特征和時序特征進(jìn)行船舶類型劃分,可以有效的識別漁船、客船、油船、集裝箱船、散貨船五種船舶軌跡類型.
文中通過分析內(nèi)河渡船航行特征,提出一種基于船舶軌跡的內(nèi)河船舶渡江行為識別方法,可以快速識別內(nèi)河渡船,并對其數(shù)量、航次和活動情況進(jìn)行統(tǒng)計,有效識別從事渡江作業(yè)的非渡船船舶,有利于海事部門進(jìn)行水上安全監(jiān)管.
選取內(nèi)河渡船的軌跡進(jìn)行可視化,幾種典型的渡船航行軌跡類型見圖1.渡船在內(nèi)河兩岸固定碼頭來回行駛,航行過程為往返穿越航道,停留點在固定區(qū)域具有聚集性[6].渡船渡江行為的特征主要包括[7]:
1) 區(qū)域性 渡船航行一般是定線的,其航行區(qū)域相對固定,不會駛出這塊區(qū)域.
2) 周期性 將一個停靠點設(shè)為初始點,開始航行后隨著時間的推移,航行位置與初始點位置的距離表現(xiàn)為先增大再減小的趨勢,并且每一次往返過程中,最遠(yuǎn)航行距離和航行時間都幾乎相同,因此其航行距離具有周期性;由于航行路線固定,所以渡船的航向變化也具有周期性(規(guī)律性).
3) 往返性 少數(shù)渡船在一側(cè)有多個泊位,由于這些泊位位置相鄰,整體可視為一個停泊區(qū)域.渡船在兩個停泊區(qū)域之間來回行駛,兩個停泊區(qū)域內(nèi)的停留點個數(shù)會隨著時間的推移而增加.
4) 穩(wěn)定性 渡船的來回航線是固定不變的,盡管上行軌跡和下行軌跡線路不同,但是每個航次的航程、航時及平均速度都趨于穩(wěn)定,偶爾有不穩(wěn)定的情況出現(xiàn).
圖1 四種典型渡船軌跡圖
AIS數(shù)據(jù)包含船舶的一系列動態(tài)運(yùn)動特征,將船舶AIS數(shù)據(jù)按照時間戳順序排列,則船舶的一系列軌跡表示為Traj={P1,P2,…,Pi,…,Pn},Pi為其中一條AIS數(shù)據(jù),包含的信息為該船舶在這一刻的瞬時運(yùn)動特征,包括船舶編號(MMSI)、船舶發(fā)出AIS信息時的時間戳(post time)、經(jīng)度(LON)、緯度(LAT)、航速(speed)、對地航向(COG)等.根據(jù)這些信息,以已知渡船為例,提取并分析具有過河行為船舶的運(yùn)動特征.
1) 航行區(qū)域特征提取方法 渡船航行區(qū)域和線路固定,一般為對岸或者斜對岸往返.航行區(qū)域范圍不會很大,在長江干線活動的渡船航行軌跡中,同一艘船舶的任意兩個軌跡點距離均未超過5 km.若一艘船舶1 d航行的軌跡中,兩個點的最遠(yuǎn)距離超過5 km,就可以認(rèn)為該船舶不具有渡船運(yùn)動特征,排除該船舶并進(jìn)行下一艘船舶的識別,以提高識別效率.最遠(yuǎn)航行距離計算方法為
Dmax=max{D(pi,pj)},i≠j,0
(1)
2) 停留點特征提取方法 渡船具有對岸往返航行的特征,一般在內(nèi)河兩岸只有兩個固定停泊區(qū)域.由于停泊區(qū)域位置固定,船舶停泊時相對位移較小,而且船舶在停泊區(qū)域的軌跡點非常密集,因此選擇DBSCAN聚類方法對一艘渡船兩小時內(nèi)航速小于v的軌跡點進(jìn)行聚類,可將聚為一類的點視為停泊區(qū)域,則每隔一段時間都會有兩個聚類簇(前提是這兩小時中渡船航行次數(shù)不低于n)即為渡船在內(nèi)河兩岸的兩個停泊區(qū)域.基于DBSCAN的軌跡段停留點聚類算法步驟如下.
步驟1輸入一艘船舶的一段時間的軌跡Traj={P1,P2,…,Pn},并按照時間戳順序排列.
步驟2輸入?yún)?shù) 鄰域半徑ε,鄰域內(nèi)最少點個數(shù)MinPts.
步驟3選取軌跡Traj中未訪問過的一個點Pi,并標(biāo)記為已訪問.
步驟4若Pi在ε范圍內(nèi)最少點個數(shù)大于等于MinPts,則標(biāo)記為核心點,將Pi在ε范圍的所有點歸入集合N.否則將該點標(biāo)記為噪音點,回到步驟3.
步驟5若N集合中存在未訪問點,選取N集合中未訪問點Pj,并標(biāo)記為已訪問;若全部點已訪問,回到步驟3.
步驟6若在范圍內(nèi)最少點個數(shù)大于等于MinPts,則標(biāo)記為核心點,并將該點在范圍的所有點歸入集合N,回到步驟5.若不滿足核心點要求,則標(biāo)記為噪音,回到步驟4,直至所有N中點都標(biāo)記為已訪問,然后返回到步驟2.
3) 航行過程航向特征提取方法 對于內(nèi)河渡船來說,航次是其從事客貨運(yùn)輸?shù)囊粋€完整過程,渡船從一個停泊區(qū)域開始航行,到達(dá)對岸的停泊區(qū)域,這段時間的航行以及停泊過程為渡船的一個航次.根據(jù)這一特征,可統(tǒng)計渡船一段時間內(nèi)有多少個航次,并將渡船每一個航次進(jìn)行提取,分析每一個航次的航向特征.
由于大部分渡船航行受內(nèi)河水流影響,渡船的軌跡可劃分為上行軌跡和下行軌跡,下行船舶受到激流影響,因此上行軌跡和下行軌跡通常不同,可將渡船航行的一個來回(上行軌跡和下行軌跡)視為一個階段.由于渡船的上行軌跡和下行軌跡都是固定線路,所以每一個階段的航向特征都非常相似.將一個航行階段的航向數(shù)據(jù)視為一個序列,則每一個序列都應(yīng)具有相似性,由于渡船每個階段航行時間不完全相同,且每次AIS數(shù)據(jù)采集的時間間隔也不同,因此在時間序列中,需要比較相似性的兩段時間序列的長度可能并不相等.兩個序列整體上相似,但是在x軸上并不是完全對齊的,可以選擇其中一個或者兩個序列進(jìn)行扭曲、拉伸、壓縮,選擇基于DTW(dynamic time warping)的時間序列相似度方法將時間序列進(jìn)行延伸和縮短,以達(dá)到更好對齊效果來計算兩個時間序列之間的相似性.DTW算法原理如下.
假設(shè)有兩個時間序列P和Q,它們的長度分別是n和m.
P={p1,p2,…,pn}
Q={q1,q2,…,qm}
為了對齊這兩個序列,需要構(gòu)造一個n×m的矩陣網(wǎng)格,矩陣元素(i,j)表示pi和qj兩個點的距離d(pi,qj)(也就是序列P的每一個點和Q的每一個點之間的相似度,距離越小則相似度越高),一般采用歐式距離,d(pi,qj)=(pi-qj)2計算距離.每一個矩陣元素(i,j)表示點pi和qj的對齊.DP算法可以歸結(jié)為尋找一條通過此網(wǎng)格中若干格點的路徑,路徑通過的格點即為兩個序列進(jìn)行計算的對齊的點.DTW計算步驟如下.
步驟1將i=0和j=0時的D(i,j)值設(shè)置為正無窮大.
步驟2對于i從1至m,j從1至n,通過迭代計算,為
dij=d(pi,qj)
(2)
D(i,j)=dij+min{D(i-1,j),
D(i,j-1),D(i-1,j-1)}
(3)
最終獲得的D(n,m)即是多變量序列P和Q的動態(tài)時間規(guī)整距離.Dmin為矩陣最短路徑累加值,分別計算兩個序列中每個點的平均距離,取最大值,可用來判斷兩個序列的相似性,為
(4)
4) 航行時間特征 由于渡船來回航行的航線固定,軌跡大致相同,因此渡船每個航次的航行時間也會集中在一個時間范圍內(nèi),渡船航行過程中,極少有中間停留的情況,因此渡船航速小于0.2 m/s即可認(rèn)為該渡船抵達(dá)停泊區(qū),結(jié)束一個航次,航行時間提取方法步驟如下:
步驟1輸入渡船一段時間的軌跡Traj={P1,P2,…,Pn},并按照時間戳順序排列,同時創(chuàng)建一個數(shù)組:A=[·].
步驟2若船舶前一刻速度v<0.2,且此時速度v≥0.2,則船舶已開始航行,記錄此時時間tj,循環(huán)步驟2,直至船舶前一刻速度v≥0.2,且此時速度v<0.2,在該時刻已抵達(dá)泊位,記錄此時的時間ti.
步驟3本航次的航行時間T=ti-tj,將T添加到數(shù)組A中.
步驟4若本次停泊為當(dāng)天最后一次停泊,則結(jié)束循環(huán),輸出每個航次的航行時間數(shù)組A.否則繼續(xù)步驟2~3循環(huán).
最后得的數(shù)組A=[T1,T2,…,Tn],其中n為總航次數(shù).ADF(augmented dickey-fuller)檢驗可用于驗證時間序列的平穩(wěn)性假設(shè).ADF檢驗返回結(jié)果為ADF統(tǒng)計量和給定顯著性水平下的ADF統(tǒng)計量的臨界值;如果ADF統(tǒng)計量比臨界值的值小,則可在該顯著性水平下,拒絕原序列存在單位根的原假設(shè),即原序列是平穩(wěn)的.通常情況下,只用判斷T值或者p值就可判斷序列是否穩(wěn)定,T值小于Critical Value三種情況的值,或者p值小于0.05即可認(rèn)為序列穩(wěn)定,p值等于0最穩(wěn)定.
(5)
(6)
基于上述的渡船特征分析,將上述特征作為從海量AIS數(shù)據(jù)中篩選出渡輪的限制條件,同時滿足所有渡船航行特征則將該船舶識別為渡船(或具有渡江行為的船舶),步驟如下.
步驟1輸入所有船舶AIS數(shù)據(jù),將數(shù)據(jù)按照船舶MMSI編號和時間戳順序排列;
選取一艘沒有處理過的船舶所有AIS數(shù)據(jù).
步驟2若航行區(qū)域最遠(yuǎn)距離Dmax小于D0,則進(jìn)入步驟3,否則排除該船舶,回到步驟2.
步驟3停留點特征驗證:將該船舶的AIS數(shù)據(jù)以每小時為單位,進(jìn)行軌跡分段,得到每小時的軌跡段;依次選取每個軌跡段,將速度v<0.2 m/s的軌跡點使用DBSCAN聚類,參數(shù)設(shè)置:鄰域半徑ε,鄰域內(nèi)最少點個數(shù)MinPts.若有3小時的數(shù)據(jù)能夠聚為兩個簇,且聚為三個或三個以上簇的次數(shù)為0,則進(jìn)入下一步.否則返回步驟2.
步驟4航行時間穩(wěn)定性驗證:處理該船舶所有軌跡數(shù)據(jù),得到每個航次經(jīng)歷時間以及航次總數(shù),若航次時間序列A使用ADF檢驗后,結(jié)果中的p值小于p0,則每個航次航行時間趨于穩(wěn)定,進(jìn)入步驟5.否則返回步驟2.
步驟5航行最遠(yuǎn)距離驗證:計算船舶每個航次的最遠(yuǎn)航行距離,將每個航次的最遠(yuǎn)航行距離整理為一個序列distance=[d1,d2,…,dn],計算其標(biāo)準(zhǔn)差s,若小于s0,則進(jìn)入下一步,否則返回步驟2.
步驟6航向序列相似性:提取該船舶每個航次的軌跡段,將每兩個航次的航向整理為一個序列,使用DTW得到最短路徑累加值,再算出每個序列中點的平均距離,取最大值,Daverage 實驗數(shù)據(jù)區(qū)域范圍為經(jīng)度112°24’~116°42’,緯度29°18’ ~30°44’.將原始AIS數(shù)據(jù)經(jīng)過預(yù)處理,剔除明顯異常的數(shù)據(jù),例如:位置異常、速度異常、航向異常等.為對比近些年的渡船數(shù)量變化情況,時間分別選取2014年7月1—7日與2018年7月1—7日作為識別結(jié)果對比. 渡船特征分析樣例選取為2018年7月1日航行于白洋至孫家河航線的MMSI編號為413930347的渡船.該渡船的航行路線見圖2.由圖2可知:該渡船大致呈現(xiàn)為‘8’字形,且為兩點往返的運(yùn)動模式,軌跡重復(fù)度也非常高,上下行的軌跡可以明顯分辨出來. 圖2 渡船航行軌跡圖 1) 停留點特征提取 將速度小于0.2 m/s的軌跡點聚類,聚類點的結(jié)果可視化到地圖上,可以看出聚類點非常密集,且無噪音點,停泊點都是在岸邊的停泊區(qū)域,見圖3. 圖3 停留點聚類結(jié)果圖 2) 航行過程航向相似性特征提取 從AIS數(shù)據(jù)中提取兩個階段在航行過程中的航向數(shù)據(jù),分別設(shè)為序列S1,S2.由于船舶停泊時間沒有規(guī)律,所以剔除了停留時的航向,為避免航向值的突變,將原本航向范圍為[0°,360°]的航向數(shù)據(jù)調(diào)整為[-180°,180°],航向變化情況見圖4. 圖4 渡船兩個階段航向序列圖 使用DTW算法得到兩個序列的最短路徑,見圖5. 圖5 DTW最短路徑圖 由圖5可知:白色線為兩個序列的對短路徑,且拐點錯位并不明顯,大致為矩陣的對角連接線,也就是說大部分序列都能直接對應(yīng),少部分需要做錯位對應(yīng),因此可以認(rèn)為這兩個序列是具有相似性的,最短路徑累加值為281.1,每個點對平均距離的最大值Daverage為9.07. 3) 航行距離特征 選取1 d的AIS數(shù)據(jù),以該渡船在1 d中的第一個停泊點位置和時間為起始點位置和起始時間,按照時間戳的順序依次計算該渡船每個軌跡點距離起始點的距離,以x軸為時間,y軸為距離,結(jié)果見圖6. 圖6 航行距離原始波形圖 將每個航次的最遠(yuǎn)距離,也就是每個波峰數(shù)值存入序列distance中,計算其標(biāo)準(zhǔn)差,得到結(jié)果s=1.85,可知該渡船每個航次的最遠(yuǎn)航行距離都幾乎相同. 4) 航行時間特征提取 提取該渡船每個航次的航行時間,正態(tài)分布圖見圖7.由圖7可知:航次的時間主要集中在400~500 s. 圖7 單航次航行時間正態(tài)分布圖 將圖7中的航次時間序列進(jìn)行ADF檢驗,結(jié)果見表1. 表1 ADF檢驗結(jié)果 輸出結(jié)果中,Test Statistic為統(tǒng)計量的值,也成為T值;p-value為p值,為T統(tǒng)計量對應(yīng)的概率;Lags Used為延遲;Number of Observations Used為測試的次數(shù);Critical Value 1%為T值下小于-3.517 114,則原假設(shè)發(fā)生的概率小于1%,其它的數(shù)值以此類推.該序列檢驗結(jié)果p值明顯小于0.05,可認(rèn)為該渡船航次時間趨于穩(wěn)定.其他幾種典型渡船的運(yùn)動軌跡經(jīng)過驗證,實驗結(jié)果都較為相似,具有上述特征,因此不再贅述. 本算法設(shè)置的參數(shù)有:船舶活動軌跡點最遠(yuǎn)距離D,鄰域半徑ε,鄰域內(nèi)最少點個數(shù)MinPts,ADF檢驗結(jié)果中的p值,點對平均距離的最大值D0.考慮到多個泊位的分布特點以及船舶停留時間特征,將ε設(shè)置為100 m,MinPts設(shè)置為5;ADF算法原理表明,p值小于0.05時,序列才趨于穩(wěn)定,因此將p0值閾值設(shè)置為0.05;根據(jù)渡江船舶運(yùn)動特征,同時經(jīng)過多次試驗,s0值取40、D1值取20為最佳效果,識別效率最高.使用基于船舶軌跡的內(nèi)河船舶渡江行為識別算法,在停留特征和航行特征的約束下,2014年7月1—7日共識別出具有渡江行為的船舶61艘,2018年7月1—7日共識別出具有過河行為的船舶60艘.通過查詢該時段內(nèi)的所有渡船和識別結(jié)果進(jìn)行對比,識別準(zhǔn)確率達(dá)到98%, 在這些具有渡江行為的船舶中,絕大部分為客渡船和汽渡船,為了看出每天的渡船數(shù)量變化,統(tǒng)計每天的渡船數(shù)量,結(jié)果見表2.由表2可知:并不是所有船舶每天處于航行狀態(tài),每天渡船的數(shù)量存在著小幅度的波動,對比2014年和2018年,該區(qū)域渡江船舶數(shù)量變化不大. 表2 渡船數(shù)量統(tǒng)計表 在所有渡江船舶的識別結(jié)果中,存在少部分其它類型的船舶具有渡江行為.例如2018年7月1—7日,共識別出4艘非渡船的船舶存在多次往返渡江行為,并且活動水域聚集在岳陽水域,7天的活動軌跡點見圖8,MMSI編號、船舶類型、船長、船寬、航次見表3.此類船舶在內(nèi)河橫駛時間不定,以MMSI編號為413807805的船舶為例,該船舶存在橫駛過長江的渡江行為,但并不是每天都在一個水域做往返運(yùn)動,其橫駛行為不具有時間規(guī)律性.可以識別為具有渡江行為的非渡船類型船舶,供海事管理人員進(jìn)一步分析查處. 圖8 2018年7月1—7日4艘非渡船船舶渡江軌跡圖 針對內(nèi)河船舶渡江行為缺少有效識別方法問題,通過分析渡船航行大數(shù)據(jù),分析渡船停留特征和運(yùn)動特征,并將停留點、航行時間、航行距離、航行方向等行為特征作為識別條件,提出渡江行為識別算法.利用長江中下游AIS歷史數(shù)據(jù),對渡江行為識別算法進(jìn)行實例驗證.在2014年7月1—7日的數(shù)據(jù)中識別出渡船56艘,在2018年7月1—7日的數(shù)據(jù)中識別出渡船55艘(非渡船共4艘).內(nèi)河船舶渡江行為識別方法為渡江船舶監(jiān)管提供技術(shù)支撐,對于海事安全監(jiān)管具有重要應(yīng)用價值.2 實驗與分析
2.1 實驗區(qū)域和數(shù)據(jù)
2.2 渡船特征結(jié)果分析
2.3 渡江船舶識別結(jié)果分析
3 結(jié) 束 語