王 欣,江 濤,馬 珍,魏玉梅
(云南民族大學數(shù)學與計算機科學學院,云南 昆明 650500)
隨著遙感技術的飛速發(fā)展,遙感圖像在海洋、氣象、天文、軍事等領域得到了廣泛的應用[1]。艦船目標檢測無論是在軍用領域還是民用領域均具有廣泛的應用,已經(jīng)成為遙感圖像目標檢測中一個極其重要的研究方向,引起了國內(nèi)外學者的廣泛關注。遙感圖像艦船檢測是精確識別圖像中特定艦船目標的位置,并標注出目標的類別。
隨著卷積神經(jīng)網(wǎng)絡的發(fā)展,基于深度學習的目標檢測方法克服了傳統(tǒng)檢測方法中目標難選取、檢測精度低、檢測速度慢、算法泛化能力低等問題。目前,較流行的基于深度學習的目標檢測[2]算法大致可以分為兩種:一種是兩階段方法,首先進行目標區(qū)域候選框的生成,再通過卷積神經(jīng)網(wǎng)絡對候選框進行回歸與分類,如R-CNN[3]、FastR-CNN、FasterR-CNN等,這些算法雖然提高了檢測的精度,但計算量較大,導致檢測的速度變慢;另一種是單階段方法,采用單一回歸問題思想,如YOLO[4]、SSD[5]等算法,直接在原始圖像上完成輸入和輸出,經(jīng)過卷積神經(jīng)網(wǎng)絡,就能得到目標位置和所屬類別。單階段算法具有端到端的結(jié)構特點,較于兩階段算法,檢測速度明顯提高。
遙感圖像中艦船目標通常不超過幾十個像素,在圖片中的占比極小,難以精確地檢測。Li[6]等提出了一種改進的FasterR-CNN 方法,用于檢測不同尺度的艦船目標。Zhang[7]等提出了一種基于特征金字塔網(wǎng)絡的多尺度檢測,增強了密集目標的檢測能力。徐[8]等提出一種基于YOLOv4 的目標檢測算法,通過場景增強的擴充了訓練樣本,提高了檢測精度。以上基于深度學習的目標檢測算法雖然檢測的性能都有不同程度的提高,但是也有一些共同的問題:這些單階段方法的泛化能力較弱,不能適用于復雜的密集場景。兩階段方法網(wǎng)絡較大、訓練時間較長,難以實現(xiàn)實時檢測。因此,遙感圖像艦船小目標檢測的任務仍有進步空間。
為了更精確地檢測到遙感圖像艦船小目標,本文將選擇單階段算法YOLOv3-Tiny,在該算法的基礎上進行改進,在保證單階段算法檢測速度優(yōu)勢的條件下,提出一些改進的方法。
YOLO系列算法在單階段檢測算法中具有較強的代表性,且存在較大的改進潛力,其中YOLOv3 和YOLOv3-Tiny 在檢測精度上均有很好的表現(xiàn),但YOLOv3 的主干網(wǎng)絡使用了Darknet53,并引入了殘差網(wǎng)絡與特征金字塔,使得網(wǎng)絡過于復雜導致檢測速度緩慢,而YOLOv3-Tiny 是YOLO 系列中輕量級網(wǎng)絡,在YOLOv3 的基礎上減少了部分卷積層,提高了檢測速度。如圖1 所示,YOLOv3-Tiny 網(wǎng)絡由卷積層、池化層、上采樣層、連接層和YOLO層組成。
圖1 YOLOv3-Tiny網(wǎng)絡結(jié)構圖
Mosaic 數(shù)據(jù)增強[9]借鑒了CutMix 數(shù)據(jù)增強方式,從訓練數(shù)據(jù)集中取出一個batch數(shù)據(jù),隨機選取出四張圖片,分別對其進行翻轉(zhuǎn)、縮放、裁剪、色域變化等,然后按著方向拼接,組成一張新的圖片如圖2 所示。這種方法可有效防止訓練集背景相似,提高網(wǎng)絡泛化能力。同時,Mosaic 數(shù)據(jù)增強方法的應用,也能有效解決遙感圖像檢測樣本中小目標物體不足的問題,使得小尺度的大目標對象也能被精準的檢測到。
圖2 Mosaic數(shù)據(jù)增強
注意力機制[10]來模仿人類視覺觀察模式。人類在觀察時,當對某個目標感興趣,其注意力就會集中到這個感興趣的目標上。而在深度學習中,這就相當于給整幅圖像加上了一個可視化權重,將注意力集中到檢測的目標上,以獲取目標更重要的特征信息,并抑制無效特征信息。注意力機制就是給每個特征圖乘以一個權重,表示特征的重要性。混合域注意力機制(CBAM)是一個輕量級的通用模塊,它可以無縫地插入任何CNN 網(wǎng)絡中,用于增強CNN 的表現(xiàn)能力。CBAM[11]結(jié)合了通道注意力和空間注意力兩個模塊,在保持較小的運算情況下實現(xiàn)可觀的性能提升。如圖3 所示,(a)CBAM 包含兩個部分:(b)Channel Attention Module 和(c)Spatial Attention Module。CBAM 可以用以下公式表示:給定一個輸入特征圖F∈RH*W*1。CBAM 依次得到一維通道注意矩陣MC∈R1*1*C和二維的空間注意矩陣MS∈RH*W*1。
圖3 CBAM結(jié)構圖
其中,F(xiàn)是特征圖,?表示逐元素相乘,F(xiàn)′和F′′分別表示進行了通道注意力和空間注意力后的輸出特征圖,MC(F)和MC(F′)分別表示通道注意力和空間注意力的權重系數(shù)矩陣。
為了緩解卷積神經(jīng)網(wǎng)絡中特征提取的不足,本文對特征提取層進行改進,在主干網(wǎng)絡的conv5和conv8后分別加上CBAM 注意力機制,作為獨立的輸出層與之后的卷積層相連,以提升遙感艦船小目標的檢測能力。
本文以YOLOv3-Tiny 的特征提取網(wǎng)絡為主干網(wǎng)絡,提出了一些改進方法。①從輸入角度,改變輸入圖像尺度,通過輸入更大尺度圖像的進行訓練,減少小目標信息特征的丟失。②從數(shù)據(jù)集角度,通過Mosaic 數(shù)據(jù)增強,豐富遙感圖像小目標數(shù)據(jù)集,使網(wǎng)絡具有更好的泛化能力。③從特征提取角度,在特征提出網(wǎng)絡中引入混合域注意力機制CBAM,提高卷積網(wǎng)絡中特征提取的能力,使有效特征權重更大,無效特征權重更小,最終有效提高模型的小目標檢測能力。改進后的YOLOv3-Tiny 網(wǎng)絡結(jié)構,如圖4 所示,在特征提取中下采樣層后加入注意力機制模塊,并從第12層開始將低層的特征連接到高層,增加了高層特征圖的信息。從圖4 可以看出,輸入640×640 的遙感圖像后,經(jīng)過特征提取得到了13×13 和26×26 兩種不同尺度的特征圖。
圖4 改進后的YOLOv3-Tiny網(wǎng)絡結(jié)構
本實驗使用DSTD數(shù)據(jù)集[12],該數(shù)據(jù)集是從DIOR、DOTA、NWPU-VHR dataset和TGRS-HRRSD-Datasetmaster幾個數(shù)據(jù)集中采集的遙感艦船圖像,進行剪切、修改和篩選,并通過標注工具LabelImg 進行手動標注,得到由4854 張艦船遙感圖像和87076 個艦船目標實例組成的DSTD數(shù)據(jù)集。
本實驗采用16G內(nèi)存的64位Windows10操作系統(tǒng),CPU 為Intel(R)Core(TM)i5-10400FCPU@2.90GHz,顯卡為NVIDIA GeForce RTX 2080,顯存為8G。使用PyTorch深度學習框架,開發(fā)環(huán)境為torch1.7.1,cuda11.0,Python3.7。將數(shù)據(jù)集按6:2:2 的比例隨機劃分為訓練集、測試集和驗證集。實驗參數(shù)如表1所示。
表1 實驗參數(shù)
本實驗采用召回率(Recall)、精確率(Precision)、平均精確率(mAP,meanAveragePrecision)和幀率(FPS)作為評價的相關指標。具體公式如下:
其中,TP表示預測正確的正樣本數(shù)量;FN表示預測錯誤的正樣本數(shù)量,F(xiàn)P表示預測錯誤的負樣本數(shù)量;TN表示預測正確的負樣本數(shù)量。幀率(FPS)表示每秒鐘能夠檢測的圖片數(shù)量。
3.3.1 目標檢測算法對比實驗
為了驗證算法對遙感艦船小目標檢測的性能,將本文改進后的YOLOv3-Tiny 算法命名為Improved-YOLOv3-Tiny,與原始YOLOv3-Tiny 以及目前流行的單階段兩階段測算法YOLOv3、RetinaNet、SSD 等在相同的環(huán)境下分別進行訓練。實驗結(jié)果對比見表2,YOLOv3-Tiny 在對遙感艦船目標檢測時,效果明顯優(yōu)于YOLOv3、RetinaNet、SSD,Improved-YOLOv3-Tiny精確率達到了91.4%,較改進前提升了5%;召回率達到了87%,較改進前提升了5%;平均精確率達到了85.1%,較改進前提升了3.9%,檢測速度比原始YOLOv3-Tiny每秒少傳輸2幀,但仍然快于YOLOv3、RetinaNet、SSD 等算法,因此,Improved-YOLOv3-Tiny 算法在各方面均明顯優(yōu)于其他算法,驗證了本文改進方法的可行性。
表2 目標檢測算法實驗結(jié)果
3.3.2 訓練結(jié)果
本文基于DSTD 遙感數(shù)據(jù)集進行訓練,訓練300輪后,Improved-YOLOv3-Tiny 訓練過程中的總損失、mAP 和F1的變換曲線如圖5所示。橫軸為訓練輪數(shù),縱軸為數(shù)值。前50 輪網(wǎng)絡迅速收斂,在150 輪之后趨于穩(wěn)定,網(wǎng)絡的收斂過程非常穩(wěn)定,沒有出現(xiàn)過擬合和欠擬合現(xiàn)象,因此Improved-YOLOv3-Tiny 網(wǎng)絡的訓練結(jié)果比較理想。
圖5 Improved-YOLOv3-Tiny的Losscure、mAP、F1變化曲線
3.3.3 消融實驗
我們來進行消融實驗以驗證本文加入的模塊對遙感艦船目標檢測性能的影響。如表3 所示以原始YOLOv3-Tiny 為基準。觀察可知,輸入圖像大小為640×640 的YOLOv3-Tiny 更適合檢測遙感圖像艦船目標,基本上每一處改進都會使檢測性能有一定的提升,當三處改進融合在一起時,改進的效果最佳,雖然精確率稍低于其他的改進方案,但綜合來看,改進后的算法(Improved-YOLOv3-Tiny)達到了所有方案中的最優(yōu),也驗證了本文提出的基于Improved-YOLOv3-Tiny對遙感艦船小目標檢測效果很好。
表3 消融實驗對比
本文面向遙感場景下的大規(guī)模水面艦船目標的檢測,針對在檢測過程中遙感圖像中的各類艦船小目標,檢測難度大的問題進行研究,提出了基于YOLOv3-Tiny 的改進算法。首先對訓練數(shù)據(jù)進行Mosaic 數(shù)據(jù)增強,豐富了遙感數(shù)據(jù)集,增加了背景的復雜度,提高了模型的泛化能力。其次在特征提取網(wǎng)絡中加上混合域注意力機制CBAM,引導模型聚焦于局部區(qū)域,加強對小目標的檢測能力。最后將輸入圖像的尺度由416×416調(diào)整到640×640,得到了更適合遙感圖像艦船小目標檢測的算法。實驗結(jié)果表明,Improved-YOLOv3-Tiny 算法在保證速度的條件下,檢測精確率、召回率、平均精確率和F1 值均較于原有YOLOv3-Tiny算法均有顯著提升,有效地改善了遙感圖像中艦船小目標檢測的效果。目前對遙感圖像中受云霧等氣象條件影響的目標不能精準地檢測,后續(xù)將優(yōu)化遙感圖像中云霧覆蓋、遮擋艦船目標的檢測。