高 曄,郭松宜,厙向陽
西安科技大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,西安 710054
隨著遙感技術(shù)的進步和發(fā)展,遙感圖像分辨率越來越高,對高分辨率的遙感圖像目標(biāo)檢測已經(jīng)成為了研究的熱點。對飛機、油罐、橋梁等地面目標(biāo)識別和定位無論是對于軍事還是民用都有重要的實際應(yīng)用價值。傳統(tǒng)的遙感圖像目標(biāo)檢測[1-3]可以分為基于模板匹配的方法和傳統(tǒng)的機器學(xué)習(xí)方法?;谀0迤ヅ涞姆椒ㄊ亲詈唵蔚囊活悪z測方法,可分為剛性模板和可變性模板,基本思想是對于每一類待檢測對象使用手工或者訓(xùn)練學(xué)習(xí)的方式生成模板并進行匹配。傳統(tǒng)的機器學(xué)習(xí)方法將檢測問題分為兩個步驟,首先提取特征,然后訓(xùn)練分類器并對遙感目標(biāo)進行分類。由于遙感圖像目標(biāo)特征更為復(fù)雜,人工提取檢測特征已經(jīng)難以滿足要求,引入深度學(xué)習(xí)的方法實現(xiàn)端到端的目標(biāo)檢測是新的發(fā)展方向?;谏疃葘W(xué)習(xí)的目標(biāo)檢測算法包括兩階段和單階段目標(biāo)檢測算法。兩階段目標(biāo)檢測算法包括:RCNN[4]、Fast R-CNN[5]、Faster R-CNN[6]、Mask R-CNN[7]
等。單階段目標(biāo)檢測算法包括:SSD[8]、YOLO9000[9]、YOLOV3[10]等。李玉峰等人[11]針對Faster R-CNN 的復(fù)雜性進行改進,通過深度可分離卷積降低網(wǎng)絡(luò)模型的參數(shù)數(shù)量,并融合多層特征,使小目標(biāo)的檢測精度得到提升。鄭哲等人[12]以Faster R-CNN為基礎(chǔ),引入組合注意力機制,采用旋轉(zhuǎn)檢測框來進行檢測,以解決目標(biāo)排列密集的問題,將高層和低層的特征進行融合,改善了檢測效果。李紅艷等人[13]針對網(wǎng)絡(luò)中輸入圖像縮放變形的問題,采用超分辨率進行圖像預(yù)處理,引入CBAM注意力機制[14],采用軟化非極大值抑制算法(soft-NMS)代替原有的非極大值抑制算法(non-maximum suppression),提升了目標(biāo)檢測精度,但是橋梁的檢測效果仍有待提高。吳湘寧等人[15]結(jié)合注意力機制,采用尺度變換、旋轉(zhuǎn)等數(shù)據(jù)增強方式對船舶進行檢測,改善了對小目標(biāo)的檢測效果。單階段檢測采用一個全卷積網(wǎng)絡(luò)模型實現(xiàn)端到端的檢測,檢測速度較快,但是相對于兩階段方法而言,精度略低。SSD 算法采用多個檢測頭提升了檢測的準(zhǔn)確率,但是每個檢測頭是獨立的,并未充分運用每一層的輸出特征,而且對小目標(biāo)的檢測效果不好。YOLOV3則參考FPN[16]網(wǎng)絡(luò)的思想,通過雙線性插值上采樣進行多尺度特征融合,增強了算法的整體檢測效果。董彪等人[17]為了進一步增強算法對建筑物的檢測效果,設(shè)計適合遙感建筑物大小的兩個檢測器,并通過k-means 重新分析候選區(qū)大小,提升了建筑物檢測的準(zhǔn)確率,但是只是針對遙感圖像中的建筑物目標(biāo),難以推廣至多類目標(biāo)。成喆等人[18]針對SSD 算法中特征未被充分利用,引入FPN 思想設(shè)計了特征融合層,獲得了較好的檢測效果。Van Etten[19]提出的YOLT 算法通過調(diào)整特征圖的輸出層,裁剪過大圖像,融合不同尺度圖像檢測模型進行檢測,改善了檢測效果,適用于較大的遙感圖像中的目標(biāo)檢測。盡管目前遙感圖像目標(biāo)檢測算法有了長足的發(fā)展,但依然面臨如下困境:(1)由于背景復(fù)雜,導(dǎo)致目標(biāo)區(qū)分難度依然較大;(2)小目標(biāo)多而且排列密集,檢測困難;(3)目標(biāo)尺度差異較大而且方向隨機,卷積神經(jīng)網(wǎng)絡(luò)所構(gòu)建的模型不具備旋轉(zhuǎn)不變性。本文在YOLOV3網(wǎng)絡(luò)的基礎(chǔ)上提出了基于注意力與殘差收縮網(wǎng)絡(luò)的遙感圖像目標(biāo)檢測算法,采用Mosaic 方法進行圖像增強;使用殘差收縮網(wǎng)絡(luò)作為特征提取網(wǎng)絡(luò);采用新的結(jié)合最大值池化與均值池化的空間金字塔池化融合對特征進行充分融合;結(jié)合通道注意力機制,進一步篩選有效特征;采用CIOU 進行定位損失的計算,最終實現(xiàn)遙感圖像目標(biāo)檢測。實驗證明:本文算法降低了復(fù)雜背景對檢測效果的影響,提升了算法對尺度差異大的目標(biāo),以及小目標(biāo)的檢測準(zhǔn)確率。
YOLOV3是單階段目標(biāo)檢測算法的代表之一,其特點:將目標(biāo)分類與候選區(qū)回歸的兩個任務(wù)在一個網(wǎng)絡(luò)中完成,極大地提升了檢測速度。YOLOV3模型由特征提取部分(DARKNET53)和特征融合部分(DARKNET53),以及目標(biāo)檢測部分(OBJECT DETECTION)組成。YOLOV3 網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,圖中,UPSAMPLE 表示圖像二倍上采樣,CANCAT表示對特征圖進行通道層面的拼接。
圖1 YOLOV3網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 YOLOV3 network structure diagram
1.1.1 特征提取和特征融合
YOLOV3 模型采用DARKNET53 網(wǎng)絡(luò)進行特征提取。DARKNET53 是基于殘差網(wǎng)絡(luò)的思想而提出的全卷積網(wǎng)絡(luò),在卷積層之間增加殘差連接層,構(gòu)建殘差模塊(Residual Block)防止網(wǎng)絡(luò)的性能退化。網(wǎng)絡(luò)由5 個步長為2的Convolutional結(jié)構(gòu)實現(xiàn)的下采樣層和5組由殘差模塊構(gòu)成的特征提取模塊組成,每組特征提取模塊包含的殘差模塊數(shù)量分別為1、2、8、8,4。Convolutional結(jié)構(gòu)每一個卷積層后都包含一個批歸一化層,以及一個LeakyReLU激活函數(shù)層,如圖2(a)所示。Residual結(jié)構(gòu)如圖2(b)所示,由卷積核大小為1×1的Convolutional結(jié)構(gòu)和卷積核大小為3×3的Convolutional結(jié)構(gòu)構(gòu)成,之后將結(jié)果與輸入特征對應(yīng)元素相加,即可得到殘差結(jié)構(gòu)輸出。特征提取之后,采用FPN 的思想設(shè)計了特征融合層,使得深層特征與淺層特征融合,獲得了更好的檢測效果。
圖2 Darknet53模塊結(jié)構(gòu)圖Fig.2 Darknet53 module structure diagram
1.1.2 目標(biāo)檢測
網(wǎng)絡(luò)的目標(biāo)檢測流程如圖1中OBJECT DETECTION所示,選取特征提取網(wǎng)絡(luò)中3個不同尺度的特征圖進行預(yù)測,其大小分別為13×13、26×26、52×52。根據(jù)特征圖大小,分別對原圖像劃分成S×S個網(wǎng)格,針對每一個特征圖的每一個網(wǎng)格生成3個不同尺度的邊界框(BOX),最后輸出S×S×(3×(4+p+c))的張量。其中,S表示預(yù)測特征層的大小,3表示三組不同尺度邊界框,4表示邊界框的偏移參數(shù),p表示是否為物體或者背景的置信度,c代表類別預(yù)測參數(shù)。
設(shè)(cx,cy)為預(yù)設(shè)選區(qū)中心(bx,by)為調(diào)整后的中心坐標(biāo)則邊界框修正公式如下:
其中,ph和pw表示初始預(yù)設(shè)邊界框的寬高;(tx,ty)表示網(wǎng)絡(luò)預(yù)測中心坐標(biāo)偏移量;tw和th表示網(wǎng)絡(luò)預(yù)測的寬高尺度變化量;bw和bh表示調(diào)整后的邊界框?qū)捀?;?·)表示Sigmoid激活函數(shù)。
由預(yù)設(shè)選框向調(diào)整后選框(中心坐標(biāo)以及寬高)變化過程如圖3 所示,圖中虛線框為預(yù)設(shè)邊界框,實線框為調(diào)整后邊界框。
圖3 預(yù)測選框回歸圖Fig.3 Forecast box regression
深度殘差收縮模型[20]通過一個子網(wǎng)絡(luò)學(xué)習(xí)一組閾值,結(jié)構(gòu)如圖4所示。設(shè)輸入的特征為F∈RW×H×C,其中,W表示特征圖寬,H表示特征圖高,C表示特征通道數(shù)。對F的所有元素取絕對值(ABS),經(jīng)過全局平均池化(GAP)將特征調(diào)整為F∈R1×1×C,輸入到一個由全連接層(FC)、批歸一化(BN)、激活函數(shù)(ReLU)、全連接層(FC)以及Sigmoid 激活(σ)構(gòu)成的子網(wǎng)絡(luò),其輸出結(jié)果與全局平均池化后的特征進行點乘運算,最后進行閾值軟化處理(SOFT)得到深度殘差收縮模型的輸出F′。
圖4 深度殘差收縮模塊Fig.4 Depth residual shrinkage module
深度殘差收縮模型可用下式表示:
其中,GAP(·)表示全局池化操作;SOFT(·)表示軟閾值化操作;|·|表示絕對值函數(shù)。
設(shè)x表示輸入特征,T表示閾值,則軟化閾值如下式所示:
在YOLOV3 模型的基礎(chǔ)上,采用Mosaic 數(shù)據(jù)增強進行預(yù)處理;使用深度殘差收縮模塊重構(gòu)了特征提取網(wǎng)絡(luò);采用組合池化構(gòu)建空間金字塔池化融合層并結(jié)合通道注意力機制篩選有效特征;引入CIOU[21]進行定位損失函數(shù)計算。整體架構(gòu)如圖5所示。
圖5 整體架構(gòu)圖Fig.5 Overall architecture diagram
Mosaic圖像增強隨機讀取四張圖片,采用隨機的排布、翻轉(zhuǎn)、裁剪、縮放、色域變換中的一個或多個方法,把四張圖像結(jié)合成大小為416×416的一張圖片,并且將原來圖片中目標(biāo)選區(qū)的坐標(biāo)位置調(diào)整為增強處理后的坐標(biāo),圖6為Mosaic圖像增強示例。
圖6 Mosaic圖像增強示例Fig.6 Mosaic image enhancement example
基于殘差收縮的特征提取網(wǎng)絡(luò)結(jié)構(gòu)如圖7所示,由BACKBONE 和FEATURE CONCATENATE 兩 部 分 組成。BACKBONE 由CBL 結(jié)構(gòu)與多個CRES 結(jié)構(gòu)構(gòu)成。CBL(CBL后的數(shù)字表示包含CBL的個數(shù),默認(rèn)為1)結(jié)構(gòu)為基本的網(wǎng)絡(luò)組件,由卷積層、標(biāo)準(zhǔn)化層以及Leaky-ReLU激活函數(shù)構(gòu)成。CRES是結(jié)合深度殘差收縮機制的特征提取模塊,結(jié)構(gòu)如圖8 所示,SHR 表示殘差收縮模塊,CRES 后的數(shù)字表示包含CRES 結(jié)構(gòu)的數(shù)量。FEATURE CONCATENATE 部分采用FPN 結(jié)構(gòu)進行特征融合,其中:輸出①是對BACKBONE 的最深層特征CRES4 進行CBL3 和基于通道注意力機制的空間金字塔池化融合(CSPP)操作,之后輸出大小為13×13預(yù)測特征圖(PREDICT),預(yù)測大型目標(biāo)。同時,對a處特征圖進行CBL 和二倍上采樣(UpSample)操作;輸出②對①中上采樣特征與BACKBONE 中的第二個CRES8 結(jié)構(gòu)輸出的特征進行融合,再進行CSPP和CBL3操作,之后輸出大小為26×26預(yù)測特征圖,預(yù)測中等大小目標(biāo)。同時,對b處特征圖進行CBL和二倍上采樣操作;輸出③對②中上采樣特征與BACKBONE中的首個CRES8結(jié)構(gòu)輸出的特征進行融合,再進行CSPP 模塊和CBL3 操作,最后輸出大小為52×52預(yù)測特征圖,預(yù)測小型目標(biāo)。
圖7 基于殘差收縮的特征提取網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.7 Structure diagram of feature extraction network based on residual shrinkage
圖8 CRES結(jié)構(gòu)Fig.8 CRES structure
空間金字塔池化融合如圖9 所示,設(shè)輸入特征為F,分別采用5×5 最大值池化(MAX)、5×5 平均值池化(AVG)、9×9 最大值池化(MAX)、9×9 平均值池化(AVG)、13×13 最大值池化(MAX)、13×13 平均值池化(AVG)對F進行池化下采樣操作,然后對最大值池化和平均值池化的對應(yīng)值相加,再進行通道層的拼接(CANCAT)得到輸出特征F′。
圖9 空間金字塔池化融合模塊Fig.9 Spatial pyramid pool fusion module
空間金字塔池化融合可用下式表示:
其中,CANCAT(·)表示通道特征拼接;AVG5(·)表示5×5平均值池化;MAX5(·)表示5×5最大值池化;AVG9(·)表示9×9 平均值池化;MAX9(·)表示9×9 最大值池化;AVG13(·)表示13×13 平均值池化,MAX13(·)表示13×13最大值池化。
通道注意力模型由SE-NET[22]改進而來,結(jié)構(gòu)如圖10 所示。設(shè)F∈RW×H×C表示通道注意力模型的輸入。則通道注意力模型流程:輸入特征F分別進入全局平均池化(ADAVG)與全局最大池化(ADMAX)兩個子網(wǎng)絡(luò),再分別進行全連接(FC)操作,并將特征調(diào)整為(r表示縮放參數(shù),一般取16),之后進行ReLU激活,再使用全連接(FC)操作將特征通道調(diào)整回原來數(shù)量C,最后把兩分支通道特征值對應(yīng)元素相加⊕,使用Sigmoid 激活(σ)得到歸一化的通道注意力權(quán)重,再將歸一化的權(quán)重與輸入特征F進行點乘?運算得到注意力模型的輸出F′。
圖10 通道注意力機制模型Fig.10 Channel attention mechanism module
通道注意力模型可用數(shù)學(xué)公式表示如下:
其中,ADMAX(F)表示全局最大池化操作;ADAVG(F)表示全局平均池化操作;FC(·) 表示全連接層處理;ReLU(·) 表示ReLU 激活函數(shù);σ(·) 表示Sigmoid 激活函數(shù)。
損失函數(shù)包括置信度損失函數(shù)Lconf,分類損失函數(shù)Lclass和定位損失函數(shù)Llocal。
(1)置信度損失函數(shù)。采用交叉熵?fù)p失函數(shù),定義如下式:
其中,ci表示預(yù)測框i中是否存在目標(biāo)的判斷值,取0或1;表示預(yù)測置信度;n表示樣本總數(shù)。
(2)分類損失函數(shù)。采用交叉熵?fù)p失進行計算,定義如下式:
其中,Cij表示預(yù)測的邊界框i中是否存在類別為j的待檢測目標(biāo);表示某類待檢測目標(biāo)的概率;npos表示正樣本數(shù)量。
(3)定位損失函數(shù)。IOU(intersection over union)損失用來評價預(yù)測選區(qū)與真實選區(qū)的距離關(guān)系,定義如下式:
其中,areap表示預(yù)測選區(qū)面積,areag表示真實選區(qū)面積。
若兩個選區(qū)沒有重疊區(qū)域,則IOU值為0,不能反映兩者重合度。CIOU損失同時考慮到了預(yù)測選區(qū)與真實選區(qū)的重疊面積、兩個選區(qū)的中心點距離和長寬比三種幾何參數(shù),可以更加準(zhǔn)確地描述定位損失,定義如下所示:
其中,bp表示預(yù)測目標(biāo)選區(qū)的中心點坐標(biāo);bg表示真實選區(qū)的中心點坐標(biāo);d(·)表示歐式距離;c表示同時包括預(yù)測選區(qū)與真實選區(qū)的最小區(qū)域的對角線距離;α表示長寬比的權(quán)衡參數(shù);r表示衡量預(yù)測選區(qū)與真實選區(qū)長寬比一致性參數(shù)。
α和r的定義如下:
其中,wg表示真實選區(qū)的寬高;hg表示真實選區(qū)的寬高;wp表示預(yù)測選區(qū)的寬;hp表示預(yù)測選區(qū)的高。
實驗采用武漢大學(xué)實驗室采集的RSOD數(shù)據(jù)集,包含飛機、操場、立交橋、油桶四類目標(biāo)。為了擴充數(shù)據(jù)量,把西北工業(yè)大學(xué)實驗室制作的DIOR數(shù)據(jù)集中對應(yīng)的飛機、油桶、操場和立交橋并入RSOD 數(shù)據(jù)集中,共6 728 張圖片,包括42 985 個目標(biāo)。圖11 為數(shù)據(jù)集中目標(biāo)數(shù)量分布情況以及目標(biāo)大小分布情況。
圖11 數(shù)據(jù)集實例個數(shù)以及大小Fig.11 Number and size of dataset instances
評價指標(biāo)選擇準(zhǔn)確率(Precision)、召回率(Recall),平均精確度(AP)和平均精度均值(mAP)作為評價標(biāo)準(zhǔn)。
(1)準(zhǔn)確率(Precision)。計算公式如下:
其中,TP表示檢測正確的目標(biāo);FP表示檢測錯誤的目標(biāo)。
(2)召回率(Recall)。計算公式如下:
其中,F(xiàn)N表示未被檢測出的目標(biāo)。
(3)平均精確度(AP)。計算公式如下:
其中,r表示召回率;P(r)表示r處的準(zhǔn)確率。
(4)平均精度均值(mAP)。計算公式如下:
其中,n表示總類別數(shù)。
3.2.1 實驗環(huán)境與參數(shù)配置
實驗環(huán)境以及相關(guān)配置如表1所示。
表1 實驗環(huán)境配置Table 1 Experimental environment configuration
參數(shù)設(shè)置:隨機將數(shù)據(jù)集80%作為測試集,20%作為驗證集。批次大小設(shè)置為8,初始學(xué)習(xí)率為0.000 1。采用動量梯度下降法,動量為0.937,衰減系數(shù)為0.000 5,迭代次數(shù)為400次。
3.2.2 實驗方案
為了驗證方法的有效性,將主流的目標(biāo)檢測方法Faster R-CNN、SSD、RetinaNet、YOLOV3與本文方法進行比較實驗:
實驗方案1:對比四種算法在不同IOU 取值下平均精度均值。
實驗方案2:對比四種算法在IOU取值為0.50∶0.05∶0.95時,對于小目標(biāo),中等目標(biāo),大目標(biāo)的平均精度均值與平均召回率。
目標(biāo)尺度約定:
samll_size≤32 pixel×32 pixel
32 pixel×32 pixel ≤medium_size≤96 pixel×96 pixel
larger_size≥96 pixel×96 pixel
實驗方案3:對比YOLOV3 算法在IOU 取值為0.50時,各個類別的平均精度值與檢測時間。
圖12 為訓(xùn)練過程中損失的變化情況,以及IOU 閾值為0.5 時各個類別和總體精確值的變化情況。如圖(a)所示,分類損失收斂較快,置信度損失和定位損失隨著迭代次數(shù)增加逐步收斂,在迭代300次后損失變化趨于平緩,表示擬合逐漸結(jié)束。如圖(b)所示,飛機,油罐和操場類別在迭代100次后精確度變化趨于平緩,而立交橋類別隨著迭代次數(shù)的增加,準(zhǔn)確率持續(xù)增長,在迭代至300次后變化逐漸穩(wěn)定。
圖12 訓(xùn)練損失變化以及各類別精度變化Fig.12 Changes in training loss and accuracy of each category
實驗方案1的結(jié)果如表2所示。
表2 不同IOU取值下算法平均精度均值(mAP)Table 2 Average precision of algorithm under different IOU values(mAP)
由表2 可知,本文算法在IOU 取值為0.5,0.75 以及0.50∶0.05∶0.95時,mAP值均高于其他三類算法,說明改進算法在總體的檢測精度上優(yōu)于Faster R-CNN、SSD、RetinaNet、YOLOV3算法。
實驗方案2的結(jié)果如表3和表4所示。
表3 不同尺度目標(biāo)下算法平均精度均值(mAP)Table 3 Mean precision of algorithm under different scale targets(mAP) %
表4 不同尺度目標(biāo)下算法平均召回率(AR)Table 4 Average recall rate(AR)of algorithm under different scale targets %
大目標(biāo)的mAP和AR均高于其他三類算法,尤其是小目標(biāo)提升明顯,說明本文算法對不同大小目標(biāo)的誤檢和漏檢均少于其他三類算法,對不同尺度目標(biāo),尤其是小目標(biāo)的檢測精度有一定提升。
實驗方案3的結(jié)果如表5所示。
表5 YOLOV3與本文算法檢測結(jié)果比較Table 5 Comparison of detection results between YOLOV3 and this algorithm
由表5 可知,相對于YOLOV3 算法,本文算法對四類目標(biāo)的檢測精度均有所提升,尤其是立交橋類別提升較大,但是檢測時間略微增加。
圖13為檢測效果圖。其中,圖(a)表示對圖像不清晰和目標(biāo)小且密集的油罐實例檢測效果圖;圖(b)表示對目標(biāo)小且部分目標(biāo)不完整的飛機實例檢測效果圖;圖(c)表示對圖像不清晰并且實例尺度差異大的立交橋的檢測效果圖;圖(d)表示對尺度差異大的操場實例檢測效果圖。
圖13 對各類目標(biāo)的檢測實例圖Fig.13 Example diagram of detection of various targets
圖14為檢測對比圖,為驗證效果,選取了三組具有難點的圖像,使用本文算法與YOLOV3 算法進行對比。其中,圖(a)對比目標(biāo)小且密集的油罐目標(biāo)檢測效果;圖(b)對比目標(biāo)小且方向任意的飛機目標(biāo)檢測效果;圖(c)對比背景復(fù)雜的操場目標(biāo)檢測效果。如對比結(jié)果所示,本文算法的檢測效果均優(yōu)于YOLOV3算法。
圖14 檢測對比圖Fig.14 Detection comparison diagram
綜上所述,本文算法針對圖像質(zhì)量較差、目標(biāo)部分缺失、小目標(biāo)多、排列密集和目標(biāo)尺度變化大所導(dǎo)致的檢測困難,均有較好的檢測效果。
針對YOLOV3對小目標(biāo)以及尺度差異大的目標(biāo)檢測效果不佳的問題,提出了一種改進通道注意力與殘差收縮網(wǎng)絡(luò)的遙感圖像目標(biāo)檢測算法。實驗結(jié)果表明:(1)本文算法對小目標(biāo)的檢測、較大噪聲干擾、目標(biāo)有殘缺的情況有良好的效果;(2)檢測速度上也可以保證實時性。對模型進行優(yōu)化,降低模型參數(shù)數(shù)量是進一步研究的方向。