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