曲振方, 朱福珍
(黑龍江大學 電子工程學院, 哈爾濱 150080)
目標檢測是遙感和計算機視覺領域急需解決的問題,通常將其定義為輸入圖像中的位置識別目標對象以及對象類別識別。如今,目標檢測技術已廣泛應用于環境監管、災難評估、軍事調查和城市規劃等實際應用中[1-2]。無論是針對人造物體(如車輛、建筑物、道路和橋梁等),還是自然物體(如湖泊、海岸和森林等),目標檢測算法都得到了廣泛的研究,已經出現了大量算法來檢測它們。現有的遙感影像目標檢測算法大致可分為四類:(1)基于模板匹配的方法;(2)基于知識的目標檢測方法;(3)基于目標分析的目標檢測算法;(4)基于機器學習的方法[1]。在上述方法中,基于機器學習的方法由于其強大的魯棒性而受到了許多學者的青睞,取得了突破性的發展[3-6]。
由于卷積神經網絡(Convolutional neural networks, CNN)的出現,基于機器學習的目標檢測算法得到了進一步的發展,引起了計算機視覺領域的廣泛研究,尤其是在目標檢測方向上。CNN模型具有強大的特征提取能力和優越的性能,因此涌現了大量基于CNN的目標檢測算法,并將這些算法應用于光學和遙感圖像的目標檢測。隨著基于卷積神經網絡的目標檢測算法的發展,目標檢測算法大致可分為兩類:(1)一種方法是兩階段目標檢測算法。該樣本首先生成一個候選框,然后由卷積神經網絡進行處理。 該方法的優點是檢測精度高,可以準確定位物體,具有代表性的算法有Fast R-CNN[7]和Faster R-CNN[8];(2)另一種方法稱為單階段檢測方法,即將目標邊界位置的問題直接轉換為回歸問題,然后通過卷積神經網絡進行處理。該方法具有較快的運算速度,代表有SSD[9]、YOLO[10]、YOLO 9000[11]和YOLO v3[12]等算法。在遙感圖像研究領域,國內外學者也已經開始在深度學習的基礎上進行研究。盡管基于深度學習的對象檢測方法取得了突破,但這些方法仍存在一個亟待解決的問題:對于大規模的遙感圖像,某些目標僅占據了幾個像素。這些相對較小的目標容易在訓練過程中丟失,可能會錯過一些關鍵目標信息。 因此,對于遙感圖像目標檢測,需要一種對小目標具有高檢測精度和快速檢測的方法。小目標檢測是計算機視覺領域的熱門話題,已應用于場景分類[13]和目標檢測[14-15]等方向。現有的小目標物體方法被設計用于使用單尺度檢測網絡對光學圖像中的常見物體進行檢測(如汽車、自行車和建筑物)。這些共同物體的背景相對簡單,而在遙感圖像中,要檢測的目標通常是在更復雜的場景中,這使得檢測小目標更加困難。
當在遙感圖像中進行目標檢測時,遙感圖像的拍攝范圍較大,其范圍10~30 km,面對如此大的拍攝范圍,一些相對較小的物體,如汽車、輪船和飛機等,僅占據圖像中的幾個像素,導致在檢測遙感圖像時出現漏檢和誤檢的概率很高。在保證準確性的基礎上,還需要保證遙感圖像的實時檢測。但是,用于遙感圖像檢測的YOLO網絡的性能并不理想。因此,遙感圖像目標檢測是一個非常具有挑戰性的課題。
針對上述問題,提出了一種基于改進的YOLO v3算法的輔助網絡來檢測遙感圖像。首次將帶有輔助網絡的YOLO v3模型應用到遙感圖像目標檢測。使用的方法包括兩個主要的組成部分:輔助網絡和連接輔助網絡的SE注意力機制模塊,這兩個模塊的作用旨在增加網絡的特征提取能力,使得YOLO v3模型能夠檢測出更多的目標。整個實驗在DOTA數據集中驗證,并充分證明了改進之后的網絡在性能上有所提高。
遙感圖像的目標檢測需要確保其檢測的實時性和準確性,但是兩階段基線的檢測速度相對較慢,因此選擇了在檢測性能和速度上適用的YOLO v3算法。遙感圖像中的許多目標信息僅占用幾個像素,但是YOLO v3 算法在提取特征時容易丟失一些相對較小的圖像信息,因此,本文的目的是提高YOLO v3算法在提取遙感圖像中相對較小目標信息時的魯棒性。
YOLO v3算法的特征提取網絡采用的是Darknet-53的網絡,它深層的采樣采用的是殘差結構的形式。殘差結構的內部相對來說比較簡潔,使得整個網絡更加容易被使用,但是特征提取的能力還沒有被優化。殘差模塊的出現能夠使得網絡的深度變得更深。目前,網絡設計的方法通常依賴于更多的網絡層去提取目標特征而且去豐富卷積層語義信息以提升檢測的準確率。然而對于檢測小目標,在圖像有限的像素區域,小目標尺寸小,在神經網絡中進行多次下采樣操作之后,這些區域的特征將會減小,特征的表達能力也會隨之下降,會變得更加不容易被網絡所學習。針對這一問題,本文采用加入輔助網絡的方法改進特征提取網絡,改進主干網絡的主要方式是整個網絡通過“拷貝”的殘差模塊,通過復制的方式微調(Fine-tune)殘差模塊的結構。優化網絡的結構如圖1所示。

