何旭鑫,吳建平,2,3,余 詠,高雪豪,韋 杰
(1.云南大學 信息學院,云南 昆明 650504;2.云南省電子計算中心,云南 昆明 650223;3.云南省高校數字媒體技術重點實驗室,云南 昆明 650223)
合成孔徑雷達(SAR)是一種雷達,最適合于艦船探測,因為即使在遠離觀測目標的情況下,其分辨率也是恒定的,在軍用和民用領域對艦船、飛機、車輛目標的監控具有重要作用[1]。因此,利用SAR圖像研究艦船的目標檢測已經成為國內外研究的熱點[2]。比如黑海艦船,橋梁被攻擊,波羅的海的北溪天然氣管道附近的相關船只監測等。中國是一個海防大國,擁有漫長的國界線,為了更好地管理海上秩序,因此需要不斷提升艦船檢測準確性。
隨著互聯網的發展,卷積神經網絡(Convolutional Neural Network,CNN)技術在各個領域不斷發展,尤其是在SAR圖像艦船目標檢測領域的不斷應用,使得在檢測艦船時的檢測效果不斷提升。目前在深度學習方向,主流的目標算法分為兩類:一類是以R-CNN(Regions with Convolutional Neural Network features)為代表的二階段算法,但是這類代表的算法速度比較慢,與此對應在研究艦船目標檢測時不能滿足實時性的要求;另一類是以SSD(Single ShotMultiBox Detector)和YOLO(You Only Look Once)為代表的一階段算法,這種為代表的目標檢測算法雖然在速度上勉強達到艦船檢測的要求,但是在艦船數據集上的表現并不好,效果比較差。
Wei等[3]公開了HRSID艦船數據集,該數據集極大地豐富了SAR艦船領域的數據,使得該領域的深度學習算法得到了提升。Kang (2019)使用fast-RCNN獲得初始船舶檢測結果,然后采用自適應的閾值報警率調整最終結果[4],但是這種方法在復雜場景下的識別準確率不高,就像復雜海岸線和港口處就并不能很好地識別。譚顯東等[5]重新考慮了檢測框的長和寬,通過改變這兩個參數的定義重新對損失函數進行了優化,并且在主干網絡中結合坐標注意力機制,實現對艦船目標檢測。文獻[6]提出了一種專門用于SAR船舶檢測的密集連接DetNet(DDNet),在主干子網絡中,使用堆疊卷積層而不是大的下采樣,以使其更適合于小型船舶檢測。在預測子網絡中,使用密集連接來融合不同尺度的特征,使其能夠更好地處理多尺度船舶檢測。文獻[7]先采用IoU(Intersection over Union) K-means算法解決極寬比問題,然后用IoU K-means作為預處理步驟,從適合船舶檢測的數據集中聚類出一組縱橫比。其次,在網絡中嵌入了軟閾值注意模塊(STA)來抑制噪聲和復雜背景的影響。文獻[8]在無錨框檢測器FCOS[9]的基礎上設計特征平衡和優化網絡,并結合注意力機制引導金字塔網絡不同層級特征的提取。
為了更好地解決復雜SAR圖像對小目標艦船的識別能力和降低漏檢率,該文是在主干網絡中添加CBAM注意力機制,使用注意力機制來學習SAR圖像艦船目標的特征。同時對于原來的特征金字塔模型FPN的結構性進行改變。首先,對于原來的FPN的三個檢測探頭更改為四個檢測探頭,增加了一個160*160的特征圖,提高對小目標的檢測能力。然后,將原版的PANet替換為改進的BiFPN[10],進一步強化對復雜背景下的目標特征提取。最后,選用SIoU[11]作為激活函數,SIoU進一步考慮了真實框和預測框之間的向量角度,重新定義相關損失函數,實現高精度的定位。通過多組對比實驗,并對高密度小目標艦船檢測和復雜環境下SAR圖像艦船目標的檢測結果進行分析,最終得出該算法在復雜背景下(見圖1)對艦船的目標識別具有實用性和有效性。
YOLOv5目標檢測算法主要由四部分構成,整體結構如圖2所示。第一部分輸入層,其中輸入圖像尺寸為640×640,是最基礎也是很重要的部分。第二部分為YOLOv5算法的主干網絡,一共由10層組成,主要是由卷積模塊和C3模塊不斷堆疊形成的,作用是對輸入的SAR圖像中的艦船目標進行初步的特征提取。第三部分是特征融合模塊的PANet[12],通過自上而下的卷積路徑和自下而上的上采樣路徑相結合,將不同路徑下產生的相同大小的特征圖像互相融合,融合不同位置的語義信息,極大地豐富了圖像所包含的信息。第四部分為檢測層,檢測層中的主體部分就是三個檢測器,即利用基于網格的anchor在不同尺度的特征圖上進行目標檢測的過程,其結構如圖3所示。
YOLOv5算法的Conv模塊是YOLOv5中最基礎的模塊,由Conv2d模塊、歸一化、SiLU激活函數組成。該激活函數具備無上界有下界、平滑、非單調的特性,可以有效地效抑制梯度消失現象。YOLOv5的檢測層存在三種不同尺度大小的特征圖,用于最終對不同尺度的分別檢測,YOLOv5算法能夠針對各個尺寸下的特點,默認采用非極大值抑制(NMS)算法。該文使用自適應NMS自適應地調整船舶密集布置和稀疏分布的非最大抑制(NMS)閾值,而YOLOv5則使用了自適應錨框算法,根據不同類型的目標數據集進行自行改變,自適應地計算訓練集中的最佳錨框值[13]。

