牛浩青,歐 鷗,饒姍姍,馬萬民
成都理工大學 信息科學與技術學院(網絡安全學院),成都 610051
目標檢測是計算機視覺領域中的核心問題之一,它的主要任務是對圖像中感興趣的目標進行識別和定位[1]。隨著深度學習和卷積神經網絡CNN的快速發展,傳統的目標檢測方法正在逐漸被基于卷積神經網絡的深度學習方法所替代。目前流行的基于卷積神經網絡的目標檢測方法主要分為兩種類別:第一類是單階段(one-stage)檢測方法,例如:YOLO[2~4]和SSD[5]等;第二類是兩階段(two-stage)檢測方法,例如:Fast-RCNN[6]和Faster-RCNN[7]等。大部分基于深度學習的目標檢測算法雖然在通用目標檢測中有較高的精度和泛化能力,但在小目標檢測任務中仍存在測精度低、漏檢率高的問題。小目標的定義有兩種:一種是目標尺寸是原始圖片尺寸的十分之一,即可認定是小目標;另一種是小于32×32 像素的目標,即可認定為小目標[8]。小目標由于具有分辨率低、特征信息少、背景干擾噪聲多以及定位精度要求高等特點,給目標檢測任務帶來了很多的困難和挑戰[9]。因此,對于小目標檢測的研究是當下目標檢測任務中最關鍵的問題之一。
目前已經有很多學者對小目標檢測問題進行了研究,侯濤等人[10]提出了基于改進YOLOv4的遙感飛機目標檢測算法,該算法通過在YOLOv4主干提取網絡中引入DenseNet(密集連接網絡)以加強對飛機小目標的特征提取能力,并只保留高分辨率特征層以減少語義丟失,既降低了模型復雜度,也提高了網絡對飛機小目標的語義表達能力,但由于去除了包含目標對象和周圍環境關系特征的低分辨率特征層,使網絡在進行背景噪音較大的圖像預測時,對檢測目標上下文環境特征提取不夠充分。李成豪等人[11]提出了一種基于多尺度感受野融合的小目標檢測算法S-RetinaNet,該算法利用特征遞歸金字塔網絡對不同特征層進行兩階段特征融合以避免單階段特征融合不充分的問題,使用多尺度感受野融合模塊進行不同尺度的感受野擴大,使檢測目標的上下文信息有效的被提取出來,提升了對小目標的檢測效果。趙鵬飛等人[12]提出了一種融合注意力機制的深層次小目標檢測算法,該算法將原DarkNet-53中的殘差連接結構替換成新的分組殘差連接結構,通過匯合不同通道的特征信息提高輸出的感受野大小,在多尺度檢測階段采用特征增強模塊和通道注意力機制對不同特征層進行融合,從而解決淺層特征語義信息不足的問題。
本文從上述文獻中得到啟發,提出了一種基于改進YOLOv3[4]的小目標檢測算法。針對多尺度特征融合過程中,低分辨率卷積特征圖上采樣對小目標的特征恢復能力較弱的問題,設計了一種自適應上采樣模塊替代傳統的插值操作,使網絡能夠自主選擇適合目標訓練集任務的插值方法以增強不同尺度特征融合的效果;針對小目標包含特征信息少以及定位精度高的問題,提出了一種門控通道注意力機制(EGCA),實現特征層通道之間的相互交互,通過對每個通道的特征進行權重分配來學習不同通道特征層信息的相關性和重要性[11]。實驗結果表明,改進后的算法比原算法有更高的檢測精度,并且對小目標的檢測能力也有較大的提升。
YOLOv3是一種在YOLOv1[2]和YOLOv2[3]基礎上進行改進的單階段目標檢測算法,它不像R-CNN 系列將目標檢測任務分為生成候選框和識別框內物體兩個步驟,而是把整個流程合并在一起直接生成預測結果。因此,基于單階段目標檢測算法相對基于雙階段目標檢測算法具有檢測速度快但精度低的特點,YOLOv3通過采用殘差連接的DarkNet-53作為主干特征提取網絡,并借鑒文獻[13]中的特征金字塔網絡(feature pyramid network,FPN)結構,使用3個不同尺度的特征圖進行多尺度特征融合之后輸出預測結果等創新工作,使其在目標檢測任務中達到了速度和精度上的平衡。YOLOv3的整體架構如圖1所示,對于416×416的輸入圖像,首先通過DarkNet-53(去除全連接層)主干特征提取網絡進行基礎特征提取,網絡中共包含1個DBL模塊和5個殘差模塊。然后將主干網絡中最后3 個殘差模塊的輸出作為3 種不同尺度的特征輸入到特征金字塔結構進行特征融合。最后在3 個通道中分別對融合后的特征層進行卷積操作以輸出13×13、26×26和52×52共3種尺度的預測結果。

