富 強,楊 威,陳 杰,鄭世超,楚博策,3
(1.北京航空航天大學 電子信息工程學院,北京 100191;2.上海衛星工程研究所,上海 200240;3.中國電子科技集團公司航天信息應用技術重點實驗室,河北石家莊 050081)
合成孔徑雷達(Synthetic Aperture Radar,SAR)是一種主動式微波成像傳感器,它可以不受天氣的影響,不分晝夜,同時可以獲得更高質量、更高分辨率的大范圍遠距離圖像。因此,利用SAR 圖像進行艦船檢測已成為國內外研究的熱點。傳統的基于SAR 圖像的艦船檢測主要包括恒虛警率(Constant False Alarm Rate,CFAR)算法和基于特征提取的算法等。對于近岸艦船,要考慮艦船的密集停放,同時考慮陸地環境中大量的人工目標,如建筑物、車輛等,其目標的特征與艦船相似,為準確的目標檢測帶來了很大的影響和挑戰。
近年來,隨著深度學習的快速發展,這一技術得到了廣泛的應用,并在圖像識別領域取得了很大的進展,許多研究人員在艦船識別中也引入了深度學習。深度學習中的卷積神經網絡(Convolutional Neutral Network,CNN)通過逐層學習和自主提取特征,可以充分利用圖像中的信息,從而擺脫了傳統方法的限制,在各種復雜多變的環境中具有良好的魯棒性。文獻[7]設計了基于注意力機制特征重建網絡的艦船目標檢測算法,引入注意力旋轉錨框以緩解密集排列目標引起的噪聲問題,并利用特征重建模塊來實現特征精煉。文獻[8]通過網絡輕量化和聚類算法改進YOLOv3 網絡,提升檢測精度的同時加快了檢測速度。
本文利用真實的開源SAR 圖像構建了一個近岸SAR 艦船數據集,在此基礎上進行了檢測實驗,精確評估了檢測網絡在近岸艦船上的性能。然后,引入注意力模塊(Channel Attention Module,CAM)來提高網絡的檢測性能。在近岸測試集中,mAP 達到80%以上。此外,為了解決近岸地區艦船密集分布導致的檢測性能下降的問題,引入了基于YOLOv5 和CSL 算法的旋轉檢測網絡,并證明了其可行性。
YOLO是一種基于深度學習神經網絡的目標檢測算法,屬于一階段檢測網絡,相比于以SSD為代表的雙階段檢測網絡,擁有運行速度很快的特點,適用于實時檢測。YOLO 網絡從v1 開始不斷改進更新,現在該系列最新的網絡為YOLOv5,在許多方面都有應用且達到了不錯的效果。接下來是對YOLOv5 的結構以及檢測運用到的方法作介紹。YOLOv5 的整體網絡結構如圖1 所示。

圖1 YOLOv5 網絡結構[12]Fig.1 Network architecture of YOLOv5[12]
其中,骨干網絡(Backbone)用以提取圖像中的特征信息,頸部網絡(Neck)用以整合不同尺度的特征信息并傳輸到輸出層(Output),輸出層用以生成預測結果。網絡中的模塊包含聚焦(Focus)模塊、基礎卷積(CONV)模塊、跨階段局部網絡(CSP)模塊、空間金字塔池化(SPP)模塊、連接(Concat)模塊、上采樣(Upsample)模塊。相同的模塊有不同的輸入通道數(in_channel)、輸出通道數(out_channel)、卷積核大小(kernel_size)、卷積步長(stride)。
CONV 模塊是YOLOv5 中最基礎的模塊,由卷積模塊、BN 模塊、Leaky ReLU 激活函數組成。卷積模塊是卷積神經網絡的基礎、Leaky ReLU 函數,可以防止梯度飽和的問題,同時有效抑制梯度消失現象。
BN 算法引入了可學習參數、,從而恢復出前一層網絡所學習到的特征。BN 的引入減少了初始參數的限制,可以選擇較大的初始學習率,加快了訓練速度;BN 極大增強了網絡泛化能力,減少過擬合,計算公式如下:

式中:x為神經元輸入;[x]為各神經元輸入值的平均值;Var(x)為各神經元輸入值的方差。
跨階段局部網絡(Cross Stage Partial Network,CSPNet)是減少目前需要的大量推理計算。以往在實際應用中能夠獲得較好結果的方法在很大程度上需要依賴龐大的計算量。CSPNet 是一種網絡設計思路,與殘差結構的思想相似,可以與已有的網絡結合。實驗中顯示,隨著CSPNet 的引入,計算量有了大幅下降的同時,準確率沒有下降,甚至有略微的提升。CSP 模塊結構如圖2 所示。
基礎層的特征映射被CSP 模塊劃分為2 部分,即圖2 中左側的單卷積部分和中間的深層網絡部分,然后用跨階段結構將合并這2 部分。深層網絡部分中的瓶頸模塊(Bottleneck)為一個使用了殘差結構的特征提取模塊。

