譚顯東,彭 輝
成都信息工程大學 軟件工程學院,成都610225
近年來隨著遙感技術的深入發(fā)展,基于遙感圖像來實現(xiàn)艦船的檢測已然成為沿海國家的重要任務。合成孔徑雷達(synthetic aperture radar,SAR)是一種可以全天時全天候主動探測的微波成像傳感器,對于氣候變幻無常的海洋進行監(jiān)測具有非常好的適應性,在檢測艦船的任務中,SAR 不會受海洋天氣多變的限制,可以對艦船目標進行全方位實時監(jiān)測[1]。
針對SAR圖像的艦船目標檢測研究方法起初大多基于傳統(tǒng)的目標檢測思想,是半自動化的。在傳統(tǒng)方法上,國內外的學者對SAR 圖像艦船監(jiān)測也開展了大量研究,例如提出了雙參數(shù)恒虛警率(constant false alarm rate,CFAR)算法[2],并在此基礎上提出了基于K 分布的CFAR算法[3],還有提出利用信息論中的熵[4]、小波變換[5]和模板匹配等方法來進行艦船目標檢測[6]。這些傳統(tǒng)方法存在依賴性很強,泛化能力和檢測精度不高,檢測時間長等不足。
隨著人工智能技術的興起,深度學習技術開始在各領域迅速發(fā)展,得益于深度學習的特點,不需人工耗時耗力的設計特征就可以實現(xiàn)有效的目標檢測,因此推動了將計算機視覺領域的目標檢測器在SAR圖像上的應用。深度學習方法不會受到場景的限制,其具有優(yōu)秀的特征自學習能力,不需要對SAR圖像進行海陸分離,只需要標注好的數(shù)據(jù)集進行訓練便可,其在圖像處理方面具有很強優(yōu)越性。
目前流行的目標檢測算法大致分為兩大類:一類為基于區(qū)域推薦(region proposal)的目標檢測方法,其中典型的代表方法為區(qū)域卷積神經(jīng)網(wǎng)絡(R-CNN)[7]、Fast R-CNN[8]、Faster R-CNN[9]等系列算法。它的流程是首先需要利用選擇性搜索(selective search)或者是區(qū)域建議網(wǎng)絡(region proposal network,RPN)來產(chǎn)生建議的區(qū)域,然后在這些建議的區(qū)域中進行回歸分類。另外一類為基于回歸思想的方法,把目標檢測問題簡化為回歸的問題,沒有區(qū)域推薦的階段,只需一個卷積神經(jīng)網(wǎng)絡就可直接得到不同目標的類別概率和位置坐標,代表性的算法有YOLO[10]、SSD[11]、Retina-Net[12]等。其中以YOLO 系列為代表的目標檢測算法,識別速度相對其他算法普遍較快,尤其在小目標檢測方面具有良好的效果,因此得到了廣泛的應用。
近些年已有不少學者在這方面進行了研究?;趨^(qū)域推薦的方法,顧佼佼等[13]對Faster R-CNN 的錨框個數(shù)和大小進行了重新設計,改善了目標檢測中重復檢測的問題?;诨貧w思想的方法,張曉玲等[14]利用YOLO網(wǎng)絡,建立深度分離卷積網(wǎng)絡,并結合通道和空間注意力機制[15]來提高艦船檢測精度。基于區(qū)域推薦比基于回歸思想模型更加寬和深,也更加復雜,計算程度也更繁瑣,因此綜合考慮,選用基于回歸思想的YOLO系列目標檢測算法。同時,近年來針對YOLOv5算法的改進,也已有不少學者提出了一些方法。張麒麟等[16]改進損失函數(shù)為DIOU[17],通過考慮預測框與真實框中心點歐氏距離,改善目標檢測效果。馬永康等[18]對骨干網(wǎng)絡添加有效通道注意力機制(efficient channel attention,ECA),增強了特征表達能力,引入SoftPool 改進池化操作[19],保留更多特征信息。
本文以YOLO系列最新的YOLOv5為基礎,針對艦船目標檢測框的特點對損失函數(shù)進行優(yōu)化,并結合坐標注意力機制(coordinate attention,CA),提升了網(wǎng)絡提取特征的能力[20],在模型輕量化的同時實現(xiàn)對艦船目標檢測的高速與高精度并存。
YOLOv5是當前YOLO系列最新的目標檢測算法,在數(shù)據(jù)輸入端首先對艦船圖像進行自適應的縮放,并且通過遺傳算法對錨定框進行自動學習調整,使其能夠更好地預測艦船目標的所在位置。
YOLOv5網(wǎng)絡結構大致可分為4個模塊:輸入端、主干網(wǎng)絡Backbone、Neck 和預測端Prediction。在輸入端采用了Mosaic數(shù)據(jù)增強、自動計算錨框和圖片縮放等方式對輸入圖像進行處理。在主干網(wǎng)絡的開頭增加Focus操作,即特殊的下采樣,采用切片操作把高分辨率的特征圖拆分為多個低分辨率的特征圖。如圖1所示,將4×4×3 的Tensor 通過間斷采樣分為4 份,在通道維度上拼接生成2×2×12的Tensor,F(xiàn)ocus層將w-h平面上的信息轉換到通道維度,再通過卷積的方式提取不同特征,采用這種方式可以減少下采樣帶來的信息損失。
圖1 Focus操作圖Fig.1 Focus action figure
CSPDarknet53[21]作為主干網(wǎng)絡Backbone,它的作用是對圖片進行特征提取,其中還包含CBL 和SSP 操作。CBL 由三部分組成,即卷積(Convolution)、批量歸一化(batch normalization,BN)和激活函數(shù)(Leaky Relu),SSP即空間金字塔池化層,采用四種不同尺寸的最大池化方式大大增加了感受野。此外,CSP(cross stage partial networks)的思想[22]大致為將梯度的變化從頭到尾地集成到特征圖中,減少網(wǎng)絡參數(shù)和運算量,既保證速度和準確率,也減少模型尺寸大小。除此外還在Neck(特征聚合)中使用了CSP,加強了網(wǎng)絡特征融合的能力。
在預測端擁有三種不同尺度的特征圖,根據(jù)不同尺度下的特征對目標圖像生成相應的預測框并對其進行非極大值抑制(non-maximum suppression,NMS)處理,保留局部類別置信度得分最高的預測框,抑制掉得分低的預測框。
YOLOv5的網(wǎng)絡結構如圖2所示。其中損失函數(shù)的計算是基于Objectness Score、Class Probability Score和Bounding Box Regression Score。首先采用BCELogits和二進制交叉熵損失函數(shù)(BCEloss)計算Objectness Score和Class Probability Score。如圖3所示,其中實線框A表示目標的定位框,虛線框B表示預測框,M為兩個框之間的交集,N則為并集,IOU就是交集與并集之比,其定義為:
圖2 YOLOv5網(wǎng)絡結構圖Fig.2 YOLOv5 network structure
圖3 GIOU示意圖Fig.3 GIOU figure
其次,可以計算出它們的最小凸集(包圍A、B的最小包圍框)C。再計算閉包區(qū)域中不屬于兩個框的區(qū)域D占閉包區(qū)域的比重,用IOU減去這個比重得到GIOU。隨后可得到GIOU的損失函數(shù)GIOU_Loss,其定義為:
GIOU 引入了預測框與真實框的最小外接矩形,改善了真實框和預測框不相交情況下無法預測兩者距離的問題。GIOU_Loss作為物體邊界框的損失函數(shù),值越小則代表模型越好,表示預測框與真實框的差距就越小,預測效果就越達到期望效果[23]。
GIOU_Loss作為預測框的損失函數(shù),雖然改善了真實框與預測框不相交情況下存在的問題,但當預測框在目標的真實框內即A?B=B時,其損失值不會發(fā)生改變,顯然無法很好地衡量預測框的位置狀態(tài)。此外針對SAR圖像艦船目標具有高長寬比的特點,引入EIOU_Loss將兩框的重疊部分、中心點距離和長寬比都融合到損失函數(shù)的計算當中[24]。
如圖4所示,由于A?B=B=C,令A與B的最小外接矩形C的對角線距離為c,預測框B與真實框A的中心點之間的歐氏距離r,可以求得目標框與預測框的長寬之差h和w,Ch和Cw分別是覆蓋預測框和目標框的最小外接矩形的長和寬,則EIOU_Loss的定義如下:
圖4 EIOU示意圖Fig.4 EIOU figure
當EIOU 值越大時,說明預測框越接近真實框的位置,其損失函數(shù)值就越小,但是該損失函數(shù)在訓練過程中梯度不能自適應改變,從而影響訓練效果。為了解決這個問題,本文對EIOU_Loss 進一步優(yōu)化,設計一種新的邊框回歸函數(shù),即IEIOU_Loss,其定義為:
如圖5所示,IEIOU_Loss和EIOU_Loss都隨著EIOU的增大而減小,并且IEIOU_Loss 的梯度絕對值隨著EIOU 的增大而減小。顯然對邊框回歸更有利,即當預測框和真實目標框之間的距離較遠時,具有更大的梯度絕對值(即更小的EIOU值)對訓練過程更有利,IEIOU_Loss比EIOU_Loss的設計更加合理。
圖5 EIOU_Loss和IEIOU_Loss示意圖Fig.5 EIOU_Loss and IEIOU_Loss figure
近些年來,注意力機制模塊被廣泛使用在計算機視覺任務中,其目的是告訴模型需要更加關注哪些內容與哪些位置,目前已經(jīng)用于深度神經(jīng)網(wǎng)絡中以便提升模型的性能。然而在輕量級網(wǎng)絡中,注意力機制的應用受到了一定的限制,原因是大多數(shù)注意力機制所帶來的額外計算開銷是輕量級網(wǎng)絡所負擔不起的。因此本文引入一種簡單靈活且?guī)缀醪粠眍~外計算開銷的坐標注意力機制(CA)來提升網(wǎng)絡的精度。CA 模塊的具體流程如圖6所示。
圖6 坐標注意力機制模塊Fig.6 Coordinate attention model
輸入特征圖X是上一層卷積的輸出,其維度為C×H×W,即通道數(shù)為C,高為H,寬為W。使用尺寸(H,1)和(1,W)的平均池化分別沿著水平坐標與垂直坐標方向對每個通道進行編碼,即高度為h的第c個通道與寬度為w的第c個通道的輸出,公式如下:
上式兩個變換沿著兩個空間方向進行特征聚合,然后級聯(lián)生成的兩個特征圖zh、zw,并進行卷積核大小為1 的卷積運算F1,生成對空間信息在水平方向和垂直方向的中間特征圖f,公式如下:
沿空間維度將f分成兩個單張量f h和f w,再利用兩個卷積核大小為1 的卷積運算Fh和Fw將特征圖f h和f w變換為與輸入X同樣的通道數(shù),公式如下:
式中,σ運算是Sigmoid激活函數(shù),經(jīng)過運算得到0~1的范圍數(shù)值,即代表重要等級程度。將gh和gw進行拓展,作為注意力權重,最終輸出公式如下:
至此能夠有效關注到有效的通道,同時關注空間位置坐標信息,如圖7所示。本文將該注意力機制嵌入到Backbone 中的CBL 模塊和BottleneckCSP 中的殘差塊,以幫助模型更能對感興趣的目標進行特征提取。例如對靠近岸邊的艦船目標更加關注,大大增強模型訓練的效率。改進后的YOLOv5算法框架如圖8所示。
圖7 注意力機制嵌入示意圖Fig.7 Attention embedded in diagrams
圖8 改進YOLOv5網(wǎng)絡結構圖Fig.8 Improved YOLOv5 network structure
本文實驗基于Pytorch1.9.0框架,在Jupyter Notebook平臺上進行,模型訓練通過GPU 加速,在NVIDIA RTX2060(顯存8 GB)GPU,CUDA10.2 環(huán)境下完成。YOLOv5根據(jù)不同的網(wǎng)絡深度與寬度,由淺到深可以分為YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x四個模型。本文實驗采用最輕量的YOLOv5s,在此基礎上進行改進并與其原始網(wǎng)絡作對比,最后再與其他一些改進方法進行測試對比。
本文實驗采用數(shù)據(jù)集為國內公開的SSDD(SAR ship detection dataset)數(shù)據(jù)集,該數(shù)據(jù)集共有1 160 張SAR圖像,共含有2 456只艦船目標,且已被海軍航空大學李建偉等學者標注[25],具有多種極化模式、多種分辨率、海面上和靠岸等艦船場景,能有效驗證模型的魯棒性。本文實驗將SSDD數(shù)據(jù)集按照7∶1∶2的比例隨機劃分成訓練集、驗證集、測試集。在ImageNet數(shù)據(jù)集上預訓練YOLOv5s 權重,使用SGD 優(yōu)化器對網(wǎng)絡參數(shù)進行迭代更新,動量參數(shù)設為0.9,批大小設為32,訓練500個Epoch,采用周期性學習率進行調整和Warm-Up方法預熱學習率,其中初始lr0 設為0.01,在Warm-Up階段,采用一維線性插值對每次迭代的學習率進行更新直至0.1,之后采用余弦退火算法來更新學習率,最終下降至學習率lrf為0.002。
本文實驗使用深度學習中的評價指標,如召回率(Recall)、精度(Precision)以及平均精度均值(mean average precision,mAP)。
TP(true positives)為正確的艦船檢測數(shù)目,F(xiàn)N(false negatives)為漏檢的艦船數(shù)目,F(xiàn)P(false positives)為虛警的艦船數(shù)目。
召回率定義為:
精度定義為:
平均精度均值定義為:
其中,P為精度,R為召回率,P(R)為精度和召回率曲線。在本實驗中,設置的IOU 為0.5,即檢測閾值,當檢測框與真實框的重疊區(qū)域超過50%時,就認為該檢測框是正確的。
為了驗證本文改進模塊對SAR艦船目標檢測的影響,對各模塊進行評估,結果如表1 所示。其中加粗字體表示最優(yōu)結果,“√”表示添加相應模塊。表中YOLOv5_1、YOLOv5_2 和YOLOv5_3 分別表示添加注意力機制模塊、EIOU_Loss和改進IEIOU_Loss。可以看出,注意力機制模塊對SAR 艦船目標檢測有較為顯著的影響,主要是因為原始算法對特征的提取不太明確,會受到陸地的干擾,而且會將多個密集艦船目標誤檢為一個目標,造成漏檢,添加CA后的模型對艦船目標的顯著特征提取更加明確。EIOU 使檢測結果更加準確,因為在預測邊框回歸時,考慮到了兩框的重疊部分、中心點距離和長寬比,考慮的因素更加綜合全面,而且在損失函數(shù)中進行梯度變化的優(yōu)化,對訓練過程更加有利,使得最終的檢測精度更高。如圖9 所示,橫坐標為Epoch 訓練次數(shù),縱坐標為預測邊框的Loss 損失值,可以看出改進后的YOLOv5 邊框損失Loss 值下降曲線收斂性更好。圖10 為mAP 指標曲線圖,其中mAP_0.5 表示IOU的閾值為0.5時對應的mAP。
表1 各模塊精度評估對比Table 1 Comparison of mAP among different modules
圖9 Loss值下降曲線Fig.9 Decline curve of Loss value
圖10 mAP曲線圖Fig.10 mAP curve
圖11為改進后的算法在測試集上的艦船目標檢測結果。其中(a)~(c)是復雜背景下靠岸艦船檢測結果,(d)是深海稀疏分布的小目標檢測結果??梢钥闯觯瑢τ诎哆叢煌叨鹊呐灤兔芗植嫉呐灤?,均能有效定位,對于稀疏分布,目標較小的深海艦船也可以精確地實現(xiàn)定位,漏檢率低。
圖11 改進YOLOv5實驗結果Fig.11 Improved YOLOv5 experimental results
為了進一步驗證算法的檢測性能,將改進的方法與原YOLOv5進行對比的同時,與主流的基于深度學習的目標檢測算法YOLOv3、SSD、Faster R-CNN 在精度和速度方面進行比較,結果如表2 所示,其中加粗字體表示各列最優(yōu)結果。
表2 實驗結果對比Table 2 Comparison of experimental results
可以看出,本文方法在SSDD數(shù)據(jù)集上的精確度最高。此外,由于在預測邊框損失函數(shù)上做了曲線化計算操作,增加了部分計算量,導致算法的檢測效率有所下降,但是總的來看,本文方法在速度上仍具有巨大優(yōu)勢,能夠滿足實時檢測的基本需求。
如圖12 所示,本文選擇復雜樣本對原YOLOv5、SSD與本文改進方法進行檢測實驗對比??梢钥闯觯N方法都能有效地檢測艦船目標,但是SSD算法對于密集排列的艦船目標的定位精度較差,容易造成漏檢。對于原始YOLOv5而言,艦船目標容易受到海岸陸地的影響,造成較高的虛警率。本文改進方法明顯降低了深海區(qū)域艦船小目標的漏檢率,同時也能有效區(qū)分密集排列的艦船目標,提高了靠岸艦船的檢測精度。原因在于本文方法對特征提取進行了改進,使其能提取到更專注的艦船目標特征,從而準確地定位到艦船目標。
圖12 改進實驗結果對比Fig.12 Comparison of improved experimental results
為了進一步分析本文所提出的改進方法對YOLOv5算法的影響,將本文改進方法與其他一些改進方法進行檢測實驗對比。改進1算法使用DIOU計算預測框的損失值[17];改進2 算法對特征提取網(wǎng)絡添加卷積注意力機制模塊CBAM[15];改進3 算法使用有效通道注意力機制模塊ECA 替換[18];改進4 和改進5 算法分別將DIOU 與CBAM、ECA 混合使用,并且固定各注意力機制模塊的添加位置。這些方法對YOLOv5 神經(jīng)網(wǎng)絡的影響效果如表3 所示,其中加粗字體表示各列最優(yōu)結果,“√”表示使用相應方法??梢钥闯?,DIOU 將計算預測框與真實框的交并比替換成中心點之間的歐氏距離來判斷兩框接近的程度,相比于原GIOU而言[23],雖然提高了艦船檢測的精確度,但依然存在沒有考慮預測邊框的長寬信息等不足。而本文方法的IEIOU則考慮更加全面,不僅綜合考慮邊框的長寬信息,而且進行了曲線優(yōu)化,對檢測精度的提升更為明顯。此外,對于注意力機制模塊,CBAM分為兩個步驟,先通過通道注意力機制得到有效通道,然后再利用空間注意力機制得到這些通道上的重要位置信息。過程顯得稍微復雜且進行了降維操作,導致特征信息不能全面有效利用。ECA 則通過使用一維卷積避免了降維操作,但是只考慮到通道信息。CA 模塊明顯比CBAM與ECA提升更大,這是由于CA不僅考慮了通道信息與空間位置信息,還將它們融合到一起,使其特征提取得更加合理且高效。如圖13 所示,本文選取混合效果最好的改進4和改進5算法與本文方法作對比,雖然改進4 和改進5 算法對于靠岸艦船的檢測效果相比于原方法有所提升,降低了虛警率,但檢測精度仍然不太理想,并且針對密集艦船目標,依然容易出現(xiàn)漏檢。
圖13 不同改進方法實驗結果對比Fig.13 Comparison of experimental results of different improvement methods
表3 不同改進方法對性能的提升Table 3 Improvement of performance by using different improvement methods
針對當前目標檢測模型復雜、檢測效率較慢且效果不夠理想的問題,根據(jù)SAR 圖像中艦船目標靠岸與深海中稀疏小目標的分布特點,提出了改進的YOLOv5網(wǎng)絡模型的目標檢測方法。該方法泛化性強,對于靠岸且密集的艦船目標的檢測效果較好,相比其他改進方法具有更高的檢測精度,并且檢測時間較短,在實時性SAR應用領域具有一定的現(xiàn)實意義,最終得到的模型權重大小僅13.8 MB,這樣的輕量模型將有助于未來的硬件移植。
但是本文方法依然存在一定的局限性,目前只針對SSDD 數(shù)據(jù)集進行實驗,實驗數(shù)據(jù)量相對較少,缺少普遍性。此外,不同方位的艦船目標對IOU 取值存在影響。在未來的工作中,將使用更大的高分辨率SAR 艦船圖像數(shù)據(jù)集訓練神經(jīng)網(wǎng)絡,進一步優(yōu)化網(wǎng)絡結構,提高艦船目標檢測效率。同時對目標檢測框進行研究,使其能分辨不同方位的艦船目標,提高檢測精度。