王莉莉,黃鐸,王偉,巧云,張曉東
(內蒙古師范大學青年政治學院,內蒙古呼和浩特 010051)
地質災害屬于自然災害,它的發生不僅會給一個國家或個人的經濟帶來不可估量的損失,也會極大地破壞人們的穩定生活。近年來,深度學習技術廣泛應用于圖像視覺領域,它可以自主學習圖像特征,不用人工構建,無須進行復雜的圖像特征提取,從而可以得到更高的分類準確率。
因此,本文選取深度學習中的CNN模型應用于地質災害分類識別中,重點研究崩塌、滑坡、泥石流、地面塌陷四種大青山地區常見的地質災害分類,利用深度學習框架VGG-16構建模型,提出一種基于CNN的地質災害圖像智能分類識別的方法,解決目前災害分類的準確度和時效性不足的問題,從而提高大青山地區地質災害監測技術的智能化。
大青山坐落于陰山山脈中段,東起呼和浩特大黑河上游,西至包頭昆都侖河。東西長約240公里,海拔2000 米左右,是祖國北疆安全穩定屏障。一直以來,大青山山脈呼和浩特市和包頭市境內礦山企業開發頻繁,造成嚴重的生態環境問題。因此,保護大青山,研究大青山地區地質災害識別方法,對降低大青山地質災害的發生具有重要作用。
1.1.1 數據的搜集
本實驗選取內蒙古大青山地區常見的四種地質災害崩塌、滑坡、泥石流、地面塌陷構建數據集。數據來源包括人工采集、無人機采集、互聯網Python爬取、雷達圖像等。
1.1.2 數據處理的方法
為了能滿足VGG-16 模型對訓練數據的要求,原始數據需要首先進行預處理,本項目利用Python中的Pandas、CV2和PIL庫對自然災害圖像進行預處理,包括使用庫中的方法對圖像進行縮放、裁剪、旋轉等處理,將圖像轉換為模型訓練需要的格式[1],使數據標準統一化,進一步擴充數據集,為VGG-16 模型的訓練提供支持。
1.2.1 深度學習
深度學習的本質就是一個深層神經網絡。神經網絡一般分為三層,分別是輸入層、隱含層和輸出層。神經網絡進行學習的本質是根據輸入的數據和結果之間的差異來動態地調整神經元間連接的權重值。當訓練開始時,訓練數據會依托正向傳播算法、反向傳播算法和梯度下降法,通過調整各層之間的激活值和神經元之間的連接權重值,實現對神經網絡的訓練。
對于本文研究的四類地質災害圖像,神經網絡需要計算其屬于某個類別的概率,再將神經網絡給出的概率搜集起來,找出其中概率的最大值即作為網絡分類識別的結果。
1.2.2 卷積神經網絡
CNN 主要用于圖像分類識別與目標定位。CNN主要由卷積、激活函數、池化、分類器組成。其中卷積的功能就是特征提取,把圖像中符合條件的特征篩選出來。激活函數的存在主要是提升網絡表達能力。池化又被稱為下采樣,其作用是將卷積層提取的特征圖進行降維。在深度學習中,分類器用來判別一個新樣本所屬類別。
卷積神經網絡具有三大核心思想:局部感知、權值共享以及下采樣[2]。局部感知通過改變神經元的連接來實現。權值共享是用一個卷積核去掃描輸入圖片,卷積核里面的數稱為權重,這張圖每個位置是被同樣的卷積核掃描的,所以權重是一樣的,也就是共享[2]。下采樣主要通過池化技術對圖像進行縮小,減少圖像像素,減少計算量[2],加快運算速度,從而減少卷積神經網絡在訓練階段出現過擬合的可能性。
1.2.3 VGG-16網絡模型
本研究使用的CNN 模型為VGG-16 和Tensor-Flow 2.0框架。VGG-16是一個卷積神經網絡框架,如圖1 所示。TensorFlow 2.0 則是由Google 公司開發的一種通用的神經網絡框架。