圖2 CSP 模塊結構[12]Fig.2 Architecture of the CSP module[12]
路徑聚合網絡(Path Aggregation Network,PANet,PANet)提出的目的是在特征圖金字塔網絡(Feature Pyramid Network,FPN)的基礎上進一步促進不同層之間特征信息的流動,其結構如圖3 所示。PANet 在自頂往下的網絡后,又增加了一個自底往上的金字塔結構。

圖3 PANet 結構[17]Fig.3 Architecture of the PANet[17]
語義特征通過FPN 層自頂往下傳達,定位特征則通過PANet 自底向上傳達,不同的卷積層從不同的主干層進行融合,特征提取能力從而獲得提高。
目標檢測最常用的損失函數是交并比(Intersection over Union,IoU),計算公式如下:

式中:DR(Detection Results)為檢測結果;GT(Ground Truth)為實際結果。
但IoU 無法反映兩框距離的遠近,因此提出了綜合交并比(Generalized Intersection over Union,GIoU)。在GIoU 基礎上,距離交并比(Distance Intersection over Union,DIoU)考慮了檢測結果與真實值間的重疊率、距離以及尺度。更進一步地,完備交并比(Complete Intersection over Union,CIoU)考慮到了檢測框的長寬比,在DIoU 的公式中加入了一個影響因子,具體公式如下:

式中:為權重參數;為2 個點的歐氏距離;衡量檢測值和真實值之間長寬比的相似性,定義如下:

式中:為寬;為高。
CIoU 綜合考慮了檢測值和真實值之間的IoU、距離、長寬比等因素,包含的方面較為全面,使得檢測值有較好的精度,因此YOLOv5 中默認采用CIoU 作為計算預測值損失的方法。
計算機視覺的注意力機制的思想是通過尋找現有數據間的關聯性突出某些重要特征,是一個在[0,1]區間連續分布的問題,屬于軟注意力。軟注意力可以通過神經網絡學習,經過前向傳播和后向傳播來得到注意力的權重。
壓縮激發網絡(Squeeze and Excitation Networks,SENet)關注通道之間的關系,希望網絡能夠自發學習到特征圖不同通道的重要程度,其結構如圖4 所示。

圖4 SENet 結構[20]Fig.4 Architecture of the SENet[20]
如圖4 所示,任意特征圖經過任意特征提取操作后獲得特征圖,其中分別為特征圖的高度、寬度、通道數。SENet 通過對特征圖進行壓縮(Squeeze)和激發(Excitation)操作,即圖中和,得到1 個一維向量,向量中的每個參數作為每個通道的評分,然后在通道上施加對應的權重,得到處理后的結果。其中壓縮操作對每個通道做平均池化,得到各個通道的統計數值;激發操作學習通道的相關程度,并根據相關程度調整權重。
卷積塊注意力模塊(Convolutional Block Attention Module,CBAM)結合了空間注意力和通道注意力,如圖5(a)所示。輸入特征圖(Input Feature)經過通道CAM 和空間注意力機制模塊(Spatial Attention Module,SAM)獲得提煉后特征圖(Refined Feature)。通道CAM 與SENet 相似,不再贅述。圖5(b)是SAM,和通道注意力類似,空間注意力可以學習特征圖不同空間的重要程度。

圖5 CBAM 及SAM[21]Fig.5 Schematic diagram of the CBAM and SAM[21]
圖5(b)所示的SAM 的具體操作如下:首先對于輸入的特征圖,即經過通道CAM 處理的特征圖(Channel-refined feature),分別做基于通道的平均池化(AvgPool)、最大池化(MaxPool),池化后的2個結果做基于通道的拼接操作;然后通過卷積(conv layer),將通道數減少為1;再通過激活函數,獲得空間注意力特征圖。將獲得的空間注意力特征圖施加在原來的特征圖上得到最終的特征。與通道注意力類似,空間注意力可以學習特征圖不同空間的重要程度。不同于只關注通道注意力機制的SENet 模塊,CBAM 模塊往往可以取得更好的效果。
上述2 種注意力機制模塊都是輕量的通用模塊,由于2 種模塊輸入和輸出的特征圖大小是一致的,因此可以直接將模塊添加用于YOLOv5 網絡的各層,將其融入到各種卷積神經網絡中進行端到端的訓練。本實驗中,將2 種模塊分別添加與檢測頭前的位置。改進后的網絡如圖6 所示。