圖1 加入輔助網絡的特征提取網絡
與原始的網絡結構相比,本文采用了增加一個特征提取輔助網絡,具有比主干網絡更小尺寸的網絡和在主干網絡旁邊支路上的多個殘差塊組成。輔助網絡的殘差模塊是相較于YOLO殘差模塊的提升。原始的殘差模塊使用3×3的卷積核去執行特征提取的操作,盡管輔助網絡中的殘差模塊使用的是兩個連續的3×3的卷積核去獲得一個5×5的感受野,之后提取的特征將會在主干網絡中進行合并。在輔助網絡中所使用的感受野是5×5。使用一個大的感受野,如5×5的感受野在特征映射上表現全局特征提取,可以獲得整個區域的目標特征。輔助網路傳送獲取的局部特征到主干網絡,由主干網絡結合目標局部信息所使用的3×3的感受野可以使得經由輔助網絡學習目標特征更加準確。輔助網絡使整個網絡結構在一定程度上更緊密地與高級和低級語義特征相關,這樣可以顯著提高網絡的檢測性能。這種增加輔助網絡改進特征提取的方法將會產生更多計算量,從而導致運行速度變慢。在改進特征提取網絡的基礎上,為了兼顧運行速度,僅增加輔助網絡到YOLO v3算法三個相關尺度檢測的特征提取層。
由于遙感圖像中背景占據一張圖片中的很大比例,而且往往需要檢測的目標很小,為了防止數據冗余,讓網絡學習到特定目標的特征,故本文引入注意力機制。引用注意力機制連接主干網絡和輔助網絡的方法分為兩步:第一步是輔助網絡的輸出模塊最開始是通過1×1的卷積核觸發的,然后傳送到主干網絡;第二步是在兩個網絡之間加入注意力機制。當網絡到達特定的深度,語義信息可以變得更強烈,輔助網絡可以集中于處理和傳送有效的特征,而且信道還可以抑制無效的特征。在兩個網絡之間所使用的注意力機制應用的是SE模塊,這個模塊非常容易被部署。SE模塊注意力機制如圖2所示。結構中增加了SE模塊的目的是為了校準輔助模塊的輸出。流程圖可以簡單地分為壓縮和激勵兩部分,首先特征映射被壓縮,然后兩個維度的特征信道被平均池化成一維特征映射。此時特征映射的尺寸被轉化成1×1×C。

圖2 SE注意力機制
通過池化把二維特征映射轉化成一維特征映射的目的是更好地展示這一層每一個信道的特征值的分布。特征映射壓縮完成之后,一維的特征將會被激勵,計算公式如下:
Sc=Fex(Z,W)=σ(g(Z,W))=σ(W2σ(W1Z))
(1)

