周陽, 張云生, 陳斯飏, 鄒崢嶸, 朱耀晨, 趙芮雪
(中南大學地球科學與信息物理學院,長沙 410083)
地震對于人類的生命和財產安全具有極大的威脅,震后的救援行動刻不容緩。快速地對震后建筑物損毀嚴重程度進行評估不僅能及時給救援部門和應急行動組提供可靠的救援參考,而且可以為震后災區(qū)重建提供依據(jù)[1-2]。因此第一時間掌握建筑物震害損毀信息十分重要。
近年來無人機技術的快速發(fā)展使得迅速獲取震后高空間分辨率遙感影像(以下簡稱高分遙感影像)成為可能[3]。因此,目前利用高分遙感影像進行建筑物震害損毀的檢測逐漸受到越來越多的關注。傳統(tǒng)的建筑物損毀檢測方法一般基于手工設計的特征,分為基于單一特征和基于多特征結合的方法。其中單一特征包括顏色特征[4]、紋理特征[5-6]和地學紋理特征[7]等。單一特征局限性大,不能完整地描述地物的信息,精度也不夠可靠,所以很多學者在單一特征的基礎上研究了多特征結合的方法,如結合紋理特征和相互關系信息[8]、結合紋理特征和幾何特征[9-10]等。雖然多特征結合的方法比單一特征的精度有所提高,但也只是基于各種單一特征的簡單組合,精度提高的效果不是特別理想。因此如何得到更具表征能力的特征來進行建筑物震害損毀評估仍需進一步研究。
以上通過手工設計的特征表征能力依然較弱,近年發(fā)展起來的深度學習屬于一種端到端的特征學習、表征學習,在語音識別、目標檢測和圖像分類上取得了很好的效果,在高分遙感影像的場景分類上也表現(xiàn)出了很強大的潛力[11-13]; 在震害損毀評估方面,Vetrivel等[14]提取無人機影像和航空影像的深度卷積神經(jīng)網(wǎng)絡(deep convolutional neural network,DCNN)特征,結合影像衍生的點云三維特征進行多核學習實現(xiàn)震害損毀評估,但僅考慮了較早的AlexNet模型。這些成功的應用表明DCNN強大的特征提取能力,但其網(wǎng)絡結構復雜、訓練時間長且需要大量的訓練樣本。相比于深度學習,支持向量機(support vector machine,SVM)具有保證全局唯一性、避免陷入局部最優(yōu)的優(yōu)點,且訓練速度和分類精度都具有明顯優(yōu)勢[15],同時,目前有很多基于SVM的遙感影像分類與對象提取的研究工作表明SVM在遙感數(shù)據(jù)分類中的效果較好[16-17],但是它屬于淺層結構模型,對于原始輸入信息只能有較少層次的處理,很難完整地描述原始的輸入,故僅采用SVM分類具有很大的局限性。因此,如何將卷積神經(jīng)網(wǎng)絡的特征提取功能與常規(guī)的淺層分類結構SVM結合并應用到建筑物震害損毀檢測上具有重大的研究意義和價值。綜上,本文利用在ImageNet影像庫上已經(jīng)取得成功的DCNN模型來提取特征,結合SVM分類器來完成建筑物震害損毀區(qū)域的檢測,以期獲得更高的檢測精度。
在深度學習中,DCNN是一種最基本的模型,可作為一種特征提取器,其基本結構如圖1所示,它包括輸入層、若干個卷積層和池化層的組合以及全連接層。其中,卷積層輸出特征圖,其每個要素是通過計算由一些矩形排列的神經(jīng)元組成的若干個特征平面和卷積核之間的點積來獲得的,卷積核通常是以隨機小數(shù)矩陣的形式初始化,然后在網(wǎng)絡訓練的過程中學習合理的權值; 池化層起到下采樣的作用,即沿著特征圖的空間維度,通過計算局部區(qū)域上的最大值來執(zhí)行采樣操作; 全連接層緊跟在若干個卷積層和池化層的組合之后,它連接所有卷積層和池化層中具有區(qū)分性的局部信息即局部特征,最后一層全連接層為輸出層(softmax層)。DCNN的參數(shù)(即卷積層和全連接層中的權重)通過基于反向傳播算法的經(jīng)典隨機梯度下降進行訓練[18]。
圖1 DCNN結構
本文使用AlexNet模型和VGGNet模型進行建筑物震害損毀檢測。AlexNet模型由Krizhevsky等開發(fā)[14],與早期的DCNN模型相比,AlexNet模型由5個卷積層和3個全連接層組成,采用線性整流函數(shù)(rectified linear units,ReLu)作為激活函數(shù)代替Sigmoid非線性激活函數(shù),來加快隨機梯度下降的收斂速度,并且AlexNet模型在全連接層中引入Dropout方法來降低過擬合,提高模型的泛化能力。VGGNet模型由牛津大學視覺幾何組的Simonyan等[19]提出,它由AlexNet模型發(fā)展而來,使用3個3像元×3像元(為表達簡潔,以下省略“像元”)卷積,不僅使決策函數(shù)更有判別性,而且減少了參數(shù); 同時增加網(wǎng)絡深度,能夠有效提升模型的效果,并且VGGNet模型對其他數(shù)據(jù)集也有很好的泛化能力。
本文方法流程如圖2所示,主要包括2部分: ①模型訓練,選取損毀和未損毀區(qū)域的樣本,分為訓練和測試樣本2部分,利用預訓練的DCNN模型提取特征,然后將訓練樣本的DCNN特征輸入SVM分類器中,對SVM進行訓練,并用測試樣本進行測試和精度評定; ②區(qū)域檢測,基于第①部分訓練得到的SVM分類器對待分類影像進行建筑物損毀區(qū)域檢測。2部分的特征提取采用同樣流程。
圖2 方法流程
利用ImageNet影像庫預訓練的DCNN學習的高層次激活值已被證明是具有優(yōu)異性能的通用特征表達,可以遷移到遙感影像的特征提取中[20-21]。本文遵循已有工作的標準流程,移除預訓練DCNN的最后一個全連接層,并將DCNN的其余部分視為固定特征提取器。將輸入影像塊輸入到DCNN中,以前饋方式直接從除輸出層以外的最后一個全連接層計算4 096維激活值(特征向量),然后將該特征向量視為輸入影像的全局特征,用于表達輸入影像塊。因為所有預訓練的DCNN結構需要一個固定尺寸的影像輸入,如本文比較的2種模型AlexNet和VGGNet(ImageNet預訓練模型下載自https: //github.com/BVLC/caffe/wiki/Model-Zoo),輸入影像尺寸分別為227×227和224×224,當影像塊尺寸不符時,需進行采樣,生成符合尺寸大小的影像。因此本文在生成樣本時,為了與滑動窗口步長協(xié)調,影像塊大小設置為256×256,在訓練過程中,先將256×256的影像降采樣成與輸入影像相同的大小。
SVM是Cortes等[22]提出的一種線性分類器,它是根據(jù)帶標簽的訓練樣本,計算輸出一個最優(yōu)超平面對測試樣本進行分類,在有限的樣本信息和強學習能力之間尋求最佳結果。為了處理非線性分類問題,可以通過非線性函數(shù),將輸入映射至多維空間,在該空間中,可以產生一個泛化能力很強的線性分類器。本文采用LIBSVM工具來實現(xiàn)SVM運算,核函數(shù)選擇徑向基函數(shù)。
在實際應用中,需要對整幅影像進行檢測,常規(guī)方法是截取分類器所需尺寸的影像塊進行分類預測,然后將預測結果作為中心像素的分類結果,但影像較大時,此過程耗時較長。根據(jù)DCNN特征的表征能力,本文采用類似的方式,但滑動窗口移動步長采用32,在分類器窗口滑動過程中,每一個32×32格網(wǎng)會被多個256×256的影像塊覆蓋,因此對于多個分類結果采用投票的形式確定最后的分類結果。整幅影像的檢測過程如下:
1) 開辟2個與影像大小一樣的類別累加器ACC[P(y=0)]和ACC[P(y=1)],分別賦為0,其中y=0和y=1分別表示影像中未損毀和損毀區(qū)域。
2) 以32個像素作為滑動步長,循環(huán)截取256×256大小的影像塊,記錄截取影像塊的左上角坐標(x0,y0)。
3) 利用預訓練的DCNN模型提取這些影像塊的DCNN特征,然后利用訓練好的SVM分類器進行分類預測,最后根據(jù)分類結果更新類別累加器,即
(1)
式中i,j∈(0,255)。
4) 比較每個32×32影像塊2個累加器的結果,以類別占多數(shù)的結果作為當前影像塊的結果。
本文采用的數(shù)據(jù)是在www.haiti-patrimoine.org下載的2010年海地雅克梅勒地區(qū)震后的傾斜航空影像,其東、南、西、北4個攝影方向的影像空間分辨率均為1 m。研究區(qū)影像如圖3所示,在這些影像中均勻選取1 500個樣本,每個樣本為256×256的影像塊,共包含500個損毀區(qū)域,1 000個未損毀區(qū)域。圖4(a)、(b)和(c)、(d)分別為損毀和未損毀區(qū)域樣本的示例。
(a)東 (b) 南
(c) 西 (d) 北
(a) 損毀區(qū)域1(b) 損毀區(qū)域2 (c) 未損毀區(qū)域1 (d) 未損毀區(qū)域2
實驗中按4∶ 1比例隨機選擇訓練集和測試集。為了進一步驗證方法的檢測精度,選取了如圖3(a)和(c)所示的紅色方框區(qū)域驗證本文方法,放大顯示如圖5所示,大小分別為1 888×1 376和1 280×1 280。
(a) 驗證區(qū)域1 (b) 驗證區(qū)域2
3.2.1 SVM分類器模型訓練結果
分別利用訓練樣本通過AlexNet模型和VGGNet模型學習的DCNN特征訓練SVM分類器并進行測試。為了進行對比,本文還實現(xiàn)了基于詞袋模型(bag of words,BOW)的中層特征提取過程,即提取訓練和測試樣本尺度不變特征變換(scale-invariant feature transform,SIFT)描述符,利用K-means聚類方法,采用1 100個聚類中心構建BOW模型,訓練SVM分類器并用測試樣本進行測試[23]。3種特征訓練結果如表1所示。從表1結果中可以看出,基于傳統(tǒng)SIFT特征的BOW模型的測試精度低于基于DCNN提取的特征,其中,VGGNet模型相對于AlexNet模型具有更高的測試精度。
表1 SVM訓練結果
3.2.2 驗證區(qū)域結果
利用上述DCNN特征訓練的SVM模型分別對驗證集進行分類,結果如圖6和表2所示。圖6中紅色區(qū)域為正確檢測的損毀區(qū)域、黃色區(qū)域為漏檢區(qū)域、藍色區(qū)域為誤檢區(qū)域,未標記的區(qū)域為正確檢測的未損毀區(qū)域。
(a) 驗證區(qū)域1基于VGGNet模型提取特征的結果 (b) 驗證區(qū)域1基于AlexNet模型提取特征的結果
(c) 驗證區(qū)域2基于VGGNet模型提取特征的結果 (d) 驗證區(qū)域2基于AlexNet模型提取特征的結果
表2 驗證集分類結果
從表2中可以看出,在驗證區(qū)域1中,一共選取了2 537塊,采用VGGNet模型提取的特征得到的結果中,漏檢150塊,誤檢129塊,正確檢測2 258塊,達到89.0%正確率,9.8%的誤檢率和12.8%的漏檢率; 而AlexNet模型提取的特征得到的結果中,漏檢156塊,誤檢291塊,正確檢測2 090塊,達到82.4%正確率,19.1%的誤檢率和15.4%的漏檢率。在驗證區(qū)域2中,一共選取了1 600塊,采用VGGNet模型提取的特征得到的結果中,漏檢53塊,誤檢166塊,正確檢測1 381塊,達到86.3%正確率,20.0%的誤檢率和6.9%的漏檢率; 而AlexNet模型提取的特征得到的結果中,漏檢124塊,誤檢158塊,正確檢測1 318塊,達到82.4%正確率,19.1%的誤檢率和16.1%的漏檢率。實驗結果表明,本文提出的方法在建筑物損毀檢測領域能達到80%以上的正確率,其中VGGNet模型提取的DCNN特征的實驗結果正確率高達89%,表明本文所提出的方法在建筑物震害損毀檢測領域是可行的,并且具有一定的潛力和研究價值。
由于本文實驗所選影像的空間分辨率為1 m,所以分類精度不是很高,但是精度也能高達89%,這說明利用DCNN特征的方法是有優(yōu)勢的,可以應用于建筑物震害損毀區(qū)域的檢測。實驗結果中誤檢的區(qū)域成片地出現(xiàn)在損毀與未損毀區(qū)域的交界處,這與實驗中采用重復區(qū)域有關,因為在損毀和未損毀過渡區(qū)域,損毀和未損毀的比例是逐漸變化的,邊界區(qū)域容易出現(xiàn)誤檢和漏檢。
本文提出了利用DCNN特征來進行建筑物震害損毀區(qū)域檢測的方法,比較了常用的AlexNet和VGGNet這2種模型的能力,利用海地地震的高空間分辨率影像進行了實驗,得出以下結論:
1) 利用DCNN特征結合SVM分類器來進行建筑物震害損毀區(qū)域檢測的方法是有效的,該方法能夠快速獲取建筑物震害損毀信息。
2) 本文方法與基于SIFT特征的BOW方法進行了對比,結果表明: 在面向建筑物震害損毀區(qū)域的檢測中,利用預訓練DCNN提取的特征具有更好的表征能力。
3) 預訓練的VGGNet模型比AlexNet模型在面向遙感影像的建筑物震害損毀評估應用中更具潛力。
本文方法雖然能達到較高的檢測精度,但需要較多的訓練樣本,在實際應用時,常會遇到樣本有限的困難,因此后續(xù)研究將在本文研究基礎上,引入主動學習來選取盡可能少但具有代表性的樣本以保證檢測精度。