圖2 YOLOv5網絡架構

圖3 YOLOv5各模塊結構
計算機視覺的注意力機制的思想是通過尋找現有數據間的關聯性突出某些重要特征,不同的注意力機制具有相同的學習方式,都是在深度學習的訓練過程中,通過前后向傳播,根據不同的目標特征,更新權重。對于輸入的SAR艦船圖像,由于艦船目標只在復雜的圖像中占很小一部分,大部分為復雜的港口背景信息,在卷積的過程中,SAR艦船特征圖像在不斷地縮小,迭代累積,最終導致一部分特征消失,形成冗余背景信息,從而使有些小目標的艦船信息丟失,最終對小目標艦船識別率不高。為此,該文使用一種卷積注意力模塊(Convolutional Block Attention Module,CBAM)[14]。
CBAM注意力機制是空間和通道結合的一種注意力機制,因為SAR圖像中艦船屬于小目標,為了更加突出艦船的特征,就需要在相對較小的特征圖像上進行特征學習,訓練注意力的權重,最終提升艦船檢測的準確率。于是,該文在Backbone中的最后一個C3模塊后面添加CBAM模塊,讓注意力機制在此處重新學習艦船圖像的特征,隨后重新學習過的圖像通過SPPF[15],相比于SPP結構,將大的卷積核替換了多個數量的5×5卷積核,同樣擴大網絡的感受野,使得運算速度變快了。
(1)通道注意力模塊。
利用圖像特征之間的通道關系生成了新的通道特征圖,方法如圖4(a)。首先,原始的特征圖分別經過平均池化(average-pooling)和最大池化(max-pooling)操作,生成兩個不同的特征,然后這兩個特征圖經過共享模塊。隨后將產生的兩個特征進行逐元素相加,通過Sigmoid函數激活得到通道注意力模塊的結果Mc(F)。最后一步,將輸入的原始圖像與Mc(F)相乘,生成一個與原圖一樣大小的特征圖像。CBAM的通道模塊計算公式為:
Mc(F)=σ(MLP(AvgPool(F))+
MLP(MaxPool(F)))=
(1)

(2)空間注意力模塊。
使用(1)中產生的特征圖生成空間注意力圖,方法如圖4(b)。空間方向不變,在通道方向進行平均池化和最大池化操作,將生成的兩個通道為1的特征拼接在一起,隨后將新特征經過7×7的卷積和激活函數最終生成Ms(F)。最后一步,將輸入的原始圖像與Ms(F)相乘,生成一個與原圖一樣大小的特征圖像。CBAM的空間模塊計算公式為:
Ms(F)=σ(f7×7([AvgPool(F);MaxPool(F)]))=
(2)


