戚瀚文花向紅吳 沖,3李琪琪
1武漢大學測繪學院,湖北 武漢,430079
2武漢大學災害監(jiān)測與防治研究中心,湖北 武漢,430079
3武漢融云科技有限責任公司,湖北 武漢,430079
近年來,我國相繼發(fā)生了汶川地震和玉樹地震等特大地質(zhì)災害,這些特大地質(zhì)災害給國家和人民帶來了巨大的損失。遙感作為及時獲取災害信息的有效手段,在搶險救災中發(fā)揮了極大的作用[1]。利用遙感衛(wèi)星影像進行坍塌房屋檢測,可以有效評估地震災害,并實施搶險救援工作[2]。傳統(tǒng)的房屋坍塌檢測方法主要依賴于人工設計的特征表達[3],難以適應海量高分辨率影像數(shù)據(jù)[4],極大降低了檢測的準確率,既耽誤了時間又無法得出高質(zhì)量的檢測結果,因而無法滿足“應急測繪”的要求。因此,尋找新的震害房屋坍塌檢測算法成為當務之急。
傳統(tǒng)檢測方法利用光學遙感影像、SAR、Li-DAR數(shù)據(jù)可以對震害坍塌房屋進行有效檢測[5]。主要有以下兩種:一是僅基于事后數(shù)據(jù)(post-event data)的檢測方法;一是基于事前數(shù)據(jù)(pre-event data)和事后數(shù)據(jù)的檢測方法[6]?;谑虑昂褪潞髷?shù)據(jù)的檢測方法具有較高的檢測精度,但種方法也存在不足之處,許多城市,尤其發(fā)展中國家的城市無法獲得事前參考數(shù)據(jù),或者不能獲取到相同區(qū)域的事后數(shù)據(jù)[7]。即使能夠獲得相同區(qū)域的事前和事后數(shù)據(jù),檢測精度也會因為顏色和光譜的差異而下降[8]?;谑潞髷?shù)據(jù)的檢測方法指在利用震后的災區(qū)影像,借助紋理、內(nèi)容、邊界、陰影、光譜信息進行房屋坍塌檢測,超高分辨率影像的出現(xiàn)使得這種方法變得可行[9],但這種方法需要巨大的人力成本和時間成本,需要實地踏勘才能最終確認檢測結果[10],不利于震后的快速檢測和評估,并且僅基于事后數(shù)據(jù)的檢測方法并不能取得很高的檢測精度[11]。
卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)已經(jīng)成為影像地物提取的主流方法,并且廣泛應用于遙感圖像的分類、識別、檢索和提取,在語義上基本全面碾壓了傳統(tǒng)的方法。文獻[12]利用CNN實現(xiàn)了高分衛(wèi)星影像的房屋信息提取。目前將深度學習應用于坍塌房屋提取雖然已經(jīng)初步取得成效[13],但仍然存在著速度慢、精度差、魯棒性弱等問題。本文通過制作震后坍塌房屋數(shù)據(jù)集,并經(jīng)過數(shù)據(jù)增強之后,訓練得到了一個適用于快速檢測震害坍塌房屋的模型,在檢測速率上相比較傳統(tǒng)方法取得了較大提高。
本文方法利用fast region-CNN(Fast RCNN)算法實現(xiàn)坍塌房屋檢測,其基本原理是通過將經(jīng)過處理(如數(shù)據(jù)增強等)后的影像數(shù)據(jù)直接輸入共享卷積層獲取特征圖,然后將特征圖輸入?yún)^(qū)域提案網(wǎng)絡(regional proposal network,RPN)得到候選區(qū)域以及候選區(qū)域的特征信息,接著將這些特征信息與之前的特征圖一同進行興趣區(qū)池化獲取固定維度的特征信息[14,15],最后利用分類器來判別是否屬于坍塌房屋,對于屬于坍塌房屋的候選框,用回歸器進一步調(diào)整其位置,其流程如圖1所示。圖1中,輸入訓練集則表示模型訓練過程,輸入原始影像則表示坍塌房屋檢測過程。
圖1 算法流程Fig.1 Flow Chart of Algorithm
將原始影像輸入到一個由13個卷積層、13個ReLU層和4個池化層組成的網(wǎng)絡中,生成影像的特征圖,對于一個尺寸為H×W的原始影像,通過共享卷積層可以得到維度為H/16×W/16的特征圖,本算法采用了VGG16模型,共得到512個特征圖。
將生成的特征圖輸入?yún)^(qū)域提案網(wǎng)絡中,首先經(jīng)過一次3×3的卷積計算以進一步集中特征信息[15],然后分別進行兩次全卷積,其中第一次為對各區(qū)域可能存在坍塌房屋進行評分,第二次為確定可能存在坍塌房屋的區(qū)域。經(jīng)過兩次全卷積計算,每個候選區(qū)域得到兩組信息,一組是長度為18的特征信息,另一組是長度為36的候選框調(diào)整信息。其中特征信息主要用于后續(xù)目標識別,候選框調(diào)整信息主要用于候選區(qū)域框的修正。RPN的結構如圖2所示。
圖2 RPN結構示意圖Fig.2 Structure of RPN
提取到特征信息和坐標信息后還需要進行識別分類和定位,將這些信息和之前共享卷積層生成的特征圖一同提交到RoI Pooling層來獲取固定維度的 特 征 圖[16,17],RoI Pooling的 實 現(xiàn) 主 要 分 為3步 完成:首先將區(qū)域提案分成H×W個網(wǎng)格,然后對每一個網(wǎng)格進行最大值池化,最終將全部輸出值進行組合,輸出一個固定大小為H×W的特征圖,這樣,對于任意維度的輸入圖片都可以得到一個固定大小的特征圖。
將經(jīng)過ROI Pooling得到的特征圖輸入到一個全連接層中,對全連接層的輸出值進行Softmax分類,Softmax值的計算公式為:
對于Softmax值大于0.8的則確定為坍塌房屋,并且用回歸器進一步調(diào)整預測框的位置,使得標注盡量準確。
為了考察本文提出的方法可行性,采用實驗方法加以分析。通過編程,實現(xiàn)本文的算法,實驗環(huán)境為Linux 16.04平臺,采用GTX 1080Ti GPU加速,python 3.6,TensorFlow 1.12.0。所采用的實驗數(shù)據(jù)為2008年汶川地震和2010年玉樹地震的部分災后影像數(shù)據(jù),該影像數(shù)據(jù)為無人機拍攝,飛行高度在300~500 m之間,地面分辨率為10~15 cm,格式均為RGB(red-green-blue)影像。實驗主要分為4個部分:數(shù)據(jù)集制作、訓練、測試、預測。其中訓練是為了得到一組可以用于檢測目標的模型,測試是將得到的模型應用在測試集上來檢驗模型的識別精度,最后預測就是將模型應用在原始的圖片上來測試模型真實的識別精度。
在對影像數(shù)據(jù)進行處理,去除了模糊、噪聲較多、曝光過多的圖像后,從600多張照片中挑選了240張作為數(shù)據(jù)集。圖3給出了部分所采集到的樣本照片。
從圖3中可以看出,不論是汶川還是玉樹的坍塌房屋樣本,坍塌的房屋已經(jīng)失去了坍塌前矩形獨立的特征,變成了分帶形分布的碎屑狀,因此在本文中坍塌房屋檢測指檢測坍塌房屋的區(qū)域,并非檢測單獨一棟坍塌的房屋。
圖3 坍塌房屋無人機影像Fig.3 UVA Image of Collapsed Building
為了解決深度學習中過擬合問題,對影像數(shù)據(jù)進行數(shù)據(jù)增強處理。數(shù)據(jù)增強有很多種方式,本文對圖像進行旋轉(zhuǎn)、剪切、平移、拉伸的幾何變換以及通過調(diào)節(jié)RGB通道、對比度和亮度、增加噪聲對圖像像素進行處理,擴大了訓練集的規(guī)模。
為了得到一組精度高、魯棒性強的模型,首先將學習率調(diào)整為0.001,然后把訓練次數(shù)設置為30 000次,并用Tensorboad記錄下訓練中參數(shù)的變化。訓練過程中l(wèi)oss的下降曲線如圖4所示。
由圖4可視化結果可以看出,模型經(jīng)過訓練,loss值逐步下降,并逐漸收斂到0,這說明神經(jīng)網(wǎng)絡已經(jīng)學習到了坍塌房屋的特征。
圖4 loss下降曲線Fig.4 loss Decline Curve
對模型進行精度評定,精度評定的指標為AP值,其計算公式為:
數(shù)據(jù)增強前后訓練30 000次的模型測試精度如表1所示。
由表1結果可以看出,數(shù)據(jù)增強之前AP值僅有0.202 7,這一精度較低,其中可能的原因就是訓練集規(guī)模太小,與其他檢測任務所采用的的數(shù)十萬張訓練樣本相比,本次實驗所用的訓練集規(guī)模過小,也就是說神經(jīng)網(wǎng)絡能學習到坍塌房屋的特征比較有限,所以導致精度較低。
表1 數(shù)據(jù)增強前后模型測試精度Tab.1 Model Accuracy Before and After Data Augmentation
數(shù)據(jù)增強后訓練集中數(shù)據(jù)達到600幅,測試精度達到了0.272 3,相比較數(shù)據(jù)增強之前,提高了35%,這說明經(jīng)過數(shù)據(jù)增強,模型的檢測精度的確得到了一定的提高。
將得到的模型用于震后坍塌房屋的檢測,圖5~圖8給出了部分不同區(qū)域的檢測結果。
圖5 區(qū)域1檢測結果Fig.5 Detection Result of Region 1
由圖5、圖6可以看出:數(shù)據(jù)增強前的模型只能識別圖中很少一部分的坍塌房屋,存在許多漏檢的情況,甚至還會有錯檢的情況發(fā)生,其檢測出來的坍塌房屋得分普遍比較偏低。數(shù)據(jù)增強后的模型不論是在檢測數(shù)量還是平均得分都比數(shù)據(jù)增強前的模型要好很多,基本上可以將圖中的主要坍塌區(qū)域全部提取出來,這說明數(shù)據(jù)增強確實起到了提高模型精度的作用。
圖6 區(qū)域2檢測結果Fig.6 Detection Result of Region 4
從檢測的細節(jié)效果圖7和圖8中可以看出,汶川數(shù)據(jù)樣本中,大片連成帶狀的粉碎狀坍塌房屋區(qū)域都被正確地檢測出來,且置信度得分都很高。在玉樹數(shù)據(jù)樣本中,坍塌的房屋也都被正確地檢測出來,并且沒有錯檢周圍并未倒塌的房屋,體現(xiàn)出本文算法具有很好的魯棒性。
圖7 檢測效果細節(jié)Fig.7 Detail of Detection Result
將相同的數(shù)據(jù)集用不同算法進行坍塌房屋檢測,訓練及預測速率結果如表2所示。
由表2可以看出,在訓練效率上,本文算法相比較Fast RCNN算法提高了將近1.5倍,相比較RCNN算法,訓練效率得到了顯著提升。在檢測速率上,本文算法僅使用0.2 s就完成了單幅影像的坍塌房屋檢測,相比較其他基于人工神經(jīng)網(wǎng)絡的方法效率提升至少在10倍以上,更是完全超越了需要30 min的人工方法。
表2 不同方法對比Tab.2 Comparison of Different Methods
本文旨在解決地震發(fā)生后無法及時獲取坍塌房屋分布的問題,借助人工神經(jīng)網(wǎng)絡的強大計算力,得到了一組可以快速較準確識別震害坍塌房屋的模型,這一模型相比較傳統(tǒng)方法檢測速率提升至少在10倍以上,但在精度上還有提升空間。未來通過不斷積累數(shù)據(jù)集,優(yōu)化模型參數(shù),必將可以得到更加合適的模型,將會在快速檢測坍塌房屋領域發(fā)揮舉足輕重的作用。