王云艷, 羅 帥, 王子健
(1.湖北工業(yè)大學 電氣與電子工程學院, 湖北 武漢 430068; 2.襄陽湖北工業(yè)大學產業(yè)研究院, 湖北 襄陽 441100)
如今遙感圖像的空間分辨率越來越高,包含的目標信息越來越豐富,對遙感圖像進行目標檢測被廣泛應用到民用領域和軍事領域,如指導果農采摘、交通管理、環(huán)境分析、軍事測繪、軍事目標偵察等.遙感圖像相對于實地勘察,可以實時的捕捉地面信息,并且獲得的信息更詳細.遙感圖像中的飛機、輪船、汽車等物體的快速準確識別,在軍事作戰(zhàn)中和交通管理中有著重要的意義.
如何能夠設計一個能在快速性和準確性上達到平衡的特征提取模型,一直是近年來研究的熱點.SqueezeNet使用1×1的卷積和擴展模塊,通過減少模型的參數量,來提高模型的速度[1].此外還有一些通過減少模型的計算量來實現速度的提升,如MobileNetV1采用深度可分離卷積,大大提高了計算效率[2].MobileNetV2通過引入具有反向殘差和線性瓶頸的資源高效塊,來實現速度的提升[3].CondenseNet在訓練階段保持層之間有用的密集連接[4].ShiftNet提出了與逐點卷積交錯的移位操作來代替空間卷積,降低計算量來提升速度[5].MobileNetV3則是在核心架構中加入一種名為SE(Squeeze-and-Excitation)的神經網絡和使用 AutoML 為給定的問題找到最佳的神經網絡架構,實現速度的提升[6,7].在將輕量化網絡應用到目標檢測的研究方向,陳智超等[8]通過在MobileNetV2網絡中嵌入注意力機制,和調整寬度因子降低模型的參數量,實現對垃圾圖像進行分類;秦偉偉等[9]通過將YOLOv3主干網絡替換為MobileNetV2和引入k-means進行邊界框聚類,提升對遙感軍事目標的檢測效果;張欣等[10]對YOLOv4-tiny增加金字塔模塊和強化CSP特征提取網絡,改善遙感飛機目標的檢測性能.
本文主要針對如何高效準確的檢測遙感目標進行研究,提高網絡的檢測速度,同時解決遙感圖像中大簇小目標檢測難題.本文設計一種更高效的多維注意力網絡(FMDA-net),并將其加入到MobileNetV3淺層特征(F3)提取,獲得更多小目標的語義信息,提高網絡對小目標的檢測能力;并將MobileNetV3中深層特征(F2,F1)提取中的SE注意力機制換成更高效的ECA(Efficient Channel Attention)模塊[11],ECA通過執(zhí)行大小為k的快速一維卷積來生成通道權值代替SE中的兩次FC層計算權重,只增加很少的額外參數和可忽略的計算,就能帶來顯著的性能提升.本文將改進后的輕量級網絡命名為MobileNetV3+,并將其代替YOLOv4[12]的主干網絡,實現遙感圖像目標的快速準確的實時檢測.本文模型在遙感數據集USAOD和公共數據集VOC2007上都取得很好的檢測效果.
近年來,隨著智能應用的增加,輕量化網絡成為近年來的一個熱門的研究方向.輕量化的主要研究手段有減少網絡計算量、模型剪枝、量化、知識蒸餾等.MobileNetV3是Google繼mobileNetV2之后的又一力作,其主要改進是在MobileNetV2中深度可分離卷積之后加入SE-net,通過學習自動的獲得每個特征通道中的重要程度,并且抑制一些對當前任務無用的特征信息.此外,MobileNetV3綜合了MobileNetV2和MobileNetV1的四個特點,其主干網絡Bneck如圖1所示,首先利用1×1的卷積進行升維,在引入MobileNetV2線性瓶頸的逆殘差結構;然后進行3x3深度可分離卷積,降低網絡的計算量;再然后通過輕量化的SE-net注意力模型,使網絡關注更加有用的通道信息來調整每個通道的權重;最后,使用h-swish激活函數,代替swish函數,減少運算量,提高性能.通過改變Bneck結構后,與MobileNetV2相比,MobileNetV3在COCO上達到相同的精度,速度快了25%,同時在分割算法上也有一定的提高.
圖1 MobileNetV3的Bneck結構
目標檢測分為Two-stage和One-stage兩類目標檢測算法,Two-stage這類檢測算法是把目標檢測的問題劃分為產生候選框和對候選框區(qū)域進行分類位置精修兩個階段,這類算法典型的代表有R-CNN、Fast R-CNN、Faster R-CNN和Mask R-CNN等[12-15];One-stage這類檢測算法是基于回歸的方法不需要產生候選框階段,不需要復雜的框架直接獲取物體的類別概率和位置坐標值,比較典型的代表有YOLO、SSD和CenterNet等[16-18].隨著研究的發(fā)展YOLO自2016年提出以來到2020年已經發(fā)展到第4代YOLOv4.YOLOv4是端到端的目標檢測算法,可以實現目標的實時檢測.YOLOv4的CSPDarknet53主干網絡,是通過殘差塊的堆疊實現獲得更豐富的語義信息[19];增加SPP附加模塊增加感受野,分離出了最重要的上下文特性,并且?guī)缀醪粫档途W絡運行速度;再通過PANet路徑聚合,實現多尺度的特征融合,相比YOLOv3中的FPN增加了下采樣來獲得更豐富的語義信息,提高檢測能力;最后使用YOLO進行物體識別與定位,YOLOv4的網絡結構如圖2所示.
圖2 YOLOv4網絡結構
在遙感圖像中場景通常很大,而目標在場景中所占的比例很小,常為場景的1/5或者更小,因此在經過多次下采樣后導致小目標的信息丟失.遙感圖像中密集而小的飛機物體,常常存在實例級噪聲,也就是背景對物體檢測造成干擾.實例級噪聲的存在,也是導致遙感圖像檢測困難的原因.
為了快速準確的檢測遙感圖像大場景下的大簇小目標,我們選取MobileNetV3作為主干,通過在具有更豐富的小目標語義信息的淺層特征中加入快速多維注意力網絡FMDA-net來保留小目標所含的語義信息,使其經過多次下采樣后依然保留有效的特征信息;并引入更快速的注意力網絡ECA代替SE網絡,在ECA模塊中使用一個卷積核為k的快速的一維卷積來生成通道權重,其中通過k與通道維數的比例自適應確定k值,避免手動調優(yōu)的過程,相比SE模塊使用兩個FC層來計算權重既保證了效率也保證了效果.最后,通過PAnet進行多尺度的特征融合,豐富每個級別的特征.本文檢測器的網絡結構如圖3所示.
圖3 本文的檢測器網絡
由于遙感圖像中背景復雜,背景中包含著大量的噪聲信息,為了更有效的在復雜背景中捕捉小目標的語義信息,本文設計了一個有監(jiān)督的多維注意力模型FMDA-net,通過強化更加有用的通道信息來調整每個通道的權重,降低漏檢率和誤檢率.FMDA-net結構如圖4所示,該結構由ECA-net和SE-net組成.卷積神經網絡在提取圖像包含的特征信息時,遙感圖像中物體的特征信息具有連續(xù)性,背景的信息也不會被完全消除,這一特點使得特征層中保留一定的上下文信息.在FMDA-net中,雖然通過SE模塊中兩次FC(全連接層)能夠獲得特征圖中每個通道的權值,但是僅使用SE模塊則無法捕獲到局部通道之間的相互作用,而且過多的卷積也會增加計算成本.因此,在FDA-Net中引入ECA模塊,ECA模塊中通過一次一維卷積不降維的方式,不增加太多計算成本情況下,避免不同通道之間完全獨立,實現局部跨通道交互,從而使FMDA-net能夠捕獲局部通道之間的相互作用.FMD-Net通過SE模塊捕獲全局通道信息和ECA模塊捕獲局部通道信息的方法,實現更高效的強化有用的通道信息來調整每個通道的權重.
圖4 FMDA-net結構
如圖5所示,為SE-net的網絡結構.給定輸入特征,SE模塊首先對每個通道獨立使用全局平均池,然后使用兩次非線性的全連接(FC)層和激活函數生成每個通道的權值.這兩個FC層的設計是為了捕獲非線性的跨通道交互作用,其中包括降維以避免過高的模型復雜度,最終將融合全部的輸入特征信息.通過hard-swish代替Sigmoid函數更好的將輸入映射到0~1區(qū)間,在量化的時候hard-swish能夠消除了潛在的精度損失,使用h-swish相比swish在量化模式下提高大約15%的效率,尤其是h-swish在深層網絡中的提升效果更加明顯.
ReLU(6)=min(max(0,x),6)
(1)
(2)
圖5 SE模塊結構
如圖6所示,ECA-net網絡結構中取消降維的操作,當網絡完成全局平均池化后,直接進行局部跨通道連接,即通過執(zhí)行大小為k的快速一維卷積來生成通道權值,其中k通過通道維C的函數自適應地確定,在減少計算量的同時,性能優(yōu)于SE塊.同時,ECA模塊不需要跨所有通道來捕獲有用的特征信息,可以通過模塊捕獲局部通道信息,獲得每個特征通道中的重要程度,并且抑制一些對當前任務無用的特征信息.因此,ECA模塊可以提高網絡的泛化能力.k的取值如公式(3)所示,|t|odd表示離t最近的奇數,γ和b表示常量在本文分別設為2和1.
(3)
圖6 ECA模塊結構
在MobileNetV3的Bneck結構被用于每個特征層的特征提取.本文算法保留了三個有效特征層,分別是特征層F3(104×104×24)、特征層F2(52×52×40)、特征層F1(26×26×112),其中特征層F3為包含豐富的小目標的語義信息,用于小目標的檢測;特征層F2感受野中等,適合中等目標的檢測;特征層F1感受野較大,但是多次下采樣操作使得小目標信息丟失,因此只適合對大目標的檢測.針對本文數據集UCAS-AOD為汽車和飛機的遙感圖像,其像素很小且多為密集存在,因此本文對特征層F3的特征提取塊Bneck結構進行改進,改進后的Bneck_A結構如圖7所示,在Bneck中3x3深度可分離卷積之后加入更高效的多維注意力網絡FMDA-net代替SE-net,只增加很少的計算量就能使網絡關注更加有用的通道信息來調整每個通道的權重.
圖7 Bneck_A結構
此外,為了提高模型的檢測速度,使用特征提取塊Bneck_B對F2和F1特征層進行特征提取,在Bneck_B中使用更高效的ECA模塊代替SE模塊,Bneck_B特征提取塊的結構如圖8所示.
圖8 Bneck_B結構
在本文的實驗環(huán)境,使用NVIDIA RTX2060 GPU進行訓練和測試,CUDA的版本是10.0,cuDNN的版本是7.6.5,Tensorflow的版本是1.13.1,硬件和軟件環(huán)境的詳細信息如表1所示.實驗所用的基準數據集分別是遙感數據集UCAS-AOD和公共數據集VOC2007.UCAS-AOD數據集由中國科學院大學創(chuàng)建,數據集中有航拍的1 000張飛機圖片和510張汽車圖片,包含7 482個飛機物體和7 114個汽車物體.VOC2007數據集共包含:訓練集(5 011幅),測試集(4 952幅),共計9 963幅圖,共包含20個種類.
表1 實驗環(huán)境
為了更好地評價和比較本文的檢測模型,采用了準確率P、召回率R、平均精度(mAP)和對數平均缺失率(MR-2)這四個指標.MR-2該指標是加州理工學院行人失誤率的算法指數.由于該指標同時關注假陽性(FP)和假陰性(FN),所以MR-2模型具有較高的平均精度(mAP)并不一定低,更適合遙感圖像中飛機擁擠的場景.當實際的和預測的標簽都是“真”時,稱這種情況為真陽性(TP).當實際的和預測的標簽都是“假”,稱之為真“負”(TN).然后,假陰性(FN)表示實際標簽為“真”,預測標簽為"假"的情況.假陽性(FP)則相反.
通過選擇不同的置信閾值得到每幅圖像的假陽性(FPPI)和缺失率(MR),取對數空間中間10-2~100等間隔的9個FPPI點的MR值,計算其平均值,得到對數平均缺失率(MR-2),檢測值越低,結果越好,如式(4)、(5)所示.
(4)
(5)
Precision是指正確預測的“真”標簽在所有預測的“真”標簽中所占的比例,其范圍在[0,1]之間.對于飛機探測來說,高精度代表了已探測到的某一類型飛機的高置信度.precision計算如式(6)所示.
(6)
Recall表示正確預測的“真”標簽占實際真標簽總數的比例,其取值范圍為[0,1].對于目標檢測,高召回率意味著算法能夠在數據集中完全檢測出某一類型的目標,如式(7)所示.
(7)
(a)無注意力 (b)SE模塊 (c)ECA模塊 (d)FMDA模塊 (e)輸入圖像圖9 各模塊的特征圖
表2 各主干網絡的檢測結果
通過Recall-Precision (R-P)曲線可以獲得Average Precision (AP)值.目標檢測效果取決于預測框和類別是否準確,AP是衡量模型預測框和位置是否準確的重要指標,如式(8)所示.
(8)
由于精度和召回率往往是矛盾的,因此 F1用于綜合衡量一種算法的質量.F1計算過程如式 (9) 所示.
(9)
FPS(Frames Per Second)為每秒傳輸的幀數, FPS的計算過程如公式(10)所示,式中的N為被測樣本數,t為測試全部樣本所需的時間.FPS越高說明模型處理單幀圖像的速度越快.
(10)
為了證明FMDA模塊能夠提高模型對小目標檢測的準確率,本文可視化了各模塊下不同深度特征層的特征圖,如圖9所示.通過FMDA模塊能夠保留更多的有用的特征信息,避免在下采樣的過程中丟失過多的小物體特征信息.
在遙感數據集UCAS-AOD上,本文使用MobileNetV3、MobileNetV2和MobileNetV1作為檢測器的主干網絡與本文所提出的MobileNetV3+進行對比實驗,每個檢測模型batch-size設為1,各訓練100個epoch,實驗結果如表2所示.由表2可以看出,本文所提出檢測模型的mAP達到91.22%相比MobileNetV1提高1.26%;相比MobileNetV2提高7.15%;相比MobileNetV3提高6.05%.同時檢測速度達到41.58FPS相比其他主干網絡都有提升.實驗證明,在主干網絡的淺層特征提取中加入FMDA模塊構成的Bneck_A,能夠保留更豐富的小目標的語義信息,對小且密集的汽車的檢測性能的提升尤為明顯,相比MobileNetV3汽車的檢測精度提升11%,召回率提升47.86%;同時通過更高效的ECA代替SE模塊構成提取深層特征的Bneck_B,減少網絡的計算量的同時也保持檢測的性能.本文所提出的輕量化MobileNetV3+網絡,在大大提高檢測精度的同時滿足實時檢測的要求.
在圖10中展示了各主干網絡在UCAS-AOD部分數據集的檢測結果.結果顯示MobileNet系列作為主干網絡對飛機和汽車進行檢測時,都出現不同程度的漏檢和誤檢.本文所提出的MobileNetV3+在作為檢測器的主干網絡時,相比其他網絡對密集且小的汽車具有很好的檢測能力,同時對復雜背景的飛機目標也能準確識別.
(a)MobileNetV3+
此外,將本文的檢測模型與主流的檢測模型進行比較,如表3所示.相比目前先進的One-stage算法YOLOv3、SSD-512和CenterNet,本文算法對遙感飛機和汽車檢測精度都高于它們,其中平均檢測精度(mAP)分別提高了0.97%、4.62%和1.92%.同時本文算法的FPS達到41.58,相比它們分別提高了5.28、14.48和2.83.相比先進的Two-stage算法Faster-RCNN,本文算法平均精度略微高出0.22%,但是FPS提升了31.58.實驗證明,本文提出的輕量化檢測網絡在滿足實時檢測的需求的情況下,同時又能保證良好的檢測精度.
表3 不同算法檢測結果對比
為了進一步分析本文算法在其他場景下性能提升效果.選取公共數據集VOC2007進行對比實驗,VOC2007數據集中包含20個類,訓練集5 011張和測試集4 952張,在測試數據集上測試的準確率AP如表4所示.
表4 VOC2007檢測結果
在表4中,本文算法的mAP達到71.50%,相比MobileNetV3作為主干網絡的mAP為70.02%,平均精度提升了1.48%.本文算法在大部分的類別上的檢測效果都優(yōu)于MobileNetV3.尤其是對小目標檢測,如“bird”本文算法的檢測精度提高了7%.但是,有一些物體的檢測精度略低于MobileNetV3,如“chair”、“sofa”、“tvmonitor”,主要是因為本文使用的預訓練模型中包含這三類物體的圖像較少導致.此外,本文算法的檢測速度為38.57FPS,相比MobileNetV3作為主干網絡的35.92FPS,提升了2.65FPS.實驗證明本文算法可以應用多場景的目標檢測任務,具有很強的魯棒性,滿足多場景實時檢測的要求.
如圖11所示,為各個主干網絡在UCAS-AOD數據集上訓練的損失曲線.圖中的epoch為訓練周期,在訓練過程中,當訓練次數為50個epoch時各模型的到達收斂狀態(tài).本文所提出的MobileNetV3+相比其他MobileNet系列的模型收斂速度更快,更早的到達平衡的狀態(tài).
圖11 損失曲線圖
本文基于輕量化網絡MobileNetV3進行改進,通過加入本文提出的多維注意力網絡(FMDA-net)和更高效的ECA模塊,獲得新的輕量化網絡MobileNetV3+,并將其作為YOLOv4檢測器的主干網絡,實現對遙感圖像目標的實時檢測.本文的檢測器在提高檢測速度的同時獲得高精度的檢測效果.針對遙感圖像中密集且小和復雜背景的目標表現良好的檢測性能,同時檢測速度達到41.58FPS滿足實時檢測的要求.本文網絡在公共數據集VOC2007也取得良好的檢測效果.實驗證明本文算法可以應用多場景的目標檢測任務,具有很強的魯棒性,可以用于多場景目標的實時檢測.