何 渡,肖絲雨,任俊偉,劉子恒,沈 昕,李凱文,陳智軍
(1.湖北省科技信息研究院,湖北武漢 430063;2.湖北大學(xué) 計算機與信息工程學(xué)院,湖北武漢 430062)
船舶碰撞預(yù)警是近年來智能航道領(lǐng)域的研究熱點之一[1]。航船行駛極易受天氣、水域、航速等復(fù)雜多變因素的影響,從而導(dǎo)致船舶碰撞預(yù)警的時效性和準確性不高[2]。如何提高船舶預(yù)警的時效性和準確性,一直是船舶領(lǐng)域研究中的難點問題[3]。本文利用DBSCAN 算法核心思想,結(jié)合船舶實時地理信息以及船首向,對船舶進行碰撞預(yù)警。
船舶安全領(lǐng)域(Ship Safety Domain,簡稱SSD)是指為避免碰撞,每艘船舶前后左右會保持一個不受他船侵犯的區(qū)域[4]。本文根據(jù)船舶AIS 數(shù)據(jù),改進了船舶領(lǐng)域SSD 計算方法,并運用DBSCAN 空間聚類思想,結(jié)合船舶實時地理信息及船首向,預(yù)測短時間內(nèi)的船舶軌跡,最后對可能出現(xiàn)危險的船舶進行預(yù)警提示[5]。
目前已有大量學(xué)者針對該問題展開研究,國外的船舶領(lǐng)域模型比較具有代表性的有藤井模型、Goodwin 模型、橢圓領(lǐng)域模型等[6]。藤井在考慮了通航密度、潮流和船速等因素后,得出的船舶領(lǐng)域模型是一個長軸8L 與短軸3.2L構(gòu)成的橢圓(L 為船舶長度)[7];Goodwin 對開闊水域的船舶領(lǐng)域模型進行研究,在考慮了船長、操作性能、海域類型等因素后,得出的船舶領(lǐng)域模型是以目標船為中心的3 個扇形區(qū)域組合而成的;Tak 等專家結(jié)合前兩種模型的優(yōu)點,提出變更中心船位和船首向的橢圓領(lǐng)域模型[8]。國內(nèi)對于船舶領(lǐng)域的研究起步較晚,大連海事大學(xué)考慮了航行安全等因素,針對狹水道或航道中的船舶領(lǐng)域,在考慮了對遇和交叉會遇兩種會遇局面后,將領(lǐng)域模型確定為一橢圓[9];賈傳熒[10]則綜合考慮船舶操縱性能、航行環(huán)境和航速等因素對船舶的影響,提出一種擁擠水域內(nèi)的船舶領(lǐng)域模型。
針對船舶避碰預(yù)警的研究也從未停止。2000 年左右,大連海事大學(xué)便將專家系統(tǒng)與船舶AIS 技術(shù)相結(jié)合,提出一種基于AIS 的航海避碰系統(tǒng)[11-12]。在模糊推理算法方面,Perera 等[14-16]將模糊最大優(yōu)先算法應(yīng)用于船舶自動避碰,取得了一系列研究成果。近年來,基于神經(jīng)網(wǎng)絡(luò)的避碰系統(tǒng)也成為智能避碰系統(tǒng)的重要發(fā)展方向之一,西南交通大學(xué)對其作了一系列研究,包括使用高斯混合模型和連續(xù)貝葉斯網(wǎng)絡(luò)分別進行軌跡預(yù)測[17-18];大連海事大學(xué)也提出基于混合遺傳算法的船舶避碰路徑規(guī)劃方法[19]。
綜合來看,針對船舶避碰預(yù)警研究的算法很多,但大部分算法均存在計算量較大,難以廣泛應(yīng)用推廣的問題。另外大多數(shù)實驗是基于仿真模擬環(huán)境進行的,對船舶航行過程中的復(fù)雜性考慮不夠,缺乏在真實環(huán)境中的模擬實驗[20-21]。
本文首先簡要介紹現(xiàn)有船舶碰撞預(yù)警方法的優(yōu)缺點,給出船舶領(lǐng)域的明確定義,然后在此基礎(chǔ)上,利用DBSCAN空間聚類思想改進傳統(tǒng)船舶領(lǐng)域計算方法,提出實時航情預(yù)警模型,最后基于大規(guī)模真實的長江流域船舶AIS 數(shù)據(jù)進行模型測試及對比實驗。
本文主要貢獻包括:
(1)模型充分考慮了船舶行駛過程的復(fù)雜性,結(jié)合AIS數(shù)據(jù)中的船長、船速、船首向、地理位置以及行駛時間等動靜態(tài)因素,改進傳統(tǒng)船舶領(lǐng)域計算及軌跡預(yù)測方法,從而較大程度上提高了船舶預(yù)警的準確性。
(2)運用DBSCAN 空間聚類思想,基于改進的船舶領(lǐng)域范圍,結(jié)合船舶實時地理信息和船首向,對中心船和目標船進行船舶領(lǐng)域的相對位置判斷。與傳統(tǒng)方法相比,減少了大量實時計算工作量,提高了智能船舶碰撞預(yù)警的時效性。
(3)采用大規(guī)模真實的長江航道船舶AIS 數(shù)據(jù)進行實驗建模,并對模型的可靠性和有效性進行客觀、真實的評價。
AIS 是船舶自動識別系統(tǒng)(Automatic Identification Sys?tem)的簡稱,船舶AIS 系統(tǒng)能實時接收其它船和平臺發(fā)送的AIS 信息,并對相關(guān)信息進行解析、處理、存儲與顯示[5]。船舶AIS 數(shù)據(jù)能夠?qū)崿F(xiàn)實時船舶地理位置定位、船舶動態(tài)信息展示以及船舶信息獲取等功能。船舶AIS 數(shù)據(jù)包括MMSI、船名、呼號、船舶類型等靜態(tài)信息[19],以及經(jīng)度、緯度、船首向等動態(tài)信息[17]。
對船舶領(lǐng)域的影響因素可劃分為人為因素、環(huán)境因素和船舶因素[6]。人為因素來自于船員航行經(jīng)驗及目測,但該方法過于依賴于船員個人素質(zhì),存在很強的不確定性;在環(huán)境因素中,自然條件、水文條件、航道條件等都會影響船舶領(lǐng)域大??;船舶因素則受船舶尺寸大小、船舶可操縱性等影響。
(1)碰撞點時間估計(Time to Collision Point Estima?tion)。該模型給出了TTCP(Time to Collision Point)用于獲得碰撞點時間。此類判別方法對于體積較小、速度較快且穩(wěn)定的船舶比較適用,但對于大型船舶的適用性較差。由于船舶的長度相對較長,無法忽略船長帶來的影響[22]。
(2)會遇距離判別(DCPA)。一旦發(fā)現(xiàn)有發(fā)生碰撞的可能性,馬上采取規(guī)避碰撞風(fēng)險的措施,以達到碰撞預(yù)警效果。此類預(yù)警模式對船舶AIS 數(shù)據(jù)的時效性有較高要求,計算所需參數(shù)為:最近會遇時間(TCPA)、最近會遇距離(DCPA)、兩船船首向夾角、兩船之間距離。輸出內(nèi)容是目標船舶的船首向和速度,此類方法也是根據(jù)對船舶相遇點的計算考慮是否存在碰撞風(fēng)險[23]。
(3)船舶領(lǐng)域判別(SSD)。船舶領(lǐng)域是指在該范圍內(nèi),目標船舶不會與周圍船舶發(fā)生碰撞的安全區(qū)域,即當(dāng)周圍船舶“侵犯”到目標船舶的船舶領(lǐng)域,則認為目標船舶存在碰撞風(fēng)險,從而進行碰撞預(yù)警。船舶領(lǐng)域的判別指標受多種因素影響,SSD 的形狀和大小也隨著指標度量結(jié)果的變化而改變。通過SSD 進行預(yù)警,船舶之間的關(guān)系非常清晰,并且SSD 的形狀與大小在不同情況下可使用不同參數(shù)作為控制因素,但也因為SSD 的形狀與大小受多種因素控制,各個控制因素之間的比重很難確定,這也是SSD 所面臨的問題之一。
DBSCAN(Density-Based Spatial Clustering of Applica?tion with Noise)是一種經(jīng)典的基于密度的聚類算法,其將“簇”定義為密度相連點的最大集合,能夠?qū)⒕哂凶銐蚋呙芏鹊膮^(qū)域劃分為簇,并可在噪聲的空間數(shù)據(jù)庫中發(fā)現(xiàn)任意形狀的聚類。
DBSCAN 算法被廣泛應(yīng)用于密度聚類、熱點挖掘等領(lǐng)域,主要應(yīng)用于空間數(shù)據(jù)聚類。本文借鑒DBSCAN 算法中的聚類思想和遍歷思想,將其應(yīng)用于改進的船舶領(lǐng)域?qū)崟r航情避碰算法。
船舶碰撞預(yù)警利用船舶實時航情AIS 數(shù)據(jù)中的船長、船速、船首向以及地理位置經(jīng)緯度作為輸入?yún)?shù),結(jié)合船舶領(lǐng)域SSD 的思想模式,計算出形狀為橢圓的船舶領(lǐng)域SSD,并根據(jù)橢圓SSD 進一步計算出菱形SSD,接下來根據(jù)DBSCAN 空間聚類思想,通過各個船舶的實時AIS 數(shù)據(jù)進行船舶領(lǐng)域SSD 之間關(guān)系的判斷,完成中心船舶碰撞風(fēng)險判斷,以達到船舶碰撞預(yù)警的目的。
實時航情碰撞預(yù)警模型算法流程如圖1 所示。
Fig.1 Real-time air traffic collision warning model圖1 實時航情碰撞預(yù)警模型算法流程
2.2.1 實時航情定義
船舶發(fā)送AIS 數(shù)據(jù)的時間間隔根據(jù)船舶的船速、所處狀態(tài)與航行方向而有所不同,但將AIS 數(shù)據(jù)作為實時船舶運行記錄是目前較為合理的方式。在數(shù)據(jù)存儲時使用最新替換方法,保證當(dāng)前時刻實時航情庫內(nèi)所有船舶數(shù)據(jù)均為最新的AIS 數(shù)據(jù),從而確保AIS 數(shù)據(jù)的時效性。采用該方法可以減少實時航情庫的數(shù)據(jù)總量,提高讀取速度,從而提高算法的實用性。
實時航情數(shù)據(jù)的意義有兩點:①可以將實時數(shù)據(jù)與歷史數(shù)據(jù)分開存放,方便分析實時數(shù)據(jù)是否存在問題,提高對實時數(shù)據(jù)的處理速率;②在對船舶進行碰撞預(yù)警時,加快對實時數(shù)據(jù)的獲取速度,從而縮短船舶碰撞預(yù)警算法運算時間,能更高效地計算出船舶碰撞預(yù)警結(jié)果,提高碰撞預(yù)警的時效性。
2.2.2 最大限值假想范圍
最大限值假想范圍即假定一個最大數(shù)值,使得所有對象的數(shù)值都小于該值,將該值作為數(shù)據(jù)獲取范圍的上限,以此剔除不需要的其它數(shù)據(jù)。算法輸入?yún)?shù)為一個包含中心船舶與周邊船舶AIS 數(shù)據(jù)的對象集合A(Aggregate),通過最大限值假想范圍獲取周邊船舶,可減少計算量,提高計算效率。
根據(jù)資料顯示,商用、民用船舶速度一般不會超過30nm/h,即54km/h(15m/s),船長一般不會超過300m。因此,本文在中心船舶的橢圓SSD 領(lǐng)域基礎(chǔ)上,再外接多個以最大速度54km/h 和最大船長300m 作為參數(shù)計算出來的橢圓領(lǐng)域(1 145.455),并與中心船舶領(lǐng)域相結(jié)合,即為選取對象集合A 的范圍(最大限值假想范圍)。接下來根據(jù)計算得到的SSD,以中心船舶為原點,找出對象集合A。最大限值假想范圍如圖2 所示。
Fig.2 The hypothetical range of maximum limit圖2 最大限值假想范圍
2.2.3 船舶領(lǐng)域計算
船舶在行駛過程中,船舶速度、船長、船首向(船舶移動的方向)是重要的影響因素。本文根據(jù)船舶運行速度V(單位m/s)與船舶長度L(單位m)計算船舶領(lǐng)域SSD。SSD 可根據(jù)不同情況定義不同形狀,因此本文將船舶領(lǐng)域SSD 定義為一個規(guī)則橢圓,橢圓長軸方向與船首向相同,橢圓長軸長度LAL(Long axis length)是短軸長度SAL(Short axis length)的兩倍。具體長軸長度LAL 計算公式如下:
2.2.4 利用DBSCAN 思想判斷船舶領(lǐng)域空間關(guān)系
(1)判斷中心船舶SSD 中包含的船舶。根據(jù)目標船舶領(lǐng)域面積與其它船舶位置,在集合A 中將直接包含于中心船舶領(lǐng)域內(nèi)的船舶記為對象集合I(in),所需數(shù)據(jù)有:中心船舶SSD 長軸長LAL 與短軸長SAL、中心船舶經(jīng)緯度位置(sx,sy)、周邊船舶經(jīng)緯度(x,y)。
利用公式(2)計算Result,若Result=1,該船在SSD 的橢圓上;若Result≤1,該船在SSD 的橢圓內(nèi);若Result>1,該船在SSD 的橢圓外。即當(dāng)Result≤1 時,該船必定與中心船舶有碰撞風(fēng)險。
(2)判斷中心船舶SSD 與剩余船舶SSD 的關(guān)系。經(jīng)過步驟(1)的計算后,可得到在中心船舶SSD 之外的對象集合O(out)。根據(jù)DBSCAN 的思想依次循環(huán)遍歷,找出對象集合O 中船舶SSD 與中心船舶SSD 存在相交或相切的對象,并聚類在集合中。所需數(shù)據(jù)如下:中心船舶領(lǐng)域長軸長centricLal、中心船舶領(lǐng)域短軸長centricSal、中心船舶經(jīng)緯度位置(sx,sy)、中心船舶船首向(角度α)、周邊船舶長軸長otherLal、周邊船舶短軸長otherSal、周邊船舶經(jīng)緯度位置(x,y)、周邊船舶船首向(角度β)。
(3)以中心船舶經(jīng)緯度為原點,得到中心船舶關(guān)于橢圓SSD 的橢圓方程:
(4)根據(jù)中心船舶與周邊船舶的位置關(guān)系,得出周邊船舶的橢圓SSD,接下來對該橢圓SSD 進行優(yōu)化改進,在橢圓SSD 內(nèi)計算出一個菱形SSD,并得出該菱形SSD 4 條邊的線性表達式:
γ=90-船首向差值(進行判定的船舶β-中心船舶α)
(5)以中心船舶位置為原點建立直角坐標系,得到周邊船舶的坐標(x,y);通過長軸otherLal 與短軸otherSal 計算出長軸、短軸與橢圓相交的4 個頂點(A、B、C、D),如圖3所示。
(6)根據(jù)兩點成線的定理,可得到AC、AD、BC、BD 4 條線組成的菱形。對所得菱形SSD 4 條邊的直線方程分別與中心船舶橢圓SSD 的關(guān)系進行判斷,將菱形SSD 4 條邊所得的4 條直線方程分別與中心船舶的橢圓SSD 方程聯(lián)立,得到4 個一元二次方程。
Fig.3 Four points inside the ellipse圖3 橢圓內(nèi)4 點
(7)通過判別式Δ=n^2-4mp 求解直線與橢圓是否有交點,若Δ>1,即有兩個交點;Δ=1,即有一個交點;Δ<1,即沒有交點。
若有交點,下一步判斷交點是否在船舶領(lǐng)域內(nèi)。通過求根公式x=(-n±√Δ)/2m,判斷x 是否在x1與x2的范圍內(nèi)。若在范圍內(nèi),則直線與橢圓SSD 相交,即中心橢圓與當(dāng)前周圍船舶的橢圓相交;若不在范圍內(nèi),則繼續(xù)判斷菱形SSD 的下一條邊是否與橢圓相交。只要存在一條相交的直線,即判斷兩橢圓相交,若4 條直線均未與目標橢圓相交,則判斷兩橢圓不相交,把相交的船舶歸類于對象集合IT(intersects)中,如圖4 所示。
Fig.4 The interchange of the marine field and other marine fields圖4 船舶領(lǐng)域與其它船舶領(lǐng)域交匯
船舶實時航情碰撞預(yù)警的計算使用了船舶實時AIS數(shù)據(jù)中的船長、船速、船首向以及地理坐標位置經(jīng)緯度,通過本文設(shè)計的模型判斷出在最大限值假想范圍內(nèi)所有與中心船舶具有碰撞風(fēng)險的船舶,并返回有碰撞風(fēng)險的船舶信息。在此基礎(chǔ)上,對危險船舶的位置進行標記,實現(xiàn)船舶碰撞預(yù)警可視化,從而實現(xiàn)更加靈活的碰撞預(yù)警效果。
本文實驗使用長江流域真實的AIS 數(shù)據(jù),時間跨度范圍為2017 年5 月16 日0 點0 分-2017 年5 月16 日0 點49 分,時間長度為49′31″,所有數(shù)據(jù)記錄數(shù)為64 999 條。AIS 數(shù)據(jù)分為動態(tài)數(shù)據(jù)與靜態(tài)數(shù)據(jù)。
本文實驗使用的數(shù)據(jù)主要為船舶AIS 數(shù)據(jù)中的動態(tài)信息,由于數(shù)據(jù)并未隨著真實時間的改變而改變,所以從實驗數(shù)據(jù)中的最早時間(2017 年5 月16 日0 點0 分)開始,每隔3min 為一個時間間隔片段,存儲動態(tài)信息與靜態(tài)信息相結(jié)合的船舶實時航情數(shù)據(jù)。
船舶AIS 數(shù)據(jù)在初始階段(進行數(shù)據(jù)處理前),每一條信息都是一段有規(guī)律的字符串片段,字符串是由數(shù)據(jù)對應(yīng)的編號、代號、縮寫組成的。因此,需要對原始數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換,轉(zhuǎn)變成本文所需的鍵值對形式。
對原始數(shù)據(jù)進行數(shù)據(jù)分析、數(shù)據(jù)轉(zhuǎn)換及數(shù)據(jù)清洗等操作,最后得出的實驗數(shù)據(jù)如圖5、圖6 所示。
Fig.5 Experimental data 1圖5 實驗數(shù)據(jù)1
Fig.6 Experimental data 2圖6 實驗數(shù)據(jù)2
本次實驗使用的AIS 數(shù)據(jù)包括船舶的唯一標識碼MMSI、船舶經(jīng)度、船舶緯度、船長、船速與船首向。其中,船舶經(jīng)緯度為WGS84 下地理坐標系的數(shù)值,船長單位為米(m),船速單位為nm/h,船首向單位為度(°)。選取的數(shù)據(jù)如表1 所示。
Table 1 Experimental data表1 實驗數(shù)據(jù)
實驗分為兩組進行,第一組實驗以1 號船舶為中心船舶進行船舶碰撞預(yù)警,通過本文算法得出可能與1 號船舶有碰撞風(fēng)險的船舶;第二組實驗是利用第一組實驗結(jié)果,對實驗一中可能與1 號船舶存在碰撞風(fēng)險的其它船舶進行反向碰撞預(yù)警檢測,以判斷船舶碰撞預(yù)警的準確性與相互性。
3.3.1 第一組:可行性實驗
在第一組實驗中,可以發(fā)現(xiàn)中心船舶的危險程度較高,與中心船舶可能發(fā)生碰撞的船舶數(shù)目較多。其中,2 號船舶在中心船舶(1 號)的船舶領(lǐng)域SSD 橢圓范圍內(nèi),3、4、6號船舶的SSD 與中心船舶有相交情況。本次實驗從數(shù)據(jù)獲取到計算得出實驗結(jié)果,共用時0.86s,其中模型計算花費時間0.39s,具體結(jié)果如表2、圖7 所示。
Table 2 The first set of experimental results表2 第一組實驗結(jié)果
Fig.7 Experimental results圖7 實驗結(jié)果
3.3.2 第二組:準確性實驗
第二組實驗共進行3 次,分別以2、4、6 號船舶為中心船舶,1 號船舶作為周圍船舶進行實驗。實驗結(jié)果表明,中心船與周圍船舶之間仍存在碰撞風(fēng)險。
Table 3 The second set of experimental results表3 第二組實驗結(jié)果
Fig.8 Ship experiment results centered on ship 2圖8 以2 號船為中心船舶實驗結(jié)果
Fig.9 Ship experiment results centered on ship 4圖9 以4 號船為中心船舶實驗結(jié)果
Fig.10 Ship experiment results centered on ship 6圖10 以6 號船為中心船舶實驗結(jié)果
3.3.3 第三組:與碰撞點時間估計法的對比實驗
前文介紹了船舶碰撞預(yù)警的碰撞點時間估計法,本組實驗使用該方法進行對比實驗。實驗使用的數(shù)據(jù)為第一組實驗使用的數(shù)據(jù),中心船舶的選取點也與第一組實驗相同。使用船舶碰撞預(yù)警的碰撞點時間估計法進行碰撞預(yù)警,實驗結(jié)果如表4 所示。
Table 4 Collision point time estimation experiment results表4 碰撞點時間估計實驗結(jié)果
實驗結(jié)果顯示,第一組實驗結(jié)果與采用碰撞點時間估計法的實驗結(jié)果差別在于6 號船舶的預(yù)警結(jié)果。通過對比可以發(fā)現(xiàn),碰撞點時間估計法未對6 號船舶進行預(yù)警。碰撞點時間估計法將船舶看作質(zhì)點,根據(jù)船舶速度與方向的關(guān)系實現(xiàn)對船舶的碰撞預(yù)警,一旦兩艘船舶方向相同或相反,并且不位于同一條直線內(nèi),碰撞點時間估計法則認為它們不存在碰撞風(fēng)險。但在實際航行中,若航道發(fā)生改變,也可能發(fā)生碰撞事故,因此本文所作的碰撞預(yù)警比該預(yù)警方法效果更好、更全面。
由實驗結(jié)果可知,本文模型預(yù)警準確性較高,但模型計算時間相比對比模型慢0.11s,且時間差別隨著數(shù)據(jù)量的增長而增長。碰撞點時間估計法將船舶視為質(zhì)點,只需判斷點與線的關(guān)系,根據(jù)兩艘船舶速度與船首向的關(guān)系實現(xiàn)碰撞預(yù)警,因此模型計算速度稍快。但若航道發(fā)生改變,該算法則無法識別風(fēng)險(如6 號船),且模型計算速度與本文模型相差極小。因此,在實際碰撞預(yù)警應(yīng)用中,本算法優(yōu)勢明顯。
實驗結(jié)果展示了基于船舶AIS 數(shù)據(jù)的船舶碰撞預(yù)警的準確性,只需在數(shù)據(jù)處理時確保AIS 數(shù)據(jù)的正確更新,即能保證船舶實時航情碰撞預(yù)警的準確性。
利用本文的碰撞預(yù)警模型,在某船舶時空大數(shù)據(jù)系統(tǒng)上實現(xiàn)了船舶碰撞預(yù)警功能,模型應(yīng)用效果如圖11、12 所示。
Fig.11 Model application圖11 模型應(yīng)用效果
Fig.12 The local magnification effect of model application圖12 模型應(yīng)用局部放大效果
圖11 中的內(nèi)容包括中心船舶以及與中心船舶可能發(fā)生碰撞風(fēng)險的其它船舶,用不同顏色標注展示在系統(tǒng)上,綠色標記為中心船舶,紅色標記為可能與中心船舶發(fā)生碰撞的其它船舶。圖12 為該時空大數(shù)據(jù)系統(tǒng)的局部放大圖,能更清晰地看出模型應(yīng)用效果。由此證明了本文模型的可用性與實用性。
本文借鑒DBSCAN 空間聚類方法,基于大規(guī)模船舶實時AIS 數(shù)據(jù),考慮到船舶行駛速度、船舶形狀、船首方向等因素,提出基于DBSCAN 改進船舶領(lǐng)域算法的實時碰撞預(yù)警模型。該模型能對船舶行駛實時航情進行航情監(jiān)測及碰撞風(fēng)險預(yù)警,為保障水上交通安全提供了一種有效、可行的風(fēng)險預(yù)警方法。
現(xiàn)階段有關(guān)船舶碰撞預(yù)警的方法較多,均有不同的優(yōu)缺點。如何對其進行改進,使得船舶碰撞預(yù)警方法更加科學(xué)、實用,對智能航道的實現(xiàn)至關(guān)重要。本文模型后續(xù)應(yīng)考慮更多可能影響船舶領(lǐng)域的因素,如船舶類型、水下地形等,以進一步提高船舶碰撞預(yù)警的精準度和實用性。