□ 韓栩晨 □ 王煥然 □ 梁冬泰 □ 夏 柳 □ 劉 彬
1.寧波大學(xué) 機(jī)械工程與力學(xué)學(xué)院 浙江寧波 315211 2.北部灣大學(xué) 機(jī)械與船舶海洋工程學(xué)院 廣西欽州 535011
當(dāng)前,經(jīng)濟(jì)全球化進(jìn)程不斷加快。到2030年,全球海運(yùn)量將在現(xiàn)有基礎(chǔ)上翻一番。海上運(yùn)輸線將日益繁忙,隨之而來(lái)的是船舶間碰撞事故不斷增多。在船舶海上會(huì)遇的三大局面中,交叉相遇是最為普遍、發(fā)生碰撞事故概率最高的會(huì)遇局面[1]。如何降低船舶交叉相遇碰撞事故概率,是亟待解決的問(wèn)題。監(jiān)測(cè)船舶時(shí)船舶在圖像中的像素面積較小,模型所預(yù)測(cè)的目標(biāo)位置偏差較大,由此造成船舶檢測(cè)精度偏低。
為了減少船舶交匯時(shí)依賴人工對(duì)船舶碰撞距離進(jìn)行估計(jì),技術(shù)人員進(jìn)行了相關(guān)研究。周林宏等[2]對(duì)采集到的圖像進(jìn)行預(yù)處理,通過(guò)對(duì)數(shù)變換、伽馬變換、自動(dòng)色彩均衡算法等對(duì)圖像進(jìn)行增強(qiáng)和去噪,進(jìn)而提出一種基于自適應(yīng)圖像增強(qiáng)和圖像去噪的水面航行船舶識(shí)別方法,但是這一方法對(duì)船舶特征、船舶類型的識(shí)別精度不高。嚴(yán)榮慧等[3]結(jié)合船舶的運(yùn)動(dòng)特征及視頻監(jiān)控的優(yōu)點(diǎn),綜合采用基于背景差分算法的運(yùn)動(dòng)目標(biāo)檢測(cè)方法與基于深度學(xué)習(xí)算法的圖像表象特征識(shí)別方法,實(shí)現(xiàn)多維度廣域船舶識(shí)別功能,這一方法雖然在對(duì)小目標(biāo)的預(yù)測(cè)精度方面有較大提升,提高了船舶的檢測(cè)精度,但是對(duì)位于較遠(yuǎn)處的船舶存在目標(biāo)丟失的問(wèn)題。Redmon等[4-6]提出一種基于回歸預(yù)測(cè)的快速檢測(cè)算法,對(duì)船舶的檢測(cè)效果較好,同時(shí)能夠滿足實(shí)時(shí)檢測(cè)的要求,這一方法對(duì)于船舶交叉相遇或船舶較小的情況,容易出現(xiàn)漏檢、誤檢等問(wèn)題。朱天鵬等[7]提出一種基于安全會(huì)遇距離模型的智能船舶航行行為可靠性評(píng)估方法,構(gòu)建安全交匯模型,進(jìn)行智能判斷,但是這一方法只在仿真系統(tǒng)中實(shí)現(xiàn)了使用,并沒(méi)有進(jìn)行試驗(yàn)和驗(yàn)證。何渡等[8]利用改進(jìn)的SSD(Single Shot MultiBox Detector)算法與DBSCAN(Density-Based Spatial Clustering of Applications with Noise)聚類算法,結(jié)合異步串行接口數(shù)據(jù)進(jìn)行船舶碰撞的危險(xiǎn)預(yù)測(cè)及預(yù)警,由于SSD算法低級(jí)特征卷積層比較少,當(dāng)船舶較遠(yuǎn)且較小時(shí),船舶特征提取會(huì)不充分,導(dǎo)致識(shí)別精度降低,使預(yù)警模型產(chǎn)生偏差。
筆者為避免船舶交匯時(shí)發(fā)生碰撞,針對(duì)船舶在較遠(yuǎn)處且較小情況下定位精度不高,目標(biāo)丟失,檢測(cè)精度降低的問(wèn)題,提出一種基于機(jī)器視覺(jué)的船舶檢測(cè)與航行安全距離監(jiān)測(cè)方法。YOLO(You Only Look Once)v5算法自身具有較佳的目標(biāo)檢測(cè)能力,但其單階段的結(jié)構(gòu)設(shè)計(jì)特點(diǎn)不同于雙階段網(wǎng)絡(luò)可以在兩個(gè)階段內(nèi)對(duì)目標(biāo)位置進(jìn)行優(yōu)化調(diào)整,由此將YOLOv5算法結(jié)構(gòu)替換為DenseNet結(jié)構(gòu),復(fù)用淺層特征信息,構(gòu)建船舶深度特征矩陣。再加入注意力機(jī)制模塊,減小檢測(cè)過(guò)程中的背景干擾。對(duì)檢測(cè)器進(jìn)行解耦,在預(yù)測(cè)器支路中增加編解碼模塊,使對(duì)目標(biāo)的類別預(yù)測(cè)計(jì)算與位置預(yù)測(cè)計(jì)算更具有側(cè)重性,提升圖片的表征能力。通過(guò)改進(jìn),可以精準(zhǔn)檢測(cè)出距離較遠(yuǎn)且較小的船舶,并通過(guò)Sort(Simple Online and Realtime Tracking)算法和逆透視映射[9]融合,判斷出船舶在交匯過(guò)程中是否會(huì)產(chǎn)生碰撞,降低船舶交匯時(shí)的事故率。所提出的方法實(shí)用性強(qiáng),準(zhǔn)確性高,并且易于部署。
基于機(jī)器視覺(jué)的船舶檢測(cè)與航行安全距離監(jiān)測(cè)方法工作流程如圖1所示。船舶進(jìn)入監(jiān)控范圍以后,網(wǎng)絡(luò)高清攝像頭可以獲取船舶的圖像信息。通過(guò)改進(jìn)的YOLOv5算法識(shí)別來(lái)往船舶,獲得船舶的類別信息等,完成對(duì)船舶的識(shí)別。通過(guò)Sort算法,經(jīng)過(guò)卡爾曼濾波算法去噪,并經(jīng)過(guò)匈牙利算法實(shí)現(xiàn)數(shù)據(jù)關(guān)聯(lián),完成對(duì)船舶的跟蹤。利用逆透視映射,對(duì)相機(jī)內(nèi)外參數(shù)進(jìn)行標(biāo)定,經(jīng)過(guò)變換矩陣運(yùn)算,得到鳥(niǎo)瞰圖,再通過(guò)運(yùn)算即可得到船舶之間的距離。最后,對(duì)以上三者數(shù)據(jù)進(jìn)行融合,并與所設(shè)定的閾值進(jìn)行比較,判斷是否觸發(fā)報(bào)警裝置,提醒來(lái)往船舶。
▲圖1 船舶檢測(cè)與航行安全距離監(jiān)測(cè)方法工作流程
目標(biāo)檢測(cè)算法分為以YOLO[10-11]、SSD等為代表的一階段算法和以區(qū)域卷積神經(jīng)網(wǎng)絡(luò)、Fast區(qū)域卷積神經(jīng)網(wǎng)絡(luò)等為代表的兩階段算法。YOLO系列算法是當(dāng)前在目標(biāo)檢測(cè)中應(yīng)用最廣泛的算法之一,圖像推理速度最快達(dá)0.007 s,即每秒可以處理140幀圖像,滿足視頻圖像實(shí)時(shí)檢測(cè)需求。YOLOv5算法有YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四種,其中YOLOv5s算法網(wǎng)絡(luò)最小,速度最快,每個(gè)類別的召回率從0到1的平均精度最低,結(jié)構(gòu)小巧,對(duì)于類似船舶這樣追求速度的目標(biāo),較為合適。
YOLOv5s算法網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,主要由四個(gè)部分組成,四個(gè)部分分別為輸入端、骨干網(wǎng)絡(luò)、頸部、預(yù)測(cè)部分。
YOLOv5算法在輸入端主要采用馬賽克數(shù)據(jù)增強(qiáng)方法。馬賽克數(shù)據(jù)增強(qiáng)方法是CutMix數(shù)據(jù)增強(qiáng)方法的升級(jí)版,利用隨機(jī)四張圖片進(jìn)行旋轉(zhuǎn)、縮放、裁剪等操作,拼接為一張全新的圖片,由此擴(kuò)充數(shù)據(jù)的豐富程度。骨干網(wǎng)絡(luò)主要包含F(xiàn)ocus結(jié)構(gòu)和CSP1_x結(jié)構(gòu),主要關(guān)鍵步驟為切片操作。頸部包含CSP2_x結(jié)構(gòu),可以提高網(wǎng)絡(luò)特征的融合能力,并保留YOLOv4算法中的特征金字塔網(wǎng)絡(luò)+路徑聚合網(wǎng)絡(luò)結(jié)構(gòu)。預(yù)測(cè)部分采用GloU_Loss[12]作為損失函數(shù),能夠處理邊界框不重合的問(wèn)題,通過(guò)非極大值抑制來(lái)獲得最優(yōu)的目標(biāo)框。
▲圖2 YOLOv5s算法網(wǎng)絡(luò)結(jié)構(gòu)
對(duì)YOLOv5算法的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn)。DenseNet是在ResNet基礎(chǔ)上提出的一種全新的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[13]。因?yàn)镈enseNet每一層的輸入都來(lái)源于之前所有層的輸出,所以與傳統(tǒng)卷積網(wǎng)絡(luò)結(jié)構(gòu)存在不同,DenseNet具有L(L+1)/2個(gè)直接連接。在DenseNet網(wǎng)絡(luò)結(jié)構(gòu)中,使用DenseBlock+Transition的結(jié)構(gòu)。其中,DenseBlock是包含很多層的模塊,在這一模塊中,每個(gè)層的特征圖大小相同,層與層之間采用密集連接方式。Transition是用于連接兩個(gè)相鄰DenseBlock的模塊,通過(guò)池化使特征圖減小。在DenseNet中,將之前所有層作為輸入xl:
xl=Hl([x0,x1,…,xl-1])
(1)
Hl是非線性轉(zhuǎn)化函數(shù),包括歸一標(biāo)準(zhǔn)化函數(shù)BN,激活函數(shù)ReLU,以及卷積操作Conv,即:
Hl=BN+ReLU+Conv(3×3)
(2)
DenseNet的每個(gè)層輸入都會(huì)由于層數(shù)的疊加而不斷增加,進(jìn)而會(huì)導(dǎo)致后續(xù)層的輸入非常大。對(duì)此,在原有結(jié)構(gòu)中增加一個(gè)1×1卷積核,來(lái)減少特征數(shù)量,減輕網(wǎng)絡(luò)負(fù)擔(dān),提升計(jì)算效率,即:
Hl=BN+ReLU+Conv(1×1)+BN+ReLU
+Conv(3×3)
(3)
DenseNet相比傳統(tǒng)網(wǎng)絡(luò),優(yōu)勢(shì)在于在網(wǎng)絡(luò)深度越深時(shí)避免梯度消失,同時(shí)可以加強(qiáng)特征傳播,鼓勵(lì)特征重用,減少參數(shù)數(shù)量,并保證低維度特征。
在特征提取網(wǎng)絡(luò)中,為獲取充分的語(yǔ)義特征,通常采用深度卷積網(wǎng)絡(luò),憑借網(wǎng)絡(luò)的深度優(yōu)勢(shì)獲得充分的特征信息。對(duì)于船舶檢測(cè),這樣做存在一定的問(wèn)題。當(dāng)船舶處于遠(yuǎn)方時(shí),船舶在圖片中所占的面積較小,經(jīng)過(guò)深度卷積網(wǎng)絡(luò)中的多次下采樣后,有效像素面積進(jìn)一步減小,在特征圖中特征信息所占的比例較低,不利于定位與檢測(cè)。筆者對(duì)特征提取網(wǎng)絡(luò)進(jìn)行優(yōu)化,提升淺層特征信息的復(fù)用率,同時(shí)增大船舶特征信息在特征圖中的有效比重。對(duì)特征提取網(wǎng)絡(luò)中各個(gè)維度殘差塊的輸入、輸出構(gòu)建密集連接,并且在模塊的輸入端加入空間注意力機(jī)制模塊。優(yōu)化后的主干網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,密集連接結(jié)構(gòu)如圖4所示。
為盡量避免小目標(biāo)因下采樣導(dǎo)致特征丟失,將網(wǎng)絡(luò)模型的輸入修改為640×640,之后每個(gè)模塊的輸出傳遞至之后各個(gè)模塊的輸入端口,在整體上構(gòu)建密集連接的網(wǎng)絡(luò)形態(tài)。采用密集連接結(jié)構(gòu),能夠?qū)⒌途S模塊所提取的特征傳遞至高維模塊,提升特征復(fù)用率。低維特征還沒(méi)有語(yǔ)義化,主要包含有小目標(biāo)的紋理、邊界信息,將低維特征信息傳遞至網(wǎng)絡(luò)深層,能夠?qū)Ω呔S特征信息進(jìn)行補(bǔ)充。但是,密集連接結(jié)構(gòu)也容易傳遞背景等干擾特征,為了對(duì)這些干擾特征進(jìn)行過(guò)濾,在殘差模塊的輸入端前加入空間注意力機(jī)制模塊,結(jié)構(gòu)如圖5所示。
▲圖3 優(yōu)化后主干網(wǎng)絡(luò)結(jié)構(gòu)
▲圖4 密集連接結(jié)構(gòu)
▲圖5 空間注意力機(jī)制模塊
特征圖輸入空間注意力機(jī)制模塊后,由兩條卷積支路進(jìn)行處理。在第一條卷積支路中,采用最大值池化,不改變特征圖大小。最大值池化能夠?qū)⑻卣鲌D中權(quán)值較大的像素點(diǎn)進(jìn)一步擴(kuò)展,提升顯著性。在第二條卷積支路中,輸入的特征圖經(jīng)過(guò)1×1卷積層提高非線性,進(jìn)行轉(zhuǎn)置,轉(zhuǎn)置后得到的特征圖為C×(H×W)。之后將第一條卷積支路與第二條卷積支路的輸出特征圖進(jìn)行相乘,采用SoftMax激活函數(shù)進(jìn)行權(quán)重計(jì)算,得到一維權(quán)值特征圖(H×W)×(H×W)。最后通過(guò)殘差映射方式,將權(quán)值特征圖與輸入特征進(jìn)行相乘,得到賦值后的空間信息特征圖。采用空間注意力機(jī)制,能夠在空間層面上對(duì)目標(biāo)特征信息進(jìn)行加權(quán),并且能夠?qū)Ρ尘疤卣鬟M(jìn)行抑制。
筆者的另外一個(gè)優(yōu)化項(xiàng)是對(duì)YOLO算法檢測(cè)器進(jìn)行修改。對(duì)檢測(cè)器頭進(jìn)行解耦操作,解耦后的檢測(cè)器結(jié)構(gòu)如圖6所示。
原YOLO算法檢測(cè)器采用線性回歸方式,完成對(duì)目標(biāo)類別與位置的預(yù)測(cè)。對(duì)YOLO算法檢測(cè)器優(yōu)化后,特征圖都輸入檢測(cè)器,由兩條支路分別進(jìn)行預(yù)測(cè)。在上支路中,采用全局平均池化將特征圖壓縮為一維特征,通過(guò)分類計(jì)算預(yù)測(cè)每個(gè)候選框的類別。在下支路中,采用3×3卷積層進(jìn)行回歸計(jì)算,預(yù)測(cè)每個(gè)目標(biāo)的位置信息。采用解耦,使對(duì)目標(biāo)的類別預(yù)測(cè)計(jì)算與位置預(yù)測(cè)計(jì)算更具側(cè)重性。在類別預(yù)測(cè)支路中,采用全局平局池化計(jì)算,能夠?qū)崿F(xiàn)類別與特征圖通道的對(duì)應(yīng),并且整合全局空間信息,可以在一定程度上提高預(yù)測(cè)精度。在位置預(yù)測(cè)支路中,支持采用卷積層對(duì)空間信息進(jìn)行提取,壓縮整合通道特征,使模型在位置預(yù)測(cè)方面具有更高的精度。
▲圖6 解耦后檢測(cè)器結(jié)構(gòu)
通過(guò)DS-2DE5223SC-AYC球形攝像機(jī)進(jìn)行數(shù)據(jù)采集。視頻數(shù)據(jù)用于進(jìn)行Sort算法的測(cè)試。將視頻用腳本劃分為一幀一幀的圖像,并將圖像保存為JPG格式,重新命名,應(yīng)用LabelImg標(biāo)注軟件對(duì)圖像進(jìn)行標(biāo)注。在標(biāo)注時(shí)對(duì)船舶進(jìn)行分類標(biāo)注,共分為五類,五類分別為OreCarrier、GeneralCargoShip、ContainerShip、PassengerShip、FishingBoat,如圖7所示。數(shù)據(jù)集采用PASCAL VOC格式,為了防止數(shù)據(jù)樣本數(shù)量較少導(dǎo)致訓(xùn)練模型出現(xiàn)過(guò)擬合現(xiàn)象,基于原有的1 566張圖像,通過(guò)旋轉(zhuǎn)、剪切、鏡像等數(shù)據(jù)增強(qiáng)方法,使圖像增加至6 952張。將圖像按9∶1分為訓(xùn)練集和測(cè)試集兩部分。
▲圖7 船舶分類標(biāo)注
試驗(yàn)中采用Ubuntu 18.04操作系統(tǒng),運(yùn)行環(huán)境為CUDA11.4,中央處理器型號(hào)為英特爾酷睿i5-9400,圖形處理器型號(hào)為英偉達(dá)精視RTX 3060 Ti,訓(xùn)練時(shí)采用Pytorch深度學(xué)習(xí)框架。
為了使YOLOv5算法達(dá)到最佳性能,迭代次數(shù)設(shè)置為1 000,訓(xùn)練批次設(shè)置為32,權(quán)重衰減因子設(shè)置為0.000 5。為了防止過(guò)擬合,學(xué)習(xí)率動(dòng)量設(shè)置為0.937。設(shè)置完參數(shù)后開(kāi)始進(jìn)行訓(xùn)練,訓(xùn)練結(jié)果顯示,迭代收斂較快,所以將迭代次數(shù)設(shè)置為300再次進(jìn)行訓(xùn)練。訓(xùn)練損失函數(shù)曲線如圖8所示,可以看出從0到50次迭代時(shí),損失函數(shù)值呈現(xiàn)出快速下降態(tài)勢(shì),從50到200次迭代時(shí),損失函數(shù)值下降較慢,從200到300次迭代時(shí),損失函數(shù)值逐漸趨于平穩(wěn)。
▲圖8 訓(xùn)練損失函數(shù)曲線
采用平均精度均值作為檢測(cè)精度的評(píng)價(jià)指標(biāo)。平均精度均值與各類別的平均精度,以及準(zhǔn)確率和召回率有關(guān),準(zhǔn)確率P為:
(4)
式中:TP為圖像中包含目標(biāo)船舶且被檢測(cè)出的船舶數(shù)量;FP為圖像中不包含目標(biāo)船舶但也被檢測(cè)出的船舶數(shù)量。
召回率R為:
(5)
式中:FN為圖像中包含目標(biāo)船舶但沒(méi)有被檢測(cè)出的船舶數(shù)量。
試驗(yàn)采用PASCAL VOC中的評(píng)價(jià)指標(biāo),可以根據(jù)準(zhǔn)確率和召回率得到一條范圍在[0,1]之間的曲線,曲線圍成的面積即為平均精度AP,AP為:
(6)
對(duì)得到的平均精度進(jìn)行均值計(jì)算,最終得到平均精度均值mAP,為:
(7)
式中:n為船舶的類別總數(shù);AP(k)為第k個(gè)類別的平均精度。
改進(jìn)YOLOv5算法平均精度均值如圖9所示。由圖9可以看出,經(jīng)過(guò)300次迭代后,改進(jìn)YOLOv5算法的平均精度均值逐漸達(dá)到收斂狀態(tài)。
▲圖9 改進(jìn)YOLOv5算法平均精度均值
為了驗(yàn)證改進(jìn)YOLOv5算法對(duì)較遠(yuǎn)小目標(biāo)物體的檢測(cè)精度,與SSD算法、Faster區(qū)域卷積神經(jīng)網(wǎng)絡(luò)及原YOLOv5算法進(jìn)行比較,檢測(cè)結(jié)果如圖10,檢測(cè)結(jié)果對(duì)比見(jiàn)表1。
▲圖10 檢測(cè)結(jié)果
表1 檢測(cè)結(jié)果對(duì)比
對(duì)于改進(jìn)后的YOLOv5算法,在目標(biāo)船舶較遠(yuǎn)且存在遮擋時(shí),檢測(cè)置信度達(dá)到98%,平均精度均值達(dá)到97.66%,召回率達(dá)到95.62%。對(duì)于同樣的目標(biāo)船舶,原YOLOv5算法和Faster區(qū)域卷積神經(jīng)網(wǎng)絡(luò)雖然都能夠識(shí)別,但是置信度僅為90%左右。SSD算法在置信度為50%時(shí)沒(méi)有能夠檢測(cè)出目標(biāo)船舶,僅在置信度為10%時(shí)檢測(cè)出目標(biāo)船舶。對(duì)于交并比[14],改進(jìn)YOLOv5算法相比原YOLOv5算法提升3.4個(gè)百分點(diǎn),相比SSD算法這一同類型一階段算法提升11.9個(gè)百分點(diǎn)。與Faster區(qū)域卷積神經(jīng)網(wǎng)絡(luò)這一兩階段算法相比,改進(jìn)YOLOv5算法的交并比同樣高2.8個(gè)百分點(diǎn)。檢測(cè)結(jié)果說(shuō)明筆者所提出的改進(jìn)YOLOv5算法在船舶檢測(cè)時(shí)對(duì)小目標(biāo)船舶的識(shí)別與其它一階段、兩階段算法相比,均具有明顯的優(yōu)勢(shì),由此證明通過(guò)加強(qiáng)淺層特征信息復(fù)用,采用空間注意力機(jī)制模塊對(duì)船舶特征信息進(jìn)行增強(qiáng),能夠有效提升檢測(cè)器對(duì)目標(biāo)位置信息預(yù)測(cè)的精度。另一方面,對(duì)檢測(cè)器進(jìn)行解耦,由單獨(dú)的位置預(yù)測(cè)支路進(jìn)行目標(biāo)位置預(yù)測(cè),在一定程度上也提高了檢測(cè)精度。
筆者將改進(jìn)YOLOv5算法與Sort算法、逆透視映射相結(jié)合,通過(guò)檢測(cè)船舶交匯時(shí)的距離來(lái)進(jìn)行安全預(yù)警。在進(jìn)行船舶目標(biāo)檢測(cè)任務(wù)時(shí),用一個(gè)矩形框?qū)⒋翱虺?此時(shí)得到的船舶位置存在誤差。對(duì)此,使用卡爾曼濾波算法來(lái)消除噪聲,通過(guò)對(duì)數(shù)學(xué)模型的預(yù)測(cè)值和測(cè)量值進(jìn)行融合,找到一個(gè)基于兩者融合的最優(yōu)估計(jì)值。還需要使用匈牙利算法完成數(shù)據(jù)關(guān)聯(lián),求出目標(biāo)軌跡和目標(biāo)檢測(cè)的關(guān)聯(lián)代價(jià)矩陣[15]。代價(jià)矩陣的值為檢測(cè)目標(biāo)與預(yù)測(cè)目標(biāo)所有預(yù)測(cè)邊界框之間的交并比距離。最后完成Sort算法跟蹤,最大優(yōu)點(diǎn)是速度快、準(zhǔn)確率高。
通過(guò)逆透視映射方法完成船舶測(cè)距。使用高清攝像機(jī)對(duì)船舶圖像進(jìn)行采集時(shí),由于產(chǎn)生折射等原因會(huì)使數(shù)據(jù)產(chǎn)生畸變,因此需要對(duì)高清攝像機(jī)進(jìn)行標(biāo)定操作,獲得高清攝像機(jī)的內(nèi)參和外參矩陣。在圖像處理過(guò)程中,通過(guò)透視變換矩陣得到船舶在航道中的鳥(niǎo)瞰圖,再通過(guò)逆透視映射矩陣將鳥(niǎo)瞰圖擬合、疊加,關(guān)系式為:
(8)
式中:(x,y)為圖像坐標(biāo)系中的點(diǎn);(X,Y)為世界坐標(biāo)系中的點(diǎn);a11、a12、a13、a21、a22、a23、a31、a32為透視變換矩陣的參數(shù)。
通過(guò)棋盤(pán)格標(biāo)定四組坐標(biāo)點(diǎn),即可得到世界坐標(biāo)系和圖像坐標(biāo)系對(duì)應(yīng)的圖像點(diǎn),最后得到逆透視映射矩陣。
由于不同船舶之間的安全交匯距離不一樣,根據(jù)船舶的大小,以及正態(tài)分布分析[16],可以得到船舶長(zhǎng)度L與船舶交匯安全距離Z0之間的關(guān)系式,為:
Z0=0.002 893L2+0.303 744L
(9)
船舶長(zhǎng)度越長(zhǎng),船舶交匯安全距離也就越大。對(duì)各種不同船舶的長(zhǎng)度進(jìn)行匯總,得到船舶交匯安全距離,見(jiàn)表2。因?yàn)樵囼?yàn)所在的航道較為狹窄,并且來(lái)往船舶長(zhǎng)度最長(zhǎng)不超過(guò)15 m,所以船舶交匯安全距離閾值設(shè)置為6 m。
表2 船舶交匯安全距離 m
當(dāng)船舶與船舶行駛過(guò)程中的距離大于所設(shè)定的交匯安全距離閾值,屬于安全交匯,此時(shí)船舶標(biāo)記為綠色。當(dāng)船舶與船舶行駛過(guò)程中的距離小于所設(shè)定的交匯安全距離閾值,屬于危險(xiǎn)交匯,存在碰撞的危險(xiǎn),此時(shí)船舶標(biāo)記為紅色,需要采取預(yù)警措施,如使用激光射線、揚(yáng)聲器警告等。船舶航行安全距離監(jiān)測(cè)圖像如圖11所示。
船舶在湖海江河中行駛,常常會(huì)由于操作不當(dāng)、人員反應(yīng)不及時(shí),以及天氣影響而發(fā)生碰撞。對(duì)此,提出一種基于機(jī)器視覺(jué)的船舶檢測(cè)與航行安全距離監(jiān)測(cè)方法。原有的YOLOv5算法在實(shí)際檢測(cè)過(guò)程中針對(duì)目標(biāo)船舶較遠(yuǎn)且較小的情況檢測(cè)精度不足,對(duì)此,將原有YOLOv5算法的結(jié)構(gòu)更換為DenseNet結(jié)構(gòu),有利于提升梯度的反向傳播,使網(wǎng)絡(luò)更容易訓(xùn)練,并且提升型態(tài)特征。同時(shí)增加空間注意力機(jī)制模塊,通過(guò)空間注意力機(jī)制模塊來(lái)尋找網(wǎng)絡(luò)中的最重要部位。對(duì)檢測(cè)器進(jìn)行解耦,以提高圖像的表征能力。改進(jìn)YOLOv5算法的平均精度均值達(dá)到97.66%,提升效果明顯。將改進(jìn)YOLOv5算法與Sort算法、逆透視映射融合,通過(guò)所設(shè)定的船舶安全交匯距離閾值對(duì)船舶航行進(jìn)行實(shí)時(shí)監(jiān)測(cè),通過(guò)可視化界面直觀顯示船舶航行情況,并對(duì)危險(xiǎn)情況進(jìn)行預(yù)警,由此大大降低船舶碰撞事故率。
▲圖11 船舶航行安全距離監(jiān)測(cè)圖像