卜薈力
(安徽理工大學 計算機科學與工程學院,安徽 淮南 232001)
目標檢測是計算機視覺領域最重要和最具有挑戰性的分支之一,其作為場景理解的重要組成部分,已經被廣泛地應用于人們的日常生活當中,如安全監控、自動駕駛等。而遙感圖像檢測作為目標檢測的一個前沿和熱點,它在資源勘探、自然災害評估、軍事目標檢測和識別等領域具有重要的意義。近年來,隨著空間遙感技術的飛速發展,高分辨率、大尺度遙感影像數據的不斷豐富。獲取遙感圖像不再像以前一樣困難。遙感目標檢測是在遙感圖像中找到感興趣目標的具體位置并識別其類別,然而,由于遙感影像背景非常復雜,并且大多數遙感目標都是密集小目標,因此傳統的基于機器學習的遙感檢測方法的結果往往不能令人滿意。自2012年Krizhcvsky 等人提出AlexNe這種深度卷積神經網絡(DCNN)模型以來,深度學習在計算機視覺領域掀起了一股熱潮。目前廣泛使用的基于卷積神經網絡的目標檢測方法主要分為兩類:第一類是“兩階段”法,將目標檢測分為檢測和識別兩個階段,首先通過算法在圖像中找到感興趣的區域,然后識別區域目標,如RCNN、Fast R-CNN、Faster R-CNN、Mask R-CNN等。第二類是“一階段”法,利用回歸思想同時完成檢測和識別,實現端到端的檢測和識別,如YOLOv3、SSD等。
針對目前遙感圖像檢測中存在的難點,很多學者做了大量的研究工作,在檢測方法和特征提取網絡結構上均有不同程度的改進。李婕等人提出結合平行層特征共享結構和注意力機制的遙感飛機目標自動檢測模型AFF-CenterNet,有效提高了算法的特征提取能力。周雪柯等人在Faster-RCNN 模型中引入注意力機制,使用SE 模塊校準特征通道權重,使用較低的計算成本獲得了顯著的性能提升。YE 等人提出ASFF(Adaptively Spatial Feature Fusion)特征融合模塊對信息流進行篩選,以獲得對檢測有用的信息。
本文選擇在YOLOv3 的基礎上進行改進,其核心思想在于端到端完成整個物體檢測的過程,其在YOLOv1 和YOLOv2 的基礎上做了大量改進,使得檢測精度和速度都有了顯著提升。經實驗對比證明,改進后算法與原YOLOv3算法相比檢測效果明顯得以提升。
YOLO 的全稱是You Only Look Once,是Redmon 在2016年提出的一種目標檢測算法。不同于R-CNN 將檢測過程分為物體分類和定位兩部分,YOLO 算法的本質是將目標檢測問題處理成回歸問題,用單個卷積神經網絡結構預測邊界框和類別概率,比其他算法速度更快。它可以從圖像中檢測物體的類別信息和位置信息,檢測速度達到45FPS。但一開始的YOLO 算法定位誤差嚴重,檢測精度不高。后續的YOLOv2 算法采用一系列方法優化YOLO 網絡模型結構,進一步提高了檢測速度,也有更高的準確率。2018年,Redmon 等提出了YOLOv3 算法,在端到端思想的基礎上增加了預測錨框機制,采用多尺度融合預測方法進步增強了對目標檢測的精度。
YOLOv3 的網絡結構主要由特征提取網絡和預測層組成,如圖1所示。其在YOLOv2 結構的基礎上去掉了所有最大池化層,增加了更多的卷積層加深網絡,并引入了殘差模塊,共包括23 個殘差塊。經過5 次下采樣后,輸出大小為網絡輸入大小的1/32。改進后的主干網絡被命名為Darknet-53,YOLOv3 采用多尺度分類的思想,將預測層分為3 個尺度。對于640×640 的輸入圖像,可以獲得三個尺度的特征圖。FPN 的思想對這三個尺度的特征圖采用自下而上的上采樣將小特征圖與大特征圖融合,輸出三個預測特征。在相同尺度的預測層中,使用券積操作完成特征圖與局部特征的交互。YOLOv3 輸出的三個特征圖尺度大小分別為20×20、40×40、80×80,每個單元使用3 個錨框來預測3個邊界框。

