岳 希 梁云浩 何 磊
(1.成都信息工程大學軟件工程學院,四川 成都 610225;2.四川省信息化應用支撐軟件工程技術研究中心,四川 成都 610225)
艦載無人直升機可以實施對島嶼、海面和海岸目標的探查、追蹤和攻擊等任務,與固定翼無人機相比,具備無傷亡事故、機動性好等特點[1]。艦載無人機自主著艦是其關鍵任務[2],因為危險系數較高,是制約當前無人直升機使用和發展的主要瓶頸。而計算機視覺依托其成本低、被動檢測、抗電磁輻射干擾等優點,已成為艦載無人直升機在自主著艦導航中的關鍵信息源[3]。
當艦載無人機接收到返航進場指令,場景理解的首要任務便是尋找目標艦船,準確的艦船定位信息是對無人機著艦視覺引導的重要前提。艦載無人機利用視覺傳感器獲取圖像,再利用計算機視覺算法進行場景理解,但成像往往會受天氣、云霧等因素干擾,且容易受到海面雜波、島嶼等物體影響[4],準確高效地從復雜海洋背景中完成艦船目標的檢測仍存在較大難度。針對艦船檢測任務,研究者提出了許多改進算法。于洋等[5]將輸入網絡結構改進,對輸入圖像進行多尺度變化;蘇娟等[6]將SSD進行特征增強;李靚等[7]結合FPN思想對Faster R-CNN加以改良。但以上改進方式仍存在對艦船檢測時艦船相互遮擋的漏檢,多艦船目標檢測時小型艦船檢測精度低的問題。對此,利用卷積神經網絡能夠提取圖形深層特征的特點,對目標檢測算法YOLO[8]解決無人機返航成像易受天氣、云霧等因素干擾和海面雜波、島嶼等物體影響,以及小目標檢測效果較差,易產生漏檢、誤檢等問題開展深入研究,進行針對性提升,使之更適合艦船檢測任務。最后,在艦船數據集上對改進網絡進行訓練和測試,并對網絡各方面性能進行細致地比較和分析。
YOLO算法檢測中、小型尺寸目標時效果不夠理想[9],為將YOLO更好地用于艦船檢測工作,提出基于YOLO改進的密集連接網絡DT-YOLO(D:dense,T:transition)。首先對特征提取網絡結構加以調整,增加密集模塊和過渡模塊,同時在過渡模塊內利用最大池化以提高特征提取性能。為更好地處理特征圖尺寸對檢測結果的影響,將特征金字塔設計為5層,使特征圖更小,能夠進一步提高檢測精度。并在對圖片進行特征提取后進行上采樣,之后再與特征提取網絡相結合,構建艦船目標快速檢測網絡。通過改進的對數衰減NMS算法,保留多目標相互堆疊時被覆蓋的目標,提高艦船目標被掩蔽時的檢測能力,改進后的DT-YOLO網絡艦船檢測如圖1所示。
YOLO提出的Darknet53網絡合理地減少了網絡的計算復雜度[10],然而對于艦船檢測任務來說,Darknet53網絡略顯復雜和臃腫。本文搭建了一種相對簡易的網絡,網絡詳細構成如表1所示。DT-YOLO網絡結構包含7個密接模塊和6個過渡模塊,2個密接模塊由1個過渡模塊聯接。在過渡模塊中,選用1×1尺寸的卷積核來減少特征圖的尺寸,以保障處理速度和檢測精度。

