譚 永 健,田 苗,徐 德 馨,盛 冠 群,馬 凱*,邱 芹 軍,潘 聲 勇
(1.湖北省水電工程智能視覺監測重點實驗室/三峽大學計算機與信息學院,湖北 宜昌 443002;2.武漢市測繪研究院,湖北 武漢 430074;3.中國地質大學(武漢)計算機學院,湖北 武漢 430074;4.武漢中地數碼科技有限公司,湖北 武漢 430074)
巖石巖性主要指巖石結構、組成、顏色等特征,巖性識別是地質學研究的重點之一,在地質儲層特征研究、地質建模以及礦產資源勘探中發揮著不可替代的作用[1-3]。傳統的巖性判斷方法主要通過顯微鏡對巖石薄片樣本進行觀察,從而確定巖石成分及結構,其耗時長、成本高且主觀性較強[4,5]。采用自動化與智能化手段對巖石圖像進行數據挖掘與巖性識別能減少對專業人員與儀器的依賴,有助于提高效率,并且能夠發現隱含的地質信息[6,7],因此,許多學者利用機器學習與深度學習等智能算法提取并分析巖石圖像特征,進而實現巖性自動化識別[8-11]。
傳統機器學習算法將人工提取的巖石顏色、形狀等特征送入分類器進行訓練,從而實現巖性的自動識別。例如:Wang等[8]提出一種利用巖石顆粒幾何特征代替局部結構特征的巖石分類方法,有效解決了邊界模糊問題;Sharif等[12]針對行星地質探測提出一種基于貝葉斯圖像分析的自主巖石分類系統,用13個Haralick紋理參數描述巖石樣本表面,并自動將這些信息編目成一個5-bin的數據結構,進而計算貝葉斯概率,輸出識別結果,該系統結合了行星探測車漫步者的特點,清晰簡潔,無需從漫步者那里獲得過多的計算能力;Shu等[13]提出一種無監督特征學習的巖石圖像分類方法,使機器人行星地質探測以及地質圖像自動標記、檢索性能顯著提高。目前,傳統機器學習算法在巖性識別上存在兩個問題:1)網絡訓練難度大,需要人工提取巖石特征和龐大的訓練數據集;2)巖石種類豐富、數量龐大,圖像采集難度大、成本高。為此,不少學者采用深度學習算法實現巖性的自動識別與分類[6,14-18],但識別準確率及效率仍存在提升空間(如直接對大量數據進行訓練需要較高的硬件配置和時間成本)。
本文根據巖石圖像的特點,基于深度神經網絡和遷移學習方法,提出一種基于Xception網絡的自動化巖石圖像分類模型,選用嵊州地質調研所采集的巖石圖像樣本驗證模型的有效性,并與其他主流巖石圖像分類模型進行實驗對比。
Inception結構從最初的InceptionV1(GoogLeNet)發展到InceptionV2[19]、InceptionV3[20]、Inception-Resnet[21],其核心思想是通過將卷積核劃分為獨立于跨通道相關性和空間相關性的運算,使過程更容易和高效。Inception結構減少了總網絡參數數量,并且在網絡最后層用平均池化代替全連接層[21]。Inception V3中標準的Inception結構與簡化的Inception結構(用一種規格的卷積核)如圖1a、圖1b所示。
Xception網絡(extreme Inception)[22]由Inception V3改進而來,其將InceptionV3中的卷積操作替換為深度可分離卷積模塊,該模塊使用1×1卷積映射跨通道相關性,在每個卷積的輸出通道均有獨立的空間卷積來映射空間相關性。區別于普通卷積將通道視為單區塊,深度可分離卷積模塊將每個通道當成一個區塊,其中的Inception模塊將多個通道劃分為3、4個區塊,Xception將所有通道視為一個區塊,為可分離卷積,準確率最佳。對圖1b中Inception模塊進行改造得到等效的Inception簡化模塊(圖1c),其通道區塊數量越多,跨通道相關性與空間相關性相互分離的假設越合理,基于此提出圖1d中的Xception模塊。改進后,Xception網絡參數達22 855 952個,比InceptionV3減少了770 776個,同時訓練時迭代速度未明顯變慢[22];在Xception中加入類似ResNet的殘差機制顯著加快了Xception的收斂過程,準確率更高。實驗證明,Xception網絡在ImageNet數據集的Top-1、Top-5上巖石巖性的識別準確率高達79.0%、94.5%,性能表現優于其同源模型InceptionV3(78.2%、94.1%),以及深度學習圖像分類模型VGG-16(71.5%、90.1%)、ResNet-152(77.0%、93.3%);在JFT/FastEval14k數據集上,Xception模型MAP@100指標達到6.70,優于Inception模型(6.36)[22]。