圖1 YOLOv3結構圖Fig.1 YOLOv3 structure diagram
YOLOv3 算法將待檢測圖像分割成P(P=3)種不同尺度的S×S網格單元(例如:13×13、26×26 和52×52),它們分別對應于圖1 右側3 個并行網絡分支的輸出,如果目標對象中心落入某個網格單元,那么該網格單元需要對這一目標對象進行預測,圖2展示了輸入圖像和S×S特征層之間的關系。對于上述任一網格單元均需要預測3個高寬比不同的先驗框,每一個先驗框包含當前網格的置信度Conf、類別B和位置信息Cls。

圖2 輸入圖像與S×S 特征層映射關系圖Fig.2 Mapping relationship between input image and S×S feature layer
置信度表示當前網格單元包含對象的可能性,如公式(1)所示:

預測值在單元網格中的位置關系如圖3 所示,Pw和Ph為先驗框的寬度和高度,bw和bh為轉換后預測的實際寬度和高度,bx和by為轉換后預測的實際中心坐標,cx和cy為單元格左上角相對整張圖片的坐標。

圖3 預測值在單元網格中位置關系圖Fig.3 Position relationship diagram of predicted value in cell grid
YOLOv3 采用非最大值抑制算法(non-maximum suppression,NMS)對預測框進行篩選過濾,對于待檢測圖像上的某一目標,首先選擇得分最高的檢測框C,再將剩余框與C分別計算IOU值,當IOU值超過所設定的閾值時,即對超過閾值的框進行抑制;然后在剩余檢測框中選擇得分最高的檢測框重復上述過程,直到最后保證每個目標只存在一個檢測框。
本文基于YOLOv3 算法提出了一種結合EGCA(門控通道注意力機制)和自適應上采樣模塊的改進YOLOv3算法。該算法將原網絡結構(如圖1)中的上采樣模塊替換為自適應上采樣模塊,并在3個尺度預測結果y1、y2、y3輸出之前加入EGCA 注意力機制。較原網絡主要有以下兩方面改進:
引入一種EGCA(門控通道注意力機制)實現特征層通道之間的交互,通過對每個通道的特征進行權重分配來學習不同通道特征層信息的相關性和重要性。除此之外,該注意力機制還學習了過濾通道信息前后兩個特征層之間的重要性關系,有效地提高了網絡對小目標的特征提取能力,減輕了因遙感圖像背景復雜而引起的誤檢和漏檢情況。
引入了一種自適應上采樣模塊代替原有的上采樣操作,該方法可以通過自主學習權重參數以找到最適合訓練任務的上采樣方法,有效地減少了低分辨率特征層上采樣時語義損失,增強了不同尺度卷積的融合效果。
注意力機制起源于對人類思維方式的研究,人類在處理大量具有不同程度重要性的信息時,總是會選擇性地關注所有信息中的一部分即重要的信息,同時忽略剩余信息。由于人類處理信息資源能力是有限的,因此為了合理分配這些資源,就需要選擇信息中最重要的部分,然后關注它,同樣,深度學習中的注意力機制就是選取輸入信息中最重要的部分并給予更大的權值,以使網絡能夠關注此信息。
注意力機制最早被廣泛應用于自然語言處理問題中,取得了不錯的效果。因此,有學者開始探索通過使用注意力機制提升計算機視覺工作中卷積神經網絡性能的方法,目前計算機視覺中常用的注意力機制主要有兩種:通道注意力機制和空間注意力機制。通道注意力機制認為卷積層中每個通道的重要程度是不同的,通過調整每個通道的權重以增強網絡特征提取能力[14];空間注意力機制借鑒通道注意力機制思想,認為不同通道上的各個像素的重要程度是不同的,通過調整不同通道上所有像素點的權重以增強網絡特征提取能力[15]。
ECA(efficient channel-attention)[16]是一種經典的通道注意力機制結構,如圖4所示,對于一個H×W×C的輸入卷積層,首先通過全局平均池化操作從空間維度對特征進行壓縮,從而得到一個具有全局感受野且和輸入通道數相匹配的1×1×C的卷積層;然后通過一個1×1的卷積確保在不降維的情況下實現跨通道信息交互[17];最后,通過Sigmod函數將權重值壓縮到0~1之間后和輸入卷積層逐通道相乘以完成通道重要性權重分配。