Sc是連接模型的關鍵,常被用來表明輔助網絡輸出信道的權重。Sc是經由S函數激活,取值范圍0~1,表明每一個信道的重要程度。用Sc和Uc的結果去獲得最后的重定向特征圖,計算公式為:
Xc=FScale(Uc,Sc)=Sc·Uc
(2)
通過多個不同信道的不同權重,集中注意力于可以增加對關鍵通道域的關注。輔助殘差模塊通過SE模塊重定向,然后進入骨干網絡以完成特征融合。
本文測試所依據的評價指標主要包括準確率、回召率、mAP(mean Average precision)、AMC(Average minimum confidence)和 Loss(Missed detection rate)。在這些評價指標中,平均最小置信度常常被用于評估一個特定的多類別目標算法的分類性能,誤檢率常常被用于測試與檢測目標框架有關的算法的性能。評價指標的公式為:
(3)
(4)
式中:TP代表正樣本被正確的分類;FP代表正樣本被錯誤分類;FN代表負樣本被錯誤的分類。
(5)
(6)
式中:Nc代表目標的類別;N代表圖片的數量。
(7)
式中MC代表在一張圖片里一個確定的目標被正確檢測的最低置信度。
(8)
式中:NB代表在圖片里所有目標的數量;NM代表未被檢測到的目標數量。
所有實驗均在計算機上實現,該計算機采用2.40GHz@IntelXeon? CPU E5-2640 v4,兩塊NVIDIA GeForce RTX 2080 Ti和32 GB內存。本實驗中使用的DOTA數據集包含2 806個遙感圖像,并包含15個類別中的188和282個實例。標記方法是由4個點確定的任何形狀和方向的四邊形(不同于傳統平行邊界框)。 共有15個圖像類別,其中包括14個主要類別。數據集分為1/6驗證集、1/3測試集和1/2訓練集。300個樣本被用于測試,并且同原始的YOLO v3算法、帶有輔助網絡的YOLO v3算法在DOTA數據集進行橫向比較。原始的YOLO v3算法及本文所改進的YOLO v3算法比較結果如表1所示。通過比較表1得到的數據可知,所使用的YOLO v3優化算法比起原始的YOLO v3算法在準確率上和回召率上都有所提升。

表1 優化的YOLO v3和原始的YOLO v3模型 / %
從表2可以看出,與傳統的YOLO v3算法相比,所提出的方法在總精確度上有著更好的效果(90.55%)。相比傳統的YOLO v3算法提高了8.68%。從單類別看,本方法在飛機、船、集裝箱、橋梁、汽車和直升機等幾類小目標檢測中表現更好,對于網球場、棒球場等幾類相對較大目標,傳統YOLO v3算法表現更好,但相差不大。

表2 DOTA數據集上各類別目標檢測精度 / %

BridgeLarge-VehicleSmall-VehicleHelicopterRoundaboutSoccer ball filedBasketball courtmAPYOLO v370.2479.1768.2378.6769.8990.5492.2981.87OUR-YOLO v390.3689.2585.4189.4782.4991.8395.1290.55
將改進的網絡和一些典型的One-stage和Two-stage網絡進行比較,使用DOTA數據集進行測試,來比較它們的準確率和檢測時間,結果如表3所示。

表3 和常見網絡之間的速度和準確率的比較 / %
PFP-Net和SINPER-Net網絡都是近年來表現較好的網絡,PFP-Net屬于One-stage的網絡。從結果上來看,改進的YOLO算法比PFP-Net有著更高的準確率和時間,其速度是近乎相同的。盡管SINPER-Net是一個Two-stage的網絡,改進之后的YOLO v3算法準確率只比其低了0.78%,但是檢測速度更快了,表明改進之后的YOLO v3算法在檢測準確率和性能上獲得了很好的提升。
在DOTA數據集上進行了大量實驗,針對原始YOLO v3算法和改進后的YOLO v3算法進行效果對比。選取圖片如圖3~圖5所示,其中圖3(a)、4(a)和5(a)所示為原始YOLO v3算法的檢測結果,圖3(b)、4(b)和5(b)所示為本文算法的檢測結果。

(a) 原始YOLO v3算法檢測結果 (b) 改進的YOLO v3算法檢測結果

(a) 原始YOLO v3算法檢測結果 (b) 改進的YOLO v3算法檢測結果

(a) 原始YOLO v3算法檢測結果 (b) 改進YOLO v3算法檢測結果
對圖3~圖5的檢測結果進行對比分析,可以看出,原始的YOLO v3算法對目標漏檢情況嚴重,但本文所使用的方法可以很好地檢測出原始YOLO v3算法所不能檢測出的目標。在復雜的場景下,改進的YOLO v3算法仍然可以準確檢測出目標。從以上數據分析及效果圖可以看出,改進的YOLO v3算法比原始的YOLO v3算法準確率更高,預測的Bounding boxes位置比原始的YOLO v3算法更準確,證明使用輔助的特征提取網絡的方法可以幫助學習和定位特征,使得網絡的魯棒性更強。
介紹了基于改進的YOLO v3算法的遙感圖像目標檢測,針對原始YOLO v3算法在遙感圖像上效果不好的問題進行了改進。基于YOLO v3的模型,使用了雙重的特征提取網絡,在主干網絡配置了不同感受野的特征提取輔助網絡,采用注意力機制用于主干網絡和輔助網絡之間的信息融合。它集中注意力于有效的特征信道,抑制無效的特征信道,提升網絡處理的有效性。在DOTA數據集上,充分驗證了本方法,相較于原始的YOLO v3 mAP增加了8.68%,而且相較于一些比較出名的網絡結構,有著速度與準確率上的雙重優勢。