圖1 Inception網絡模型Fig.1 Inception network model
Xception網絡結構(圖2)由輸入層、中間層、輸出層組成。除開頭與結尾模塊外,網絡結構中其他模塊均具有線性殘差連接;整個模型結構包含36個卷積層,是提取巖石圖片特征的基礎,這36個卷積層由14個模塊構成,每個模塊包含ReLU(Rectified Linear Units)激活函數(有效解決模型訓練中梯度消失問題,加快收斂速度)與若干深度可分離卷積模塊,后者在圖2中以SeparableConv表示,由depthwise卷積(卷積核為3×3,見式(1))和Pointwise卷積(卷積核為1×1,見式(2))組成,其后連接池化層;卷積層之后為全連接層,最后是邏輯回歸層。巖石圖像數據首先載入輸入層,隨后通過中間層循環8次聚合全局平均值,最后通過全連接層與輸出層輸出。所有卷積與可分離卷積均進行批歸一化,分離的卷積層的深度乘數為1,即無深度展開。

圖2 Xception模型網絡結構Fig.2 Network modules structure of Xception model
(1)
式中:d(W,y)i,j為輸出特征圖中位置(i,j)的值;K、L為卷積核的寬和高;Wk,l為卷積核中位置(k,l)的值;yi+k,j+l為輸入特征圖中位置(i+k,j+l)的值。
(2)
式中:p(Wp,yp)i,j,n為第n個輸出特征圖中位置(i,j)的值;Wn為第n個1×1卷積核;yi,j,m為第m個輸入特征圖中位置(i,j)的值;M為輸入特征圖數量。
模型采用Adam(Adaptive moment estimation)優化算法,該算法為自適應參數更新算法,通過更新參數(式(3))達到最優解,最小化損失值;最終通過softmax分類器實現巖石圖像的分類(式(4))。

(3)

(4)
式中:pi為圖像被預測為第i類的概率;K為訓練圖像樣本類別數;ai為模型最后一層的輸出。
遷移學習是深度學習中的一種重要方法,可將某領域中的知識或模型應用于其他相關領域任務中[23-25],適用于源領域數據量充足而目標領域數據量較少的情況。將遷移學習方法與深度神經網絡相結合能將其他圖像分類任務中學習到的知識遷移到當前的巖石識別神經網絡中,不需再進行大量的模型初始化以及優化,僅對局部調整改進,即可降低訓練開銷,提升巖石識別準確率。結合遷移學習的Xception模型框架(圖3)為:利用Xception模型在ImageNet數據集(含1 000類總數超過120萬張圖像)上進行預訓練得到權重參數之后,移除模型原有分類器softmax,在卷積層后添加全局平均池化層GlobalAveragePooling2D;隨后添加輸出維度為1 024的全連接層Dense以及ReLU激活函數;在全連接層后再添加Dropout層,設置隨機消除神經元概率為0.5,以此提高模型泛化能力,減少過擬合;最后添加適應巖石圖像分類要求的分類器softmax進行連接,改進后部分Xception模型結構如表1所示。

圖3 結合遷移學習的Xception模型框架Fig.3 Xception model framework combined with transfer learning

表1 改進后Xception模型結構Table 1 Improved Xception model structure
本文實驗數據集來自嵊州地質調研中人工采集的巖石樣本圖像,共選取10類巖石(圖4),分別為:絹云母化流紋質含角礫玻晶屑凝灰巖(SRBV-Tuff)、凝灰質含礫雜砂巖(TG-Sandroc)、英安巖(Dacite)、流紋質晶玻屑凝灰巖(RCG-Tuff)、凝灰質粗砂巖(T-Gritstone)、流紋斑巖(R-porphyry)、流紋質含巖屑晶屑強熔結凝灰巖(RLCSF-Tuff)、角閃安山巖(Hungarite)、流紋質沉角礫凝灰巖(RSB-Tuff)、流紋質含火山泥球玻屑凝灰巖(RVMBV-Tuff)。由于原圖像分辨率過高,每張大小在3 M左右,無法直接載入模型進行訓練,需在不丟失圖像特征信息的前提下,將其壓縮到224×224像素大小,以滿足模型訓練要求;隨后對原圖像進行裁剪,減少背景信息的干擾,確保圖像含有更多的巖石特征信息。由于巖石圖片均為人工拍攝采集,每類巖石圖像數量較少,均在20~50張之間,總數量為350張左右。訓練集規模較小會使模型無法進行充分訓練,故通過翻轉、旋轉、平移、加噪4種方式對數據集中的每類圖像進行隨機擴充:1)翻轉:將圖像沿水平或垂直方向進行隨機翻轉;2)旋轉:以圖像的幾何中心為參考點,隨機選擇角度(設定為45°~240°)進行旋轉;3)平移:向上下左右4個任意方向隨機平移50~100像素;4)加噪:為圖像添加高斯噪聲或椒鹽噪聲。擴充后數據集共包含10 000張巖石圖像,其中每類巖石圖像1 000張,將巖石圖像數據集按照4∶1的比例隨機劃分為訓練集與測試集。