圖4 ECA結構圖Fig.4 ECA structure diagram
EGCA 是在ECA 的基礎上進行改進的一種門控通道注意力機制,標準的ECA 結構是直接使用通道重要性權重對輸入卷積過濾之后的特征層進行后續操作,然而原始輸入特征層中仍可能存在一些被過濾的重要信息,因此EGCA學習了另一組權重決定是否要保留原始輸入特征層的某些通道。
EGCA 的結構如圖5 所示,上層通路學習輸入特征的通道重要性權重y1,下層通路學習篩選原始特征輸入層和過濾后的通道層重要性權重y2,計算過程如下:

圖5 EGCA結構圖Fig.5 EGCA structure diagram

其中x表示一個長度、寬度和通道數分別為W、H、C的原始特征輸入,Conv(x) 表示對特征層進行1×1 的卷積。
最后將學習到的兩個權重參數和特征輸入進行整合,如公式(7)所示,得到最終的輸出特征層y:

上采樣是指將采用擴大圖像尺寸,實現低分辨率圖像到高分辨率圖像的映射操作,由于低分辨率圖像中所包含像素較少,所以對其進行上采樣時必然會丟失很多細節特征。因此,盡可能減少細節特征的丟失以及提高低分辨率圖像的特征恢復能力是目前上采樣最核心的關鍵問題之一。
傳統的上采樣方法包括線性插值和反池化等,其中線性插值是利用幾何關系通過已知像素點對新增像素點進行估計。以最近鄰插值為例,當圖片放大時,新增的像素直接使用與之最近原有像素顏色生成;而反池化是對圖像做一些簡單的補零和擴充操作,首先記錄池化操作過程中最大值的位置信息,然后在反池化擴大圖像尺寸時,只恢復最大值的位置,其他值直接設置為0。傳統上采樣方法雖然計算簡單快捷,但會產生明顯的鋸齒,導致原有圖像的細節特征丟失嚴重。
基于深度學習的新型上采樣方法有轉置卷積等,轉置卷積是一種特殊的卷積操作。與普通卷積實現下采樣相反,轉置卷積可以通過學習權重參數使低分辨率尺寸圖像還原到高分辨尺寸圖像,所以這是一種自適應的上采樣方法,利用權重參數的擬合盡可能的實現上采樣圖片和原始圖片細節特征保持一致。
傳統上采樣方法雖然計算量低且實現相對簡單,但由于低分辨率圖像包含像素有限,所以必然會導致原始細節特征丟失;而轉置卷積因為可以學習權重參數以更好的擬合原始圖片,因此能夠確保盡可能地還原低分辨率圖像的細節特征,但是它的實現較為復雜且計算量大。綜上所述,本文提出了一種自適應上采樣模塊,如圖6 所示,該模塊由一個1×1 卷積加一個轉置卷積組成。使用1×1 卷積可以在保持輸入特征層寬度和高度不變的同時降低通道維度以減少網絡參數,降低計算量,并且1×1卷積可以實現不同通道之間的信息整合和交互以增加網絡的非線性特性,提升網絡的特征表達能力;在設計轉置卷積時,由于轉置卷積運算過程中的不均勻重疊會造成圖像中某個部位顏色比其他顏色更深的棋盤效應[18],而當轉置卷積的卷積核大小能被步長整除時會緩解這一效應,所以模塊采用卷積核大小為4,步長為2,padding為1的轉置卷積進行上采樣操作。

圖6 自適應上采樣模塊Fig.6 Adaptive upsampling module
本文實驗平臺硬件配置為六核Intel Xeon E5-2678 v3處理器,62 GB內存,NVIDIA GeForce RTX 2080 Ti顯卡,11 GB 顯存。軟件環境為Ubuntu 18.04 操作系統、Python3.8、CUDA11.0、CuDNN8.0以及Pytorch1.7.1。為驗證改進YOLOv3算法的可行性,實驗將RSOD數據集[19]中包含飛機目標的遙感圖片通過隨機裁剪、旋轉和色彩增強等方法進行數據擴張后,以8∶2的比例隨機采樣分開作為網絡的訓練集和測試集,如表1 所示,訓練集共有870 張圖片,9 957 架目標飛機;測試集共有110張圖片,1 602架目標飛機。

