張朕通,單玉剛,袁 杰
1.新疆大學 電氣工程學院,烏魯木齊830047
2.湖北文理學院 教育學院,湖北 襄陽441053
遙感影像檢測一直是遙感圖像領域的熱點研究方向。遙感圖像中的目標檢測對于城市監(jiān)控、農作物檢測、環(huán)境探測都有重要意義。遙感影像有其獨特的特點,使得遙感目標檢測比普通的目標檢測更具有挑戰(zhàn)性,研究人員針對遙感目標的特殊性提出了許多相應的解決方案。為了解決遙感圖像中信息量大,數(shù)據(jù)非線性的問題,文獻[1]使用光譜、紋理、形狀等特征從不同角度分析圖像,并對多個特征進行線性組合,提高了檢測精度。文獻[2]提出一種流形學習計算遙感特征信息低維投影矩陣,通過優(yōu)化最小誤差重建輸入特征。文獻[3]提出了按塊低秩分解的方法,將特征降維處理。為了解決遙感影像不同于自然圖像的水平視角的問題,文獻[4]提出了建立旋轉不變性特征的方法。為了解決檢測區(qū)域內地物突變的情況,文獻[5]提出了結合MNF變換和Canny 算子方法。針對遙感影像中同類目標尺度變化大的問題,文獻[6]基于相鄰區(qū)域生長的最小異質性準側,提出了一種面向對象的多尺度檢測算法。文獻[7]利用多尺度多方向梯度算子提取遙感圖像特征,提高了提取特征的魯棒性。
近年來,隨著人工智能在計算機視覺領域的發(fā)展,出現(xiàn)了大量使用深度學習檢測目標的相關研究成果。深度學習的檢測方法一般分為單階段和雙階段兩種類型,例如文獻[8]提出一種雙階段算法,借鑒滑動窗口思想,通過算法產(chǎn)生一系列目標候選框后再進行分類和回歸。而文獻[9]僅僅使用卷積神經(jīng)網(wǎng)進行預測,直接對目標位置和所屬類別進行回歸。兩種方法各有利弊,雙階段方法在準確率上有一定優(yōu)勢,單階段方法則速度比較快。也有研究將傳統(tǒng)的目標識別方法和深度學習方法相結合,文獻[10]在深度學習的基礎上使用馬爾科夫隨機場銳化領域像素改善檢測位置信息丟失的情況,精細化檢測結果。文獻[11]提出了基于柯西分布的子圖像隨機剪切方法,將采集到的子圖模型送入金字塔池化模塊進行訓練。文獻[12]在目標檢測前對數(shù)據(jù)中各類目標按大小聚類,劃分出多組先驗框來。深度學習雖然相較傳統(tǒng)方法提取特征效果好,但是依然有許多不足,訓練推理時間長,需要數(shù)據(jù)樣本多,制約了其在實際工程項目中的應用。針對此問題,本文提出了一種聯(lián)合多尺度和注意力機制的遙感影像檢測算法,并采用了最新優(yōu)化算法尋優(yōu),實驗結果表明本文網(wǎng)絡在提高速度的同時保證了檢測精度。
本文的主干網(wǎng)絡共由8 個卷積層和6 個池化層組成,使用最大池化層下采樣,使用3×3 卷積提取目標相關特征,使用1×1 卷積融合通道間特征。在圖像領域,目標特征在特征圖中數(shù)值較大,最大池化的作用就是將領域內數(shù)值較大的顯著特征保留下來,使得下采樣時不會影響識別結果,去除冗余信息,避免模型過擬合。YOLOv3 中采用卷積下采樣,假設輸入維度為(H,W,M),步長為2不考慮偏置,卷積核大小為(K,K,N),則卷積的參數(shù)量為K×K×M×N,最大池化直接輸出鄰域最大值無需儲存參數(shù),卷積的計算量為K×K×H×W×M×N/4,最大池化計算量為H×W×M×3/4 遠小于前者,并且最大池化不含超參數(shù)不用執(zhí)行反向傳播。綜上最大池化能夠有效保留目標特征同時降低計算量,加快模型推理速度。本文借鑒了Yolo[12]提出了輕量級目標檢測網(wǎng)絡(Yolo-3d),加入本文提出的三維注意力機制,適用要求實時性的遙感目標檢測例如無人機導航及軍事制導,具有一定的可行性。因為遙感影像中目標尺度差異較大并且經(jīng)常存在小目標,而高層卷積特征中每個像素感受野大包含信息較多,小目標容易和背景信息融合被忽略。而低層特征圖尺度大,感受野較小,能夠有效捕捉到小目標的特征信息,但是低層特征中多為目標局部特征,目標整體語義信息缺少,所以將中層特征及高層特征上采樣與低層特征融合,將目標局部信息和整體信息相結合,可以有效提高遙感影像中小目標物體的檢測準確率。本文設計了多條檢測支路,在多種尺度的特征圖上檢測目標,以增加網(wǎng)絡對不同大小目標的檢測性能。本文設計的網(wǎng)絡結構如圖1所示。

