張安鐸,劉海華
(中南民族大學生物醫學工程學院,湖北 武漢 430074)
巖石樣本的識別在地質勘探與檢測識別中是十分重要的一環。在油氣勘探、礦產資源勘探以及地質分析任務中,巖性識別對保障后續地質作業具有重要的意義。傳統巖石樣本的識別方法主要有重磁、測井、薄片分析等方法。以上方法為科學的描述和解釋巖石巖性結構奠定了基礎。傳統巖石巖性的確定需要專業人員通過人工標注解釋,這通常需要消耗大量的人力資源及時間成本。因此,研究一種能夠比傳統方法更快更有效新的方法,對巖石圖像進行自動識別和分類是十分重要的。
特征提取作為模式識別的重要內容,其有效性直接影響分類結果。大量的研究表明,不同類型的巖石在顏色和紋理上有著較大的差異。根據該特點,本文使用HSV顏色矩、灰度共生矩陣等描述巖石圖像的特征。
HSV顏色矩[1]:HSV顏色空間的色調、飽和度、亮度與人眼對顏色的主觀認識比較符合。與其他顏色空間相比,HSV空間能更好地反映人類對顏色的感知,所以本文采用HSV顏色空間下的顏色矩作為樣本顏色特征。顏色矩是一種簡單有效的顏色特征表示方法,有一階矩(均值,Mean)、二階矩(方差,Variance)和三階矩(斜度,Skewness)等。
GLCM灰度共生矩陣[2]:灰度共生矩陣(Grey Level Co-occurrence Matrix,GLCM)也叫空間灰度級依賴矩陣,它是一種基于統計的紋理特征提取的方法。由于灰度共生矩陣的維度較大,一般不直接作為區分紋理的特征,而是基于它構建的一些統計量作為紋理分類特征。本文所選用的紋理分類特征包括對比度(Contrast)、差異性(Dissimilarity)、反差分矩陣(Homogeneity)、熵(Energy)、相關性(Correlation)和能量(ASM)。經過多次實驗計算對比,本文選擇的灰度共生矩陣GLCM參數如表1所示。

表1 GLCM參數設置
計算每個樣本的GLCM矩陣,對其進行整理獲得每個樣本的18個紋理特征,其表示如下:

本文除使用顏色、紋理等特征外,還使用統計的方法獲取樣本圖像像素值大于40的像素點個數占圖像總像素的百分比作為樣本的1個分類特征。
由于巖石圖像的特殊性和復雜性,在提取多類特征的背景下,為提高訓練效率、減小個別極端誤差對訓練分類器模型帶來影響,本文使用線性動態系統算法對特征數據進行濾波平滑。線性動態系統(Linear Dynamic System,LDS)又叫卡爾曼濾波,是一種優化估計算法[3]。LDS的過程可以解釋為不斷對隱藏變量進行預測、并利用觀測值對預測值進行修正的過程,它只需要當前的測量值和前一個采樣周期的估計值就能夠進行狀態估計。其線性關系體現在這一時刻和上一時刻的隱藏變量之間以及觀測變量和隱藏變量之間,這種遞歸方法不需要大量的存儲空間,每一步的計算量小,計算步驟清晰,非常適合處理特征值較多或標簽復雜的信息。一個線性動態系統可以表示如下:

CatBoost算法是俄羅斯Yandex提出的,算法設計的初衷是為了更好的處理梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)中的分類特征組合問題[4]。傳統的GBDT算法通過選擇樹結構和在樹結構固定后計算葉子節點的值來構建新樹來擬合當前模型梯度[5],其原理如下:使用本文給定7類巖石樣本的28維特征,訓練集為,其中表示樣本總數;表示第個巖石樣本對應的標簽;表示輸入樣本的28維特征。將送入分類器進行M次迭代,算法實現流程如表2所示。

表2 GBDT算法實現流程
然而GBDT這種構建新樹的方式存在梯度偏差問題,會導致模型過擬合。為了解決GBDT存在的問題,CatBoost基于對稱決策采用貪婪的策略考慮組合,高效合理地處理類別型特征。對于樹的第一次分割,CatBoost不考慮任何組合[6]。對于下一次分割,將當前樹的所有組合、類別型特征與數據集中的所有類別型特征相結合,并將新的組合類別型特征動態地轉換為數值型特征,以這種方法構建的新樹是平衡的,不容易過擬,進而可以加速預測并且提高算法的準確性和泛化能力。除了能夠解決模型過擬合和模型泛化問題,CatBoost算法占用內存小,訓練速度快的優勢,在很大程度上解決了研究人員的硬件設備問題[7]。
本文采用來自泰迪杯數據挖掘挑戰賽B題的巖石樣本數據集,該數據為工作人員在勘探現場利用工業相機對巖屑和巖心進行拍攝所得,圖像包含無背景的深灰色泥巖、灰黑色泥巖、灰色細砂巖、淺灰色細砂巖、黑色煤、深灰色泥質粉砂巖和灰色泥質粉砂巖7類巖石300張圖像。
由于巖石樣本數據集數量有限,本文首先使用Open-CV對賽事數據集進行擴充。主要方法有隨機放縮,切分,添加噪聲等。為保證圖片切分后能盡量保留原圖像的紋理信息,這里僅將原圖切分為9等份。通過圖像擴充的方法,原始數據集被擴充至2450張。數據集擴充后,各樣本占比相同,力圖減少由樣本數量差異導致的訓練誤差。
本文將7類巖石的HSV顏色空間矩陣和GLCM空間灰度級依賴矩陣作為LDS+CatBoost的分類特征。在將數據集送入分類器之前,為了降低同類巖石特征之間的計算誤差,首先對樣本數據集進行LDS平滑濾波,將濾波后的矩陣作為CatBoost分類器的分類特征。由于CatBoost模型的訓練超參數會對訓練結果產生較大影響,故本文在進行多次挑選重試后確定的訓練超參數如表3所示。參數定義為,iterations表示網絡迭代次數,depth表示樹的深度,learning_rate表示學習率,test_size表示測試集的比例,random_strength表示分數標準差乘數。