表1 測試集與訓練集信息Table 1 Testing set and training set information
RSOD 數據集是武漢大學在2015 年發布用于遙感圖像目標檢測的標準數據集。數據集以PASCAL VOC規范存儲了包括飛機、油箱、體育場和立交橋共四類遙感圖片及對應的標注文件。由于遙感圖片均是在不同高度條件下俯視地面進行拍攝,所以此類圖片具有目標對象所占像素較小、尺度變化大以及背景復雜等特點[19],因此對遙感圖片進行目標檢測較常規圖片會更加復雜和困難。
本文所有定量分析實驗均采用標準COCO 評價指標中的AP、AP50、AP75、APS、APM以及APL共6 項指標衡量網絡對測試圖片的檢測性能。為了解釋上述指標的含義,引入精確率(Precision)和召回率(Recall)的概念,精確率和召回率的公式如公式(8)和(9)所示:

其中,TP為真正例,FP為假正例,FN為假負例,TN為真負例。精確率示模型檢測出的正確目標數量(當檢測框和真實框的交并比IOU 大于某個閾值時視為檢測正確)占所有檢測到的目標數量的比重;召回率表示模型檢測出的目標數量占真實目標數量的比重。正常情況下,由于精確率和召回率是互斥的,即召回率高時精確度較低,召回率低時精確度較高,所以使用這兩個指標不能直觀的比較不同網絡的性能。因此本文使用不同條件下的AP 值以定量分析網絡性能,如公式10 所示,式中Psmooth(r)表示做平滑處理后的PR 曲線,而PR曲線是在0~1區間內以召回率為橫坐標,準確率為縱坐標繪制而成的曲線。
標準COCO 評價指標中的AP 指IOU 閾值從0.5 至0.95,每隔0.05計算一次相應閾值的AP值,取平均得到的最終AP 值(下文無IOU 閾值條件下的AP 值均指此AP 值);AP50指IOU 閾值為0.5 時的AP 值;AP75指IOU閾值為0.75時的AP值;APS指計算小于32×32像素的小目標AP值;APL指計算大于96×96像素的大目標AP值;APM指計算像素大小位于大目標和小目標之間的中目標AP值。
本文在原始網絡、改進網絡以及所有對照網絡訓練階段均采用相同的訓練策略。首先凍結主干提取網絡訓練45 個epoch,初始學習率設置為0.001,每訓練一個epoch,學習率衰減95%;然后解凍所有層繼續訓練25個epoch,學習率調整為0.000 1,之后每訓練一個epoch,學習率衰減98%,最后選取最優權重參數作為訓練結果。
3.4.1 定量分析
為了定量分析上述改進方法的檢測性能,本文對原始網絡(使用傳統上采樣方法)、原始網絡加自適應上采樣模塊、原始網絡加ECA 通道注意力、原始網絡加EGCA通道注意力以及改進YOLOv3網絡共5種網絡選用相同的測試集做消融實驗對比。圖像在訓練前調整為640×640,實驗結果如表2所示。

表2 消融實驗結果Table 2 Ablation experimental results
從實驗結果可以看出,自適應上采樣模塊較傳統上采樣方法在各項評價指標中均有不同程度提升,其中AP值提高了3.3個百分點;同樣EGCA通道注意力機制較ECA通道注意力機制相比在各項評價指標中也均有不同程度提升,其中AP 值提高了4.5 個百分點。改進YOLOv3算法的小尺寸目標AP值為33.6%,較原算法提高了8.2 個百分點,提升效果最為顯著;中尺寸目標AP值達到60.3%,較原算法提高了8個百分點;大尺寸目標AP 值達到73.4%,較原算法提高了5.2 個百分點;AP 值達到56.3%,較原算法提高了7.9個百分點,即改進算法針對各種尺寸目標特別是小尺寸目標的檢測性能及最終AP值均要優于原算法。
3.4.2 定性分析
本文選取了一張具有代表性的測試圖片對ECA和EGCA兩種注意力機制的檢測效果進行定性分析,如圖7所示,其中圖7(b)和圖7(c)是分別使用ECA注意力機制和EGCA 注意力機制對圖7(a)進行目標檢測的結果。從圖7(b)可以看出由于紅色箭頭指向的飛機翅膀顏色和其它飛機不一樣,導致該顏色特征通道在權重分配時占比較少而造成漏檢現象;由于EGCA注意力機制對不同通道進行重要性權重分配時,還有一定幾率保持原通道特征,從而提高網絡的泛化能力,因此圖7(c)檢測到了圖片上的所有飛機目標。