圖1 YOLOv3 網絡結構
數據增強是一種數據擴充技術,指的是利用有限的數據創造盡可能多的利用價值。因為雖然現在各種任務的公開數據集有很多,但是其實數據量也遠遠不夠,而公司或者學術界去采集、制作這些數據的成本很高,尤其像人工標注數據的任務量非常大,因此,只能通過一些方法去更好地利用現有的成本。傳統數據增強方式有隨機翻轉、旋轉、裁剪、變形縮放、添加噪聲、顏色擾動等等。而本文選擇一種新的數據增強方式Mosaic 數據增強,通過隨機裁剪、隨機縮放和隨機排布將四張圖片拼接,豐富了檢測數據集,尤其增加了小目標,提高了網絡的魯棒性,因此本文選擇其對訓練數據進行增強。
注意力機制來源于人類的視覺機制,能夠使網絡專注于有效信息,過濾無用信息,從而提高信息的利用率?,F有研究表明,將注意力模塊添加到現有卷積神經網絡中可以帶來顯著的性能提升。然而,大多數現有方法致力于開發更復雜的注意模塊以實現更好的性能,這不可避免地會增加模型的復雜性。而ECA-Net 中的注意力模塊EfficientChannel Attention(ECA)是主要針對SE-Attention 改進的,SEAttention 使用兩個全連接層實現通道注意力,而ECA 指出使用兩個全連接層會引入大量參數和計算量,同時計算兩兩通道間的注意力是非必要的,因此在不降維的全局通道平均池化后僅僅采用了一個感受也為的一維卷積來計算相鄰個通道間的注意力。在只增加了非常少的參數情況下卻能獲得明顯的性能提升,如圖2所示,其中設置=3,表示相乘操作,⊕表示相加操作。

圖2 ECA 注意力
YOLOv3 中的原始定位損失函數為IOU 損失,相比傳統的L2 損失,使用IOU 損失函數能更好地反應兩個框的重合程度。但是其仍然存在很多缺陷,比如說當交并比值相同時,重合方式不一定相同,無法挑選出真正的最優預測框,因此本文選擇CIOU損失作為YOLOv3 的定位損失函數,它考慮了重疊面積、中心點距離以及長寬比信息,解決了IOU 損失函數的不足。CIoU 具體公式如式(1)~(3)所示:


其中代表預測框中心坐標的參數,就是兩個中心點距離的平方,和為長寬比,代表兩個矩形的最小外接矩形對角線長度
本文將改進后的YOLOv3 算法命名為ECA-YOLOv3,結合前幾節的介紹,最終得到ECA-YOLOv3 主干網絡的結構,如表1所示。

表1 ECA-YOLOv3 主干網絡結構
本文實驗訓練及測試的計算機硬件配置如下:CPU 為Intel(R)Core(TM)i5-11400@2.60GHz,GPU 為NVIDIA GeForce RTX 3060,采用Ubuntu20.04 操作系統和Pytorch1.8深度學習框架作為實驗的運行環境。
RSOD 數據集由武漢大學發布,是用于遙感圖像中物體檢測的數據集,本文選擇其作為數據集進行訓練和測試。其一共包含飛機、操場、立交橋和油桶四類目標,數量分別為:446 張圖(4 993 架飛機),189 張圖(191 個操場),176張圖(180 座立交橋),165 張圖(1 586 個油桶)。
本實驗采用召回率、精確率和平均精度均值(Mean Average Precision,mAP)通常用于評估目標檢測算法的性能,具體公式如式(4)~(7)所示。

其中TP 為算法預測正確的正樣本個數,FN 為算法預測錯誤且判斷為負樣本的個數,FP 為算法預測錯誤但是判斷為正樣本的個數,AP 值為PR 曲線所圍成的面積
3.4.1 實驗參數設置
輸入圖片大小設置為640×640,使用隨機梯度下降法(stochastic gradient descent, SGD)作為優化器優化網絡,動量設為0.937,權重衰減系數設為0.000 5。初始學習率設置為0.01,在訓練過程中使用余弦退火算法來對學習率進行更新,Batch Size 設置為4,epoch 數設置為240 輪。
3.4.2 對比實驗
在相同數據集上對YOLOv3 和ECA-YOLOv3 進行對比實驗,使用mAP 作為模型檢測指標,最終實驗結果如表2所示。從表中可以看出,本文提出的算法行之有效,其檢測精度比傳統的YOLOv3 網絡提高了2.6 個百分點。

表2 模型性能對比表
3.4.3 實驗效果圖
使用ECA-YOLOv3 對測試集進行測試,部分圖片檢測效果如圖3所示,可以看出,改進后的網絡在針對一些困難樣本,如密集小目標、目標被遮擋、相似度差異較大等圖像上均有較好的識別效果。

圖3 檢測效果圖
為解決遙感圖像中因目標尺度變化較大,背景復雜導致的檢測困難問題,本文在YOLOv3 的基礎上,以DarkNet53為主干網絡,引入輕量級的ECA 注意力模塊,并通過替換CIOU 邊界框損失函數,對數據進行Mosaic 增強等方式對原始算法進行一些類改進。實驗結果表明基于改進后的YOLOv3 遙感圖像檢測方法取得了不錯的檢測效果,模型魯棒性得以提高,且檢測精度保持在了較高水準,具有一定的實用價值。下一步將考慮優化網絡結構,在不降低檢測精度的同時進一步壓縮模型,提高其檢測速度。