圖1 VGG-16的網絡結構
1)VGG-16模型由13個卷積層和3個全連接層構成。卷積層負責提取輸入圖像的特征,卷積層之間周期性地插入池化層,該層對卷積層所提取的信息進行進一步降維,減少計算量。最后的3層全連接層負責完成分類任務。
2) 模型通道數分別為64、128、512、512、512、4 096、4 096、1 000。卷積層通道數翻倍,直到512 時不再增加。通道數的增加使更多的信息被提取出來。全連接的4 096是經驗值,當然也可以是別的數,但是不要小于最后的類別[3]。1 000表示要分類的類別數。
3)所有隱含層的激活函數都使用Relu函數。
4)用池化層作為分界,VGG-16共有6個塊結構,每個塊結構中的通道數相同。
5)所有輸出層的分類函數都使用Softmax函數。
本項目實驗所用操作系統為Windows10,編程語言為Python,使用開源深度學習框架TensorFlow 2.0作為主要搭建網絡工具,并依賴于Anaconda3、Jupyter、Keras等訓練模型。
本項目選擇采用Tensorflow深度學習框架進行模型的訓練和預測,并對新的自然災害圖像進行分類。下面是本項目實驗步驟:
1)構建數據集
對原始數據進行分割,分為訓練集和測試集。將80%的數據用作訓練集,用于訓練模型;另外20%的數據用作測試集,用于評估模型的準確性。這樣可以避免模型過擬合,同時也可以確保模型的泛化能力,即在對未見過的數據進行分類時,模型的準確性依然能夠得到保證。
2)圖像預處理
對圖像數據進行預處理,以便使其符合VGG-16模型的輸入要求。本文使用Python 的CV2、Pandas 和PIL庫進行圖像的預處理。預處理的方法包括圖像的縮放、裁剪、旋轉、平移、歸一化等,這樣可以增加數據的多樣性和數量,從而提高模型的性能[4]。
3)卷積層進行特征提取
卷積層用于提取輸入圖像的特征信息,每個卷積層都包含多個卷積核,每個卷積核可以在輸入圖像上滑動并提取特定的特征。通過不同大小的卷積核和不同數量的卷積核,每個卷積層可以提取出不同的特征。因此,VGG-16 的卷積層的作用是在不同的層次上提取輸入圖像的抽象特征。通過多個卷積層和池化層的堆疊,VGG-16 可以逐步提取出越來越高級的特征,從而實現對輸入圖像的有效表示和分類。
4)池化層篩選最大特征
池化層通常放置在兩個卷積層之間。每個池化層都使用2×2的池化窗口,步長為2,因此可以將特征圖的尺寸減小一半。VGG-16的池化層是對卷積特征圖進行下采樣,減小特征圖的維度和參數數量,從而提高計算效率,降低模型過擬合的風險。圖像經過卷積和池化處理后,得到的特征圖被展開成一個向量,傳遞到全連接層。
5)全連接層輸出概率值
全連接層由3 層組成,這些全連接層通過非線性激活函數(如Relu)將特征向量轉換為一系列輸出,最終輸出每個類別的概率值。在VGG-16中,全連接層共包含3 層,最后一層為Softmax 層,將輸出映射為概率值,表示圖像屬于崩塌、滑坡、泥石流、地面塌陷不同類別的概率。
6)數據可視化
數據可視化可以幫助研究者掌握模型訓練過程中各項指標的變化,以便更好地理解模型的性能和表現,從而更好地評估模型的性能。
本文選取準確率ACC、召回率Recall、精確率Pre、綜合評價F1四個評價指標對災害識別模型的性能進行評價。準確率(ACC)是衡量整體識別精度的指標,即預測正確的樣本比例。召回率(Rec)是衡量陽性樣本覆蓋率的指標,即正確分類的陽性樣本占總陽性樣本的比例。精確率(Pre)表示被分類為正例的樣本,即正例的比例。F1 值是一個綜合指標,它是精確度和召回率的調和平均[5-6]。
經過3 000次的訓練后,模型的各項指標均穩定在0.92 左右,說明此時模型的準確率已經預期效果,具體如圖2所示。

圖2 模型評價指標圖
結果顯示,深度學習框架VGG-16 在內蒙古大青山地區自然災害圖像分類中有很好的表現,取得了較高的準確率。這表明,使用卷積神經網絡技術對自然災害圖像進行分類、識別和預測是可行的,但仍有許多需要解決的問題,例如,模型在特定場景下的預測表現可能會受到限制,這需要對模型進行更深入的研究和優化。同時,也需要更多的數據支持來提高模型的魯棒性。綜上所述,深度學習在自然災害圖像分類和預測方面具有很大潛力,在未來可以為自然災害預防和應急響應方面做出貢獻。