楊志鋼,黎明,李泳江
哈爾濱工程大學(xué) 信息與通信工程學(xué)院,黑龍江 哈爾濱 150001
遙感技術(shù)的不斷發(fā)展使得從遙感圖像中對(duì)特定目標(biāo)進(jìn)行檢測(cè)的需求與日俱增。相比于傳統(tǒng)手工提取特征的方法,深度學(xué)習(xí)方法利用卷積神經(jīng)網(wǎng) 絡(luò)(convolutional neural networks,CNN) 自動(dòng)學(xué)習(xí)圖像特征,通過不斷迭代訓(xùn)練大量的數(shù)據(jù)樣本,挖掘其中的有效信息[1],以此規(guī)避傳統(tǒng)目標(biāo)檢測(cè)方法中的缺點(diǎn),能夠有效提高目標(biāo)檢測(cè)的精度和速度。
目前遙感圖像領(lǐng)域中的目標(biāo)檢測(cè)方法大多是由通用目標(biāo)檢測(cè)方法改進(jìn)而成的,大體分為2 類:兩階段檢測(cè)方法和單階段檢測(cè)方法。前者的代表是R-CNN 及其延伸[2?5],它們通過主干網(wǎng)絡(luò)對(duì)圖像提取特征后,先生成錨點(diǎn)和對(duì)象建議,再對(duì)建議進(jìn)一步地分類、回歸和優(yōu)化邊界框;后者的代表是YOLO 系列[6?8]、SSD[9]和RetinaNet[10],它們不再生成區(qū)域建議,而是直接從特征圖預(yù)測(cè)邊界框并區(qū)分具體類別。這些方法雖然在通用數(shù)據(jù)集上取得了很好的成績,但直接應(yīng)用于遙感圖像時(shí)往往效果不佳,原因在于遙感圖像目標(biāo)多數(shù)具有尺度多樣、排布密集、背景復(fù)雜等特點(diǎn),這些方法當(dāng)中的主干網(wǎng)絡(luò)[11?14]很難在這樣的環(huán)境中準(zhǔn)確提取特征,致使學(xué)習(xí)到錯(cuò)誤的分類和回歸信息。Lin 等[15]提出FPN 用以解決目標(biāo)特征難以分辨的問題,通過在主干網(wǎng)絡(luò)中構(gòu)建由上到下的特征金字塔和橫向連接結(jié)構(gòu)增強(qiáng)多尺度特征的傳播,大幅提升了檢測(cè)精度。隨后研究人員在此基礎(chǔ)上做了一些改進(jìn)[16?19]以適應(yīng)遙感圖像目標(biāo)檢測(cè)的特點(diǎn),但這些改進(jìn)方法普遍是對(duì)單一類別目標(biāo)進(jìn)行檢測(cè),且在場(chǎng)景復(fù)雜或目標(biāo)較為密集時(shí)檢測(cè)性能有所下降。
基于此背景,本文提出一種基于multi-FPN 的遙感圖像目標(biāo)檢測(cè)方法。首先,該方法使用殘差網(wǎng)絡(luò)ResNet-50 作為主干網(wǎng)絡(luò),在FPN 橫向連接的基礎(chǔ)上加入跨層連接結(jié)構(gòu),進(jìn)一步地加強(qiáng)特征的融合和重用;其次,改變上采樣金字塔的輸出層級(jí),采用{P3,P4,P5,P6,P7}層級(jí)輸出多尺度特征圖,有利于特征的傳播;最后,特征金字塔的上采樣過程采用了雙線性插值法替代原來的最鄰近插值法,使得特征縮放后的誤差更小,預(yù)測(cè)框坐標(biāo)的回歸更準(zhǔn)確。
基于multi-FPN 的遙感圖像目標(biāo)檢測(cè)方法的總體框架如圖1 所示。主要由特征提取網(wǎng)絡(luò)和兩階段檢測(cè)網(wǎng)絡(luò)2 部分組成。具體來說,經(jīng)過預(yù)處理的圖片首先輸入進(jìn)特征提取網(wǎng)絡(luò)中,通過主干網(wǎng)絡(luò)和multi-FPN 可以為每個(gè)輸入圖像生成多尺度特征融合的特征圖;然后從區(qū)域提案網(wǎng)絡(luò)(region proposal network,RPN)中 獲得輪流提案,為下一階段提供高質(zhì)量的區(qū)域提案;最后,在二次檢測(cè)階段利用2 個(gè)全連接層(fully connected layer,fc)對(duì)提案進(jìn)行位置回歸和類別預(yù)測(cè),得到最終結(jié)果。
圖1 基于multi-FPN 的方法總體框架
1.1.1 主干網(wǎng)絡(luò)
深度CNN 的出現(xiàn)使得圖像分類和目標(biāo)檢測(cè)取得了一系列突破,網(wǎng)絡(luò)將從低到高層的特征和檢測(cè)器以端到端的方式進(jìn)行融合,并通過特征網(wǎng)絡(luò)層的加深來取得更好的檢測(cè)效果。目標(biāo)檢測(cè)中基于深度CNN 的主干網(wǎng)絡(luò)是用來提取特征的結(jié)構(gòu),本文選擇采用殘差網(wǎng)絡(luò)ResNet-50 作為主干網(wǎng)絡(luò),利用多組殘差單元,在提取特征的同時(shí)有效避免了梯度爆炸或梯度消失的發(fā)生。原始的ResNet-50 在圖像分類時(shí)可以實(shí)現(xiàn)1 000 種目標(biāo)類別細(xì)分,但應(yīng)用于目標(biāo)檢測(cè)后要根據(jù)數(shù)據(jù)集的類別進(jìn)行輸出項(xiàng)調(diào)整。比如本文在NWPU VHR-10 數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),共有10 類待檢目標(biāo),所以主干網(wǎng)絡(luò)的輸出節(jié)點(diǎn)數(shù)設(shè)置為11,即10 個(gè)前景目標(biāo)和1 個(gè)背景類別。
1.1.2 FPN
目標(biāo)檢測(cè)中的主干網(wǎng)絡(luò)雖然可以利用卷積操作有效提取特征,但在原始圖像經(jīng)過CNN 下采樣一定倍數(shù)后,有一些小像素物體會(huì)在最后一層特征圖上消失,導(dǎo)致后續(xù)檢測(cè)網(wǎng)絡(luò)無法檢測(cè)出該目標(biāo),除此之外,還會(huì)遇到同一目標(biāo)尺度有大有小、特征難以準(zhǔn)確學(xué)習(xí)等情況。為了能讓大尺寸物體和小尺寸物體的特征都被有效提取并輸入進(jìn)檢測(cè)網(wǎng)絡(luò)中,研究人員在主干網(wǎng)絡(luò)的基礎(chǔ)上,增加了FPN 的結(jié)構(gòu),如圖2 所示。FPN 包括3 部分:下采樣金字塔、上采樣金字塔和橫向連接。具體而言,下采樣金字塔由ResNet-50 網(wǎng)絡(luò)的部分結(jié)構(gòu)組成,每層最后一個(gè)殘差結(jié)構(gòu)的特征激活輸出表示為{C2,C3,C4,C5}。上采樣金字塔可以有效結(jié)合低、中、高層不同尺度的特征,方法是對(duì)高階特征圖進(jìn)行多次上采樣,同時(shí)將該特征橫向連接至對(duì)應(yīng)下采樣金字塔中的前一層特征,二者進(jìn)行相加操作,使高層特征得到加強(qiáng)。圖2 中以P4 為例展示了橫向連接的細(xì)節(jié),可以看到上采樣金字塔中的P5 特征做步長為2 的最鄰近上采樣,同時(shí)對(duì)應(yīng)下采樣金字塔中的C4 層特征經(jīng)過1×1 的卷積,使其和后一層的特征圖通道數(shù)保持相同,然后與上采樣后的特征圖像素加合,并使用3×3 的卷積層消除上采樣的混疊效應(yīng)。P6 是P5 進(jìn)行一次最大池化產(chǎn)生的層,隨著訓(xùn)練次數(shù)的增加不斷迭代融合,直到生成精細(xì)化的特征圖。
圖2 FPN 結(jié)構(gòu)
1.1.3 multi-FPN
FPN 是融合多層次信息的一種有效的多尺度方法,在通用目標(biāo)檢測(cè)任務(wù)中取得了不錯(cuò)的效果,但值得注意的是,遙感圖像中的目標(biāo)尺度差異過大,且復(fù)雜多變的背景會(huì)對(duì)前景目標(biāo)特征的分辨產(chǎn)生較強(qiáng)的干擾,尤其是存在一些類目標(biāo)的物體,比如海岸邊的集裝箱與停泊船只目標(biāo)的特征相似,給特征提取工作帶來了很大的困難。因此,通過FPN 獲得的特征信息可能不足以很好地區(qū)分這些目標(biāo)。為了解決此問題,本章對(duì)特征金字塔的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了優(yōu)化,提出了跨層連接,改變了上采樣金字塔的輸出層級(jí),進(jìn)一步增強(qiáng)特征的傳播和高、中、低層特征的融合,并使用雙線性插值法替代原本的最鄰近插值法,使得特征上采樣效果更好,經(jīng)過改進(jìn)的FPN 結(jié)構(gòu)如圖3 所示。
圖3 multi-FPN 結(jié)構(gòu)
主干網(wǎng)絡(luò)仍然選擇ResNet-50,在下采樣金字塔中,多層特征映射{C2,C3,C4,C5}保持不變,對(duì)應(yīng)每個(gè)卷積塊的最后一層,步長為{4、8、16、32}像素,C5 是ResNet-50 最頂層的輸出,其通過一個(gè)1×1 的卷積層,將通道數(shù)轉(zhuǎn)為256,得到上采樣金字塔的P5。P5 層首先經(jīng)過2 次下采樣,步長為2,分別得到P6、P7 層;其次經(jīng)過橫向連接和跨層連接,依次得到P4、P3 層;最后輸出{P3,P4,P5,P6,P7}多層特征圖。橫向連接和跨層連接的細(xì)節(jié)如圖3 中所示。例如,為了得到P4,首先需要對(duì)C4 使用1×1 的卷積操作,以減少C4 通道的數(shù)量;其次對(duì)之前的所有層(P7、P6、P5)進(jìn)行雙線性插值上采樣,接著使用concat 操作(數(shù)組間的相加)來合并它們,最后利用3×3 的卷積以消除特征混疊,同時(shí)減少通道數(shù)量。通過層層迭代,輸出了多尺度的特征圖。通過實(shí)驗(yàn)發(fā)現(xiàn),橫向連接可以保證有效利用底層定位的細(xì)細(xì)節(jié)信息,跨層連接能夠進(jìn)一步加強(qiáng)多層次特征的融合,同時(shí),更深的P6、P7 卷積層可以獲得更多的語義信息,有助于復(fù)雜環(huán)境下的目標(biāo)特征獲取。另外,F(xiàn)PN 在上采樣時(shí)使用了最鄰近插值算法,過程如下:假設(shè)原始特征圖像素大小為w1×h1,上采樣后像素大小為w2×h2,上采樣特征圖中有1 像素點(diǎn) (x2,y2),則對(duì)應(yīng)于原始特征圖上的像素點(diǎn)位置 (x1,y1)為
由于像素值x1、y1必須為整數(shù),所以計(jì)算中出現(xiàn)小數(shù)時(shí)需要四舍五入,這樣會(huì)造成特征圖像素的不連續(xù)性,且多次上采樣后精度缺失嚴(yán)重。本文使用雙線性插值算法對(duì)上采樣過程進(jìn)行改進(jìn),過程如下:假設(shè)想得到上采樣圖像像素點(diǎn)對(duì)應(yīng)在原圖中的位置P(x,y),離該位置最近的4 個(gè)像素點(diǎn)值分別為Q11(x1,y1)、Q12(x2,y2)、Q22(x3,y3)、Q21(x4,y4),如圖4 所示。
圖4 雙線性插值算法示意
P的像素值與鄰近像素點(diǎn)的距離相關(guān),距離越近的點(diǎn)像素值影響越大,計(jì)算過程如下:
1)根據(jù)Q11(x1,y1) 和Q22(x3,y3)的像素值計(jì)算得到R1(x,y1)位置的像素值。
2)根據(jù)Q12和Q22的像素值計(jì)算得到R2(x,y2)位置的像素值。
3)由R1 和R2 的像素值計(jì)算得到最終結(jié)果P(x,y)。
兩階段檢測(cè)網(wǎng)絡(luò)的結(jié)構(gòu)和損失函數(shù)與Faster R-CNN 模型相同,利用提取的特征對(duì)目標(biāo)進(jìn)行分類和定位。特征圖首先輸入進(jìn)RPN 中,在錨點(diǎn)的基礎(chǔ)上做前景和背景的二分類、邊界框回歸以及后處理,得到建議特征圖;其次將建議特征圖輸入RoI pooling 層裁剪成固定大小;最后利用2 個(gè)全連接層進(jìn)行第2 次檢測(cè),包括具體類別劃分、邊界框回歸和后處理,得到最終的檢測(cè)結(jié)果。
本文在公開光學(xué)遙感數(shù)據(jù)集NWPU VHR-10[20]上進(jìn)行實(shí)驗(yàn),該數(shù)據(jù)集總共800 張超高分辨率光學(xué)遙感圖像,每張像素大小約為800×1 000,包含從Google Earth 和Vaihingen 數(shù)據(jù)集中裁剪收集的籃球場(chǎng)、船只、飛機(jī)、儲(chǔ)油罐、田徑場(chǎng)、棒球場(chǎng)、車輛、網(wǎng)球場(chǎng)、橋梁、碼頭10 類目標(biāo)類別,由航拍圖像判讀專家手動(dòng)注釋成水平標(biāo)注框加標(biāo)簽的形式,如(xmin,ymin,xmax,ymax,label)。本文實(shí)驗(yàn)使用其中的正樣例圖像集,每幅圖像中至少存在1 個(gè)待檢測(cè)的目標(biāo),共計(jì)650 張圖,大約有3 775個(gè)標(biāo)注目標(biāo),該數(shù)據(jù)集經(jīng)圖像增強(qiáng)后相比于同類水平標(biāo)注數(shù)據(jù)集類別和目標(biāo)數(shù)目都多,在遙感圖像數(shù)據(jù)中具有代表性。本文實(shí)驗(yàn)中訓(xùn)練、測(cè)試所用到的硬件設(shè)備和開發(fā)環(huán)境如下:硬件設(shè)備:CPU:Intel(R) Xeon(R) Gold 6 128 3.40 GHz;GPU:Nvidia Tesla P100 16 GB RAM;系統(tǒng)配置:Ubuntu 16.04,Anaconda 3-5.2,CUDA 9.0;開發(fā)環(huán)境:Python 3.6,Tensorflow 1.12,Keras 2.2.4。
本文方法使用的網(wǎng)絡(luò)模型深度較深,而NWPU VHR-10 中的正樣例圖像集僅包含650 張圖片,即使裁剪后數(shù)量依然不足。故本章實(shí)驗(yàn)使用了模型預(yù)訓(xùn)練和圖像數(shù)據(jù)增強(qiáng)的策略。使用ImageNet 分類預(yù)訓(xùn)練的Resnet-50 模型初始化網(wǎng)絡(luò),再移植到數(shù)據(jù)量有限的NWPU VHR-10 上進(jìn)行微調(diào),數(shù)據(jù)增強(qiáng)方面使用了隨機(jī)圖像翻轉(zhuǎn)、隨機(jī)剪裁、角度旋轉(zhuǎn)、顏色抖動(dòng)等操作。本文實(shí)驗(yàn)隨機(jī)抽取圖片劃分訓(xùn)練集、驗(yàn)證集和測(cè)試集,比例為6∶2∶2。實(shí)驗(yàn)基于TensorFlow 框架進(jìn)行,為了加快訓(xùn)練、驗(yàn)證和測(cè)試的速度,采用TFRecord格式輸入數(shù)據(jù)。實(shí)驗(yàn)參數(shù)方面,根據(jù)對(duì)NWPU VHR-10 數(shù)據(jù)集中待檢測(cè)目標(biāo)的實(shí)際尺寸和寬高比率進(jìn)行統(tǒng)計(jì)分析,設(shè)置RPN 中{P2,P3,P4,P5,P6}的錨點(diǎn)框區(qū)域大小為{252,502,1002,2252,4002}像素,錨點(diǎn)框?qū)捀弑葹閧1,1/22,1/3,3,1/4,4,1/5,5}。
本文中的性能評(píng)估標(biāo)準(zhǔn)使用單一類別平均精度(average precision,AP)和各類別精度均值(mean average precision,mAP),能夠相對(duì)客觀地評(píng)價(jià)檢測(cè)時(shí)所有類別的平均好壞程度,值越大,表示目標(biāo)檢測(cè)模型的性能越好,衡量速度采用的是測(cè)試1 張圖片所用的平均時(shí)間,這也是目標(biāo)檢測(cè)領(lǐng)域的通用標(biāo)準(zhǔn)。
本文做了一系列的對(duì)比實(shí)驗(yàn),以驗(yàn)證multi-FPN 方法的有效性。表1 總結(jié)了所用方法在不同結(jié)構(gòu)組合下的檢測(cè)結(jié)果,主要關(guān)注評(píng)價(jià)的是橫向連接、跨層連接、不同的輸出層級(jí)以及上采樣的方式所帶來的影響。表2 中結(jié)構(gòu)統(tǒng)一采用ResNet-50作為主干網(wǎng)絡(luò),檢測(cè)網(wǎng)絡(luò)部分相同。可以看到FPN 的檢測(cè)精度約為86.61%,測(cè)試單張圖片的時(shí)間為0.32 s。當(dāng)FPN 去掉橫向連接結(jié)構(gòu)時(shí),如組合1 去掉了1×1 的卷積側(cè)連接,這種僅靠多次上、下采樣輸出的特征圖盡管仍然具有很強(qiáng)的語義信息,但位置信息變得不再精確,mAP 較FPN 下降了約12 %,由此看出,主干網(wǎng)絡(luò)的各層通過橫向連接連接到自頂向下的特征金字塔,可以傳遞出更精確的特征位置。組合2 與組合1 對(duì)比以及組合3 與FPN 的對(duì)比,可以看到跨層連接結(jié)構(gòu)對(duì)最終檢測(cè)精度的提高幅度約為2%,說明使用跨層連接有助于多尺度目標(biāo)特征進(jìn)一步地重用和傳播。組合4 改變了特征圖的輸出層級(jí),mAP 較組合3 上升了約1%,可見CNN 的更深層可以獲得更多的語義信息,有助于遙感圖像中復(fù)雜環(huán)境下的目標(biāo)特征獲取。組合5 使用了雙線性插值算法替代了原來的最近鄰插值算法,精度上升了約2%,且檢測(cè)速度沒有明顯變化,故選擇組合5 作為本文最終改進(jìn)的遙感圖像目標(biāo)檢測(cè)方法。
表1 本文方法在不同結(jié)構(gòu)組合下的檢測(cè)結(jié)果
表2 不同方法檢測(cè)性能對(duì)比 %
表2 顯示了不同方法在NWPU VHR-10 數(shù)據(jù)集上的性能對(duì)比。本文實(shí)驗(yàn)對(duì)比了NWPU VHR-10 數(shù)據(jù)集的基準(zhǔn)方法RICNN 以及具有代表性的檢測(cè)方法Faster R-CNN、YOLO v2 和SSD,從表2可以看到,本文方法在大部分類別上面都達(dá)到了最高精度,mAP 達(dá)到91.92%,由此證明基于multi-FPN 的目標(biāo)檢測(cè)方法在遙感圖像中表現(xiàn)優(yōu)異。相比于同樣使用ResNet-50 做主干網(wǎng)絡(luò)的Faster RCNN,本方法在車輛、船只、儲(chǔ)油罐等尺寸較小的目標(biāo)上AP 有了不小的提升,說明multi-FPN 策略有效提升了小目標(biāo)的檢測(cè)精度;對(duì)于碼頭、籃球場(chǎng)、網(wǎng)球場(chǎng)等相對(duì)較大的目標(biāo)精度也有所提升,表明了更深的卷積層輸出對(duì)目標(biāo)檢測(cè)的重要性。
如圖5 以熱力圖的形式顯示了multi-FPN 的各層輸出特征圖{P3,P4,P5,P6,P7},可以看到,對(duì)于示例圖中復(fù)雜背景下的船只小目標(biāo),較低層的P4 特征圖能夠很好地區(qū)分出礁石、海浪和船只特征的不同,以此層作為兩階段檢測(cè)網(wǎng)絡(luò)的輸入,對(duì)于檢測(cè)精度的提升較為明顯。圖6 展示了測(cè)試集中的部分檢測(cè)結(jié)果示例。
圖5 multi-FPN 輸出特征圖示例
圖6 測(cè)試集部分檢測(cè)結(jié)果示例
本文主要從特征提取的角度對(duì)目標(biāo)檢測(cè)方法進(jìn)行了研究,提出了一種基于multi-FPN 的遙感圖像目標(biāo)檢測(cè)方法。一方面,在FPN 網(wǎng)絡(luò)模型的基礎(chǔ)上加入跨層連接結(jié)構(gòu),通過改變由上到下金字塔的輸出層級(jí),保證了面對(duì)遙感圖像復(fù)雜背景的環(huán)境下依然能夠有效地提取出目標(biāo)特征,進(jìn)一步地增強(qiáng)了特征的融合和傳播;另一方面,采用雙線性插值法替代原本的最鄰近插值法,減少特征上采樣的失真,進(jìn)而提升了檢測(cè)精度。結(jié)構(gòu)和方法對(duì)比實(shí)驗(yàn)結(jié)果表明,本方法在檢測(cè)精度上超越了目前普遍在用的目標(biāo)檢測(cè)方法,在公開遙感圖像數(shù)據(jù)集NWPU VHR-10 上mAP 達(dá)到91.92%。