?

改進YOLOv4的遙感圖像目標檢測算法

2024-02-22 07:44況永剛毛一新彭偉明郝琳琳
計算機工程與設計 2024年2期
關鍵詞:集上卷積特征

閔 鋒,況永剛+,毛一新,彭偉明,郝琳琳

(1.武漢工程大學 計算機科學與工程學院,湖北 武漢 430205;2.武漢工程大學 智能機器人湖北省重點實驗室,湖北 武漢 430205)

0 引 言

傳統的遙感圖像檢測方法主要有方向梯度直方圖法[1]、尺度不變特征變換方法[2]等。傳統檢測方法依賴于人工手段,難以保證復雜遙感圖像檢測的高精度和高效率。

隨著深度學習的不斷發展,目標檢測領域誕生了很多經典的檢測算法,越來越多的學者將其應用到遙感圖像檢測中。其中較為主流的目標檢測算法分為基于候選區域的雙階段目標檢測算法和基于回歸的單階段目標檢測算法。常用的雙階段目標檢測算法有R-CNN系列[3,4]、VFNet[5]等,其通過區域建議方法生成可能包含目標的候選框,然后對候選框進行校正和分類,其精度較高,但實時性過低。單階段檢測算法以SSD[6]、YOLOv5、YOLOX[7]、RetinaNet[8]為代表,直接在網絡中進行分類和回歸,其檢測速度更快,適用于實時性檢測。

由于遙感圖像背景復雜、尺度不一且排列密集,采用通用目標檢測器對其進行檢測難以取得滿意的效果,因此研究一種新型的遙感圖像目標檢測算法是一項有挑戰性的任務。Feng等[9]對YOLOv3[10]提出改進,通過優化錨框大小和置信度損失函數,遙感圖像小目標檢測得到了有效提升。Xue等[11]引入雙向加權特征融合BiFPN并賦予特征圖可學習的權重系數,有效提高了小目標的檢測性能。Gu等[12]通過構建密集上下文感知模塊以及引入Transfor-mer[13],實現了目標與場景內容的關系建模,但由于遙感圖像背景復雜,檢測仍易受相似物干擾。針對這一問題,Li等[14]基于CenterNet算法[15]設計改進權重分配策略,并添加語義分割模塊,抑制高響應的背景噪聲,使網絡更好地適應復雜背景下的密集目標檢測。然而,在模型中加入語義分割模塊,會增加過多的參數量,降低推理速度。

為更好地應對復雜遙感圖像的實時檢測,本文選擇在檢測精度和速度上達到較好平衡的YOLOv4作為基礎架構,針對遙感數據集的特點在YOLOv4的基礎上進行了一些改進,實驗結果表明,在保證實時性的同時,檢測精度得到了較大提升。

1 YOLOv4算法介紹

YOLOv4算法基于原有YOLO目標檢測框架,分別在數據預處理、主干網絡、激活函數、損失函數等多個方面進行了優化,最終在檢測精度和檢測速度上達到了更好的平衡。網絡結構如圖1所示。

圖1 YOLOv4網絡結構

YOLOv4主要由輸入端、主干網絡、融合層以及預測層4部分組成。輸入端采取mosaic數據增強和自對抗訓練的方法(self-adversarial training,SAT)對圖像進行預處理。在DarkNet53網絡的基礎上,融合跨級密集連接的思想,設計出計算量少、檢測精度更高的CSPDarkNet53作為主干網絡。頸部網絡引入SPP模塊,選用不同大小的池化核進行池化,實現不同感受野的特征融合;設計FPN+PAN的結構,以bottom-up的特征傳遞方式,反復提取特征,實現不同尺度的特征交互。Head部分采用了與YOLOv3類似的預測方式。

2 改進YOLOv4目標檢測算法

由于遙感圖像數據集具有背景復雜、目標排列密集且尺度不一等眾多特點,本文針對這些特點,基于YOLOv4算法作出了改進,網絡整體結構如圖2所示。首先對CSPDarkNet53網絡改進,在不失主干網絡的擴展性下,加強特征層之間的信息傳遞和有效特征利用率。其次,借鑒CSPNet[16]的跨階段分層結構思想,設計改進的路徑聚合網絡R-PANet,有效增強特征的融合效果。最后在預測頭串聯卷積塊注意力模塊CBAM[17](convolutional block attention module),提高檢測精度。下面將對網絡結構的設計進行詳細闡述。

圖2 改進YOLOv4網絡結構

2.1 R-CSPDarknet53主干特征提取網絡

YOLOv4算法的主干網絡CSPDarknet53包含較多的CSP模塊,其卷積層數較多,在檢測較小目標時,信息丟失較為嚴重。