圖1 本文網(wǎng)絡(Yolo-3d)
本文使用k-means 對數(shù)據(jù)集中標注的檢測框聚類來加速訓練和提高準確性。綜合考慮到遙感檢測的實時性和準確性,本文共設置9個聚類點,得到9組不同大小比例的先驗框。圖中使用第17 層特征圖(13×13)檢測較大目標,每個特征點代表原圖32×32個像素的特征信息,比較適合檢測較大的目標,先驗框為(134×132)(264×387)(442×407);使用第15 層特征上采樣和第10層特征融合得到特征圖(26×26),每個特征點代表原圖16×16 個像素的特征信息,用來檢測中等大小目標,先驗框為(68,62)(88,82)(111,108);使用第15層和第10層融合后的特征上采樣與第8 層特征再次融合的特征圖(52×52),每個特征點代表8×8個像素的特征信息,用來檢測小目標,先驗框為(25,22)(39,35)(54,48)。綜上所述,本文設計了3 個不同尺度的檢測支路,并通過聚類得到9種先驗框,將經(jīng)過拼接和卷積的不同層特征圖融合,與先驗框匹配檢測相應尺度的目標,改進網(wǎng)絡能夠有效應對數(shù)據(jù)集中各種尺度遙感目標分布不均的情況,提高檢測準確率。每個先驗框預測一個十維向量,包含邊框坐標,置信度和類別概率。損失函數(shù)分為坐標誤差,置信度誤差和分類誤差。本文為了減少訓練時間,節(jié)約計算成本,使用了遷移學習技術,將預訓練過的部分參數(shù)作為模型構建的起始點。
深度學習目標檢測中的注意力[13]機制本質上是給不同的像素賦予不同的權重,使其能夠更加關注有效信息。卷積神經(jīng)網(wǎng)絡除了學習到目標的特征外,還包含了大量無效背景信息,這就會導致在神經(jīng)元中含有大量背景信息,影響檢測性能。另外YOLOv3 中使用Darknet53為主干網(wǎng)含有53個卷積層和11個殘差單元,為了保證梯度信息的反向傳播,殘差單元對于深層的網(wǎng)絡是必不可少的,大量的卷積層和殘差單元造成了參數(shù)量和計算量增加。而本文網(wǎng)絡為了保證實時性網(wǎng)絡層數(shù)較少不會出現(xiàn)梯度消失的現(xiàn)象,所以沒有采用殘差單元。但是較淺的網(wǎng)絡也有弊端,卷積層數(shù)少會導致邊緣特征信息不易捕捉,學習的特征表現(xiàn)不夠好,導致池化時有效特征不夠明顯影響識別精度。針對這個問題,提出三維注意力機制將目標的位置、邊緣等相對重要特征提取出來并賦予較高的權重,對于特征相對不明顯的背景,降低其權重,達到抑制目的,從而在池化時保留住目標區(qū)域的特征,提高檢測性能。
本文設計的注意力機制結構如圖2所示,能夠從通道、行和列三個維度上給每個像素分配合適的權重。根據(jù)模型的首層特征圖,獲得通道、行和列注意力權重圖,然后分別將其和原特征圖點乘,得到帶有權重的特征圖,計算公式如公式(1)所示:

