王港 吳金亮 陳金勇 高峰
隨著遙感技術(shù)的不斷進(jìn)步,遙感圖像的空間分辨率也在穩(wěn)步提高,人們可以獲得越來越多的高分辨率遙感圖像。因此,在海量數(shù)據(jù)條件下的高分辨率遙感圖像目標(biāo)識別就顯得尤為重要。遙感圖像目標(biāo)識別已被廣泛研究,許多研究學(xué)者主要使用人工提取圖像特征進(jìn)行目標(biāo)識別的方法[1][2],比如局部二值模式(LBP)、梯度方向直方圖(HOG)[3]、Gabor等特征[4],然后將這些特征以特征向量的形式輸入到一個傳統(tǒng)的分類器比如SVM、AdaBoost、決策樹等進(jìn)行分類,在目標(biāo)識別任務(wù)中取得了很好的效果,比如飛機(jī)識別,艦船識別等[5]。但是這種人工特征提取方法魯棒性方面、位移、旋轉(zhuǎn)等影響方面往往表現(xiàn)欠佳。
深度學(xué)習(xí)是近年來在大數(shù)據(jù)環(huán)境下興起的一門機(jī)器學(xué)習(xí)技術(shù),其實(shí)質(zhì)是通過構(gòu)建具有多層結(jié)構(gòu)的機(jī)器學(xué)習(xí)模型和海量的訓(xùn)練數(shù)據(jù)來學(xué)習(xí)數(shù)據(jù)中的復(fù)雜特征,用于之后的分析、預(yù)測等應(yīng)用。由于其具備海量數(shù)據(jù)的學(xué)習(xí)能力和高度的特征抽象能力,在諸多圖像應(yīng)用領(lǐng)域都取得了相比傳統(tǒng)方法革命性的成功。
自2014年開始,基于深度學(xué)習(xí)(主要是卷積神經(jīng)網(wǎng)絡(luò)(CNN)[6])的目標(biāo)識別在自然圖像應(yīng)用中也取得了巨大突破。例如,以R-CNN(region with CNN features)方法為代表的結(jié)合通用候選區(qū)域算法和CNN分類的目標(biāo)識別框架(R-CNN[7]、SPPNET(spatial pyramid pooling net)[8]、Fast R-CNN(fast region with CNN features)方法[9]、Faster R-CNN(faster region with CNN features)方法[10])。其候選區(qū)域采用Selective Search[11]、EdgeBox[12]或BING特征[13]等通用目標(biāo)候選方法。而這些通用區(qū)域候選算法本質(zhì)上還是遍歷滑窗的方法。這些方法往往產(chǎn)生巨量的候選窗口(如在一幅遙感圖像上往往可以產(chǎn)生數(shù)百萬個候選目標(biāo)區(qū)域),雖然類似SPPNET、Fast R-CNN等方法采用在卷積出的特征圖上直接提取特征,避免了對每個候選區(qū)域進(jìn)行大量的重復(fù)卷積操作,但由于沒有減少非必要的目標(biāo)搜索,其計算量依然很大。而且為了兼顧通用,目標(biāo)的定位與框選并不十分準(zhǔn)確,進(jìn)而導(dǎo)致后期的CNN識別錯誤。后期的算法包括Fast R-CNN和Faster R-CNN等都采用回歸學(xué)習(xí)方法對目標(biāo)的準(zhǔn)確位置進(jìn)行了修正,甚至有YOLO(you only look once)方法[14]、SSD(single shot multibox detector)方法等算法通過訓(xùn)練直接給出定位與識別結(jié)果,但這些算法都需要大量的學(xué)習(xí)樣本用于預(yù)測準(zhǔn)確的回歸位置,且大多設(shè)計為針對圖像中占比大的目標(biāo),對于“大范圍、小目標(biāo)”的遙感識別效果并不理想。
上述深度學(xué)習(xí)算法模型,都是在ImageNet挑戰(zhàn)賽[15]上獲得過最高名次的算法。ImageNet挑戰(zhàn)賽極大地促進(jìn)了計算機(jī)視覺領(lǐng)域目標(biāo)檢測識別領(lǐng)域的發(fā)展。但是ImageNet所包含的自然圖像和衛(wèi)星遙感影像,存在著一些關(guān)鍵性區(qū)別:(1)遙感影像中目標(biāo)相對影像較小,而且其存在很多的旋轉(zhuǎn)、仿射等現(xiàn)象;(2)輸入圖像巨大,往往有數(shù)百萬像素甚至數(shù)億像素;(3)十分缺乏相關(guān)的訓(xùn)練學(xué)習(xí)數(shù)據(jù),尤其在深度學(xué)習(xí)的算法中,高質(zhì)量高數(shù)量的訓(xùn)練樣本對算法效果起到至關(guān)重要的作用;(4)欺騙性,遙感影像由于其拍攝高度原因,獲得的信息可能是不真實(shí)的。故將深度學(xué)習(xí)的算法模型借鑒到遙感影像處理領(lǐng)域,還需要做更多的工作。
針對遙感影像的具體情況,本文設(shè)計了基于Faster R-CNN模型的高分辨率遙感影像目標(biāo)檢測算法。為解決訓(xùn)練樣本少、目標(biāo)小圖像大的問題,本文通過谷歌地圖建立了小圖像目標(biāo)樣本庫;為解決輸入圖像巨大難以處理的問題,本文對檢測輸入的遙感影像進(jìn)行分塊處理,使得每一塊都可以直接進(jìn)行基于Faster R-CNN模型的高分辨率遙感影像目標(biāo)檢測,同時針對重復(fù)區(qū)域建議的問題,進(jìn)行了RPN優(yōu)化,方便了并行化處理。實(shí)驗結(jié)果表明,本文算法很好解決了深度學(xué)習(xí)模型應(yīng)用于遙感影像的諸多問題,其檢測的準(zhǔn)確率、效率、實(shí)用性都較傳統(tǒng)方法有很好提高。
本文總體算法流程如圖1所示,首先對輸入的寬幅遙感影像進(jìn)行分塊操作,然后通過公共卷積層(卷積層1)后,分兩條路線進(jìn)行。路線1為Faster R-CNN分類過程,將所選區(qū)域進(jìn)行分類處理,給出類別概率;路線2為區(qū)域建議網(wǎng)絡(luò)(RPN)過程,通過滑窗及后續(xù)網(wǎng)絡(luò),給出包含目標(biāo)的準(zhǔn)確區(qū)域建議。路線1和路線2配合,得到被檢測影像包含的目標(biāo)及其具體位置。
3.1 切分設(shè)計
高分辨率遙感影像目標(biāo)檢測,有兩種情況:對小塊遙感影像進(jìn)行檢測,小塊影像和訓(xùn)練樣本大小類似,可直接作為檢測網(wǎng)絡(luò)的輸入;寬幅遙感影像檢測,考慮到直接輸入整幅影像而帶來的網(wǎng)絡(luò)參數(shù)增加、計算機(jī)內(nèi)存限制等原因,現(xiàn)有條件無法直接處理,故在輸入到檢測網(wǎng)絡(luò)前,需要先對其進(jìn)行分塊,針對每一塊進(jìn)行目標(biāo)檢測,再將檢測結(jié)果匯總到原圖中來。本節(jié)針對寬幅遙感影像的切分處理進(jìn)行詳細(xì)說明。
具體分塊檢測方法如下:
1)設(shè)寬幅遙感影像長寬為H、W,擬分塊大小為M、N,切分重疊長寬均為l,影像左上角為坐標(biāo)原點(diǎn);
2)從坐標(biāo)原點(diǎn)開始對寬幅遙感影像進(jìn)行分塊,分塊采取交疊方式進(jìn)行;
3)分塊的對角坐標(biāo)為:{(0,0),(M,N)},{(M-l,0),(2M-l,N)}……{((i-1)(M-l),(j-1)(N-l)),((iM-(i-1)l),(jN-(j-1)l))}……{(H-l,W-l),(H, W)};
3.2 重疊設(shè)計
節(jié)提到的重疊區(qū)域的長寬均為l,在確定l的大小時,考慮到了檢測目標(biāo)的大小以及算法模型的效率等問題,擬以目標(biāo)長度的1.1倍作為l的大小。這樣選擇l的數(shù)值,可以使得總有一塊分塊完全包含目標(biāo),且使得重疊不至于太大而過多影響計算效率。因為無法預(yù)測目標(biāo)的姿態(tài),故重疊區(qū)的長寬都設(shè)置為l。
4.1 RPN
區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network,RPN)將一幅圖輸入,得到一組方框目標(biāo)區(qū)域以及對應(yīng)的目標(biāo)分?jǐn)?shù)。此模型將以全卷積神經(jīng)網(wǎng)絡(luò)(fullyconvolutionalnetwork, FCN)[16]的形式進(jìn)行設(shè)計。設(shè)計的最終目標(biāo)是為RPN與Faster R-CNN部分共享卷積層。本文采用VGG16[17]作為卷積層模型。RPN和Faster R-CNN可以共享13層卷積層。
RPN在13層卷積層后,加入一個滑窗網(wǎng)絡(luò),這個滑窗網(wǎng)絡(luò)是一個 的全連接網(wǎng)絡(luò)。其后映射到一個512維的低維向量,這個向量分別連接兩個獨(dú)立的全連接層:方框回歸器層和框分類層。n的值為3,在每一個滑窗位置,選擇k個參考框作為候選對象,選擇3個尺度和3個比例作為候選框的參量,也就是選擇個參考框。RPN結(jié)構(gòu)示意圖如圖2所示。
為了訓(xùn)練RPN,給每一個參考框一個二類標(biāo)簽(是目標(biāo)或不是目標(biāo))。兩種情況,會設(shè)置為正標(biāo)簽:(1)本參考框與真實(shí)框擁有最大的IoU(Intersection-over-Union);(2)本參考框與任何一個真實(shí)框擁有超過0.7的IoU。而候選框與任何一個真實(shí)框都沒有高于0.3的IoU,則被標(biāo)為負(fù)標(biāo)簽。兩種情況都不是的,則不被選為參考框。
本文定義了一個多任務(wù)目標(biāo)函數(shù),作為訓(xùn)練時優(yōu)化的對象,如式(1)所示。
4.2 重疊優(yōu)化
從4.1介紹中可以看出,RPN網(wǎng)絡(luò)形成的區(qū)域建議候選框中有很多重疊部分。同時,在寬幅遙感影像上進(jìn)行分塊處理,也存在一定的重疊,兩種重復(fù)造成處理的時間開銷和資源開銷增大,所以針對重疊復(fù)選框進(jìn)行濾除。
針對這兩種情況形成的重疊候選框,在候選框匯總合并到原始寬幅影像后,統(tǒng)一進(jìn)行濾除。方法采用效果良好的非極大值抑制(nonmaximumsuppression,NMS)。以候選框的類別可能性作為對比數(shù)值,進(jìn)行非極大值抑制。具體算法步驟:
(1)在候選框領(lǐng)域中,判斷屬于同一類的幾個候選框是否存在交疊,若存在,置于同一個交疊集中;
(2)在交疊集中,設(shè)候選框可能性值為P(i)。對比P(i)和相鄰兩個P(i-1)、P(i+1)。若P(i)大于P(i-1)和P(i+1),則以P(i+1)為暫時局部極大值,跳到i+2,繼續(xù)比較;若P(i)大于P(i-1)而小于P(i+1),則加1,繼續(xù)進(jìn)行P(i+1)與領(lǐng)域的比較。
(3)依次進(jìn)行到最后,選擇類別可能性最大的候選框為本類在本位置的最終定位結(jié)果。
重疊區(qū)域優(yōu)化之后,只針對優(yōu)化結(jié)果進(jìn)行目標(biāo)分類,極大地節(jié)省了計算資源和時間。
5.1 訓(xùn)練樣本庫
深度學(xué)習(xí)的所有算法都建立在大量數(shù)據(jù)的基礎(chǔ)上,算法都是在大量有效數(shù)據(jù)上進(jìn)行特征和規(guī)律學(xué)習(xí)。遙感影像數(shù)量很多,但是包含有特定類別、且分辨率一致的影像數(shù)據(jù)并不夠多。本文中建立了高分辨率遙感影像的典型目標(biāo)樣本庫,通過這個樣本庫進(jìn)行典型目標(biāo)的學(xué)習(xí)和檢測。
本文搜集的典型目標(biāo)包括:艦船、飛機(jī)、機(jī)場三種。搜集包含目標(biāo)的樣本,主要按照由大到小的范圍進(jìn)行搜集,比如艦船樣本,即按照“國家——港口——艦船”的思路進(jìn)行搜集。其余兩種樣本搜集思路與艦船類似。
搜集的高分辨率遙感影像數(shù)據(jù)分辨率在0.5米左右。搜集到的粗樣本數(shù)據(jù)再進(jìn)行細(xì)加工。Faster R-CNN訓(xùn)練的樣本數(shù)據(jù)一般要求在1000*1000像素左右,故制作細(xì)樣本時,也將樣本大小選定在1000*1000左右。每一幅細(xì)樣本中包含1到5個目標(biāo)。典型樣本實(shí)例如圖3所示,(1)(2)(3)為艦船樣本示例,(4)(5)(6)為機(jī)場樣本示例,(7)(8)(9)為飛機(jī)樣本示例。
5.2 目標(biāo)快速檢測
本文采用的模型為Faster R-CNN,其本質(zhì)為RPN結(jié)合Fast R-CNN,其中RPN作為區(qū)域建議的部分而Fast R-CNN作為主體分類結(jié)構(gòu)存在,二者共享VGG16網(wǎng)絡(luò)模型的卷積結(jié)構(gòu),從而減少計算。同時,F(xiàn)ast R-CNN檢測網(wǎng)絡(luò)不再采用Selective Search區(qū)域建議方法。具體Fast R-CNN結(jié)構(gòu),參見文獻(xiàn)[7]。
基于Faster R-CNN的目標(biāo)檢測主要包括兩個步驟,訓(xùn)練和檢測。其中訓(xùn)練過程,由于RPN和Fast R-CNN都可以進(jìn)行端到端訓(xùn)練。在反向傳播中,采用隨機(jī)梯度下降法,結(jié)合損失函數(shù)進(jìn)行網(wǎng)絡(luò)參數(shù)調(diào)節(jié)。同時,隨機(jī)采樣正樣本和負(fù)樣本的比例為1:1。
(1)網(wǎng)絡(luò)訓(xùn)練
RPN和Fast R-CNN部分都可以獨(dú)立的進(jìn)行訓(xùn)練學(xué)習(xí),但是這樣它們的卷積部分就會不同。本文設(shè)計一種訓(xùn)練方法,使得RPN和Fast R-CNN可以共享卷積層,而非獨(dú)立訓(xùn)練。本文采用四階段訓(xùn)練算法,通過選擇性優(yōu)化,實(shí)現(xiàn)了卷積層的共享。具體步驟總結(jié)如下:
1)按照3.1介紹RPN的方法,對RPN進(jìn)行訓(xùn)練。網(wǎng)絡(luò)初始化采用ImageNet預(yù)訓(xùn)練模型,微調(diào)訓(xùn)練采用端到端的訓(xùn)練流程。
2)使用1)訓(xùn)練好的RPN輸出區(qū)域建議,訓(xùn)練獨(dú)立的Fast R-CNN目標(biāo)檢測網(wǎng)絡(luò)。到此時,兩個網(wǎng)絡(luò)還沒有共享卷積層。
3)使用2)得到的Fast R-CNN檢測網(wǎng)絡(luò)初始化RPN訓(xùn)練,訓(xùn)練RPN時,保持卷積層不變,調(diào)節(jié)RPN獨(dú)有網(wǎng)絡(luò)部分的參數(shù)。
4)保證共享的卷積層不變,訓(xùn)練Fast R-CNN檢測網(wǎng)絡(luò),只調(diào)整Fast R-CNN的全連接層。
這樣,既訓(xùn)練了兩個網(wǎng)絡(luò)共享的卷積層,也分別調(diào)整了兩個網(wǎng)絡(luò)各自的獨(dú)立部分。
(2)目標(biāo)檢測
本文中寬幅遙感影像檢測,在輸入到檢測網(wǎng)絡(luò)前,需要先對其進(jìn)行分塊,針對每一塊進(jìn)行目標(biāo)檢測,再將檢測結(jié)果匯總到原圖中來。
具體分塊檢測方法如下:
1)從坐標(biāo)原點(diǎn)開始對寬幅遙感影像進(jìn)行分塊,分塊采取交疊方式進(jìn)行,分塊的對角坐標(biāo)見3.1切分設(shè)計;
2)將分塊送入RPN網(wǎng)絡(luò),得到區(qū)域建議,并匯總到原圖中,坐標(biāo)轉(zhuǎn)化公式為:
3)對全圖進(jìn)行非極大值抑制操作,濾除交疊建議區(qū)域;
4)將每一個去除交疊的分塊I(i,j)輸入到檢測網(wǎng)絡(luò),檢測網(wǎng)絡(luò)給出類別和位置;
其中,n表示本塊中檢測到的第n個目標(biāo)。X、Y表示目標(biāo)的全局坐標(biāo),x、y表示目標(biāo)在分塊中的局部坐標(biāo)。
6.1 實(shí)驗數(shù)據(jù)集
利用從Google Earth上獲取的0.5m分辨率的光學(xué)遙感圖像進(jìn)行實(shí)驗,包括艦船、機(jī)場、飛機(jī)3種目標(biāo)。其中艦船樣本500幅,飛機(jī)樣本300幅,機(jī)場樣本118幅。隨機(jī)從帶有標(biāo)簽的數(shù)據(jù)集中選出艦船樣本300幅,飛機(jī)樣本200幅,機(jī)場樣本90幅,作為訓(xùn)練樣本;其余作為測試樣本,訓(xùn)練樣本與測試樣本不重復(fù)。
6.2 實(shí)驗環(huán)境配置
本算法在Matlab2014b上進(jìn)行編寫,采用Caffe深度學(xué)習(xí)開源庫作為模型構(gòu)建基礎(chǔ)。計算機(jī)為聯(lián)想Think Station P100,至強(qiáng)E2630 v3(雙路),顯卡為英偉達(dá)Quadro M6000 24G。本算法訓(xùn)練和測試均是在GPU加速下完成。
由于輸入的檢測影像大小不一,本文在輸入的第一步對其進(jìn)行了尺度歸一,以600*600作為標(biāo)準(zhǔn)輸入大??;對卷積特征圖進(jìn)行滑窗處理時,以10像素作為滑窗步幅;訓(xùn)練時學(xué)習(xí)率為0.001,學(xué)習(xí)動量為0.9,權(quán)重衰退率為0.0005,迭代次數(shù)為3000。
6.3 實(shí)驗分析
本文采用了三種典型目標(biāo)作為測試對象,分別是艦船、飛機(jī)和機(jī)場。并對分塊后的遙感影像進(jìn)行了準(zhǔn)確率測試。分塊后平均檢測時間為0.2s。具體如表1所示。
?
傳統(tǒng)算法遙感影像目標(biāo)檢測的準(zhǔn)確率一般在80%左右。由表1可知,本文方法對于高分辨率遙感影像目標(biāo)檢測準(zhǔn)確率更高。
同時,本文進(jìn)行了寬幅遙感影像的目標(biāo)檢測測試,同樣取得了良好的檢測效果。圖4為港口內(nèi)艦船檢測的結(jié)果示例,圖5為機(jī)場內(nèi)飛機(jī)檢測的結(jié)果示例,圖6為機(jī)場檢測的結(jié)果示例。由三張圖可以看出,本文方法對典型目標(biāo)的檢測效果十分良好,其復(fù)雜的環(huán)境背景并沒有對結(jié)果造成影響。
本文提出了一種基于深度學(xué)習(xí)模型(Faster R-CNN)的高分辨率遙感影像目標(biāo)檢測方法。針對高分辨率遙感影像內(nèi)容豐富、尺度大等問題,將計算機(jī)視覺領(lǐng)域目標(biāo)檢測效果最好的模型通過寬幅遙感影像分塊、RPN優(yōu)化等多處改進(jìn)應(yīng)用于遙感影像處理領(lǐng)域,并在寬幅高分辨率遙感影像目標(biāo)檢測方面取得了很好的效果。
在整個實(shí)驗中,本文介紹了從樣本制作、模型結(jié)構(gòu)、環(huán)境配置以及訓(xùn)練參數(shù)等多方面的工程化應(yīng)用實(shí)施細(xì)節(jié),為接下來繼續(xù)開展高分辨率遙感影像處理打下了良好基礎(chǔ)。實(shí)驗表明,在高分辨率遙感影像典型目標(biāo)檢測中,本文方法具有很好的效果,克服了目標(biāo)復(fù)雜的環(huán)境背景。
[1]徐希孺,柳欽火,陳家宜.遙感陸面溫度[J].北京大學(xué)學(xué)報(自然科學(xué)版),1998,(Z1):116-121.
[2]韓啟金,傅俏燕,潘志強(qiáng),楊磊,王愛春.利用HJ-1B星熱紅外遙感圖像研究城市熱島效應(yīng)[J].航天返回與遙感,2012,(01):67-74.
[3]覃志豪,Zhang Minghua,ArnonKarnieli,Pedro Berliner.用陸地衛(wèi)星TM6數(shù)據(jù)演算地表溫度的單窗算法[J].地理學(xué)報,2001,(04):456-466.
[4]Jimenez-Munoz J C,Sobrino J A.A Generalized Single-channel Method for Retrieving Land Surface Temperature from Remote Sensing Data[J].Journal of Geophysical Research: Atmospheres(1984-2012),2003,108(D22).
[5]Qin Z,Karnieli A.Progress in the Remote Sensing of Land Surface Temperature and Ground Emissivity Using NOAA-AVHRR Data[J].International Journal of Remote Sensing,1999,20(12):2367-2393.
[6]Wan Z,Li Z L.A Physics-based Algorithm for Retrieving Land-surface Emissity and Temperature from EOS/MODIS Data[J],IEEE Transaction on Geoscience and Remote Sensing,1997,35:980-996
[7]張玉君.Landsat8簡介[J].國土資源遙感,2013,(01):176-177.
[8]白潔,劉紹民,扈光.針對TM/ETM +遙感數(shù)據(jù)的地表溫度反演與驗證[J].農(nóng)業(yè)工程學(xué)報,2008,(09):148-154+2.
[9]楊文.光譜比輻射率對衛(wèi)星遙感地表溫度影響的研究[J].高原氣象1997,01.
[10]傅碧宏.Landsat TM熱紅外遙感數(shù)據(jù)定量反演地下水富集帶的溫度信息-以甘肅河西地區(qū)石羊河流域為例[J].遙感技術(shù)與應(yīng)用,1999,02:456-460.
[11]江東.地面溫度的遙感反演:理論、推導(dǎo)及應(yīng)用[J].甘肅科學(xué)學(xué)報,2001,04:146-152.
[12]劉志武.利用ASTER遙感數(shù)據(jù)反演陸面溫度的算法及應(yīng)用研究[J].地理科學(xué)進(jìn)展,2003,05:507-514.
[13]郭廣猛,楊青生.利用MODIS數(shù)據(jù)反演地表溫度的研究[J].遙感技術(shù)與應(yīng)用,2004,19(1):34-36.