針對這個問題,基于CSPDarknet53網絡進行了改進,即R-CSPDarknet53。在主干網絡中的原CSP模塊(圖3(a))的基礎上提出了一種新的跨階段部分模塊R-CSP(圖3(b)),主要是將CSP模塊中的簡單殘差結構ResBlock(圖3(c))替換為高效的跨階段殘差結構R-ResBlock。R-ResBlock結構如圖3(d)所示,首先將輸入的特征圖分割成兩部分,使特征信息在不同的網絡路徑中傳播,然后通過跨階段層次結構將特征整合,其次考慮到不同R-CSP模塊之間的特征交互對后續特征提取和融合有著較大影響,因此在進行對應次數的跨階段殘差卷積后,使用CBAM進行有效特征強化,增強了不同R-CSP模塊間的特征傳遞,提取具有豐富語義信息的特征。

圖3 原CSP模塊與改進CSP模塊以及簡單殘差結構與跨階段殘差結構

最后為了平衡檢測精度和檢測速度,便于模型的部署,將特征提取網絡中的R-CSP模塊的每層殘差卷積次數由(1,2,8,8,4)改為(1,3,6,6,3),降低了網絡結構的復雜度,減少了參數量,保證了網絡的實時性。

2.2 改進的PANet結構R-PANet

YOLOv4采用PANet結構作為特征融合網絡。然而原PANet結構存在多次連續卷積操作,容易造成淺層特征丟失,甚至網絡退化、梯度消失,因此對密集分布的較小目標檢測效果不佳。

針對上述問題,本文對PANet結構作出改進,即R-PANet,使用跨階段分層卷積替換連續卷積操作(圖4(a)),重構特征融合階段對深淺層特征圖的處理方式。該模塊如圖4(b)所示,首先將主干網絡和SPP結構輸出的有效特征層進行一個1×1的普通卷積,得到通道數減半的特征圖,類似于特征信息整合,然后將經3×3卷積的輸出與其進行堆疊,最后將各級特征層進行像素相加,構建具有豐富語義信息的殘差塊。同時串聯CBAM,注重有效特征的提取。采用Mish激活函數替換原激活函數Leaky ReLU,增強非線性特征的提取能力。實驗結果表明,R-PANet較原結構而言,提高了算法的檢測性能。

圖4 連續卷積和跨階段分層卷積

2.3 引入CBAM注意力機制

在主干網絡R-CSPDarknet53的特征提取過程中,不同R-CSP模塊之間的特征交互對后續特征提取和融合的影響占比較大。本文通過引入卷積塊注意模塊CBAM對各個R-CSP模塊的堆疊結果進行特征強化,加強模塊之間的特征交互。以及在預測頭串聯注意力模塊,以加強特征融合效果。

CBAM是一種簡單而有效的前饋卷積神經網絡注意模塊。如圖5所示,通過利用輸入的中間特征圖,CBAM模塊分別沿著通道和空間兩個獨立維度,順序地計算注意力圖,然后將得到的注意力圖與輸入特征圖相乘,使得特征圖能夠更聚焦于目標的關鍵特征,從而進行特征細化和更有效的特征表示。CBAM定義請參見文獻[17]。

圖5 CBAM卷積塊注意力模塊

通道注意力模塊(channel attention module)如圖6所示。

圖6 通道注意力模塊

它對輸入進來的單個特征圖F,F∈RC×H×W, 分別進行平均池化和最大池化。之后對其輸出結果利用共享全連接層(Shared MLP)進行處理。接著對處理結果按元素逐個相加,并采用Sigmoid函數進行激活,由此可得輸入特征圖每一個通道的權值Wp(F), 計算見式(1),σ表示Sigmoid函數。最后將此權值Wp(F) 乘上原輸入特征圖F,計算得到融合通道注意力后的特征圖F′,如式(2)所示

(1)

F′=Wp(F)?F

(2)

空間注意力模塊(spatial attention module)如圖7所示。

圖7 空間注意力模塊

首先,輸入經通道注意力模塊處理的特征圖F′,同樣地進行平均池化和最大池化操作,之后將池化后的兩個特征圖堆疊在一起,并經過Sigmoid激活操作,由此可得輸入特征圖每一個特征點的權值Ws(F′), 計算見式(3),σ表示Sigmoid函數,f7×7表示卷積核大小為7×7的卷積操作。最后將此權值Ws(F′) 乘上輸入特征圖F′,計算得到融合通道和空間注意力的特征圖F″,如式(4)所示

Ws(F′)=σ(f7×7([AvgPool(F′);MaxPool(F′)]))

(3)

F″=Ws(F′)?F′

(4)

2.4 損失函數設計

本文改進算法的損失函數由定位損失函數、分類損失函數以及置信度損失函數3部分組成,如式(5)所示

lossyolo=lossloc+losscla+lossconf

(5)

本文使用CIoU損失函數作為定位損失函數。CIoU loss在DIoU loss的基礎上做出更詳細的度量,具體包括重疊面積、中心點距離和長寬比。如式(6)所示

