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