萬 川 ,王正勇 ,何海波 ,滕奇志 ,何小海
(1.四川大學 電子信息學院,四川 成都 610065;2.成都西圖科技有限公司,四川 成都 610065)
巖屑是在鉆井過程中產生的巖石碎塊,其種類繁多,按照巖屑的組成成分可以將巖石大致分成沉積巖、變質巖和巖漿巖。巖屑是巖屑錄井的直觀材料,其中巖屑顆粒識別工作是巖屑錄井的主要工作。對巖石巖性的識別工作可以反映出地段地質的地層特性,從而能幫助勘探工作者分析地層的具體特性。巖性準確識別是地質人員研究地層特征和地質建模的基礎。
目前國內對巖屑顆粒的識別鑒定傳統的做法是采用人工標記的方式對巖屑顆粒進行采集分析。這需要專業人員來識別,并且工作量巨大。人工方式的標記對巖屑提取的信息與分析的結論存在誤差,對地質專家分析地質存在較大影響。絕大多數在巖屑錄井上采用數字圖像識別和機器學習等技術手段, 運用數字圖像處理技術分析巖屑顆粒圖像,從而得到巖屑的紋理、顏色、空洞等特征,來用作區分巖屑顆粒巖性的識別分類。雖然利用數字圖像處理等方法解決了傳統特定方法中[1-2]人為標記巖性的問題,但是由于仍需要在分類時人為設置相應的特征,在某些程度上限制了識別的準確度。隨著深度神經網絡廣泛被應用于計算機視覺領域,且不同的實驗場景推出了不同深度神經網絡模型[3-5],通過將較低的分辨率圖片的特征映射到像素級尺度對圖片中的每個像素進行識別,從而大幅度提升了圖像識別的水平。但深度神經網絡模型復雜度提升,增加了巖屑識別所耗費時長,對于巖屑顆粒的識別準確率有很大的提升空間。
為了提高巖屑顆粒識別算法準確率和識別效率,本文提出了一種基于改進P-Unet 巖屑顆粒識別模型,在文獻[6]基礎上做出了如下改進:
(1)在不改動 Unet 模型對稱結構的情況下,將金字塔池化模塊[7]融合到Unet 中,從而得到了本文模型 P-Unet 網絡結構。
(2)運用了多分類焦點損失函數[8]代替傳統的交叉熵損失函數。
(3)將深度殘差網絡ResNet[9]的升級版ResNeXt[10]的網絡結構用于P-Unet 下采樣的結構。
(4)用深度可分離卷積[11-12]代替傳統卷積。
傳統的 Unet 模型呈 U 形,具體結構如圖 1 所示,圖中每一層數字表示卷積核個數,結構前半部分是下采樣,經過不同的卷積層卷積,提取圖像深層次的特征。結構后半部分是上采樣,實現方式利用反卷積的方式實現,輸出指定類別數量的特征圖。有學者也稱這樣的結構為編碼器-解碼器結構。
傳統Unet 網絡在上采樣時會直接拼接上一層的特征和對應下采樣得到的特征信息,結果容易出現特征丟失等問題。為了有效解決上述問題,本文提出了改進的P-Unet 網絡。本文模型采用了 Unet網絡模型編碼和解碼過程,同時在上采樣時將對應的下采樣得到的特征經過金字塔池化模塊之后和上一層特征拼接,拼接完之后再進行上采樣。本文還用金字塔池化模塊替換了最后一層下采樣與上采樣的過程。將金字塔池化模塊運用在特征拼接過程和最后一層的上下采樣過程,能充分利用上下層卷積層所提取的特征信息。同時運用了殘差網絡ResNeXt101 代替傳統殘差網絡ResNet,并且將P-Unet網絡中的傳統卷積方式替換為深度可分離卷積,以及采用焦點損失函數代替傳統的損失函數,具體P-Unet 結構如圖 2 所示。

圖1 Unet 網絡結構