(6)

其中,IoU(intersection over union),即交并比,是用來衡量預測邊界框和實際邊界框的相似程度,其計算如式(7)所示

(7)

ared表示邊界框的面積,d表示預測邊界框,g表示實際邊界框,ρ為預測邊界框和真實邊界框兩個中心點間的歐式距離,c為閉包的對角線距離。所以最終的定位損失函數計算式如式(8)所示

(8)

分類損失函數采用BCE Loss(binary cross entropy loss),對每一個類別計算交叉熵損失,最后進行求和。計算如式(9)所示

(9)

lossconf=lossconf+obj+lossconf+noobj=

(10)

3 實驗結果和分析

3.1 數據集

表1 不同類別目標數量統計

3.2 模型訓練及分析

本實驗使用的操作系統是Ubuntu 18.04,GPU型號為RTX-2080S,CPU型號為i9-9900k,內存32 GB,顯存8 GB,開發環境為Pytorch1.2,CUDA10.0。實驗參數見表2。

表2 實驗參數設置

以DIOR數據集為例,圖8反映了改進網絡在訓練時的損失變化曲線,橫坐標表示訓練次數(Epoch),縱坐標表示損失值(Loss)。根據圖中曲線的變化趨勢,可以明顯看出,改進YOLOv4算法的損失值在訓練初期時迅速下降,隨著Epoch的增加,在30個Epoch后曲線下降速度逐漸緩慢,并在130個Epoch后趨于穩定,Loss值穩定變化在0.041到0.103之間,最終收斂于0.044左右,達到了網絡訓練的預期學習效果。

圖8 改進YOLOv4網絡的損失變化曲線

圖9為改進YOLOv4網絡在訓練時的精度收斂曲線,圖中橫坐標為訓練次數(Epoch),縱坐標為平均精度均值(mAP)。從圖9中可以看出,網絡訓練前100個Epoch時,mAP增長速度較快,之后逐漸緩慢,并在230個Epoch后趨于穩定。

圖9 改進YOLOv4網絡的精度收斂曲線

3.3 評價指標

為了評估改進YOLOv4算法的性能并驗證其有效性,實驗選取了以下指標。

(1)精確率(Precision,P)、召回率(Recall,R)。精確率表示模型預測為正樣本中真正樣本的占比;而召回率表示模型正確預測到的正樣本占所有正樣本的比重。其計算公式分別如式(11)所示

(11)

其中,TP表示真正例;FP表示假正例;FN表示假反例。

(2)平均準確率(average precision,AP)和其均值(mean average precision,mAP)。AP表示為每個類別下的精確率-召回率曲線(precision-recall curve,P-R curve)下的面積。P-R曲線顯示在精確率和召回率之間的平衡,用來衡量檢測網絡對單個類別的性能。而mAP是所有檢測類別的AP的平均值。其計算公式分別如式(12)所示

(12)

其中,N表示檢測類別的總數目。

(3)幀率(frames per second,FPS)。幀率是用來衡量目標檢測網絡推理速度的指標,其表示每秒能夠檢測的圖片數量。

(4)F1分數(F1 score,F1)。F1分數是模型泛化能力的性能度量,其為范圍在0~1之間的分數。值越大表明模型泛化能力越強。計算公式見式(13)

(13)

3.4 實驗結果和分析

為了驗證改進YOLOv4算法對遙感圖像目標檢測的有效性,實驗分別在RSOD、DIOR測試集進行性能驗證。

在RSOD數據集上測試,統計了F1分數、平均準確率均值mAP、幀率等指標來進行評估。實驗對比了YOLOv3、EfficientDet、文獻[9,18]的所提算法以及YOLOv4的檢測精度,見表3。

表3 不同方法在RSOD數據集上的實驗結果

可以明顯看出,改進的YOLOv4算法的mAP比YOLOv4高出約4.5%,和文獻[9]、文獻[18]所提算法比提高約3%,F1分數也提升不少。雖然改進算法的幀率略低于原YOLOv4算法,但仍然滿足實時性檢測的要求。相較于表3中的其它算法,改進YOLOv4算法在遙感圖像目標檢測方面具有較大的優勢。

圖10為YOLOv4和本文算法在RSOD數據集上實驗測試后,統計出的各個類別的AP值,上圖是YOLOv4算法的實驗結果,下圖是本文算法的實驗結果。橫軸為平均準確率(Average Precision),縱軸從下往上分別是飛機、立交橋、油罐、操場??梢钥闯?,無論是飛機、油罐等小目標,還是立交橋、操場等大目標,本文算法均可以取得比較好的檢測效果。

圖10 YOLOv4和本文算法在RSOD數據集上各個類別的AP值