圖4 巖石圖像示例Fig.4 Samples of rock images
根據Xception模型特點,設置巖石圖像尺寸為224×224像素;由于巖石數據集總體圖像數量偏少,為避免出現精度差、過擬合等問題,實驗結合遷移學習方法對模型進行微調,并將模型初始權重設置為imagenet;訓練階段,將batch_size尺寸設置為32,經過測試,當迭代次數設置為4時模型訓練效果最佳;同時,設置優化器為Adam、學習率為0.001、損失函數為categorical_crossentropy。
本文使用混淆矩陣展示Xception模型對巖石圖像的識別結果。同時,為更全面地評估測試集的識別結果并對比不同基于深度學習的巖石圖像分類方法識別性能差異,采用精準率(P)、召回率(R)和F1-score(F1)評價各模型精度,公式如下:
P=TP/(TP+FP)
(5)
R=TP/(TP+FN)
(6)
F1=2P×R/(P+R)
(7)
式中:TP、FP分別為預測正確和預測錯誤的巖石圖像數量;FN為未被識別出的巖石圖像數量。
由基于Xception模型的巖石圖像分類結果混淆矩陣(表2)可以看出,Xception模型對10類巖石圖像的總體識別準確率達86%,能精準識別大部分巖石圖像;但對RLCSF-Tuff、RSB-Tuff、RVMBV-Tuff 3類巖石識別效果不佳,往往將其誤判為RCG-Tuff,可能是由于這4類巖石同屬凝灰巖,主體特征相似度較高,在樣本量偏少且巖石特征較為細膩的情況下,Xception模型容易將其全部識別為特征更明顯的流紋質晶玻屑凝灰巖(RCG-Tuff)。

表2 基于Xception模型的巖石圖像分類結果混淆矩陣Table 2 Confusion matrix of rock image classification results based on Xception model
由表3可知, Xception模型識別RCG-Tuff、RLCSF-Tuff、RSB-Tuff 3類巖石的F1值分別為0.58、0.77、0.51,識別準確率較低,說明Xception模型對這3類巖石特征學習度欠佳;Xception模型P、R、F1的均值分別為0.94、0.85、0.86,性能優于同源模型InceptionV3和Inception-Resnet,說明將InceptionV3中的卷積操作替換為深度可分離卷積模塊且引入殘差連接機制能有效提高識別準確率。由表4可知,相對于其他7種常用基于深度神經網絡的巖石圖像分類模型,Xception的分類效果最好。

表3 Xception模型評價結果Table 3 Evaluation results of Xception model

表4 不同模型評價結果比較Table 4 Comparison of evaluation results of different models
本文提出一種基于Xception模型的自動化巖石圖像分類模型,該模型將InceptionV3中的卷積操作替換為深度可分離卷積模塊,并引入殘差連接機制,可在保留較高準確率的情況下減少大量的模型參數與計算量,同時結合遷移學習的思想提高巖石圖像分類準確率。利用嵊州地質調研中人工采集的巖石樣本圖片對模型有效性進行驗證,實驗結果表明,該方法能有效識別不同類別的巖石,相比現有的基于深度學習巖石圖像分類方法性能更好。但對流紋質含巖屑晶屑強熔結凝灰巖、流紋質沉角礫凝灰巖、流紋質含火山泥球玻屑凝灰巖識別準確度不理想,后續將通過增加巖石圖像樣本和訓練輪數以及微調模型以適應更細節化的巖石圖像特征等手段來解決該問題。未來將構建更完善、豐富的巖石圖像數據集,研究顧及不同場景與清晰度的巖性識別方法,引入更多的先驗知識改進模型,以期進一步提升多種情況下巖石分類準確率。