圖2 P-Unet 網絡結構
傳統方式一般通過加深或者加寬網絡提高網絡準確率,但同時伴隨著網絡參數和網絡計算時間的增加。本文P-Unet 網絡采用了升級版的殘差網絡 ResNeXt,此結構利用了 Inception[11]的多支路的思想,保持了ResNet 可移植性的優點,在改變模型復雜度的情況下增加一定的準確率。相比較ResNet 結構,ResNeXt 可以在不增加網絡參數復雜度的情況下,同時減少了超參數的數量。ResNeXt 除采用了VGG 網絡堆疊的思想,同時還引用了Inception 中多支路的思想。圖3(a)顯示了ResNet 結構中的基本塊結構,圖 3(b)顯示 ResNeXt 結構中對應 ResNet 結構的基本塊結構,圖3 長方形中的第一個數字表示參加卷積操作的輸入通道數,長方形中的第二個表達式中相同的數字表示卷積操作卷積核的大小,第三個數字表示卷積的通道數。ResNeXt 結構引入了一個名叫基數(cardinality)的超參數,指的是獨立路徑的數量,通過這個參數可以調整模型的容量。在圖 3(b)中基數為32,通過擴大基數值,網絡模型的準確率能得到一定的提升。

圖3 ResNet 基本塊結構和 ResNeXt 基本塊結構
本文改進 P-Unet 網絡融合了 ResNeXt101 網絡,具體網絡結構如表 1 所示(表中 C 表示的是基數)。與ResNet 相比較,在相同參數個數條件下,一個101 層 ResNeXt 網絡和 200 層 ResNet 網絡準確度差不多,但前者計算量只有后者的一半。ResNeXt 網絡采用的是Inception 網絡結構的思想,但殘差網絡全新的架構相比Inception 網絡更加能適應新的數據。

表1 ResNeXt101 結構與 ResNet101 的結構對比
金字塔池化模塊最初應用于 PSPnet 網絡[7],用于聚合不同區域的上下文特征信息,從而提高獲取全局特征的能力。金字塔池化模塊結構如圖4 所示,模塊中融合了4 種不同金字塔尺度的特征,Level1顯示了最粗略的全局池化后產生的層級,該層是單個特征輸出。Level2、Level3 和 Level4 是不同尺度池化后的特征,能獲取不同的全局范圍的特征。為了獲取全局特征的權重,假如金字塔總共有n 個不同的級別,則在池化之后產生的每一個級別分別進行卷積將每個級別的通道數變為原來的1/n。金字塔池化模塊每個級別的池化核大小可人為設定,池化核大小不同對應不同的級別,池化核大小與輸入的尺寸有關。

圖4 金字塔池化模塊結構
本文P-Unet 網絡模型融合金字塔池化模塊結構對于像素級上的識別能充分獲取上下文不同區域場景下的特征,對巖屑顆粒識別的準確率有一定的提升。
焦點損失函數(Focal Loss)是在交叉熵損失函數[12]基礎上進行改進得到的損失函數,焦點損失函數表示為:

從式(1)可以看到焦點損失函數相比交叉熵損失函數引入了兩個超參數 α 和 γ,α 是用來平衡樣本數量,即可以平衡正負樣本本身的比例不均衡的問題,γ 是用來調節簡單樣本和復雜樣本所占的權重,即調節簡單樣本權重降低的速率,當γ 增加時,調整因子的影響也在增加。當 γ=0 且 α=1 即為交叉熵損失函數,對于交叉熵損失函數,正樣本的輸出概率越高損失越小,負樣本輸出概率越小損失越小。本文巖屑顆粒識別是多分類問題,因此焦點損失函數中α 是一個數組,數組大小為巖屑顆粒類別個數,分別代表著每一個類別對應的權重。普通交叉損失函數在大量簡單樣本的迭代過程中存在著比較緩慢而且可能無法達到最優的問題。焦點損失函數能有效地解決交叉損失函數所不能解決的樣本比例不平衡的問題以及上述問題。
文中采用殘差網絡雖然能提升巖屑識別的準確率,但是隨著網絡特征提取能力的增強,網絡復雜度也隨之增高,網絡參數也增加,使得預測和訓練的時間增長。為了減少網絡參數,本文用深度可分離卷積[13]代替常規的卷積方式極大減少網絡參數。
深度可分離卷積主要是將傳統的卷積分為倆部分,一部分是深度卷積,另一部分為卷積核大小1×1 的卷積,如圖 5 所示。