其中,F(xiàn)為原特征圖,F(xiàn)′為輸出特征圖,?為矩陣間元素點乘,*為卷積操作,Mc(F)為通道注意力圖,Mr(F)為行注意力圖,Ml(F)為列注意力圖,G為卷積核。
每個注意力模塊計算的是除自身外其余兩個維度的特征壓縮值,使用最大池化和平均池化兩種池化操作得到兩個不同的矩陣。其中通道維度的兩個矩陣首先使用1×1 卷積降維,再進行特征融合升維,最終得到和通道長度一致的一維向量。行和列的矩陣則先使用特征拼接,再使用3×1或1×3卷積聚合特征,同樣得到和自身長度一致的一維向量。通過兩種池化操作顯著和連續(xù)的特征被提取出來,后續(xù)的卷積操作將相關特征關聯(lián)起來,最終得到3組權重值,使用sigmod激活函數(shù)將權重歸一化到0~1 之間。通過神經(jīng)網(wǎng)絡訓練更新注意力機制參數(shù),最后將三個維度矩陣相加得到三維權重圖,采用矩陣加和操作也可以有效降低計算量。加入注意力機制后,本文設計網(wǎng)絡的參數(shù)量依然遠少于YOLOv3網(wǎng)絡,在速度上對比YOLOv3上有明顯優(yōu)勢,并且在精度上幾乎沒有下降。其中通道注意力計算方式如公式(2)所示,行和列注意力計算方式如公式(3)所示。

其中F是輸入特征圖,Mc(F)是通道注意力圖,Mi(F)為行或列注意力圖,MLP是多層神經(jīng)網(wǎng)絡,σ是激活函數(shù),AvgPool是均值池化,MaxPool是最大池化。

圖2 三維注意力機制結構圖
SGD 優(yōu)化器因為在各個維度上梯度的縮放是一致的,導致在訓練數(shù)據(jù)分布不均勻的情況下尋優(yōu)效果不是很理想。而收斂速度較快的自適應優(yōu)化算法,雖然在訓練早期收斂較快,但是最后的表現(xiàn)卻不如SGD優(yōu)化器。為了改善自適應優(yōu)化算法在訓練后期學習率出現(xiàn)極端的情況,本文加入了Lookhead[14]優(yōu)化算法。Lookhead維護了速率不同的兩套權重,內部循環(huán)使用了標準優(yōu)化器。Lookhead計算方法如下:


在內部優(yōu)化器的快速權重經(jīng)過k次更新后,Lookahead在權重空間中通過線性插值更新慢速權重,方向為內部優(yōu)化器最后一次權重方向,可以有效避免模型學習率出現(xiàn)震蕩或收斂速度慢的現(xiàn)象。
本文使用的遙感數(shù)據(jù)集是武漢大學團隊提供的RSOD-Dataset[15],包含了不同時間、角度和高度拍攝的飛機、操場、立交橋、油桶四類物體,共976張圖片,5 383個實例目標,具有一定的代表性。實驗環(huán)境配置為Intel?Core?i7-4720HQ處理器、8 GB內存條,Nvidia GeForce GTX 950M 顯卡,操作系統(tǒng)為Win10,使用深度學習框架Pytorch[16]。
從數(shù)據(jù)集中隨機選取592 張圖片作為訓練集進行訓練,72張圖片進行驗證,72張圖片進行測試。訓練時一個批次包含16 張圖片,Lookhead 的內部優(yōu)化器動量設置為0.9。為了防止過擬合,權重衰減設置為0.000 5。采用動態(tài)學習率,初始學習率設置為0.005,隨著迭代次數(shù)增加學習率逐漸降低。
本文使用了查準率(P),查全率(R),MAP@0.5,F(xiàn)1作為實驗指標。F1 和MAP@0.5 兼顧了查準率和查全率兩個指標。MAP@0.5 是每類AP 的均值,而AP 是對P-R 曲線下方積分計算出的面積。F1 是查準率和查全率的調和平均值,F(xiàn)1計算方式如公式(4):