表3 CatBoost模型訓練參數設置
將上述獲得的樣本特征集送入LDS+CatBoost分類器進行分類訓練。為提升模型的泛化能力,對訓練采用10折交叉驗證。將樣本數據集分為10份,第一次訓練,將后面9份作為訓練集,訓練集里面又包含有驗證集,驗證集可用于網絡模型的調優,1000次迭代完成后得到一個網絡模型,再把第1份數據最為測試集對得到的模型進行測試獲得第一個測試準確率。第二次訓練,將第一份和后面8份作為訓練集,1000次迭代完成后得到一個網絡模型,再把第2份數據最為測試集對得到的模型進行測試獲得第一個測試準確率。以此類推最后得到10個測試準確率,平均這10個測試準確率,即為分類器的分類準確率。
通過上述分類方法對本文7類巖石進行分類,分類準確率達到92.86%。為了進一步評估 LDS+CatBoost模型預測的性能,本文同時選取巖石分類常用的機器學習K最近鄰(K-Nearest Neighbor,KNN)模型[8]、GBDT模型、XGBoost模型和未經改進的CatBoost模行進行對比分析。為了對比結果的可靠性,GBDT模型、XGBoost模型和原始CatBoost模型選取的超參數與 LDS+CatBoost模型的一致。各類模型分類結果概況如表4所示。

表4 各類模型測試結果
從表4中可以看出,除LDS+CatBoost模型外,其余對比模型的分類平均準確率相差不大,都在82%左右,Cat-Boost最高,可以達到83.8%。這可能說明在對數據進行LDS平滑濾波之前,分類器對巖石數據分類影響不大。進而對特征進行平滑濾波后,再送入CatBoost分類器,分類準確率可以提高9個百分點,達到92.86%。GBDT分類準確率較為分散,模型穩定性差,且4個對比模型準確率集中分布在80%~85%之間。相較于對比模型,本文提出的模型準確率集中分布在90%~95%之間,92.5%部分占比最大。除此之外,由圖中的黑色盒型范圍可以看出,LDS+Cat-Boost準確率波動程度比其他模型小,表明該分類器分類效果好且魯棒性更強。這說明本文提出的LDS+CatBoost分類器利用圖像HSV顏色空間矩陣和GLCM空間灰度級依賴矩陣的特征,對深灰色泥巖、灰黑色泥巖、灰色細砂巖、淺灰色細砂巖、黑色煤、深灰色泥質粉砂巖和灰色泥質粉砂巖7類巖石有很好的分類效果。
界面設計可以讓用戶便于使用、便于了解、并能減少用戶發生錯誤選擇的可能性。為減少對于編程語言和設備的依賴,讓識別巖性操作高效。本文利用Python-Tkinter圖形化界面設計,融合訓練好的網絡模型,設計了一個在視覺效果上便于理解和使用的交互式界面用于實現巖石的智能識別,并將該界面導出為程序文件,方便在不同機器上進行快速測試。
由于本文在前期進行數據集擴充的過程中,將原始圖像切分為9張子圖像,并計算每張子圖像的HSV矩陣和GLCM矩陣等數值構建成一個28維的特征空間作為分類器的分類特征。為了與模型訓練特征保持一致,在交互式界面識別過程中首先將送入的圖像同等切分為9張子圖像并對每張子圖像構建相同的28維特征,經過LDS特征平滑濾波后,再送入訓練好的模型進行檢測,將每張子圖的檢測結果保存到一個列表。最后采用投票法,將列表中投票最多的結果輸出為測試結果。采用投票法在交互式界面對模型進行測試,可以提高模型的測試準確率。
本文使用了300張7種白光拍攝的無背景巖石圖像,對巖石的自動分類進行研究。對這些圖像進行擴充,每一類巖石擴充到350張,最后共獲得2450張圖像的樣本數據集。采用HSV顏色空間矩陣和GLCM空間灰度級依賴矩陣等特征提取方法對巖石樣本進行數值化描述,將這些數值生成一個28維的特征空間。采用本文提出的LDS+CatBoost算法及常用的4種機器學習算法對2450張巖石圖像進行自動分類,并對這些算法的有效性進行測試。研究結果表明,利用LDS+Cat-Boost算法結合交互式界面對數值化后的巖石圖像實現自動分類是有可行性的。
本文提出的卡爾曼濾波結合機器學習分類器算法在地質學和巖石學領域可能具有重要作用。交互式界面的實現為巖石學和礦物學等領域構建一些實用的分類工具提供了思路。然而,本研究由于樣本數據集的不足,訓練好的模型會缺乏一定的泛化性,測試準確率也不夠高。后續在數據集充足的情況下,將進一步探討和研究本文提出的算法結果交互式界面大規模在地質學、礦物學和巖石學等領域應用的可行性。