圖4 CBAM注意力模塊
對于原版YOLOv5算法使用的是三尺度檢測,與此對應的是三組對應的預先設好的對照框,當增加一個檢測層時,就需要再新增一組對應的Anchor。當在輸入端輸入尺寸大小為640×640的圖像時,經過YOLOv5的主干網絡和特征融合模塊后,就可以在檢測層得到大小為80×80、40×40、20×20的特征圖。它們分別可以用來檢測大小在8×8以上的目標、16×16以上的目標、32×32以上的目標,這就導致了小尺寸的艦船目標容易被忽略,造成漏檢。為了解決艦船目標漏檢的情況,該文將在YOLOv5的第四部分檢測層做出改進,為了更好地檢測艦船,增加一個大尺度特征圖,通過計算可得出是160×160大小的檢測層。改進后的特征融合結構如圖5所示,不只是增加了一個大尺度檢測層,還對PANet進行了替換,使用與四尺度架構相匹配的改進BiFPN結構,在18層之后又新加了卷積層和二倍上采樣層,再將來自第2層和20層的特征進行BiFPN二特征融合,最后形成一個新的160×160特征檢測層。
為了更好更快速地融合圖像的特征信息,還使用了改進的加權的雙向特征金字塔網絡。圖6展示了不同結構的特征融合模塊。BiFPN是在PAN的基礎上進行改進的,同樣的特征融合模塊,但是改進的BiFPN可以使不用層次的特征進行融合。結構如圖6(c)所示,但因為不同的輸入特征圖像有著不同的分辨率,因此不同尺寸的特征圖對最終的輸出圖片有著不一樣的側重信息。為了處理好每個輸入的比重,在進行不同尺寸的特征融合時,給予每個輸入不同的權重值,讓整個網絡通過訓練學習各個不同輸入特征的重要性,通過前后項傳播得出權重,最終達到優化算法的目的。BiFPN使用的是快速歸一化融合,直接用權值除以所有權值加和來進行歸一化,同時將權值歸一化到[0,1]之間,提高了計算速度,如式(3)所示:
(3)
其中,wi≥0,通過ReLu激活來確保數值的穩定,Ii表示輸入的特征。由于標量權重是無界的,會導致訓練不穩定,所以使用softmax進行歸一化。BiFPN雙向跨尺度連接的改進:對于圖中所示的中間一列特征圖像,對應的是YOLOv5上采樣部分,該文刪除了只有一個特征輸入的節點,這一部分節點只有從主干網絡提取的特征,對于特征融合金字塔作用不大,將該節點刪除之后不僅沒有很大影響,而且減少了運算量,簡化了一部分網絡結構;然后是在主干網絡的不同大小的網絡提取層增加一條通往輸出的特征融合線,是為了增加原始特征信息在最后檢測層的比重,同時融合更多的特征信息;最后,將此模塊結合YOLOv5的特征融合不斷重復堆疊,實現不同層次的特征融合。

圖5 改進的YOLOv5網絡架構
改進后的BiFPN將在Backbone提取的四種不同尺度的特征用作圖6(c)右邊所示的一列的輸入,其中P3、P4、P6、P7分別對應改進后的YOLOv5網絡中的2、4、6和10層,將它們按照不同的融合方式進行不同尺度的加權融合,最后設置20×20、40×40、80×80、160×160四種不同尺度的特征分辨率的預測分支。

圖6 FPN、PANet和BiFPN結構
YOLOv5模型的損失函數定義包含矩形框、置信度和分類概率這三個部分,矩形框表示目標的大小以及精確位置,置信度表征所預測矩形框(簡稱預測框)的可信程度,取值范圍0~1,值越大說明該矩形框中越可能存在目標,分類概率表征目標的類別,損失函數的作用為度量神經網絡預測信息與期望信息的距離,預測信息越接近期望信息,損失函數值越小。由上述可以知道損失主要包含以下方面:矩形框損失、置信度損失、分類損失,其中CIoU Loss計算矩形框損失,置信度損失與分類損失都用BCE loss計算。CIoU Loss公式如式(4)所示:

(4)
其中,ρ2(b,bgt)代表預測框與目標框兩個中心點的歐氏距離,d代表最小的真實框和預測框所組成的矩形對角線邊長,β是計算時用來平衡比例的參數,s是用來衡量anchor框和目標框之間比例的一致性,公式如式(5)、(6)。
(5)
(6)
由于CIoU沒有考慮到真實框與預測框之間的方向,導致收斂速度較慢,對此SIoU引入真實框和預測框之間的向量角度,重新定義相關損失函數,具體包含四個部分:
(1)角度損失。
(7)
結構如圖7(a)所示,其中ch為真實框和預測框中心點的高度差,σ為真實框和預測框中心點的距離。
(2)距離損失。

(8)
(3)形狀損失。

(9)


圖7 SIoU函數損失框圖
(4)IoU損失。