圖6 改進后YOLOv5 結構Fig.6 Architecture of the improved YOLOv5
為了處理邊界問題,圓光滑標簽(Circular Smooth Label,CSL)算法將角度問題從原本的回歸問題轉化為分類問題,解決了角度的邊界問題,可以很好地和長邊定義法結合。CSL 將定義的角度進行劃分,如圖7 所示。

圖7 角度的分類定義[22]Fig.7 Categorical definition of angles[22]
僅僅把角度當作類別問題無法衡量預測角度和真實角度之間的距離,為了解決這個問題,CSL設計了如下表達式:

式中:()為窗口函數;為窗口半徑。
滿足如下幾點:周期性,周期為180/;對稱性,關于對稱;最大值為1;單調性,

將角度問題轉換為類別問題就是將一個連續問題轉換為離散問題,這意味著轉換過程中精度會有損失。CSL 作者在文章中計算了損失以確定其對最終結果的影響,計算公式如下:

式中:為相鄰兩類角度之間的差,比如將1°劃分為一類時=1,此時精度的最大損失、角度服從平均分布下的平均損失分別為0.5°和0.25°。這對于結果的影響很小,在實際應用中可以不予考慮。
將該算法與YOLOv5 網絡相結合需對網絡做如下改動:1)數據輸入部分,增加數據維度,在原有的檢測框數據基礎上增加角度數據信息;2)網絡檢測部分,增加角度信息的預測;3)損失函數部分,構建目標時增加角度信息列表,并在損失函數計算時增加角度信息損失的計算,計算函數與類別損失計算函數相同;4)可視化部分,將繪制水平矩形框修改為繪制旋轉矩形框。在YOLOv5 網絡的整體結構上并無改動。
本次實驗計劃使用SSDD公開SAR艦船檢測數據集。該數據集包含了多種不同的成像條件。圖像主要來源于RadarSat-2、TerraSAR-X 和Sentinel-1 衛星傳感器,一共4 種極化模式,分辨率的范圍為1~15 m。
通過位深度轉換和對比度調整,將原數據調整為更適合用于網絡訓練和人工評估的圖像。之后選取包含艦船目標的圖像區域,按照所構建的神經網絡要求,將圖像進行切片為適合網絡進行訓練的圖像尺寸,完成訓練集的制作。原圖和處理后圖像如圖8 所示。

圖8 處理前后數據對比Fig.8 Comparison of images before and after processing
數據集切片數量為1 386 張。將1 386 張圖片分為兩類,包含陸地的數據、不包含陸地的數據,其中包含陸地的切片數量為304 張,不包含陸地的切片數量為1 082 張。由于數據集數量較少,按照6∶2∶2 的比例分別將上述兩類數據分為訓練集、驗證集、測試集,并在測試集中去除不包含陸地的目標,著重分析網絡對于近岸目標的檢測性能。SSDD 數據集分配見表1。

表1 SSDD 數據集分配Tab.1 SSDD dataset distribution
使用YOLOv5 在coco 數據集的預訓練權重進行初步訓練,處理批次大小設置為8。處理批次過大會導致梯度下降速度緩慢,過小會導致損失函數難以收斂。在合理的范圍內增加處理批次可以使顯卡性能利用率提高,訓練速度加快。迭代次數設置為300,采用隨機梯度下降作為梯度下降算法。初始學習率為0.01,周期學習率為0.2。YOLOv5訓練過程中,隨著迭代次數增加,學習率減小,具體公式如下:

式中:為迭代總次數;為第次迭代;lr為第次迭代的學習率;為初始學習率;為周期學習率。最后一次迭代時,學習率為。
均值平均精度(Mean Average Precision,mAP),用以衡量網絡性能。計算時,置信度閾值設置為0.001,NMS 置信度設置為0.5;檢測時,置信度閾值為0.5,NMS置信度為0.5。測試結果如圖9所示。
圖9 中,左側為200 次迭代訓練后的檢測結果,右圖為300 次迭代訓練后的檢測結果。然而兩個結果之間差距不大,證明網絡已經經過充分訓練,雖然出現過擬合的現象,但下降幅度不大,過擬合不嚴重,證明了YOLOv5 防止過擬合性能較為優秀。部分檢測結果如圖10 所示。

圖9 精度-召回率曲線Fig.9 Precision-recall curves

圖10 檢測結果Fig.10 Detected results
為了進一步提高準確率,在YOLOv5 網絡結構中加入注意力機制模塊,并重復實驗。分別加入模塊SELayer 和CBAM,數量為1,位置為網絡第8層,處理批次大小設置為8。采用隨機梯度下降作為梯度下降算法,初始學習率為0.01,周期學習率為0.2,NMS 閾值為0.5。由于增加了模塊,模型參數增加,導致訓練速度減慢,因此需要增加迭代次數,迭代次數設置為400。加入CAM 后精度-召回率曲線如圖11 所示。

