張 圓 孔祥思 張 爍 王 輝
(建設綜合勘察研究設計院有限公司, 北京 100007)
滑坡地質災害具有損毀性大、覆蓋面廣、危害性大、突發性強以及雨水浸泡易發生等特點,滑坡發生后不僅會造成經濟財產的重大損失,更會給人們的人身安全帶來極大的威脅[1-2]。因此,如何快速發現滑坡地質災害并定位出滑坡的具體位置,對于搶險救災工作的開展具有重大意義。傳統的滑坡監測方法是通過人工進行實地勘察,這種方法速度慢、效率低。近年來,伴隨遙感技術的不斷發展,利用遙感衛星影像對滑坡地質災害進行快速識別和定位已成為主流的方法,目前遙感滑坡監測方法主要包括目視判讀解譯、基于像素的方法、面向對象的方法以及機器學習的方法等[3-5]。
目視判讀解譯受人的主觀影響較大,且速度較慢;基于像素的方法是通過影像像素構建某種滑坡特征,DANNEELS等[6]采用了監督像素分類的方法進行滑坡識別,這種方法對于光譜信息相似的地物較為局限;面向對象的方法處理的基礎單元是由像素根據一定規則分割形成的對象,張毅等[7]提出了一種基于規則分類的滑坡識別方法,面向對象的方法對于一些較小目標無法實現較好的識別。機器學習的方法是通過訓練神經網絡模型進行滑坡識別,李松等[8]利用支持向量機進行滑坡快速識別,該方法識別精度相較于傳統方法有一定提升。近年來隨著深度學習技術的興起,一些地質災害監測類的學者嘗試將其應用到了遙感影像滑坡識別中,巨袁臻等[9]提出將谷歌地球影像數據應用到深度學習模型中,實現了對黃土地區滑坡的自動識別,該方法對于黃土地區的滑坡識別效果較好。
由于滑坡遙感影像特征信息較為豐富,利用深度學習的方法可以更加有效地挖掘出影像中的深層特征信息,識別效果相較于常見的基于像素的方法、面向對象的方法等更優,將深度學習應用于遙感影像的滑坡識別具有重要意義。因此本文提出了一種基于U-Net深度學習模型[10]的遙感影像滑坡識別方法,該方法能夠有效地應用于大部分滑坡識別場景,精度較高且具有較好的泛化性。
本文使用的實驗數據集為文獻[11]提供的畢節滑坡數據集,該數據集是從2018年5—8月拍攝的TripleSat衛星影像中截取的,影像覆蓋區域為貴州省畢節市,影像為三通道彩色影像,滑坡影像分辨率為0.8 m,該數據集包含770幅滑坡影像和2003幅非滑坡影像,并且包含對應的真實標簽。本研究按照約5∶1的比例設置訓練集和測試集,隨機選取畢節滑坡數據集中的616幅滑坡影像以及200幅非滑坡影像作為訓練集,選取其中剩余的154幅滑坡影像作為測試集,通過在訓練集中加入非滑坡影像,可以有效增強模型的泛化能力。由于訓練集總的影像數量較少,文中通過對原始影像做順時針旋轉(90°、180°、270°)、水平鏡像的方式對訓練集滑坡影像進行了增強[12],使得滑坡影像數量擴充為原先的5倍,共得到616×5+200=3 280張訓練集影像。
U-Net深度學習模型是由Olaf Ronneberger等人提出的一種端到端的模型。首先輸入原始影像進行編碼操作,然后通過特殊的反卷積結構進行解碼操作,模型整體架構形似“U”形,圖1為本研究中采用的U-Net模型架構示意圖。
圖1 U-Net模型架構圖
從圖1可以看出,模型的conv1層至conv5層為編碼層,deconv6至deconv9層為解碼層。模型在編碼部分通過不斷做卷積和池化提取影像特征,卷積窗口大小均為3×3像素,池化窗口大小均為2×2像素,通過用多層卷積代替大卷積模板的方式可以更有效的保留影像信息,避免造成影像失真,同時能夠深層次的挖掘影像的特征信息。其中,conv1層為兩個連續的卷積操作,其卷積核個數為64;conv2至conv5層均是由一個池化操作接上兩個卷積操作組成,其卷積核個數分別為128、256、512和1024。
模型在解碼部分通過不斷做上采樣和卷積操作以還原影像,deconv6至deconv9層每層都是由一個上采樣操作和兩個連續的卷積操作組成,其上采樣核個數分別為512、256、128和64,上采樣窗口尺寸均為2×2像素大小,即每次進行上采樣都會使得影像的長寬放大一倍,但是影像通道數會減半,然后將相應編碼層特征圖降維后與上采樣結果做拼接處理,對拼接結果做卷積操作,各層卷積核尺寸均為3×3像素,卷積核個數分別為512、256、128和64,經過解碼操作最終輸出得到二值化識別結果。
圖2為文中的U-Net滑坡識別方法流程,首先將制作好的訓練數據集輸入U-Net模型進行訓練,通過計算損失值并不斷優化模型,得到訓練好的U-Net滑坡識別模型,然后輸入測試集進行模型推理得到滑坡識別結果。
圖2 U-Net滑坡識別方法流程
(1)輸入訓練集。將訓練集原始影像以及對應的真值標簽分批次輸入到U-Net模型中,每批次為6張影像,為了增強模型的泛化能力,除了輸入滑坡影像數據集以外,還輸入了部分不包含滑坡的影像數據。
(2)特征圖提取。初始化模型權重參數,然后通過多層卷積和池化操作,不斷提取影像特征,影像特征由淺至深,越深層的特征也更為抽象。
(3)損失值計算。對影像特征圖進行上采樣解碼操作會輸出得到概率預測結果,但這時的預測結果較為粗糙,還需要計算其與真值標簽之間的損失值,文中采用二值交叉熵(binary_crossentropy)損失函數進行損失值計算,其計算公式為
(1)
式中,y表示標簽值;p(y)代表預測值。對于正樣本y等于1,p(y)與損失值成反比,當p(y)等于1時損失值為0;對于負樣本y等于0,p(y)與損失值成正比,當p(y)等于0時損失值為0。
(4)反向傳播模型優化。采用適應性矩估計(adaptive moment estimation,Adam)優化算法[13]不斷迭代優化模型并更新模型的權重參數,從而降低損失值,該算法是通過計算一階矩陣估計以及二階矩陣估計,然后為不同的參數制定各自的自適應學習率,詳細計算過程為
(2)
式中,mt為一階矩陣估計;vt為二階矩陣估計;gt代表目標函數在t時刻對參數的導數。然后采用式(3)計算一階矩陣估計與二階矩陣估計的偏差修正。
(3)
通過式(4)更新模型參數。
(4)
式中,γ代表學習步長。
通過前向傳播計算卷積特征圖,上采樣還原圖像,再通過反向迭代優化模型,降低損失值,更新模型參數,不斷訓練迭代最終輸出得到U-Net滑坡識別模型。
(5)模型測試。模型訓練的過程即確定權重參數的過程,當訓練完模型之后,即可輸入測試集圖像進行推理測試,模型根據確定的權重參數對輸入圖像進行前向傳播,最終輸出滑坡預測結果。
文中實驗的硬件配置如下:處理器為intel(R)Core(TM)I7-8750H CPU @ 2.20 GHz,運行內存為8 GB,顯卡為NVIDIA GeForce GTX 1060,顯存大小為6 GB,所采用編程語言為Python,采用的深度學習框架為Tensorflow和Keras,運行環境為Pycharm。實驗訓練批大小設置為6,即每次向模型輸入6幅影像進行訓練,設置訓練學習率為0.000 1,共訓練了20個epoch。
首先采用測試集影像對模型進行測試,為了驗證模型的有效性,選取了北京市范圍內的兩處實際滑坡區域對模型進行測試,并采用多個精度評定指標進行精度評價,另外與數學形態學方法[14]、SegNet模型[15]進行了詳細對比分析。
文中采用了精確率(Precision)、召回率(Recall)兩種精度評定指標[16]對模型預測精度進行評價,其計算公式如式(5)所示。
(5)
式中,TP代表模型預測為真,其實際值也為真的個數;FP代表模型預測為真,但其實際值為假的個數;FN代表模型預測為假,但其實際值為真的個數。Precision與Recall指標值越高,代表模型的精度也越高。
利用測試集對訓練好的U-Net滑坡識別模型進行測試,測試集一共包含154幅滑坡影像,如圖3為文中方法在測試集上的識別效果。
(a)原圖
從圖3可以看出,文中使用的U-Net滑坡識別模型識別效果較好,能夠實現對滑坡區域的有效識別,模型識別結果與真實標簽能夠很好地契合。對于不同背景的影像,包括森林、水體、道路等均能很好地適應,表明模型方法的泛化能力較好,適應性較強。另外,將文中方法與常規的數學形態學方法、SegNet模型進行了詳細對比,如圖4為不同方法效果對比。
(a)原圖 (b)數學形態學方法結果
由圖4可知,在該幅測試影像中,數學形態學方法識別結果存在較多的噪點,并且將一部分不屬于滑坡的區域誤判為了滑坡區域,而SegNet模型識別的滑坡區域不完整,本文所使用的U-Net模型識別效果最優,與滑坡真實標簽貼合較好,可以較為準確地識別出滑坡的實際區域。為了量化不同方法的識別效果,對測試集影像進行了精度評定,將所有測試集影像的精度評定結果取均值得到表1。
表1 測試集精度評定結果
由表1可知,文中方法的Precision指標值比SegNet模型要高0.042 3,比數學形態學方法高0.248 3,Recall指標值相較于SegNet模型高0.340 6,相較于數學形態學方法高0.165 9。實驗結果表明,文中方法的精度要優于常規的數學形態學方法與SegNet模型。
為了驗證方法的有效性,選取了北京市房山區大安鄉軍紅路以及延慶區舊縣鎮黃裕口村的共兩處滑坡影像進行實際驗證,兩處實際區域的滑坡真實標簽是由人工手動繪制得到。圖5為文中方法在兩處實際區域的測試效果。
(a)原圖
由圖5可以看出,文中方法在北京市房山區和延慶區的兩處滑坡區域中,均取得了較好的識別效果,模型測試結果與真實標簽貼合較好,僅僅有部分邊界位置與真實標簽存在不一致,整體上對于兩處實際滑坡區域均實現了有效識別。表2為兩處實際區域的精度評定結果。
表2 實際區域精度評定結果
由表2可知,文中方法在房山區大安鄉軍紅路滑坡區域的Precision、Recall指標分別為0.893 3、0.955 3,在延慶區舊縣鎮黃裕口村滑坡區域的Precision、Recall指標分別為0.831 7、0.943 6,指標值均較高。結果表明,該方法識別效果較好,具有較好的泛化性,能夠有效適應于復雜的實際區域。
本文利用U-Net深度學習模型進行遙感影像滑坡識別,訓練集采用了畢節市滑坡影像,針對訓練樣本集較少的問題,采用旋轉、鏡像的方式對訓練集進行了擴充增強,另外還在訓練集中加入了部分非滑坡影像以增強模型的泛化能力。實驗結果表明,文中方法在測試集的精度較高,要優于常見的數學形態學、SegNet模型方法;方法具有較好的泛化性和適應性,對于不同背景的影像,包括森林、水體、道路等均能很好地適應;方法具有較好的實際應用效果,在北京市房山區和延慶區的兩處實際滑坡區域中均達到了較高的識別精度。在后續研究中,將考慮結合滑坡遙感影像的特點對U-Net模型進行改進,并增加訓練集數量,以進一步提升滑坡識別精度。另外考慮將深度學習方法應用于其他地質災害的識別監測。