在DIOR數據集上測試,統計了mAP、幀率兩個技術指標進行評估。為了深入評估本文算法的有效性,將改進YOLOv4算法與目標檢測領域中常用的主流算法進行比較,實驗結果見表4。

表4 不同方法在DIOR數據集上的實驗結果

從上表中可以看出,本文算法在DIOR測試集上的mAP值為92.72%,較YOLOv4提高約7.34%,與表中其它檢測算法比較也明顯高出多個百分點不等。此外,本文算法的檢測速率約每秒48幀,滿足一定的實時性。YOLOv4-tiny模型的FPS很高,但是其mAP較本文算法低出約14個百分點,檢測能力不強。實驗結果表明,本文算法在具有良好的檢測速率的同時,檢測精度做到了較大的提升。圖11為本文算法在DIOR數據集上實驗測試后,統計出的20個類別的AP值。橫軸為平均準確率(Average Precision),縱軸從下往上分別是車輛、港口、立交橋、籃球場、火車站、地面軌道場、體育場、船舶、存儲罐、橋梁、高爾夫球場、高速公路收費站、煙囪、高速公路服務區、飛機、大壩、風車、網球場、棒球場、飛機場。

圖11 本文算法在DIOR數據集上各類別的AP值

為了進一步對比YOLOv4算法和改進算法,從DIOR測試集中選取6個類別進行對比,見表5。

表5 在DIOR數據集上選取的類別目標AP對比

從整體上看,改進算法對排列密集的船舶和汽車、復雜環境下的立交橋以及尺寸較小的存儲罐的檢測精度相對較高,檢測效果有了明顯提高。此外實驗還選取了一些常見類別目標,進行了具體檢測效果示例的展示,包括復雜背景下的風車(windmill)、車輛(vehicle)檢測以及目標較小且排列密集的船舶(ship)檢測,如圖12所示。左列為YOLOv4算法的實驗結果,右列是本文算法的實驗結果。

圖12 不同背景下的遙感目標檢測結果可視化

其中圖12(a)代表尺寸較小且易受背景干擾的風車檢測對比結果,可以明顯看出改進算法具有更高的檢測精度,并且相對較低的漏檢率;圖12(b)展示了對排列密集且目標尺寸較小的船舶進行檢測的可視化結果,從右邊的圖中可以看出,改進算法的平均置信度得分約為0.9,而YOLOv4的平均置信度得分在0.8左右,且漏檢較多;圖12(c)代表弱光背景下目標較小的車輛檢測結果,明顯看出改進算法的檢測精度有了較大提升。

為了深入分析本文對YOLOv4作出的改進對模型性能的影響,在DIOR數據集上進行了5組消融實驗。在網絡訓練階段逐個添加改進方法來獲得性能更好的網絡模型。實驗結果見表6,其中“√”表示使用了對應的方法。從表中可以看出,改進1實驗采用改進的特征提取網絡,mAP從85.38%提高至89.02%,表明該改進方法可以提高遙感圖像的目標檢測效果。改進2實驗在改進1的基礎上,引入跨階段分層結構來替換PANet網絡中的連續卷積結構,mAP提升了約2%,表現出該結構的有效性。改進3在前兩個方法的基礎上替換激活函數進一步改進PANet網絡,其檢測精度略有提升,表明激活函數的選擇對目標檢測效果有著不小的影響。

表6 在DIOR數據集進行的消融實驗

4 結束語

本文針對遙感圖像背景復雜、目標尺度不一且排列密集等特點,基于YOLOv4算法作出了改進。首先設計跨階段殘差結構實現主干網絡中的特征傳遞,減少了特征信息冗余;使用跨階段分層卷積結構替換PANet中的連續卷積操作,重構特征融合階段對深層特征圖的處理方式;最后分別在改進CSP模塊和預測頭部分引入卷積塊注意力模塊,加強有效特征傳遞,提高特征融合效果。實驗結果表明,改進的YOLOv4算法在RSOD和DIOR兩個遙感數據集上均取得了較高的檢測精度。

雖然所提算法在多個遙感數據集上均表現出較好的檢測效果,但在實時性上有待提高。由于遙感圖像場景復雜,在某些場景下檢測容易受到相似物體的干擾。后續工作將繼續針對遙感圖像的場景特性以及檢測實時性等方面考慮設計網絡結構,從而構建魯棒性、泛化性更強的遙感圖像目標檢測算法。

猜你喜歡
集上卷積特征
基于3D-Winograd的快速卷積算法設計及FPGA實現
Cookie-Cutter集上的Gibbs測度
鏈完備偏序集上廣義向量均衡問題解映射的保序性
如何表達“特征”
從濾波器理解卷積
不忠誠的四個特征
基于傅里葉域卷積表示的目標跟蹤算法
復扇形指標集上的分布混沌
抓住特征巧觀察
一種基于卷積神經網絡的性別識別方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合