圖11 加入CAM 后精度-召回率曲線Fig.11 Precision-recall curves after adding CAM
圖中可見:加入SELayer的網絡,mAP 值有小幅度提升,且準確率下降到一定程度后沒有繼續下降,證明SELayer 模塊在減少檢測網絡錯檢的效果上較為突出;加入CBAM 模塊的網絡,mAP 值有更明顯的提升,證明了注意力機制模塊在提升檢測網絡性能方面的作用,且CBAM 較SELayer性能更好。
YOLOv5、改進后YOLOv5 與其他典型檢測網絡性能對比見表2,典型檢測網絡包括Faster RCNN和SSD。

表2 檢測結果對比Tab.2 Comparison of the detected results
由表2 可知,原YOLOv5 網絡與典型檢測相比,在準確率性能方面較為相近,但在檢測速度方面有明顯優勢。增加CAM 的改進后網絡雖然增加了網絡復雜度,因此增加了檢測用時,但仍具有較高效率,同時在檢測準確率方面也有提升。
由以上收集的檢測結果可以初步歸納檢測錯誤原因,漏檢的原因主要為檢測目標附近的干擾、艦船的密集分布,其中干擾包含由于噪聲導致的干擾和由于較為靠近陸地導致的陸地背景的干擾;錯檢的原因主要為將形狀與艦船類似的目標錯誤判定為目標,將與艦船類似的目標命名為干擾目標,干擾目標可以分為離岸的干擾目標和陸地干擾目標。部分錯檢結果如圖12 所示。

圖12 部分錯檢結果Fig.12 Partial wrong detected results
針對以上問題提出如下解決方案:針對噪聲導致的干擾,增加圖像降噪的預處理環節;針對靠近陸地導致的陸地背景的干擾以及陸地的干擾目標,增加海陸分割的預處理環節;針對艦船密集分布的問題,加入旋轉框檢測網絡。除了以上針對性措施之外,還可以通過增加訓練集、提高網絡的特征提取性能等方法,綜合提升網絡性能。
在以上實驗中發現,錯檢漏檢目標有部分原因來自于較為密集的目標,因此嘗試實現旋轉框的目標檢測網絡。計劃使用CSL 算法,實現YOLOv5 旋轉框檢測網絡改建。
訓練時,處理批次大小設置為8,采用Adam 算法作為梯度下降算法優化器。初始學習率為0.001,周期學習率為0.01,迭代次數為200 次。最終loss的訓練結果 為box_loss=0.083 26,obj_loss=0.015 12,angle_loss=0.266,獲得的部分結果如圖13 所示。

圖13 部分旋轉框檢測結果Fig.13 Partial detected results of the rotating frame
由圖13 結果可知,在部分情況下旋轉框可以較為精確地框定出目標范圍,能夠證實CSL+YOLOv5 算法進行旋轉框檢測的可行性。但是漏檢、誤檢在大部分情況下較為嚴重,且目標的置信度普遍不高。判斷原因主要在于網絡未得到充分的訓練,loss 在下降到一定程度后無法繼續收斂,網絡訓練陷入了局部最優。后續需要改變訓練策略,進行進一步的訓練,嘗試將網絡充分訓練;或者對CSL算法進行改進,嘗試尋找更優的旋轉標簽標注法和損失函數算法。
本文構建了著重于近岸目標的訓練和測試集,開展以原YOLOv5 網絡為基礎的近岸艦船目標檢測網絡實驗和加入注意力機制模塊的改進實驗,并取得了較為理想的效果——在近岸測試集中,mAP達到了80%以上。證實了YOLOv5 網絡作為近岸艦船目標檢測網絡有著較為良好的性能,注意力機制模塊在提升檢測網路準確率方面也有著較好的效果。
針對近岸情況中艦船目標密集導致漏檢的問題,開展旋轉檢測框實驗,并且能夠初步證明CSL+YOLOv5 實現旋轉框檢測的可行性,但未能達到預期中提升檢測性能的效果。分析原因后提出如下改進方案:嘗試不同的學習率,梯度優化算法;修改原有的評估方法,得到適合旋轉框目標的評估方法,指導訓練網絡的參數優化環節,從而實現網絡的充分訓練。或者對CSL 算法進行改進,嘗試尋找更優的旋轉標簽標注法和損失函數算法。
在總結錯誤原因后,除了旋轉框檢測之外,提出如下解決方案:針對噪聲導致的干擾,增加圖像降噪的預處理環節;針對靠近陸地導致的陸地背景的干擾以及陸地的干擾目標,增加海陸分割的預處理環節。除了以上針對性措施之外,還可以通過增加訓練集、提高網絡的特征提取性能等方法,綜合提升網絡性能。