張 杰
(安徽理工大學計算機科學與工程學院,淮南 232001)
伴隨著深度學習的快速發展,小目標檢測技術在軍事、遙感等領域得到了廣泛的應用[1]。計算機視覺領域通常對小目標的定義有兩種:一種是相對尺寸大小,在256×256 像素圖中目標面積小于80 像素(即目標面積小于圖像面積的0.12%)定義為小目標;二是絕對尺寸大小,以COCO 數據集為例,尺寸小于32×32像素目標定義為小目標。小目標由于其分辨率低,在圖像中占比低,特征信息得不到很好的利用,容易受到信息混淆等因素的影響,相對于常規目標檢測任務來說,目前的主流模型對小目標的檢測效果往往不佳。因此如何改善小目標的檢測效果,一直是計算機視覺領域的重難點問題。
近些年來,隨著深度學習和目標檢測任務的結合,讓目標檢測在各個領域都獲得了很好的發展前景,基于深度學習的目標檢測算法主要分為兩類:第一種是以SSD[2]、YOLO[3]系列為代表的單階段檢測算法,這類算法的檢測速度通常比較快,但檢測精度較低;第二種是以Faster-RCNN[4]、Mask-RCNN[5]等RCNN 系列為代表的雙階段檢測算法,檢測精度得到了不錯的提升,但網絡參數比較大,導致檢測速度劣于單階段算法的檢測速度。針對小目標容易被忽略,攜帶的信息有限等特點,提出了許多有效的改進模型。Qu 等[6]把膨脹卷積和特征融合一起使用,增強深層特征的語義信息來加強對遙感小目標的檢測效果。Li等[7]引入一種特征融合模塊加入到特征金字塔中,改善對小目標的檢測效果。亢潔等[8]提出了新的多尺度融合模塊,通過通道注意力機制重新分配通道權重,增強淺層感受野來提高小目標的檢測效果。在PANet 當中,Liu 等[9]對特征金字塔網絡不同特征圖進行二次融合,這樣可以使特征金字塔的高層特征圖同時包含低層的特征信息和高層的特征,從而達到提高小目標檢測精度的目的;以上的方法通過不同的改進,直接或間接使小目標的檢測效果得到了提高,但仍有一些不足。
本文基于Faster-RCNN 算法,提出了一種改進的小目標檢測算法:
(1)采用ResNet 替換傳統的VGG 提取網絡,減少VGG 池化造成的語義特征丟失等問題,加強模型對小目標信息的提取能力。
(2)提出改進后的特征金字塔模型MC-FPN,通過擴充上下文特征信息和引入通道注意力機制來提高整個模型對小目標的檢測精度。
本文針對傳統的Faster-RCNN 算法對小目標檢測精度不佳的問題,提出改進Faster-RCNN 的小目標檢測算法,使用ResNet50 替換傳統的VGG16 作為新的特征提取網絡,其次融合改進后的特征金字塔MC-FPN多尺度特征以提高整體模型對小目標的檢測能力。
Faster-RCNN 是一種基于候選區域的端到端的兩階段目標檢測算法,是以Fast-RCNN 模型作為基礎,加入新的區域建議網絡(RPN),通過滑動窗口在相應的特征圖上生成所需要的候選區域,即錨框,緊接著通過錨框得到輸出類別以及預測框,最后在使用非極大抑制算法對前面的預測結果進行分析,最終獲得所需要的候選區域,總體框架如圖1所示。

圖1 Faster-RCNN總體框架
Faster-RCNN 網絡架構主要是由特征提取模塊、區域建議網絡(RPN)、ROI Pooling 層和分類回歸層四部分組成,首先對輸入的圖片進行特征提取,獲得所需特征圖,再將特征圖傳輸到區域建議網絡從而生成一系列預選框,同時再將生成的預選框與特征圖一起傳輸到ROI Pooling 層,目的是從一系列預選框當中選出最適合特征圖的候選框,最后將選出的候選框傳送到分類和回歸層,這就是Faster-RCNN 算法的流程。
自AlexNet 發展以來,網絡結構一直朝著深度進行研究,大家便認為隨著網絡深度的增加,特征提取網絡的擬合能力也會不斷變強,從而模型取得一個較好的結果。但逐漸發現,并不是網絡層數越深,模型的檢測效果越好,精度會一直提升,反而在訓練甚至是測試的時候誤差都開始變大;在這種情況下,ResNet 于2015年被提出,ResNet 網絡可以在加深網絡層數提取更多特征信息的同時解決之前深度增加所導致的訓練精度下降的問題。ResNet50 采用的是跳躍連接,其輸入和輸出端直接相連,如圖2所示,其中兩個1×1 卷積的作用是降維和升維,3×3卷積的作用是提取特征信息。