表1 DT-YOLO的網絡結構
艦船目標圖像在傳入密集模塊中進行特征重用和卷積后,傳入過渡模塊進行最大值池化以降低特征圖大小,再將結果進行融合后輸入下一個密集模塊進行相同處理。使用這種處理方法可以提高特征提取網絡的模塊間連接,有效降低圖像在不同模塊之間傳輸造成的特征丟失。
為解決YOLO特征圖的規模偏大使目標檢測結果不夠準確的弊端[11],DT-YOLO對特征金字塔進行改造,添加兩個額外的卷積層,構建出新的特征金字塔含有5個尺寸不一的卷積層。首先用16個3×3的卷積核以步幅為2對512×512分辨率的輸入圖片開展過濾,隨后把過濾結果輸入包含1×1和3×3卷積層的密集模塊,產生的特征圖大小為256×256;之后輸入其他的6組密集鏈接模塊,得到分辨率大小分別為128×128、64×64、32×32、16×16、8×8和4×4的特征圖。此外,在卷積層中加入批標準化層以加速訓練和防止梯度消失。
DT-YOLO可以用5種不同的尺度回歸艦船方位和分類結果,得到分辨率分別為4×4、8×8、16×16、32×32和64×64的特征圖。在增強特征提取方面,DT-YOLO對特征圖為4×4、8×8、16×16 和 32×32 的密集模塊開展2倍上采樣,隨后通過特征提取網絡把輸出特征和上下文信息傳輸給相應的特征圖開展結合,產生多尺度艦船目標檢測特征金字塔。
NMS[12]算法通過直接判斷IOU值是否大于閾值的方式較好地篩選了重疊預測框[13],但同時也會刪除被遮擋艦船的預測框,不利于艦船遮擋情況時的檢測。如圖2所示,攝像機采集到的著艦場景往往會存在艦船相互遮擋現象。采用改進的對數衰減NMS算法,解決被遮擋艦船檢測精度低的問題。如果交并比IOU(a,bi)高于抑制閾值Nt,則對置信度Sconf做衰減處理,優化后的NMS算法公式為
為更好地得到充分的訓練樣本以達到優化算法的訓練和測試要求,利用網絡爬蟲[14]采集互聯網中的艦船視頻和圖片,并對視頻進行抽幀截取處理,得到更多的數據樣本。從采集數據中選取出畫質清晰符合艦船檢測任務的圖像共10000張。設置訓練集6000張,測試集2000張。在目標檢測任務中,除了原始圖像數據,還要完成圖片標注的任務。在采集到的圖像數據中選取出合適的訓練數據,完成圖像尺寸的統一調整,并按規定統一命名,具體如圖3所示。
訓練圖像數據的標注需要把艦船目標邊界框手動標記,然后記錄下邊界框的坐標和識別目標類別,通過數據標簽保存在指定文件中,便于在網絡框架中被讀取調用[15]。LabelImg可以完成數據標注制作標簽的工作,需要標注艦船圖片中艦船目標的坐標和類別,如圖4所示。
圖像的尺寸大小對目標檢測算法的性能有很大的影響,多尺寸訓練能較好地提高算法準確度。算法模型訓練過程中,每經幾個批次的訓練后須再換其他尺寸的圖片進行訓練,可以明顯提高DT-YOLO算法對各種尺寸艦船圖片的魯棒性。模型訓練時,數據集大小預設為128的整數倍。剛開始訓練時,初始大小設定為256×256像素,每10個批次后再換其他像素大小的圖片再次訓練,圖片最大為1024×1024。
模型訓練時的參數有學習率[16]、動量常數[17]以及權值衰減系數[18]等。選擇小批量隨機梯度下降法[19]開展訓練優化,動量常數設置為0.8,權重衰減系數0.0004,批大小128,最大迭代次數50000次,改進線性衰減 NMS抑制閾值0.5。使用分段調控學習率[20]的方式,原始學習率10-3可以在訓練過程中保持網絡穩定,在訓練過程中先后降低為10-4與10-5。
圖5為訓練過程中的損失函數擬合曲線。可以發現,訓練過程中網絡訓練誤差慢慢趨向收斂。在初始階段,訓練誤差值下降速率非常快;在迭代15000次后,訓練誤差下降速度開始趨于穩定;迭代40000次時,訓練誤差值收斂接近0.2,表示此時模型訓練已接近收斂,可以結束模型訓練。
本節對DT-YOLO網絡在測試集上的艦船檢測的性能進行評價,包括平均精確度(AP)以及檢測速度,檢測結果如表2所示。本文改進算法分別在網絡數據集、公開船舶數據集HRSC2016和LEVIR上進行訓練與測試,并且與YOLO算法、SSD512算法和FASTERRCNN的檢測結果進行對比。

表2 不同算法的檢測性能對比
由表2可以看出,DT-YOLO分別在在網絡數據集、HRSC2016和LEVIR上取得了94.21%、93.78%和96.53%的AP,檢測精度比其他網絡更優良,比YOLO算法分別提高了4.35%、3.77%和10.05%;同時,實時檢測的效果也有提升,檢測速率達到了61.48 f/s,分別比YOLO算法提高了16.8%、25.66%和14.31%。
圖6為YOLO與DT-YOLO的部分檢測結果,對于艦船檢測任務兩種網絡都獲得了不錯的效果,尤其是DT-YOLO在面對多目標、目標相互重疊等繁雜檢測情景下的艦船目標檢測時表現出了較強的算法魯棒性。由圖6(c)看出,DT-YOLO可以檢測出所有艦船目標,而YOLO存在漏檢的問題,只能夠檢測出大部分目標。與YOLO相比,DT-YOLO依然可以準確地檢測出部分確實的艦船目標。綜上,DT-YOLO在繁雜檢測情景下更加穩定。
主要討論了改進的DT-YOLO艦船檢測算法。首先,將YOLO的特征提取網絡中的殘差結構改造為DenseNet中的密集鏈接結構,極大地減少了網絡參數并加快了網絡訓練過程,并將特征金字塔設計為5層,使得特征圖更小,能夠進一步提高檢測精度。其次,NMS算法使用對數衰減,解決了艦船目標相互掩蓋時的漏檢問題。最后,使用網絡樣本數據構建數據集,對算法進行訓練測試。訓練結果顯示,改進的DT-YOLO艦船檢測算法與YOLO相比,在網絡數據集、HRSC2016和LEVIR數據集上,其檢測精度和檢測速率分別提高了4.35%、16.8%;3.77%、25.66%;10.05%、14.31%。對無人直升機視角下的艦船目標檢測任務,改進的DT-YOLO艦船檢測算法擁有較好的魯棒性,有效解決了無人機返航成像易受天氣、云霧等因素干擾和海面雜波、島嶼等物體影響的問題。針對YOLO算法中小目標檢測性能較弱,且對于遮蔽目標易出現漏檢、誤檢的缺陷,通過改進算法檢測效果取得了很大改善。本文改進算法還有待于在更多數據集上進行檢驗并做進一步優化。