付宏建,白宏陽,郭宏偉,原瑜蔓,秦偉偉
(1 南京理工大學(xué) 能源與動力工程學(xué)院,南京 210094)
(2 火箭軍工程大學(xué) 核工程學(xué)院,西安 710025)
光學(xué)遙感圖像目標檢測技術(shù)是指利用算法對感興趣的遙感圖像目標自動分類與定位的技術(shù)[1],在軍事偵察、精準制導(dǎo)、交通管制、災(zāi)情預(yù)測等領(lǐng)域有著廣泛的應(yīng)用[2]。從發(fā)展歷程看,光學(xué)遙感圖像目標檢測技術(shù)主要可分為傳統(tǒng)目標檢測算法和基于深度學(xué)習(xí)的目標檢測算法。傳統(tǒng)目標檢測算法是指基于手工設(shè)計的特征描述子來提取候選目標并進行驗證的方法[3],手工設(shè)計的特征一般為目標紋理、顏色、邊緣等視覺信息[4]。傳統(tǒng)目標檢測算法主要使用支持向量機(Support Vector Machine,SVM)[5]、Adaboost[6]和K-means[7]等方法作為分類器。
相比傳統(tǒng)目標檢測算法,基于深度學(xué)習(xí)的目標檢測技術(shù)可以自動提取目標特征,特征表達更具魯棒性和泛化性[8]。根據(jù)有無候選框生成階段作為區(qū)分[9],基于深度學(xué)習(xí)的目標檢測技術(shù)主要分為以R-CNN(Region-CNN)系列(R-CNN[10]、Fast R-CNN[11]、Faster R-CNN[12]、Mask R-CNN[13])為代表的雙階段模型和以YOLO(You Only Look Once)系列(YOLOv2[14]、YOLOv3[15])、SSD 系列(SSD[16]、DSSD[17])為代表的單階段模型?,F(xiàn)階段,在遙感圖像目標檢測領(lǐng)域應(yīng)用深度學(xué)習(xí)目標檢測技術(shù)可以達到較好的檢測效果,然而,遙感圖像目標檢測仍有幾類難題亟待解決,如目標尺度差異大、目標分布密集、背景復(fù)雜等[18]。
針對上述問題,國內(nèi)外學(xué)者在已有深度神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上做了大量改進。HOU J Y 等[19]在R-CNN 的基礎(chǔ)上利用多分支的感興趣區(qū)域池化層(Regions Of Interest Pooling,ROI Pooling),將特征映射成不同尺度,并采用級聯(lián)方式檢測,提高了多尺度遙感目標的檢測精度,但對于密集分布的遙感目標檢測效果不理想。LONG H 等[20]融合了傳統(tǒng)方法與深度學(xué)習(xí)方法,提出一種特征融合的深度神經(jīng)網(wǎng)絡(luò),有效提高了密集分布目標和多尺度目標的檢測效果,但該網(wǎng)絡(luò)流程復(fù)雜,不具備工程應(yīng)用價值。ZHANG Y K 等[21]采用語義分割的方式將各類別目標先進行特征掩膜,再采用像素注意力機制對各類別目標加權(quán)計算,提升各類別目標的區(qū)分度,有利于復(fù)雜背景下的目標識別,但這種采用先驗知識的方法不具備普適性。張永福等[22]基于Faster R-CNN 目標檢測框架,提出了一種融合特征的目標檢測模型,檢測精度得到提升,但模型的每秒傳輸幀數(shù)(Frames Per Second,F(xiàn)PS)僅為6.5 左右,無法滿足衛(wèi)星在軌實時處理的需求。
因此,本文對YOLOv5 檢測網(wǎng)絡(luò)做出改進,提出了一種融合多注意力機制的YOLOv5 檢測網(wǎng)絡(luò)(Multi Attention-YOLOv5,MA-YOLOv5)。在網(wǎng)絡(luò)中添加一種自適應(yīng)感受野大小的坐標注意力模塊,以加強網(wǎng)絡(luò)對多尺度目標特征的提取能力,提升網(wǎng)絡(luò)對復(fù)雜背景下目標的定位效果,并基于Swin Transformer 自注意力機制模塊改進了YOLOv5 網(wǎng)絡(luò)的預(yù)測頭,增強了網(wǎng)絡(luò)對密集分布目標的識別能力。
根據(jù)檢測網(wǎng)絡(luò)深度與寬度系數(shù)的不同,YOLOv5 模型分為YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x 四個版本,系數(shù)越大,模型越復(fù)雜,檢測精度通常越高,但同時也會犧牲檢測速度??紤]到遙感圖像在軌實時處理的需求,需保證檢測網(wǎng)絡(luò)具備實時檢測能力,因此選用網(wǎng)絡(luò)深度與寬度系數(shù)均為1 的YOLOv5l 網(wǎng)絡(luò)作為基礎(chǔ)網(wǎng)絡(luò)。YOLOv5l 在結(jié)構(gòu)上主要分為主干(Backbone)、頸部(Neck)和檢測器(Prediction)三個部分。Backbone 部分主要采用CSPDarknet 的主干結(jié)構(gòu)進行特征提取;Neck 部分采用FPN(Feature Pyramid Network)+PAN(Path Aggregation Network)的特征金字塔結(jié)構(gòu)進行特征融合;Prediction部分采用CIOU_loss 作為損失函數(shù)進行計算。
針對遙感圖像中目標尺度差異大、背景復(fù)雜的特點,在YOLOv5l 網(wǎng)絡(luò)的Neck 部分添加一種自適應(yīng)感受野大小的坐標注意力模塊(Adaptive Receptive Field Coordinate Attention,ARFCA),以提升網(wǎng)絡(luò)對不同尺度目標特征的提取能力,加強網(wǎng)絡(luò)在復(fù)雜背景下對目標的定位能力。針對遙感目標分布密集的特點,向YOLOv5 網(wǎng)絡(luò)的預(yù)測頭中添加滑動窗口變形器(Swin Transformer,STR)自注意力機制模塊,增強網(wǎng)絡(luò)捕獲目標環(huán)境信息的能力,形成了MA-YOLOv5 網(wǎng)絡(luò)。MA-YOLOv5 網(wǎng)絡(luò)整體結(jié)構(gòu)如圖1 所示。
圖1 MA-YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.1 Schematic diagram of MA-YOLOv5 network structure
針對遙感圖像中目標尺度差異大、背景復(fù)雜的特點,提出了一種自適應(yīng)感受野大小的坐標注意力模塊,模塊結(jié)構(gòu)如圖2 所示。該模塊主要分為分離、坐標注意力和選擇三個部分。
圖2 ARFCA 模塊示意圖(3 通道)Fig.2 Schematic diagram of ARFCA module(3 channels)
分離部分引入了不同卷積核大小的卷積作為并行分支進行特征處理,該模塊的分支數(shù)可根據(jù)數(shù)據(jù)集的不同進行改變,圖中展示了分支數(shù)為3 時的情況(按圖示易推得其他分支數(shù)時的情況)。三分支分別采用3×3、5×5 和7×7 的卷積核。為保證模型效率,5×5 和7×7 卷積實際為空洞率大小為2 和4 的3×3 空洞卷積。空洞卷積可在不增加參數(shù)量的情況下增大卷積的感受野。
在坐標注意力部分,首先將不同尺寸卷積輸出的信息相加,得到融合元素U,隨后分別使用(H,1)和(1,W)的空間通道池化核對U元素進行高度和寬度通道方向上的池化,得到維度分別為C×1×W和C×H×1 的特征。對于空間通道池化后的特征來說,第c個通道在高度h上輸出可表示為
第c個通道在寬度w上的輸出可表示為
上述變換完成后,對兩方向特征進行拼接,隨后進行卷積變換,并使用非線性激活函數(shù)進行激活,即
式中,[zh,zw]代表拼接處理,F(xiàn)1步驟為卷積變換,δ為非線性激活函數(shù)。隨后對f分別進行高度和寬度方向的卷積變換和Sigmoid 函數(shù)激活,得到坐標注意力的兩個輸出。公式為
為實現(xiàn)ARFCA 模塊自適應(yīng)選擇不同感受野大小的卷積所輸出的信息,在坐標注意力的中引入三個softmax 注意力系數(shù)a、b、c,第c個通道中ac、bc和cc的計算公式為
式中,ac+bc+cc=1,gh和gw是上一步H和W空間方向上的輸出,A、B、C∈RN×I,分別代表三個通道的softmax 注意力權(quán)重,其中N是特征的通道數(shù),Ac、Bc、Cc∈R1×I代表第c個通道A、B、C對應(yīng)的矩陣,I表示為
式中,r是為控制輸出值而自定義的壓縮比例系數(shù),L=32 是實驗設(shè)置的常量。
在選擇部分,將坐標注意力輸出的三個注意力系數(shù)a、b、c分別與原特征輸出U3、U5和U7相乘,得到A3、A5、A7三個不同尺度的特征分量,將這三個分量相加,獲得特征輸出。第c個通道上的特征輸出Vc的計算公式為
對比傳統(tǒng)的注意力模塊,ARFCA 模塊通過分離和選擇機制實現(xiàn)了根據(jù)輸入目標尺寸大小動態(tài)調(diào)整模塊感受野大小的效果,從而提升了多尺度特征提取能力。在坐標注意力部分,分別沿兩個方向進行空間特征的聚集,生成一對具有方向感知力的特征圖。在保存一個方向上位置信息的同時捕捉到另一個空間方向的長期依賴關(guān)系,有助于網(wǎng)絡(luò)更準確地定位感興趣的目標。
受Swin Transformer 網(wǎng)絡(luò)的啟發(fā)[23],在YOLOv5 的檢測頭中添加Swin Transformer 模塊,模塊結(jié)構(gòu)如圖3 所示。
圖3 Swin transformer 模塊示意圖Fig.3 Schematic of the Swin transformer module
該模塊包含兩個子層,主要由窗口多頭自注意力層(Window Multi-head Self-Attention,W-MSA)和移位窗口多頭自注意力層(Shifted-Window Multi-head Self-Attention,SW-MSA)組成。由于該結(jié)構(gòu)限制,Swin Transformer 模塊的層數(shù)通常為2 的整數(shù)倍。窗口多頭自注意力層和移位窗口多頭自注意力層均把自注意力的計算限制在窗口中,相比于傳統(tǒng)Transformer 中的自注意力MSA 模塊,STR 模塊大大降低了計算復(fù)雜度,式(7)~(8)展示了MSA 模塊與W-MSA、SW-MSA 模塊計算復(fù)雜度的對比,可以看出MSA 模塊計算量與hw(h、w分別表示特征高和寬的數(shù)值)呈二次關(guān)系,而W-MSA 和SW-MSA 模塊與hw呈線性關(guān)系。
式中,Ω表示計算復(fù)雜度,M為常量(一般設(shè)置為7)。
特征進入STR 模塊首先經(jīng)過LN(Layer Normalization)層進行歸一化,隨后進入W-MSA 層,在窗口中進行自注意力的計算,之后經(jīng)過MLP 層得到第一模塊的輸出。自注意力的計算公式為
式中,Attention(Q,K,V)的計算是根據(jù)關(guān)注程度對Value 乘以相應(yīng)權(quán)重,權(quán)重由Q和K計算獲得,計算結(jié)果為Value 的加權(quán)和;Softmax 函數(shù)是一種歸一化指數(shù)函數(shù);Q、K、V分別是Query、Key、Value 對應(yīng)的矩陣,Query、Key 是計算Attention 權(quán)重的特征向量,Value 表示輸入特征的向量;d是Q和K的向量維度;B是一個偏置矩陣。
在STR 的第二模塊中運用SW-MSA 層,基于移動窗口的分割方法進行自注意力的計算,隨后經(jīng)過MLP 層進行全局平均池化,得到最終的預(yù)測結(jié)果。Swin Transformer 模塊中的LN 層能幫助模型更好地收斂,防止模型過度擬合,W-MSA 和SW-MSA 層中多頭自注意力機制的引入不僅能幫助模型關(guān)注當(dāng)前像素,還能增強模型捕獲當(dāng)前像素環(huán)境信息的能力,從而提升模型對密集分布目標的檢測性能。
采用DOTA[24]遙感圖像公開數(shù)據(jù)集進行實驗,驗證改進網(wǎng)絡(luò)的有效性,具體為DOTAv1.5 版本。該版本包含16 個類別,40 萬余個帶有注釋的目標,其中最小注釋目標僅為10 像素左右。具體類別分別為輪船、儲罐、飛機、棒球場、網(wǎng)球場、籃球場、小型車輛、大型車輛、直升機、田徑場、港口、橋梁、環(huán)島、足球場、游泳池和集裝箱起重機。數(shù)據(jù)集的注釋文件分為兩個版本,分別是旋轉(zhuǎn)目標標注框(Oriented Bounding Box,OBB)和水平目標標注框(Horizontal Bounding Box,HBB),本文采用水平目標標注框作為注釋標簽。數(shù)據(jù)集中原始圖像分辨率最大達20 000×20 000 左右,為避免大像素圖像輸入網(wǎng)絡(luò)時在調(diào)整圖片大小步驟造成圖像信息損失,采用分割腳本將大分辨率圖像切割成每張像素大小為600×600 的圖像,便于網(wǎng)絡(luò)進行目標檢測。數(shù)據(jù)集分為訓(xùn)練集和驗證集兩部分,訓(xùn)練集共71 254 張圖片,驗證集共7 917 張圖片。
實驗環(huán)境如下:操作系統(tǒng)為Ubuntu18.04,內(nèi)存為16G,CPU使用Intel(R)Core(TM)i7-7700K@4.2GHz,GPU 使用Nvidia GeForce GTX 1080Ti(顯存為11G),深度學(xué)習(xí)框架采用Pytorch1.10.2 版本。實驗設(shè)置訓(xùn)練最大迭代輪數(shù)為12 個輪次,初始學(xué)習(xí)率為0.005,循環(huán)學(xué)習(xí)率為0.1,學(xué)習(xí)率動量為0.937,交并比損失系數(shù)為0.05,分類損失系數(shù)為0.5,有無物體系數(shù)為1.0。分別在第8 和第10 個輪次下降學(xué)習(xí)率。對于SSD和YOLOv5 系列的網(wǎng)絡(luò),采用K-means 聚類方法計算生成遙感圖像目標對應(yīng)尺度的錨點,計算結(jié)果為[11,12],[21,21],[30,44],[47,32],[51,75],[96,56],[106,120],[176,209],[356,365]。
為驗證ARFCA 模塊分支數(shù)的不同對模型所造成的影響,同時確定ARFCA 模塊最佳分支數(shù)量,設(shè)置了一組消融實驗,以MA-YOLOv5 網(wǎng)絡(luò)為基礎(chǔ),將SKCA 分支數(shù)分別設(shè)置為1、2、3、4,其他訓(xùn)練參數(shù)設(shè)置均保持一致進行實驗。表1 展示了不同分支數(shù)對應(yīng)的平均檢測精度和檢測速度。
表1 ARFCA 不同分支數(shù)的檢測精度與檢測速度Table 1 Detection accuracy and speed of ARFCA with different branch numbers
觀察表1 數(shù)據(jù)可得,在分支數(shù)為1、2、3 時,隨著分支數(shù)的增加,模型的平均檢測精度(mean Average Precision,mAP)有微弱提升,而當(dāng)分支數(shù)為4 時,模型mAP 值與分支數(shù)為3 時相比不再提升。從檢測速度角度看,隨著分支數(shù)的增加,模型的FPS 始終呈下降趨勢。因此,為實現(xiàn)模型的最高檢測精度,同時保證模型檢測速度,將ARFCA 模塊分支數(shù)確定為3,并進行后續(xù)實驗。
對MA-YOLOv5、添加ARFCA 模塊的YOLOv5、添加STR 模塊的YOLOv5、YOLOv5 原始網(wǎng)絡(luò)以及三個以ResNet-50 為骨干網(wǎng)絡(luò)的一階段網(wǎng)絡(luò):SSD、RetinaNet 和FCOS,共7 個網(wǎng)絡(luò)進行實驗對比,并采用全類平均精度mAP(IOU=0.5∶0.95)、平均精度AP(IOU=0.5)、AP(IOU=0.75),coco 數(shù)據(jù)集定義的小中大目標對應(yīng)的mAP:APS(目標面積<322像素)、APM(322<目標面積<962像素)、APL(目標面積>962像素),共6 種指標作為模型精度的評價標準,采用檢測速度FPS 作為模型速度的評價標準。各模型的詳細參數(shù)結(jié)果如表2 所示。
表2 不同網(wǎng)絡(luò)在測試集下的性能Table 2 The performance of different networks on the test set
觀察表2 結(jié)果可以看出,在檢測精度方面,MA-YOLOv5 網(wǎng)絡(luò)在實驗對比的7 個網(wǎng)絡(luò)中最高,mAP 值達到了68.5%,對比原始YOLOv5 網(wǎng)絡(luò),實現(xiàn)了3.6%的精度提升。添加ARFCA 模塊和STR 模塊的YOLOv5網(wǎng)絡(luò)在平均檢測精度上分別實現(xiàn)了2.3%和1.4%的精度提升。而SSD、RetinaNet 和FCOS 在檢測精度上的表現(xiàn)均與YOLOv5 系列網(wǎng)絡(luò)有一定差距。在檢測速度方面,SSD 網(wǎng)絡(luò)表現(xiàn)最佳,達到了77FPS,原始YOLOv5 網(wǎng)絡(luò)FPS 達到59,在對比的YOLOv5 系列網(wǎng)絡(luò)中表現(xiàn)最好,而YOLOv5 改進后的三個網(wǎng)絡(luò)在FPS上略有下降,但仍具有實時檢測的能力。
圖4 展示了MA-YOLOv5 訓(xùn)練和驗證數(shù)據(jù)集時對應(yīng)的定位損失、置信度損失和分類損失曲線的變化情況,其中各圖橫坐標表示模型訓(xùn)練批次。
圖4 MA-YOLOV5 網(wǎng)絡(luò)在訓(xùn)練與驗證時的損失值Fig.4 The loss value of MA-YOLOV5 network during training and validation
圖5 展示了MA-YOLOv5 網(wǎng)絡(luò)在DOTA 數(shù)據(jù)集上測試時各類別的平均精度mAP(IOU=0.5∶0.95)??梢钥闯?,有6 類目標檢測精度大于0.7,包括尺寸較小的艦船類別和尺寸較大的籃球場、網(wǎng)球場類別,說明本文所提出方法對多尺度遙感目標具有較好檢測性能。
圖5 各類別目標的mAP 值Fig.5 mAP values for each category of targets
本文以YOLOv5 算法為基礎(chǔ),提出了一種融合多注意力機制的光學(xué)遙感圖像目標檢測算法。針對遙感圖像中目標尺度差異大、背景復(fù)雜的特點,設(shè)計了一種自適應(yīng)感受野大小的坐標注意力(ARFCA)模塊,通過模塊中的分離和選擇機制,根據(jù)輸入目標大小,自適應(yīng)地選擇不同感受野大小的卷積所輸出的信息,從而提升模型對于多尺度遙感目標的特征提取能力。同時,通過ARFCA 模塊中的坐標注意力機制,捕捉一個空間方向的長期依賴關(guān)系,并保存另一個空間方向的位置信息,有助于網(wǎng)絡(luò)更準確地定位目標。此外,通過在YOLOv5 預(yù)測頭中加入Swin Transformer 自注意力機制模塊,增強了模型捕獲目標環(huán)境信息的能力,提升模型對密集分布目標的檢測性能。實驗結(jié)果證明了MA-YOLOv5 模型中ARFCA 模塊和Swin Transformer模塊對于遙感圖像目標檢測效果提升的有效性,以及模型具有較好的實時性與一定的工程應(yīng)用價值。