圖2 ResNet50殘差網絡
特征金字塔(feature pyramid network,FPN)通過引入自下而上,自頂向下的路徑和橫向連接的方式,將高層特征圖的語義信息和低層特征圖的位置信息相結合,從而提升小目標的檢測能力,但P5僅通過C5得到,而特征金字塔的高層主要用于大中目標的檢測,這就導致對小目標的檢測效果較差。為解決上述問題,本文提出一種改進后的特征金字塔MC-FPN,如圖3 所示,對FPN 的改進主要有以下兩個部分:①在C5 和P5直接添加一個多分支空洞卷積模塊MCCM(multibranch cavity convolution module),如圖4 所示,此模塊是由三個不同大小空洞率的空洞卷積并聯而成,其作用是通過擴大感受野來捕獲更多的小目標特征信息,然后注入到特征金字塔當中,使上下文信息得到更加充分的利用。②引入CBAM(convolutional block attention module)[10]注意力機制,如圖5所示,注意力機制CBAM 是結合了空間和通道的注意力模塊,由通道注意力模塊和空間注意力模塊組成,通過融合這兩個模塊,對特征圖進行細化處理。CBAM 注意力機制對最后輸出的特征圖進行處理,是因為深層特征圖含有較多的小目標信息,而特征金字塔信息融合過程導致的信息混淆對深層的小目標信息不太友好,存在漏檢等問題,所以在深層P2和P3處引入注意力機制,可以使模型更好地關注小目標信息,從而提高整個模型對小目標的檢測效果。

圖4 多分支空洞卷積模塊(MCCM)

圖5 CBAM注意力機制
本文實驗采用的是基于深度學習框架的PyTorch1.7.1,操作系統為Ubuntu18.04,CUDA為11.0,GPU型號為NVIDIA GeForce RTX 3090,Python 的使用版本為3.7。模型訓練時采用隨機梯度下降(stochastic gradient descent, SGD)作為優化器。
本文選擇中國科學院發布的高分辨率遙感圖像公共數據集HRRSD,該數據集共含有圖像21761張,13個類別,分別是飛機、棒球場、籃球場、橋梁、十字路口、田徑場、港口、停車場、船、存儲罐、丁字路口、網球場和汽車。各個類別之間樣本的數量比較均勻,其中大部分類別是以密集排布的小目標形式進行分布,可以用來驗證算法模型對小目標的檢測效果。以數據集劃分,選用1∶1∶2的方式選取圖像進行訓練,評估以及最后的測試,并對數據集樣本進行簡單地水平、垂直翻轉,以提高模型的泛化能力。
本文的評價指標是目標檢測領域常用的平均精度(mAP),表示所有類別AP的平均值。AP的定義為
mAP的定義為
特征提取網絡的優越性對于一個模型檢測性能的好壞和分類結果有著直接的影響,為了證明改進后模型對于小目標的檢測效果,在參數相同的情況下做了多組對比實驗,首先驗證了ResNet50 特征提取網絡與傳統VGG16,實驗結果見表1。

表1 特征提取網絡的比較
從表1 可以看出,兩種特征提取網絡當中,ResNet50 表現出來的性能優于VGG16,mAP 達到82.7%,比VGG16 高出1.2 個百分點,其中各種類別的檢測精度也有不同程度的提升,表明在Faster-RCNN 模型當中,ResNet50特征提取網絡對小目標的檢測效果略優于VGG16 特征提取網絡。
單一地替換特征提取網絡對小目標的檢測效果提升不是很高,因此我們對FPN 改進,提取一種改進后的特征金字塔MC-FPN,使之與特征提取網絡相融合,這對于小目標的檢測效果有很好的提升,改進后的模型對比實驗見表2。

表2 改進模型的比較
從表2 可以看出,本文算法(ResNet50+MCFPN)與傳統的Faster-RCNN 算法和使用ResNet50特征提取網絡的Faster-RCNN 算法在HRRSD 數據集上檢測結果的對比,mAP 較改進之前提升了4.7 個百分點,其中汽車、存儲罐、飛機、網球場等小目標檢測精度都有顯著的提升,進一步驗證本文模型的優越性。
圖6 展示了Faster-RCNN 算法改進前后的檢測效果圖,可以明顯看出改進后的算法對于小目標的檢測明顯比改進前更優。

圖6 檢測效果
本文主要針對傳統的Faster-RCNN 算法對小目標檢測效果不佳的問題做出改進,首先用ResNet50 殘差網絡替換傳統的VGG16 網絡,以便提取豐富的特征信息,一定程度上提升了模型對小目標的檢測精度;緊接著提出MC-FPN模型,減少特征融合過程帶來的信息混淆和冗余,從而增強模型對小目標的檢測效果。通過前后對比實驗證明,改進后的算法對于小目標的檢測效果優于改進前的算法,證明改進算法的魯棒性。