(10)
SIoU是一種新的損失函數,重新定義了懲罰度量,考慮了期望回歸之間的向量夾角,提高了訓練的速度和推理的準確性。
HRSID數據集是電子科技大學在2020年1月發布的,HRSID是高分辨率SAR圖像中用于船舶檢測的數據集。該數據集共包含5 604張高分辨率SAR圖像和16 951個ship實例,在該數據集上使用了預訓練權重,設置bitch size為8,訓練250個Epoch,使用SGD優化器進行權重更新。
對于艦船數據集的評價指標[16],選擇召回率(Recall)、精度(Precision)以及平均精度均值(mAP)。對于實驗部分,為了顯示加入的CBAM注意力模塊、改進BiFPN模塊和損失函數SIoU之間不同的效果,做了6組對照實驗,其結果如表1所示。為了在表中顯示最好的效果,特意用加粗的字體表示,還使用了“√”表示添加相應模塊。
注意力機制模塊對SAR圖像有較大的影響,從上表可知只在主干網絡里面加入CBAM注意力,就可以加強對圖像特征的提取能力,有效地提升了精度P和mAP。這是因為原始的算法特征提取能力不強,對復雜背景下的艦船小目標容易漏檢。改變YOLOv5的損失函數為SIoU后,可以明顯發現精度P相比于原始算法提升了1.3百分點,這是因為在預測邊框回歸[17]時,引入真實框和預測框之間的向量角度,重新定義相關損失函數考慮的因素更加綜合全面,對訓練過程更加有利,最終的檢測精度更高。在加入改進BiFPN模塊后,由原始的三尺度檢測變為四尺度檢測,增加了一個新的檢測層,更加注意SAR圖像的小目標艦船,使得精度P、召回率R和mAP都得到了不同程度的提高。改進6加入了CBAM注意力和改進BiFPN,通過這兩個模塊的結合可以得知,主干網絡的注意力機制加強了網絡對艦船目標特征的學習能力,而最后檢測層增加的大尺度檢測層則是增強對小目標的檢測能力。同時,主干網絡關注一些小特征信息,導致了精度P的下降,這時引入新的損失函數SIoU,可以改變真實框和預測框之間的定義關系,從而達到提升精度P的目的,最終成為該文改進的YOLOv5目標檢測算法。圖8展示了不同方法的mAP指標曲線。

表1 各模塊結果對比

圖8 mAP曲線
為測試文中算法的效果,將復雜背景下的SAR艦船圖像輸入到不同的改進網絡中和真實值進行對比,實驗效果如圖9所示。

圖9 實驗效果
通過觀察上面的實驗效果圖可以發現,相比于原始算法,改進6是加入CBAM和改進BiFPN模塊,提升了對小目標的檢測率,降低了漏檢率。但是同時面臨著艦船小目標容易受到復雜背景的影響,導致一些海岸邊的建筑被識別成為艦船目標,從而造成較高的虛警率。為了改進這種算法的缺點,在改進6的基礎上引入了新的損失函數SIoU,最終形成文中方法。從上面的圖片中可以明顯看出,該方法有效地區分了復雜背景與真實艦船,最終達到提升精準率P和mAP的目的。
為了進一步證明文中算法的優越性,不僅與原YOLOv5算法進行對比,而且還與一些經典的目標檢測算法Faster R-CNN、Cascade R-CNN、RetinaNet、SSD和一些最新的論文在同樣的HRSID數據集上進行比較,評價指標和表1一致。同時又加入了檢測時間Times,用來表示不同模型的檢測速度,最后得到不同模型的數據,如表2所示。最好的結果使用加粗字體表示。

表2 實驗對比
可以看出,文中方法在HRSID數據集上的各項指標均最高。此外,由于在特征融合模塊增加了上采樣層,使得最后的檢測層變為四尺度檢測,增加了一部分的計算量,導致網絡的復雜度增加。與此同時檢測的時間一定會增加,這是提升精準度P、召回率R和mAP所帶來的不可避免的負面影響。但是這種時間的增加并不大,相比于其他的像Faster R-CNN這樣的目標檢測算法,文中方法檢測速度還是遠遠快于它們,在SAR艦船圖像的實際應用方面,還是具有一定的可靠性。
針對當前對SAR圖像中的艦船目標檢測效果不佳和復雜背景下漏檢率較高的問題,根據SAR圖像中艦船目標分布在復雜的海岸線和密集的特點,提出了一種基于YOLOv5網絡模型的改進BiFPN目標檢測方法。
該方法針對復雜背景下的艦船目標具有較好的檢測效果,對比其他的改進目標檢測算法,該方法在mAP上大幅提升,雖然相對于YOLOv5檢測算法檢測時間變長,但是其檢測效果變得更好。算法為解決復雜海岸背景對艦船的干擾,引入CBAM注意力,加強對圖像的特征提取能力。同時為了防止丟失小目標信息,檢測層的四尺度檢測避免漏檢,在這樣的特征增強下,可能會導致目標信息過于豐富而注意到某些不存在的目標信息,于是引入新的損失函數SIoU來重新定位檢測框與真實框的關系。對于該改進方法只在數據集HRSID進行測試并且表現良好,可能不具有泛化性,為了使該方法具有普適性,將使用更多的艦船數據集訓練網絡,并且不斷優化,以提高精準度。