圖7 注意力機制檢測結果對比圖Fig.7 Comparison of detection results of attention mechanism
為了可視化自適應上采樣模塊和傳統上采樣方法的效果對比。首先將測試圖片輸入到相同權重的檢測網絡中,并抽取最大尺度檢測通道上采樣前的卷積結果作為低分辨率特征圖,分別使用自適應上采樣模塊和雙線性插值方法對其做上采樣處理,然后將上述3個特征圖第4個通道的參數權重值進行可視化。如圖8所示,傳統上采樣方法只是簡單的將低分辨率特征圖像素進行擴張,而自適應上采樣模塊在擴張像素的同時,還增強了目標對象的權重值,使網絡能夠更好地抽取目標對象特征。

圖8 可視化上采樣結果Fig.8 Results of visual upsampling
3.5.1 定量分析
為了定量分析改進YOLOv3算法的檢測性能,本文選取Faster-RCNN、YOLOv3 和YOLOv4 這3 種經典目標檢測網絡與改進YOLOv3 算法選用相同的測試集做實驗對比。圖像在訓練前調整為640×640,實驗結果如表3所示。

表3 不同目標檢測算法實驗結果Table 3 Experimental results of different object detection algorithms
從表中可以看出,改進YOLOv3算法無論是對大目標、中目標還是小目標的檢測性能均要優于YOLOv3,且AP 值比YOLOv3 提高了7.9 個百分點;Faster-RCNN對大物體的檢測性能較改進YOLOv3 算法略高,但對小物體的檢測性能及其它評價指標卻遠遠低于改進YOLOv3算法,表明了改進YOLOv3算法檢測變化尺度大的小目標時具有更強的魯棒性;改進YOLOv3算法雖然在IOU 閾值為0.5 時的AP 值略低于YOLOv4,但其它各項評價指標均高于YOLOv4,且最終AP 值比YOLOv4 提高了2.7 個百分點,這表明改進YOLOv3 算法能夠更準確地定位遙感圖像小目標。
3.5.2 定性分析
本文選取了兩張具有代表性的測試圖片對YOLOv3、Faster-RCNN、YOLOv4 和改進YOLOv3 算法進行定性分析,測試結果如圖9所示。圖中第一列右上角存在幾架尺寸較小,且分布集中的飛機目標對象,測試圖片經過主干特征提取網絡多次下采樣之后輸出的最后幾層卷積特征層對小目標的語義表達損失較為嚴重,而傳統目標檢測算法不能較好地恢復小目標對象在深層特征的語義表達信息導致網絡漏檢。改進YOLOv3 算法由于加入了自適應上采樣模塊,所以改進YOLOv3算法在上采樣操作時可以通過學習權重參數以更有效的恢復小目標對象在深層特征的語義表達信息,為目標檢測提供更準確的語義特征,最終,成功檢測出圖片中的所有飛機目標對象;圖中第二列左下角位置存在3個同飛機具有相似外形特征的風車,圖片整體環境較復雜,干擾因素很多。在沒有引入注意力機制之前的傳統目標檢測算法因對其上下文信息提取不夠充分導致誤檢,而改進后的YOLOv3 算法由于引入了EGCA 通道注意力機制,所以無論是對目標對象的特征提取能力還是定位能力較傳統目標檢測算法均有提高,從圖中可以看中,改進YOLOv3 算法正確避免了風車干擾,并檢測出圖片中剩余的所有飛機目標對象。綜上所述,從實驗結果主觀評價,改進YOLOv3 算法的漏檢和誤檢現象相較傳統目標檢測算法均有所下降。因此,改進YOLOv3算法針對遙感影像小目標檢測任務確實具備更好的檢測能力。
為解決遙感影像中因飛機目標尺寸變化大、所占像素小以及背景復雜等原因而導致網絡漏檢率高、定位難的問題,本文在YOLOv3 的基礎下,以DarkNet-53 為主干提取網絡,通過引入可以學習權重參數的自適應上采樣模塊以及EGCA 通道注意力機制對原始算法進行改進,最后將改進后的網絡在RSOD 數據集上進行測試。實驗結果表明,無論是在背景干擾較大影響目標對象檢測的情況,還是在小飛機密集排列影響目標對象定位的情況,改進YOLOv3 算法都有更好的預測結果,而且從客觀評價指標分析,改進YOLOv3 算法的AP 值較原算法及其他傳統目標檢測算法均有所提高。因此可以看出改進YOLOv3 算法具有良好的魯棒性且抗環境干擾能力強,有效地提高了原算法的目標檢測能力。但是,改進YOLOv3 算法對某些極端情況仍存在錯檢和漏檢現象,后續工作將繼續優化網絡對極端情況的檢測效果。