訓練前將所有圖片縮放到416×416,共訓練了400輪,迭代次數(shù)14 800次。改進模型訓練的loss曲線如圖3所示,可以看出loss值在200輪后值趨于穩(wěn)定,最終降低到3 左右。MAP@0.5 曲線由圖4 可知,MAP@0.5 同樣在200 輪左右逐漸穩(wěn)定,最終收斂到0.93 附近,最高可到0.945。

圖3 模型loss曲線

圖4 模型MAP@0.5曲線
本文使用了4 種指標Yolo-tiny[17]、Yolo、Yolo-3d 進行了詳細的對比。如表1所示,本文模型參數(shù)量比Yolotiny 略多,比Yolov3 參數(shù)少了一倍,但是最終的各項指標查準率達到了75.2%,查全率達到了96.1%,MAP@0.5 達到了94.5%,F(xiàn)1 達到了84.1%,相較于Yolo-tiny 均有較大提升,性能基本可以和Yolov3持平,在兼顧實時性的情況下保證了檢測精度。從表2 可以看出Yolotiny 模型檢測飛機和立交橋單類AP 表現(xiàn)較差,是因為飛機目標較小,并且和立交橋一樣自身特征信息不明顯,而Yolo-3d能夠有效改善這些問題,對這兩類目標的AP 能夠提高3%左右。對于油罐和操場這些在原模型AP 較高的目標,因為它們本身具有獨特的特征信息有利于遙感目標的檢測,本文模型對于這類目標也能平均提高2%的AP。

表1 不同網(wǎng)絡模型指標對比

表2 單個目標在測試集AP對比
為了驗證本文設計模型在遙感影像目標檢測方面的有效性,將Yolo-3d 與Yolo-tiny 檢測結果進行對比。部分檢測圖片對比如圖5,(e)為Yolo-tiny 飛機檢測結果,對比原圖可以看出Yolo-tiny 只檢測到了部分目標,(i)中Yolo-3d可以檢測到基本所有的飛機目標,證明了本文模型對小目標檢測的有效性。如圖(f)、(j),因為油罐的特征易于檢測,Yolo-tiny和本文模型都可以檢測到目標,但是對于具體的目標位置沒有改進模型預測的準確,檢測框部分有偏差,同時置信度不如本文模型。如圖(g)、(h),Yolo-tiny沒有預測出應有的立交橋,預測操場出現(xiàn)了數(shù)量不符的現(xiàn)象,這是因為Yolo-tiny層數(shù)較淺不能很好地提取出目標的必要特征信息,所以出現(xiàn)了位置丟失和回歸不準確的現(xiàn)象,而(k)、(l)可以很準確地預測出目標的位置和類別。綜上所述,本文提出的Yolo-3d 能很好地識別這些遙感目標。Yolo-3d 推理時間比Yolo-tiny略長,主要是因為層數(shù)增多導致模型構建時間變長,但是依然可以滿足實時性的要求,在實際工程應用中具備可行性。

圖5 多目標檢測實驗結果
本文提出了一種聯(lián)合多尺度和注意力機制的遙感影像檢測算法。采用聚類的先驗框匹配多條檢測支路,利用低層特征改善小目標檢測準確率,能夠適應多種尺度的物體。提出了三維注意力機制能夠從三個維度上得到特征的自適應權重,有效地提取遙感影像中目標的語義信息。使用遷移學習技術和新的優(yōu)化算法節(jié)省了訓練成本,提高了模型的性能。通過實驗,比較了不同模型間檢測效果的差別,分析了不同模型的利弊。本文提出的算法能夠對本文數(shù)據(jù)集中的4 種遙感目標實現(xiàn)準確識別和檢測,同時兼顧實時性,滿足實際工程應用中的需求。對于遙感影像目標檢測的問題,隨著算法的進步,有越來越多的可能應用于各種實時的遙感檢測問題,如自然異常檢測、城市目標檢測、軍事目標檢測等,為人們的生活帶來便利。