孫梓超,譚喜成,洪澤華,董華萍,3,沙宗堯,周松濤,楊宗亮
(1.武漢大學(xué)遙感信息工程學(xué)院,湖北 武漢 430079; 2.上海機電工程研究所,上海 201109;3.城市空間信息工程北京市重點實驗室,北京 100038)
高分辨率遙感影像的目標(biāo)檢測是計算機視覺識別、數(shù)字影像處理等技術(shù)在遙感領(lǐng)域的重要應(yīng)用[1-2],被廣泛應(yīng)用于軍事偵察、國土資源監(jiān)測、違章建筑及違法用地識別等領(lǐng)域。傳統(tǒng)遙感影像目標(biāo)檢測方法一般基于影像處理技術(shù),如幾何特征提取、紋理選擇、影像分割,在此基礎(chǔ)上用對比匹配的方法識別目標(biāo)。該方法需要充分的特征工程建設(shè),計算量大,工作流程復(fù)雜,檢測準(zhǔn)確率和效率較低,難以滿足實際應(yīng)用中對檢測質(zhì)量和效率的要求[2]。近年來,深度卷積神經(jīng)網(wǎng)絡(luò)在影像檢測識別等領(lǐng)域表現(xiàn)出較大優(yōu)勢,該網(wǎng)絡(luò)能根據(jù)標(biāo)注,從海量影像中有效提取目標(biāo)底層特征并進行訓(xùn)練。目標(biāo)對象的各種特征幾何關(guān)系被網(wǎng)絡(luò)不斷學(xué)習(xí)和優(yōu)化,最終得到目標(biāo)的高層深度特征[1],能準(zhǔn)確檢測影像中的目標(biāo)。本文基于深度卷積神經(jīng)網(wǎng)絡(luò),設(shè)計了一種遙感影像目標(biāo)檢測方法,并以飛機、油罐目標(biāo)為例,建立一個通用的遙感影像目標(biāo)檢測網(wǎng)絡(luò),在測試數(shù)據(jù)集上取得了較高的準(zhǔn)確率和置信度。
深度卷積神經(jīng)網(wǎng)絡(luò)是近年來深度學(xué)習(xí)應(yīng)用到影像分類、識別等方面的一個重大成果。卷積神經(jīng)網(wǎng)絡(luò)最早可追溯到1998年提出的LeNet-5,LeNet-5是第一個多層結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)模型,其訓(xùn)練過程采用反向傳播算法[3-5]。與傳統(tǒng)的全連接神經(jīng)網(wǎng)絡(luò)相比,LeNet-5增加了卷積層和池化層(降采樣層)。卷積層對影像進行逐像素特征提取,和前一層局部連接且參數(shù)共享,既保證了對影像特征的充分提取,又合理減少了參數(shù)數(shù)量;池化層降低了輸入到下一層的數(shù)據(jù)維度,從而降低了整個網(wǎng)絡(luò)的復(fù)雜度。然而,在實際應(yīng)用中,隨著網(wǎng)絡(luò)結(jié)構(gòu)深度加深,參數(shù)數(shù)量逐漸增多。同時,受制于當(dāng)時的硬件計算能力且缺乏大型訓(xùn)練數(shù)據(jù)集,訓(xùn)練中經(jīng)常出現(xiàn)過擬合現(xiàn)象,網(wǎng)絡(luò)模型訓(xùn)練所得的參數(shù)只在訓(xùn)練數(shù)據(jù)集上表現(xiàn)良好,而在其他數(shù)據(jù)集上效果一般,可擴展性低。在此背景下,HINTON等[6]于2006年提出了對待訓(xùn)練參數(shù)進行預(yù)訓(xùn)練的初始化方法,該方法比隨機初始化待訓(xùn)練參數(shù)的方法效果更好。隨著計算機硬件技術(shù)的突飛猛進,以及政府、企業(yè)等組織保有數(shù)據(jù)量的不斷增大,深度卷積神經(jīng)網(wǎng)絡(luò)迎來了發(fā)展高峰。2012年,KRIZHEVSKY等[7]設(shè)計了AlexNet模型,用一種整流線性單元(ReLU)來解決梯度消失問題,以Dropout[8]正則化技術(shù)防止過擬合,同時使用GPU作為網(wǎng)絡(luò)訓(xùn)練的硬件計算單元,大幅度提高了訓(xùn)練速度。該網(wǎng)絡(luò)模型在ImageNet圖片分類比賽中將錯誤率從26%降低到15%。目前常用的深度卷積網(wǎng)絡(luò)有VGG16、ResNet、Inception、Xception等。
深度卷積神經(jīng)網(wǎng)絡(luò)雖然在影像分類和識別領(lǐng)域取得了較大成就,但在目標(biāo)檢測中,不僅需要識別出影像中的目標(biāo),還需要檢測出目標(biāo)在影像中的位置,這對普通的深度卷積神經(jīng)網(wǎng)絡(luò)而言較為困難[9]。與此同時,對于復(fù)雜的影像如遙感影像,一張影像可能存在不同數(shù)量的多種目標(biāo),如何識別出不同目標(biāo)的種類并以包圍框形式準(zhǔn)確標(biāo)定目標(biāo)在影像中的位置,也成為深度卷積神經(jīng)網(wǎng)絡(luò)無法解決的難題。在此背景下,GIRSHICK[9]提出了區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(RCNN)。RCNN相比傳統(tǒng)目標(biāo)檢測方法,顯著提高了檢測準(zhǔn)確率和效率,以PASCAL VOC數(shù)據(jù)集為例,檢測精度從35.1%提高到了53.7%。
但RCNN也存在如下問題:1)候選區(qū)域影像預(yù)先提取,會消耗大量存儲空間;2)每個候選區(qū)域均輸入卷積神經(jīng)網(wǎng)絡(luò)(CNN)計算,存在大量交疊區(qū)域,重復(fù)進行特征提取會浪費資源。針對此,GIRSHICK團隊在原有基礎(chǔ)上提出了Fast-RCNN[9-10],其結(jié)構(gòu)設(shè)計更精巧,利用對輸入圖片的大小歸一化操作和均勻切割候選區(qū)域完成對應(yīng)步驟,大大減少了每張圖片的候選區(qū)域數(shù)量,顯著提高了網(wǎng)絡(luò)訓(xùn)練速度[10]。
之后,GIRSHICK團隊又提出了Faster-RCNN[10-11],相比RCNN和Fast-RCNN,其進步在于將目標(biāo)檢測的4個步驟統(tǒng)一在一個網(wǎng)絡(luò)結(jié)構(gòu)中。目標(biāo)特征提取使用一個深度卷積網(wǎng)絡(luò),如VGG16、Inception、ResNet,在候選框生成和類別判斷中共享特征參數(shù),大大減少了重復(fù)計算,利用區(qū)域生成網(wǎng)絡(luò)完成候選區(qū)域選取,進一步加快了訓(xùn)練和測試速度,實現(xiàn)了與GPU的完全兼容,是目前最準(zhǔn)確、快速的目標(biāo)檢測方法之一。
RCNN的發(fā)展變化如圖1所示。
圖1 RCNN的發(fā)展過程Fig.1 Development process of RCNN
Faster-RCNN目標(biāo)檢測過程可分為如下4個步驟:
1)利用CNN對圖片進行特征提取,生成特征圖(feature maps)。
2)在步驟1)生成的特征圖基礎(chǔ)上用區(qū)域推薦網(wǎng)絡(luò)(region proposal network,RPN)進行候選區(qū)域生成,該網(wǎng)絡(luò)用softmax激活函數(shù)通過每個候選框中心錨點(anchor)判別該候選框?qū)儆诒尘斑€是目標(biāo),再通過矩形框回歸對錨點修正獲得精確的候選框(proposals)。
3)Roi Pooling層獲得步驟1)、2)中的產(chǎn)生的feature maps和proposals,綜合得出輸入圖片中可能為目標(biāo)的部分及該部分在原圖中的相對位置,稱為proposal feature maps,并輸入全連接層進行目標(biāo)所屬類別判斷。
4)全連接層判斷步驟3)中傳入的每個proposal feature maps類別,并再次通過矩形框回歸獲得更精確的目標(biāo)矩形框,完成目標(biāo)檢測過程。
Faster-RCNN流程如圖2所示。作為Faster-RCNN目標(biāo)檢測方法中的2個重要組成部分,CNN和RPN分別解決了目標(biāo)是什么和目標(biāo)在哪里的問題。
CNN是深度學(xué)習(xí)方法應(yīng)用到遙感影像目標(biāo)檢測領(lǐng)域的理論和技術(shù)基礎(chǔ),盡管CNN在3種RCNN中的位置和具體結(jié)構(gòu)略有不同,但其作用均是進行物體特征提取和訓(xùn)練。CNN結(jié)構(gòu)中的主要組成部分包括卷積層、池化層、全連接層、激活函數(shù)。以本次實驗使用的VGG16網(wǎng)絡(luò)為例,其結(jié)構(gòu)如圖3所示。
卷積層用于圖片特征的提取,其實現(xiàn)依賴于卷積核,如圖4所示。卷積核在一幅5×5的影像上按從左到右從上往下進行逐像素卷積,將輸入影像中的一個3×3子區(qū)的特征聚合為輸出影像中的一個1×1子區(qū)。這樣做可使產(chǎn)生的特征圖中相鄰神經(jīng)元共享大部分輸入,保留圖像中目標(biāo)的大部分特征。遙感影像中,目標(biāo)與背景在紋理、范圍等方面的差異在圖片中表現(xiàn)為像素規(guī)律的差別,這種差別通過多層卷積核提取后轉(zhuǎn)化為特征圖上的黑色背景和非黑色的目標(biāo)抽象線條,從而達到獲得目標(biāo)特征的目的。
圖2 Faster-RCNN流程Fig.2 Flowchart of Faster-RCNN
圖3 VGG16網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Network structure of VGG16
圖4 卷積層示意圖Fig.4 Schematic diagram of convolution layer
池化層又稱為降采樣,在卷積后繼續(xù)降低參數(shù)數(shù)量和模型復(fù)雜度,同時進行特征壓縮,提取主要特征。常用的池化操作方法有最大池化法和平均池化法[12]。最大池化示意圖如圖5所示,其中尺寸為2×2的過濾器以2為步長在輸入特征圖上進行滑動,輸出由每個相鄰2×2區(qū)域中最大值組成的特征圖,從而達到降低參數(shù)數(shù)量和提取主要特征的目的。
遙感影像具有數(shù)據(jù)量大、圖片蘊含信息復(fù)雜等特點,因此在CNN中合理使用池化層能大幅度降低計算參數(shù),提高檢測速度。遙感影像中目標(biāo)和背景的像素值普遍存在差異,選擇合理的池化層舍去的信息絕大多數(shù)是無用信息,對網(wǎng)絡(luò)的識別能力影響很小。
全連接層在整個CNN中起“分類器”作用,在實際使用中,全連接層可由卷積操作實現(xiàn),相當(dāng)于卷積核為1×1的卷積層[8]。本實驗中,圖片經(jīng)過Roi Pooling處理后,全連接層對其中包含的目標(biāo)進行種類識別。
激活函數(shù)是非線性函數(shù),用于在CNN中加入非線性元素。卷積層、全連接層計算完成后,一般會將結(jié)果通過某個激活函數(shù)轉(zhuǎn)換為非線性形式,以此來增加網(wǎng)絡(luò)的表達和泛化能力[8]。目前,大多數(shù)卷積神經(jīng)網(wǎng)絡(luò)均采用ReLU[12]作為激活函數(shù)。
生成目標(biāo)候選區(qū)域的質(zhì)量直接影響到目標(biāo)檢測任務(wù)的準(zhǔn)確率,是區(qū)域卷積神經(jīng)網(wǎng)絡(luò)中至關(guān)重要的一環(huán),也是其與傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的重要區(qū)別。在RCNN和Fast-RCNN中,候選區(qū)域生成采用選擇搜索的方法,利用劃窗對每幅影像提取約2 000個候選區(qū)域[9-10]。
在Faster-RCNN中,用RPN改進候選區(qū)域的生成。RPN是全卷積的網(wǎng)絡(luò),在提取特征的CNN后,實現(xiàn)特征參數(shù)共享,大大減少候選區(qū)域選取過程和特征提取過程中的重復(fù)計算,做到了端到端的目標(biāo)檢測,形成了統(tǒng)一的區(qū)域卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[11]。RPN包括1個過濾器尺寸為1×1的卷積層和2個平行的全連接層。RPN與選擇搜索均用劃動窗口策略生成候選區(qū)域,但RPN的劃動窗口操作與選擇搜索不同,在卷積層特征圖上進行,經(jīng)過卷積池化操作,維度縮小了256倍。
在卷積層特征圖上,基礎(chǔ)劃窗尺寸為3×3,以每個劃窗的中心點為錨點,通過錨點,按不同的縮放倍數(shù)和長寬比例得到不同大小的劃窗尺寸,以適應(yīng)待檢測目標(biāo)大小和比例不一的情況。常用的公共基準(zhǔn)窗口有3個倍數(shù)(1,2,4)和3個比率(0.5,1,2),因此可得9個尺寸的劃窗,如圖6所示。利用上述方法,對每個錨點用不同尺寸的劃窗劃動生成不同尺寸的候選區(qū)域,這些候選區(qū)域經(jīng)過RPN網(wǎng)絡(luò)中的一層卷積后轉(zhuǎn)換為256維的全連接特征,再分別輸入2個全連接層用于判別目標(biāo)是否存在,并進行后續(xù)的矩形框位置回歸計算[11],上述過程即RPN的工作原理,如圖7所示。判別目標(biāo)是否存在的具體方法為以候選標(biāo)注框與人工標(biāo)注框交并比為依據(jù),對每個人工標(biāo)注框,取與其交并比最大的候選框為正樣本,小于某一閥值的候選框為負(fù)樣本。
圖6 不同尺寸劃窗的獲取Fig.6 Acquisition of sliding windows with different dimensions
圖7 RPN工作原理示意圖Fig.7 Schematic diagram of operating principle of RPN
飛機、油罐的遙感影像數(shù)據(jù)集使用RSOD-Dataset[13-14],標(biāo)注方法與Pascal數(shù)據(jù)集一致,飛機圖像大小為1 044×915,油罐圖像大小為1 075×923,如圖8所示。本次實驗所使用的遙感影像均為對地俯視圖,未發(fā)生形變現(xiàn)象,為目標(biāo)檢測提供了便利。同時,待檢測目標(biāo)大小在30×30到150×150范圍內(nèi),相對圖像尺寸較小,且不同目標(biāo)彼此大小差異較大,增加了準(zhǔn)確檢測的難度。本實驗基于谷歌TensorFlow框架[15],用數(shù)據(jù)集轉(zhuǎn)換工具將遙感影像轉(zhuǎn)換為TensorFlow可使用的數(shù)據(jù)集形式,上述數(shù)據(jù)預(yù)處理流程如圖9所示。
圖8 數(shù)據(jù)集圖片實例Fig.8 Examples from image dataset
圖9 數(shù)據(jù)預(yù)處理流程Fig.9 Flowchart of data preprocessing
網(wǎng)絡(luò)模型的訓(xùn)練使用NVIDIA GEFORCE GTX1060顯卡,因此需在Windows10系統(tǒng)上搭建cuda8.0+cudnn6的GPU運算環(huán)境。用基于pascal數(shù)據(jù)集預(yù)訓(xùn)練的Faster-RCNN模型進行定制訓(xùn)練,設(shè)待檢測目標(biāo)類別為2,學(xué)習(xí)率為0.002%,初步訓(xùn)練100 000輪,將訓(xùn)練參數(shù)存儲到本地,并導(dǎo)出為靜態(tài)網(wǎng)絡(luò)參數(shù)模型以備后續(xù)測試[16]。在測試數(shù)據(jù)集上進行網(wǎng)絡(luò)測試,測試結(jié)果如圖10所示。
圖10 測試結(jié)果樣例Fig.10 Samples of test results
針對每張測試圖片,本文采用了一種直觀的目標(biāo)檢測置信度計算方法,即檢測目標(biāo)置信度之和除以每張圖中實際的目標(biāo)數(shù)目,并定義未檢測到的目標(biāo)和檢測錯誤的目標(biāo),置信度為0,有
(1)
式中:P為每張圖的檢測置信度;j為圖中實際的目標(biāo)數(shù)目;Cj為每個目標(biāo)的檢測置信度。
用式(1)對測試結(jié)果進行統(tǒng)計,總平均置信度為98.4%。同時,所有測試圖片中每個目標(biāo)均被框出,檢測準(zhǔn)確率達到100%,較之傳統(tǒng)遙感圖像目標(biāo)檢測方法有較大提高。
本實驗中,影響檢測準(zhǔn)確率的因素主要有:
1) 訓(xùn)練數(shù)據(jù)集規(guī)模較小。訓(xùn)練數(shù)據(jù)中遙感影像的光照、天氣等過于接近,飛機種類、顏色、角度基本相同,網(wǎng)絡(luò)泛化能力較弱。
2) 存在過擬合現(xiàn)象[17-18]。這是因為借用了谷歌發(fā)布的預(yù)先訓(xùn)練的Faster-RCNN模型,模型內(nèi)部已存在的參數(shù)對訓(xùn)練有一定影響。
3) 測試用例分辨率參差不齊。在不經(jīng)影像處理的情況下,檢測準(zhǔn)確率受到較大影響。
后續(xù)研究可從上述3方面入手,擴大數(shù)據(jù)規(guī)模,覆蓋多環(huán)境下的飛機遙感影像,并改進網(wǎng)絡(luò)模型結(jié)構(gòu),以獲得更好的檢測效果。特征提取部分使用不同的深度卷積網(wǎng)絡(luò)以獲得更好的提取效果。用控制變量的思想,對初始學(xué)習(xí)率進行微調(diào),對比不同學(xué)習(xí)率下的檢測準(zhǔn)確率,探索模型初始參數(shù)對檢測效果的影響[19]。
本文詳細介紹了深度卷積神經(jīng)網(wǎng)絡(luò)的一種變體—區(qū)域深度卷積神經(jīng)網(wǎng)絡(luò),并以飛機、油罐的遙感影像為例,用Faster-RCNN區(qū)域卷積神經(jīng)網(wǎng)絡(luò)進行目標(biāo)檢測,提高了檢測的準(zhǔn)確率和置信度。本文使用的目標(biāo)檢測方法擴展方便,使用包含多種目標(biāo)的數(shù)據(jù)集進行網(wǎng)絡(luò)訓(xùn)練可使網(wǎng)絡(luò)具備檢測不同目標(biāo)的能力,在遙感影像解譯和快速信息獲取等方面有著廣闊的應(yīng)用前景。本文使用的方法仍存在一些不足,如在不同光照、地形、天氣等外部因素影響下,檢測各種地物的遙感影像較為困難,在處理海量遙感數(shù)據(jù)時如何顯著提升效率也仍待解決。隨著遙感技術(shù)、芯片技術(shù)的發(fā)展,用于訓(xùn)練的數(shù)據(jù)集規(guī)模和訓(xùn)練所用的硬件設(shè)備計算力都會有較大提升,給相關(guān)研究帶來了新的可能。