圖5 傳統卷積核、深度卷積核、點卷積核
圖5 中(a)、(b)、(c)表示分別為傳統的 卷積、深度卷積和 1×1 的卷積。傳統卷積對特征圖的所有通道同時卷積,無論多少個通道輸出一個數。深度可分離卷積將正常的卷積過程分為兩步:假設輸入有N 個通道,第一步是用 N 個卷積對 N 個通道分別做卷積,這樣可以得到 N 個數;第二步是將第一步得到的特征圖通過 1×1×N 的卷積核進行卷積。
假設輸入的特征圖的尺寸為 W×W×M,輸出特征圖的大小為 W×W×N,卷積核的大小為 H×H,則通過傳統卷積的性質可知該計算量為:

深度可分離卷積的計算量為上述兩步的計算量之和,第一步深度卷積的計算量為:

第二步 1×1 卷積的計算量為:

根據上述的計算量得到深度可分離卷積和傳統卷積之比,如式(5)所示:

假設卷積核大小為C×C,可以得到傳統卷積的計算量大致是深度可分離卷積的C2倍。
根據以上性質可知,用深度可分離卷積代替傳統卷積可以大量減少網絡的參數,同時減少預測時間。
本文的數據集來源于地質錄井公司提供的巖屑樣本,先經過篩選巖屑樣本得到6 類比較多的巖屑顆粒,再通過實驗室采集軟件采集得所需樣本圖片。本文將采集得到的樣本進行裁剪得到初步樣本。再將樣本經過旋轉、鏡像、平移等數據增強操作的方式得到最終所需的數據集,總共得到570 張512×512 的巖屑顆粒的訓練集樣本,以及通過隨機選取得到的 60 張 512×512 的巖屑顆粒的測試集樣本。巖屑樣本中總共分為7 類,將不同類別的巖屑用不同RGB 值標記,其中本文將背景(背景指的是裝巖屑顆粒的盒子)也當成 1 類,背景的 RGB 值設置為全 0。
本文的實驗在Windows 7 64 位操作系統下進行,實驗使用的硬件資源為 Intel Core i5-7500 CPU。實驗中使用的深度學習框架是以TensorFlow 作為其后端,Keras 作為其前端,同時利用 Python3.6 作為編程語言進行實驗。實驗中采用的是傳統收斂速度較快的 Adam 優化器優化損失,其中 epochs 為 100,batch_size 為1。
將自制的訓練數據集輸入改進的P-Unet 網絡,用改進的網絡進行訓練,采用客觀評價指標[14]對訓練得到的結果與一些算法進行了對比。傳統準確率的公式如下:

式中:TP 表示預測圖和標簽圖中像素值不為 0 的像素點的總數量;FP 表示預測圖中像素值不為0并且標簽圖中像素值為0 的像素點的總數量;FN表示預測圖中像素值為0 并且標簽圖中像素值不為 0 的像素點的總數量;TN 表示預測圖和標簽圖中像素值為0 的像素點的總數量;可以看出FN、FP是預測錯誤的像素,TP、TN 是預測正確的像素,本文準確率公式簡化為:

式中:PN 表示預測值與標簽值相同的像素;FN 表示預測值與標簽值不同的像素。
從表2 看出:改進P-Unet 網絡準確率相比Linknet[15]網絡、傳統的 Unet 網絡分別上升了 2.31%、2.65%。同時對比了采用不同殘差網絡得到的準確率,運用了 ResNeXt101 的 Unet 網絡準確率比運用了ResNet101 的 Unet 網絡準確率上升了 0.16%。改進的模型可以更加準確地預測出巖屑顆粒的種類。

表2 本文模型與其他模型性能對比
根據表 2 和表 3 可知使用傳統卷積的 P-Unet網絡準確率高,但是模型的復雜度高。本文中使用深度可分離卷積替換傳統卷積之后,雖然準確率下降了0.41%,但使用深度分離卷積的P-Unet 網絡訓練參數大約是使用傳統卷積的P-Unet 網絡訓練參數的1/3 倍,網絡的復雜度也相應大大降低。
本文提出了一種改進P-Unet 網絡模型的巖屑顆粒識別方法,利用傳統Unet 網絡的上采樣和下采用的技術,融合了金字塔池化模塊,采用了焦點損失函數作為網絡的損失函數,以及ResNeXt 殘差網絡結構等一系列的技術,本文改進的模型在巖屑顆粒識別準確性上得到進一步的提升。實驗結果表明,本文的方法有效改進了巖屑顆粒識別的準確率,在巖屑顆粒識別領域上有一定的參考價值。

表3 本文模型與其他模型的參數量