宋 策,尹 勇,王 鵬
(大連海事大學(xué)航海動態(tài)仿真和控制交通行業(yè)重點實驗室,遼寧大連,116026)
近年來,視頻場景中的目標檢測成為計算機視覺領(lǐng)域的研究熱點?;诰矸e神經(jīng)網(wǎng)絡(luò)的目標檢測模型能夠檢測一幅圖像中的多個目標,并判斷目標的類別和位置。而在智能船技術(shù)發(fā)展過程中,將目標檢測技術(shù)應(yīng)用于對其他船舶信息的感知一直是研究者關(guān)注的問題之一。隨著船舶工業(yè)的發(fā)展,海上目標形式更加多樣,在智能船視頻系統(tǒng)中需要對各類船舶目標實施更為迅速、精準、直觀的檢測,由此獲取其他船舶的有關(guān)信息。根據(jù)不同的圖像信息國內(nèi)外研究者們提出了多種算法。楊一平等[1]通過傳統(tǒng)的多視覺融合方法,使用局部熵以及連通域?qū)Υ澳繕诉M行檢測;石文豪等[2]利用不同的結(jié)構(gòu)元素提取船舶邊緣特征,從而提取船舶目標的細節(jié);楊雪鋒[3]提出了一種基于FAST角點檢測、分類、以及區(qū)域生長的船舶目標檢測方法,利用目標角點與海浪角點在強度及密集度上的不同對兩者進行區(qū)分;Arshad等[4]對船舶背景圖像首先使用形態(tài)學(xué)操作進行處理,然后對船舶的邊緣使用Sobel算子進行檢測,進而與其背景進行辨別,但對復(fù)雜紋理的情況處理效果不好,并且會產(chǎn)生較多噪點。
隨著卷積神經(jīng)網(wǎng)絡(luò)在目標檢測領(lǐng)域的逐步完善,許多研究者采用基于深度學(xué)習(xí)的算法來實現(xiàn)船舶目標的檢測。Chang等[5]基于SAR圖像評估了YOLOv2深度網(wǎng)絡(luò)架構(gòu)在各種場景下檢測船只的性能,得出YOLOv2方法在接近實時的情況下,特別是在復(fù)雜的情況下,在精度和性能方面都優(yōu)于現(xiàn)有技術(shù),但檢測速度較慢。趙文強等[6]通過在YOLOv3原型網(wǎng)絡(luò)基礎(chǔ)上進行網(wǎng)絡(luò)尺度的擴展,利用K-means聚類算法得到更為精細化尺度下的先驗框,在目標檢測準確率、目標位置預(yù)測、模型檢測效率方面有顯著的表現(xiàn)。Zou[7]通過對SSD法進行改進,采用輕量級的MobilenetV2網(wǎng)絡(luò)結(jié)構(gòu),滿足了當(dāng)前船舶監(jiān)督中對船舶目標實施檢測的要求。Tanveer等[8]使用了Faster R-CNN在SAR圖像中對船舶進行了檢測及計數(shù),因為卷積層的簡潔性提升了計算速度,具有較高的檢測精確度。對于復(fù)雜海況下和近岸船舶目標,基于圖像處理的傳統(tǒng)船舶目標檢測算法泛化性較差,檢測難度大。而一些流行的卷積神經(jīng)網(wǎng)絡(luò)算法在船舶檢測領(lǐng)域精確率、召回率等還有待提升,檢測速度也難以達到實時檢測的要求。為了建立高精度船載視頻感知系統(tǒng),本文提出一種基于改進YOLOv5的船舶目標檢測算法,通過引入主干網(wǎng)絡(luò)(Backbone)增加注意力機制SENet[9],對邊界框選取進行抑制,使用Confluence替代非極大值抑制(non-maximum suppression,NMS),擺脫了邊界框?qū)χ眯哦鹊梅忠约敖徊⒈?intersection over union,IoU)的依賴等技術(shù)對YOLOv5算法進行改進,以期提高檢測精度。
YOLOv5船舶目標檢測算法首先通過主干神經(jīng)網(wǎng)絡(luò)提取輸入圖像在三個不同尺度上的特征,通過上采樣層將深層特征與淺層特征融合,最后在三個尺度上進行檢測,得到目標的分類結(jié)果以及位置信息。
YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)分為Backbone,頸部提取特征(neck)和輸出三部分,如圖1所示。
在Backbone中,分辨率為640×640×3的輸入圖像通過Focus結(jié)構(gòu),經(jīng)過切片運算,首先得到320×320×12特征圖,然后經(jīng)過32個卷積核的卷積運算,最后得到320×320×32 特征圖。CBL模塊是一個基本的卷積模塊,CBL模塊表示卷積層(Conv2D)+ 歸一化層(BatchNormal)+ LeakyRELU。瓶頸層(BottleneckCSP)模塊主要對特征圖進行特征提取,從圖像中提取豐富的信息,與其他大型卷積神經(jīng)網(wǎng)絡(luò)相比,BottleneckCSP結(jié)構(gòu)可以減少卷積神經(jīng)網(wǎng)絡(luò)優(yōu)化過程中的梯度信息重復(fù),其參數(shù)量占整個網(wǎng)絡(luò)參數(shù)量的大部分,通過調(diào)整BottleneckCSP模塊的寬度和深度,可以得到Y(jié)OLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四種不同參數(shù)的型號??臻g金字塔(spatial pyramid pooling,SPP)模塊主要增加網(wǎng)絡(luò)的感受野,獲取不同尺度的特征。
YOLOv5還在特征金字塔網(wǎng)絡(luò)(feature pyramid networks,F(xiàn)PN)結(jié)構(gòu)的基礎(chǔ)上增加了一個自底向上的特征金字塔結(jié)構(gòu)。通過這種組合操作,F(xiàn)PN結(jié)構(gòu)自上而下傳遞魯棒語義特征,特征金字塔自下而上傳遞魯棒定位特征[10]。聚合不同特征層的輸出,提高網(wǎng)絡(luò)的檢測能力,以應(yīng)對不同尺度目標。在圖的最后,輸出分類結(jié)果和對象坐標[11]。
本文的網(wǎng)絡(luò)結(jié)構(gòu)在YOLOv5的基礎(chǔ)上進行了一定改進,調(diào)整了部分參數(shù),并在Backbone部分的BottleneckCSP模塊之后引入了壓縮激勵結(jié)構(gòu)SENet。注意力機制的引入,對于輸入的每條特征通道有著不同的重要性,通過全連接層(FC)進行學(xué)習(xí),從而得到來自不同特征通道空間維度為H×W×C的權(quán)重。SENet增加了模型的復(fù)雜度和計算負擔(dān),但這樣關(guān)鍵特征的提取能力得以提升,并能有效地抑制無用的特征。圖2為修改后的Backbone。
在檢測過程中,由于需要檢測不同種類的船舶,且船舶之間存在結(jié)構(gòu)及大小的差異(如散貨船、集裝箱船、漁船、郵輪,等),因此需要使用YOLOv5從多個尺度進行檢測。Backbone中深卷積層在分類任務(wù)中能夠獲取圖像深層次的細節(jié),而淺卷積層在對象位置回歸任務(wù)中更優(yōu),對外觀細節(jié)明顯的對象進行檢測時較為適用,因此在預(yù)測時,會先將主干網(wǎng)絡(luò)產(chǎn)生的三個尺度的特征圖通過FPN和像素聚合網(wǎng)絡(luò)(pixel aggregation network,PAN)結(jié)構(gòu)通過拼接(concat)層操作融合起來,這樣能更好地獲得目標的位置信息、分類信息和不同尺度物體的特征。
YOLOv5在輸入圖像的尺寸為640×640時,輸入檢測網(wǎng)絡(luò)特征圖的大小為20×20,40×40,80×80。較深的20×20特征圖負責(zé)預(yù)測外觀特征較為明顯的目標,而較淺80×80的特征圖負責(zé)預(yù)測外觀特征較為模糊的目標。隨后采用了Confluence方法[12],替代YOLOv5中原本所采用的加權(quán)NMS,該方法不依賴于置信度得分來選擇最佳邊界框,也不依賴IoU來消除誤檢。其通過使用加權(quán)曼哈頓距離來選擇最接近群集中其他所有邊界框的邊界框,并刪除具有高度融合的相鄰框。
Confluence是一個兩階段的算法,它保留了最優(yōu)邊界框,并消除了假陽性。第一階段使用置信加權(quán)曼哈頓距離對相鄰邊界框進行計算,來評估邊界框的一致性。第二階段涉及移除所有與保留的邊界框在同一邊界框簇中的其他框,首先通過加權(quán)曼哈頓距離M衡量兩個邊界框的重疊程度,得到O值,如圖3所示,其計算公式為
(1)
隨后通過考慮置信分數(shù)c和與之競爭的邊界框的O值來評估給定邊界框的最優(yōu)性,利用公式W(u,v,m,n)=O(u,v,m,n)/c計算其置信度得分,可以得到加權(quán)接近性W。
隨著計算機視覺的迅速發(fā)展,目前在可見光圖像的船舶目標檢測領(lǐng)域中公開的并被廣泛使用的數(shù)據(jù)集逐漸增多,其中包括新加坡海事數(shù)據(jù)集、VAIS數(shù)據(jù)集以及Seaships數(shù)據(jù)集等。本文使用Seaships數(shù)據(jù)集[13]公開的部分數(shù)據(jù)集,其中Seaships數(shù)據(jù)集包括7000張圖片,分辨率為1920×1080;使用VOC數(shù)據(jù)集的格式,其中包括散貨船、礦砂船、集裝箱船、漁船等不同船型。將Seaships中5040張圖像用于訓(xùn)練,700張圖像用于測試。
實驗平臺在Windows10系統(tǒng)上進行,開源深度學(xué)習(xí)框架Pytorch1.6通過CUDA對GPU加速進行訓(xùn)練,實驗平臺使用了一塊NVIDIA RTX2060顯卡,顯存為6 GB。為了減少過擬合的風(fēng)險,使用廣義交并比(generalized intersection over union,GIoU)作為損失函數(shù),將網(wǎng)絡(luò)的Backbone部分作為分類網(wǎng)絡(luò),在VOC訓(xùn)練集上進行預(yù)訓(xùn)練,得到初始的權(quán)重,并使用Adam優(yōu)化算法,通過動量和自適應(yīng)學(xué)習(xí)率來加快收斂速度。此外,訓(xùn)練集采用Mosaic數(shù)據(jù)增強的策略,隨機使用4張圖片,隨機縮放,再隨機分布進行拼接,大大豐富了檢測數(shù)據(jù)集,特別是隨機縮放增加了很多小目標,讓網(wǎng)絡(luò)的魯棒性更好。
為了對檢測結(jié)果進行分析評價,需要引入如下指標:NP為被正確檢測的各類船舶數(shù)量;ND為被檢測為各類船舶的數(shù)量;NT為被標記為各類船舶的數(shù)量[14]。當(dāng)本文所使用的Confluence中檢測框與正確目標的曼哈頓距離閾值超參數(shù)設(shè)置為0.45,當(dāng)超過閾值時認為正確檢測出了目標。
預(yù)測的精確率P=NP/ND;召回率R=NP/ND;考慮P以及R的綜合指標F1=2×P×R/(P+R)。
3.4.1 不同網(wǎng)絡(luò)參數(shù)下YOLOv5的檢測性能比較
比較YOLOv5在網(wǎng)絡(luò)寬度與深度不同時網(wǎng)絡(luò)的檢測精度、模型參數(shù)的大小,結(jié)果如表1所示。
表1 不同網(wǎng)絡(luò)模型大小的YOLOv5網(wǎng)絡(luò)性能Tab.1 YOLOv5 network performance with different network model sizes
從表1中可以看出,增加寬度與深度在一定程度上對網(wǎng)絡(luò)的性能帶來了部分提升,但提升結(jié)果并不明顯,而且需要以犧牲模型大小為代價,因此最終選擇了參數(shù)量較少,更容易在船載設(shè)備部署的YOLOv5s輕量化版本,并在此基礎(chǔ)上對模型進行了改進 。
3.4.2 與不同深度學(xué)習(xí)目標檢測算法比較
為了驗證本文算法的性能,在相同數(shù)據(jù)集上與其他檢測算法進行了比較,結(jié)果如表2所示。從表2可以看出,本文改進的YOLOv5s網(wǎng)絡(luò)采用了SENet作為注意力機制添加到Backbone中,提升了原版YOLOv5s目標檢測精確率,隨后使用了Confluence檢測框篩選方法,使網(wǎng)絡(luò)不依賴IoU的情況下從三個尺度進行檢測,同時小幅度提升了檢測精確率,模型參數(shù)大小也基本不變,具有輕量化優(yōu)點,硬件實現(xiàn)較為容易。檢測能力已達到較高水平,且相比SSD網(wǎng)絡(luò)[16]擁有更好的檢測性能。SSD300因為輸入圖像分辨率并不高,并且多尺度檢測的方法并不占據(jù)優(yōu)勢,所以檢測精度并沒有很好的表現(xiàn)。但由于主干網(wǎng)絡(luò)使用了VGG16,所以模型參數(shù)量也較大。本文相比原版YOLOv5s,雖然犧牲了一部分速度,但提高了檢測精度,達到與兩階段的目標檢測算法Faster R-CNN[17]相接近的水準,基本能實現(xiàn)目標實時檢測。圖4為不同檢測算法的部分檢測結(jié)果。其中:1)表示識別標簽為Ore carrier;2)表示識別標簽為General cargo ship和Bulk cargo carrier;3)識別標簽為General cargo ship和Fishing ship。從圖4可看出,改進后的YOLOv5s網(wǎng)絡(luò)在船舶之間距離較近時,邊界框?qū)Υ拜喞淖R別更為準確,沒有同其他檢測模型一樣出現(xiàn)邊界框交叉的情況,同時在檢測漁船等目標時,沒有出現(xiàn)誤檢或漏檢的現(xiàn)象。
表2 不同深度學(xué)習(xí)檢測算法比較Tab.2 Comparison of different deep learning detection algorithms
本文提出了一種新的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),用于檢測可見光視頻影像中的船舶目標。該網(wǎng)絡(luò)結(jié)構(gòu)主要基于YOLOv融合了SENet壓縮激勵結(jié)構(gòu),對輸出端使用Confluence方法進行改進,使網(wǎng)絡(luò)能夠不依賴IoU也可以檢測出多尺度的目標特征。在可見光視頻影像中的船舶目標檢測任務(wù)中,本文算法相比同類檢測算法有著較高的準確度,并且模型參數(shù)量較小,便于在船載視頻設(shè)備上實現(xiàn)。