富 強,楊 威,陳 杰,鄭世超,楚博策,3
(1.北京航空航天大學(xué) 電子信息工程學(xué)院,北京 100191;2.上海衛(wèi)星工程研究所,上海 200240;3.中國電子科技集團公司航天信息應(yīng)用技術(shù)重點實驗室,河北石家莊 050081)
合成孔徑雷達(Synthetic Aperture Radar,SAR)是一種主動式微波成像傳感器,它可以不受天氣的影響,不分晝夜,同時可以獲得更高質(zhì)量、更高分辨率的大范圍遠距離圖像。因此,利用SAR 圖像進行艦船檢測已成為國內(nèi)外研究的熱點。傳統(tǒng)的基于SAR 圖像的艦船檢測主要包括恒虛警率(Constant False Alarm Rate,CFAR)算法和基于特征提取的算法等。對于近岸艦船,要考慮艦船的密集停放,同時考慮陸地環(huán)境中大量的人工目標(biāo),如建筑物、車輛等,其目標(biāo)的特征與艦船相似,為準(zhǔn)確的目標(biāo)檢測帶來了很大的影響和挑戰(zhàn)。
近年來,隨著深度學(xué)習(xí)的快速發(fā)展,這一技術(shù)得到了廣泛的應(yīng)用,并在圖像識別領(lǐng)域取得了很大的進展,許多研究人員在艦船識別中也引入了深度學(xué)習(xí)。深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neutral Network,CNN)通過逐層學(xué)習(xí)和自主提取特征,可以充分利用圖像中的信息,從而擺脫了傳統(tǒng)方法的限制,在各種復(fù)雜多變的環(huán)境中具有良好的魯棒性。文獻[7]設(shè)計了基于注意力機制特征重建網(wǎng)絡(luò)的艦船目標(biāo)檢測算法,引入注意力旋轉(zhuǎn)錨框以緩解密集排列目標(biāo)引起的噪聲問題,并利用特征重建模塊來實現(xiàn)特征精煉。文獻[8]通過網(wǎng)絡(luò)輕量化和聚類算法改進YOLOv3 網(wǎng)絡(luò),提升檢測精度的同時加快了檢測速度。
本文利用真實的開源SAR 圖像構(gòu)建了一個近岸SAR 艦船數(shù)據(jù)集,在此基礎(chǔ)上進行了檢測實驗,精確評估了檢測網(wǎng)絡(luò)在近岸艦船上的性能。然后,引入注意力模塊(Channel Attention Module,CAM)來提高網(wǎng)絡(luò)的檢測性能。在近岸測試集中,mAP 達到80%以上。此外,為了解決近岸地區(qū)艦船密集分布導(dǎo)致的檢測性能下降的問題,引入了基于YOLOv5 和CSL 算法的旋轉(zhuǎn)檢測網(wǎng)絡(luò),并證明了其可行性。
YOLO是一種基于深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法,屬于一階段檢測網(wǎng)絡(luò),相比于以SSD為代表的雙階段檢測網(wǎng)絡(luò),擁有運行速度很快的特點,適用于實時檢測。YOLO 網(wǎng)絡(luò)從v1 開始不斷改進更新,現(xiàn)在該系列最新的網(wǎng)絡(luò)為YOLOv5,在許多方面都有應(yīng)用且達到了不錯的效果。接下來是對YOLOv5 的結(jié)構(gòu)以及檢測運用到的方法作介紹。YOLOv5 的整體網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。
圖1 YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)[12]Fig.1 Network architecture of YOLOv5[12]
其中,骨干網(wǎng)絡(luò)(Backbone)用以提取圖像中的特征信息,頸部網(wǎng)絡(luò)(Neck)用以整合不同尺度的特征信息并傳輸?shù)捷敵鰧樱∣utput),輸出層用以生成預(yù)測結(jié)果。網(wǎng)絡(luò)中的模塊包含聚焦(Focus)模塊、基礎(chǔ)卷積(CONV)模塊、跨階段局部網(wǎng)絡(luò)(CSP)模塊、空間金字塔池化(SPP)模塊、連接(Concat)模塊、上采樣(Upsample)模塊。相同的模塊有不同的輸入通道數(shù)(in_channel)、輸出通道數(shù)(out_channel)、卷積核大?。╧ernel_size)、卷積步長(stride)。
CONV 模塊是YOLOv5 中最基礎(chǔ)的模塊,由卷積模塊、BN 模塊、Leaky ReLU 激活函數(shù)組成。卷積模塊是卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)、Leaky ReLU 函數(shù),可以防止梯度飽和的問題,同時有效抑制梯度消失現(xiàn)象。
BN 算法引入了可學(xué)習(xí)參數(shù)、,從而恢復(fù)出前一層網(wǎng)絡(luò)所學(xué)習(xí)到的特征。BN 的引入減少了初始參數(shù)的限制,可以選擇較大的初始學(xué)習(xí)率,加快了訓(xùn)練速度;BN 極大增強了網(wǎng)絡(luò)泛化能力,減少過擬合,計算公式如下:
式中:x為神經(jīng)元輸入;[x]為各神經(jīng)元輸入值的平均值;Var(x)為各神經(jīng)元輸入值的方差。
跨階段局部網(wǎng)絡(luò)(Cross Stage Partial Network,CSPNet)是減少目前需要的大量推理計算。以往在實際應(yīng)用中能夠獲得較好結(jié)果的方法在很大程度上需要依賴龐大的計算量。CSPNet 是一種網(wǎng)絡(luò)設(shè)計思路,與殘差結(jié)構(gòu)的思想相似,可以與已有的網(wǎng)絡(luò)結(jié)合。實驗中顯示,隨著CSPNet 的引入,計算量有了大幅下降的同時,準(zhǔn)確率沒有下降,甚至有略微的提升。CSP 模塊結(jié)構(gòu)如圖2 所示。
基礎(chǔ)層的特征映射被CSP 模塊劃分為2 部分,即圖2 中左側(cè)的單卷積部分和中間的深層網(wǎng)絡(luò)部分,然后用跨階段結(jié)構(gòu)將合并這2 部分。深層網(wǎng)絡(luò)部分中的瓶頸模塊(Bottleneck)為一個使用了殘差結(jié)構(gòu)的特征提取模塊。
圖2 CSP 模塊結(jié)構(gòu)[12]Fig.2 Architecture of the CSP module[12]
路徑聚合網(wǎng)絡(luò)(Path Aggregation Network,PANet,PANet)提出的目的是在特征圖金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN)的基礎(chǔ)上進一步促進不同層之間特征信息的流動,其結(jié)構(gòu)如圖3 所示。PANet 在自頂往下的網(wǎng)絡(luò)后,又增加了一個自底往上的金字塔結(jié)構(gòu)。
圖3 PANet 結(jié)構(gòu)[17]Fig.3 Architecture of the PANet[17]
語義特征通過FPN 層自頂往下傳達,定位特征則通過PANet 自底向上傳達,不同的卷積層從不同的主干層進行融合,特征提取能力從而獲得提高。
目標(biāo)檢測最常用的損失函數(shù)是交并比(Intersection over Union,IoU),計算公式如下:
式中:DR(Detection Results)為檢測結(jié)果;GT(Ground Truth)為實際結(jié)果。
但IoU 無法反映兩框距離的遠近,因此提出了綜合交并比(Generalized Intersection over Union,GIoU)。在GIoU 基礎(chǔ)上,距離交并比(Distance Intersection over Union,DIoU)考慮了檢測結(jié)果與真實值間的重疊率、距離以及尺度。更進一步地,完備交并比(Complete Intersection over Union,CIoU)考慮到了檢測框的長寬比,在DIoU 的公式中加入了一個影響因子,具體公式如下:
式中:為權(quán)重參數(shù);為2 個點的歐氏距離;衡量檢測值和真實值之間長寬比的相似性,定義如下:
式中:為寬;為高。
CIoU 綜合考慮了檢測值和真實值之間的IoU、距離、長寬比等因素,包含的方面較為全面,使得檢測值有較好的精度,因此YOLOv5 中默認采用CIoU 作為計算預(yù)測值損失的方法。
計算機視覺的注意力機制的思想是通過尋找現(xiàn)有數(shù)據(jù)間的關(guān)聯(lián)性突出某些重要特征,是一個在[0,1]區(qū)間連續(xù)分布的問題,屬于軟注意力。軟注意力可以通過神經(jīng)網(wǎng)絡(luò)學(xué)習(xí),經(jīng)過前向傳播和后向傳播來得到注意力的權(quán)重。
壓縮激發(fā)網(wǎng)絡(luò)(Squeeze and Excitation Networks,SENet)關(guān)注通道之間的關(guān)系,希望網(wǎng)絡(luò)能夠自發(fā)學(xué)習(xí)到特征圖不同通道的重要程度,其結(jié)構(gòu)如圖4 所示。
圖4 SENet 結(jié)構(gòu)[20]Fig.4 Architecture of the SENet[20]
如圖4 所示,任意特征圖經(jīng)過任意特征提取操作后獲得特征圖,其中分別為特征圖的高度、寬度、通道數(shù)。SENet 通過對特征圖進行壓縮(Squeeze)和激發(fā)(Excitation)操作,即圖中和,得到1 個一維向量,向量中的每個參數(shù)作為每個通道的評分,然后在通道上施加對應(yīng)的權(quán)重,得到處理后的結(jié)果。其中壓縮操作對每個通道做平均池化,得到各個通道的統(tǒng)計數(shù)值;激發(fā)操作學(xué)習(xí)通道的相關(guān)程度,并根據(jù)相關(guān)程度調(diào)整權(quán)重。
卷積塊注意力模塊(Convolutional Block Attention Module,CBAM)結(jié)合了空間注意力和通道注意力,如圖5(a)所示。輸入特征圖(Input Feature)經(jīng)過通道CAM 和空間注意力機制模塊(Spatial Attention Module,SAM)獲得提煉后特征圖(Refined Feature)。通道CAM 與SENet 相似,不再贅述。圖5(b)是SAM,和通道注意力類似,空間注意力可以學(xué)習(xí)特征圖不同空間的重要程度。
圖5 CBAM 及SAM[21]Fig.5 Schematic diagram of the CBAM and SAM[21]
圖5(b)所示的SAM 的具體操作如下:首先對于輸入的特征圖,即經(jīng)過通道CAM 處理的特征圖(Channel-refined feature),分別做基于通道的平均池化(AvgPool)、最大池化(MaxPool),池化后的2個結(jié)果做基于通道的拼接操作;然后通過卷積(conv layer),將通道數(shù)減少為1;再通過激活函數(shù),獲得空間注意力特征圖。將獲得的空間注意力特征圖施加在原來的特征圖上得到最終的特征。與通道注意力類似,空間注意力可以學(xué)習(xí)特征圖不同空間的重要程度。不同于只關(guān)注通道注意力機制的SENet 模塊,CBAM 模塊往往可以取得更好的效果。
上述2 種注意力機制模塊都是輕量的通用模塊,由于2 種模塊輸入和輸出的特征圖大小是一致的,因此可以直接將模塊添加用于YOLOv5 網(wǎng)絡(luò)的各層,將其融入到各種卷積神經(jīng)網(wǎng)絡(luò)中進行端到端的訓(xùn)練。本實驗中,將2 種模塊分別添加與檢測頭前的位置。改進后的網(wǎng)絡(luò)如圖6 所示。
圖6 改進后YOLOv5 結(jié)構(gòu)Fig.6 Architecture of the improved YOLOv5
為了處理邊界問題,圓光滑標(biāo)簽(Circular Smooth Label,CSL)算法將角度問題從原本的回歸問題轉(zhuǎn)化為分類問題,解決了角度的邊界問題,可以很好地和長邊定義法結(jié)合。CSL 將定義的角度進行劃分,如圖7 所示。
圖7 角度的分類定義[22]Fig.7 Categorical definition of angles[22]
僅僅把角度當(dāng)作類別問題無法衡量預(yù)測角度和真實角度之間的距離,為了解決這個問題,CSL設(shè)計了如下表達式:
式中:()為窗口函數(shù);為窗口半徑。
滿足如下幾點:周期性,周期為180/;對稱性,關(guān)于對稱;最大值為1;單調(diào)性,
將角度問題轉(zhuǎn)換為類別問題就是將一個連續(xù)問題轉(zhuǎn)換為離散問題,這意味著轉(zhuǎn)換過程中精度會有損失。CSL 作者在文章中計算了損失以確定其對最終結(jié)果的影響,計算公式如下:
式中:為相鄰兩類角度之間的差,比如將1°劃分為一類時=1,此時精度的最大損失、角度服從平均分布下的平均損失分別為0.5°和0.25°。這對于結(jié)果的影響很小,在實際應(yīng)用中可以不予考慮。
將該算法與YOLOv5 網(wǎng)絡(luò)相結(jié)合需對網(wǎng)絡(luò)做如下改動:1)數(shù)據(jù)輸入部分,增加數(shù)據(jù)維度,在原有的檢測框數(shù)據(jù)基礎(chǔ)上增加角度數(shù)據(jù)信息;2)網(wǎng)絡(luò)檢測部分,增加角度信息的預(yù)測;3)損失函數(shù)部分,構(gòu)建目標(biāo)時增加角度信息列表,并在損失函數(shù)計算時增加角度信息損失的計算,計算函數(shù)與類別損失計算函數(shù)相同;4)可視化部分,將繪制水平矩形框修改為繪制旋轉(zhuǎn)矩形框。在YOLOv5 網(wǎng)絡(luò)的整體結(jié)構(gòu)上并無改動。
本次實驗計劃使用SSDD公開SAR艦船檢測數(shù)據(jù)集。該數(shù)據(jù)集包含了多種不同的成像條件。圖像主要來源于RadarSat-2、TerraSAR-X 和Sentinel-1 衛(wèi)星傳感器,一共4 種極化模式,分辨率的范圍為1~15 m。
通過位深度轉(zhuǎn)換和對比度調(diào)整,將原數(shù)據(jù)調(diào)整為更適合用于網(wǎng)絡(luò)訓(xùn)練和人工評估的圖像。之后選取包含艦船目標(biāo)的圖像區(qū)域,按照所構(gòu)建的神經(jīng)網(wǎng)絡(luò)要求,將圖像進行切片為適合網(wǎng)絡(luò)進行訓(xùn)練的圖像尺寸,完成訓(xùn)練集的制作。原圖和處理后圖像如圖8 所示。
圖8 處理前后數(shù)據(jù)對比Fig.8 Comparison of images before and after processing
數(shù)據(jù)集切片數(shù)量為1 386 張。將1 386 張圖片分為兩類,包含陸地的數(shù)據(jù)、不包含陸地的數(shù)據(jù),其中包含陸地的切片數(shù)量為304 張,不包含陸地的切片數(shù)量為1 082 張。由于數(shù)據(jù)集數(shù)量較少,按照6∶2∶2 的比例分別將上述兩類數(shù)據(jù)分為訓(xùn)練集、驗證集、測試集,并在測試集中去除不包含陸地的目標(biāo),著重分析網(wǎng)絡(luò)對于近岸目標(biāo)的檢測性能。SSDD 數(shù)據(jù)集分配見表1。
表1 SSDD 數(shù)據(jù)集分配Tab.1 SSDD dataset distribution
使用YOLOv5 在coco 數(shù)據(jù)集的預(yù)訓(xùn)練權(quán)重進行初步訓(xùn)練,處理批次大小設(shè)置為8。處理批次過大會導(dǎo)致梯度下降速度緩慢,過小會導(dǎo)致?lián)p失函數(shù)難以收斂。在合理的范圍內(nèi)增加處理批次可以使顯卡性能利用率提高,訓(xùn)練速度加快。迭代次數(shù)設(shè)置為300,采用隨機梯度下降作為梯度下降算法。初始學(xué)習(xí)率為0.01,周期學(xué)習(xí)率為0.2。YOLOv5訓(xùn)練過程中,隨著迭代次數(shù)增加,學(xué)習(xí)率減小,具體公式如下:
式中:為迭代總次數(shù);為第次迭代;lr為第次迭代的學(xué)習(xí)率;為初始學(xué)習(xí)率;為周期學(xué)習(xí)率。最后一次迭代時,學(xué)習(xí)率為。
均值平均精度(Mean Average Precision,mAP),用以衡量網(wǎng)絡(luò)性能。計算時,置信度閾值設(shè)置為0.001,NMS 置信度設(shè)置為0.5;檢測時,置信度閾值為0.5,NMS置信度為0.5。測試結(jié)果如圖9所示。
圖9 中,左側(cè)為200 次迭代訓(xùn)練后的檢測結(jié)果,右圖為300 次迭代訓(xùn)練后的檢測結(jié)果。然而兩個結(jié)果之間差距不大,證明網(wǎng)絡(luò)已經(jīng)經(jīng)過充分訓(xùn)練,雖然出現(xiàn)過擬合的現(xiàn)象,但下降幅度不大,過擬合不嚴重,證明了YOLOv5 防止過擬合性能較為優(yōu)秀。部分檢測結(jié)果如圖10 所示。
圖9 精度-召回率曲線Fig.9 Precision-recall curves
圖10 檢測結(jié)果Fig.10 Detected results
為了進一步提高準(zhǔn)確率,在YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)中加入注意力機制模塊,并重復(fù)實驗。分別加入模塊SELayer 和CBAM,數(shù)量為1,位置為網(wǎng)絡(luò)第8層,處理批次大小設(shè)置為8。采用隨機梯度下降作為梯度下降算法,初始學(xué)習(xí)率為0.01,周期學(xué)習(xí)率為0.2,NMS 閾值為0.5。由于增加了模塊,模型參數(shù)增加,導(dǎo)致訓(xùn)練速度減慢,因此需要增加迭代次數(shù),迭代次數(shù)設(shè)置為400。加入CAM 后精度-召回率曲線如圖11 所示。
圖11 加入CAM 后精度-召回率曲線Fig.11 Precision-recall curves after adding CAM
圖中可見:加入SELayer的網(wǎng)絡(luò),mAP 值有小幅度提升,且準(zhǔn)確率下降到一定程度后沒有繼續(xù)下降,證明SELayer 模塊在減少檢測網(wǎng)絡(luò)錯檢的效果上較為突出;加入CBAM 模塊的網(wǎng)絡(luò),mAP 值有更明顯的提升,證明了注意力機制模塊在提升檢測網(wǎng)絡(luò)性能方面的作用,且CBAM 較SELayer性能更好。
YOLOv5、改進后YOLOv5 與其他典型檢測網(wǎng)絡(luò)性能對比見表2,典型檢測網(wǎng)絡(luò)包括Faster RCNN和SSD。
表2 檢測結(jié)果對比Tab.2 Comparison of the detected results
由表2 可知,原YOLOv5 網(wǎng)絡(luò)與典型檢測相比,在準(zhǔn)確率性能方面較為相近,但在檢測速度方面有明顯優(yōu)勢。增加CAM 的改進后網(wǎng)絡(luò)雖然增加了網(wǎng)絡(luò)復(fù)雜度,因此增加了檢測用時,但仍具有較高效率,同時在檢測準(zhǔn)確率方面也有提升。
由以上收集的檢測結(jié)果可以初步歸納檢測錯誤原因,漏檢的原因主要為檢測目標(biāo)附近的干擾、艦船的密集分布,其中干擾包含由于噪聲導(dǎo)致的干擾和由于較為靠近陸地導(dǎo)致的陸地背景的干擾;錯檢的原因主要為將形狀與艦船類似的目標(biāo)錯誤判定為目標(biāo),將與艦船類似的目標(biāo)命名為干擾目標(biāo),干擾目標(biāo)可以分為離岸的干擾目標(biāo)和陸地干擾目標(biāo)。部分錯檢結(jié)果如圖12 所示。
圖12 部分錯檢結(jié)果Fig.12 Partial wrong detected results
針對以上問題提出如下解決方案:針對噪聲導(dǎo)致的干擾,增加圖像降噪的預(yù)處理環(huán)節(jié);針對靠近陸地導(dǎo)致的陸地背景的干擾以及陸地的干擾目標(biāo),增加海陸分割的預(yù)處理環(huán)節(jié);針對艦船密集分布的問題,加入旋轉(zhuǎn)框檢測網(wǎng)絡(luò)。除了以上針對性措施之外,還可以通過增加訓(xùn)練集、提高網(wǎng)絡(luò)的特征提取性能等方法,綜合提升網(wǎng)絡(luò)性能。
在以上實驗中發(fā)現(xiàn),錯檢漏檢目標(biāo)有部分原因來自于較為密集的目標(biāo),因此嘗試實現(xiàn)旋轉(zhuǎn)框的目標(biāo)檢測網(wǎng)絡(luò)。計劃使用CSL 算法,實現(xiàn)YOLOv5 旋轉(zhuǎn)框檢測網(wǎng)絡(luò)改建。
訓(xùn)練時,處理批次大小設(shè)置為8,采用Adam 算法作為梯度下降算法優(yōu)化器。初始學(xué)習(xí)率為0.001,周期學(xué)習(xí)率為0.01,迭代次數(shù)為200 次。最終loss的訓(xùn)練結(jié)果 為box_loss=0.083 26,obj_loss=0.015 12,angle_loss=0.266,獲得的部分結(jié)果如圖13 所示。
圖13 部分旋轉(zhuǎn)框檢測結(jié)果Fig.13 Partial detected results of the rotating frame
由圖13 結(jié)果可知,在部分情況下旋轉(zhuǎn)框可以較為精確地框定出目標(biāo)范圍,能夠證實CSL+YOLOv5 算法進行旋轉(zhuǎn)框檢測的可行性。但是漏檢、誤檢在大部分情況下較為嚴重,且目標(biāo)的置信度普遍不高。判斷原因主要在于網(wǎng)絡(luò)未得到充分的訓(xùn)練,loss 在下降到一定程度后無法繼續(xù)收斂,網(wǎng)絡(luò)訓(xùn)練陷入了局部最優(yōu)。后續(xù)需要改變訓(xùn)練策略,進行進一步的訓(xùn)練,嘗試將網(wǎng)絡(luò)充分訓(xùn)練;或者對CSL算法進行改進,嘗試尋找更優(yōu)的旋轉(zhuǎn)標(biāo)簽標(biāo)注法和損失函數(shù)算法。
本文構(gòu)建了著重于近岸目標(biāo)的訓(xùn)練和測試集,開展以原YOLOv5 網(wǎng)絡(luò)為基礎(chǔ)的近岸艦船目標(biāo)檢測網(wǎng)絡(luò)實驗和加入注意力機制模塊的改進實驗,并取得了較為理想的效果——在近岸測試集中,mAP達到了80%以上。證實了YOLOv5 網(wǎng)絡(luò)作為近岸艦船目標(biāo)檢測網(wǎng)絡(luò)有著較為良好的性能,注意力機制模塊在提升檢測網(wǎng)路準(zhǔn)確率方面也有著較好的效果。
針對近岸情況中艦船目標(biāo)密集導(dǎo)致漏檢的問題,開展旋轉(zhuǎn)檢測框?qū)嶒?,并且能夠初步證明CSL+YOLOv5 實現(xiàn)旋轉(zhuǎn)框檢測的可行性,但未能達到預(yù)期中提升檢測性能的效果。分析原因后提出如下改進方案:嘗試不同的學(xué)習(xí)率,梯度優(yōu)化算法;修改原有的評估方法,得到適合旋轉(zhuǎn)框目標(biāo)的評估方法,指導(dǎo)訓(xùn)練網(wǎng)絡(luò)的參數(shù)優(yōu)化環(huán)節(jié),從而實現(xiàn)網(wǎng)絡(luò)的充分訓(xùn)練?;蛘邔SL 算法進行改進,嘗試尋找更優(yōu)的旋轉(zhuǎn)標(biāo)簽標(biāo)注法和損失函數(shù)算法。
在總結(jié)錯誤原因后,除了旋轉(zhuǎn)框檢測之外,提出如下解決方案:針對噪聲導(dǎo)致的干擾,增加圖像降噪的預(yù)處理環(huán)節(jié);針對靠近陸地導(dǎo)致的陸地背景的干擾以及陸地的干擾目標(biāo),增加海陸分割的預(yù)處理環(huán)節(jié)。除了以上針對性措施之外,還可以通過增加訓(xùn)練集、提高網(wǎng)絡(luò)的特征提取性能等方法,綜合提升網(wǎng)絡(luò)性能。