王 爽, 何小海, 滕奇志, 龔 劍
(1 四川大學 電子信息學院, 成都 610065; 2 成都西圖科技有限公司, 成都 610065)
在熒光顯微技術中,將賦存于烴源巖及儲集巖中的石油統稱為發光瀝青,發光瀝青可分為油質瀝青、膠質瀝青及瀝青質瀝青。 其中,油質瀝青發出黃、綠、藍色的熒光,膠質瀝青的熒光以橙色為主,瀝青質瀝青以褐色為主[1]。 瀝青組分的熒光色彩特性對于分析研究不同瀝青組分的類別、含量以及發光顏色等數據至關重要。 在實際的工作環境中,熒光產生的機理是通過紫外光或藍光等激發光源的照射,巖石中石油的烴類會發出波長較長的可見光。故而對于不同的激發光源,得到的熒光圖像不同,如圖1 所示。 同時由于不同地區地質結構的多樣性,不同地區、不同層位的油發出的熒光顏色也會有所差異。 為了得到瀝青的種類和含量,目前的做法是用閾值分割方法先把熒光部分提取出來,再根據ISODATA 聚類算法[2]利用每個像素點的顏色信息進行成分分類,再將分類結果保存為劃分文件,此過程速度較慢,并且不同熒光的色彩差異性會導致分析結果的不準確。 圖2 是用ISODATA 聚類算法生成的同一劃分文件對不同光源激發的熒光圖像進行分類的結果。 由圖2 可以看到由于激發光源不同,同一熒光圖像的分類結果是不同的,這顯然是不對的。 為了得到正確的結果,需要對不同色彩表現的熒光圖片分別聚類,生成不同的劃分文件,隨后在實際分析過程中,選擇對應的劃分文件進行分析,但此過程較為繁瑣。

圖1 不同激發光源下的熒光圖像Fig. 1 Fluorescence image under different excitation light sources

圖2 同一劃分標準對不同激發光源的熒光圖像(圖1)下的分割結果Fig. 2 Segmentation results of fluorescence images (Fig. 1) of different excitation light sources with the same division standard
此前,用于解決色彩差異問題的方法是對熒光圖像進行色彩遷移。 Reinhard 等學者[3]提出了一種適用于大部分彩色圖像的色彩遷移算法,該方法的缺點是遷移結果中損失了較多的顆粒以及孔隙細節。 龐戰[4]提出的基于FCM 的局部遷移算法,相比于全局彩色遷移算法,雖然細節更為豐富,但存在匹配關系不夠準確的問題,偶爾會產生錯誤的色彩遷移結果。 王杰[5]提出的改進的松弛化最優傳輸熒光圖像色彩遷移方法雖然在整體色彩準確性和穩定性等方面比前述的兩者都好,但是也會出現局部色彩誤遷移的問題。
近些年隨著深度學習的迅速發展,圖像語義分割結合了圖像分類、目標檢測和圖像分割技術,通過一定的方法逐像素點進行分類,再進行區域劃分,最終得到一幅具有像素級的分割圖像。 2012 年,卷積神經網絡(Convolutional neural network,CNN)、尤其是Kkrizhevsky 等學者[6]提出的AlexNet 模型,在計算機視覺領域取得了重大突破,成為圖像分類、對象檢測、目標跟蹤和圖像分割等計算機視覺領域任務中性能優異、且獲廣泛應用的深度神經網絡學習模型[7]。 卷積神經網絡主要由4 個部分組成,分別是:卷積層、池化層、全連接層以及softmax分類器[8],通過對卷積層和池化層進行一系列的疊加, 能夠獲得更深層次的網絡結構,如VGGNet[9]、ResNet[10]等網絡。 這些深度學習方法能夠自動學習圖像中的有效特征從而進行分類,免除了傳統熒光圖像分析方法中人工交互以及需要對不同激發光源分開聚類產生劃分標準的繁雜過程。 因此,本文提出了基于深度學習的熒光圖像分類技術。
VGG 模型是由Simonyan 等學者[9]于2014 年提出的一種通過增加卷積神經網絡的深度來提高識別性能的網絡,其中最佳網絡包含16 個權值層。 VGG模型由于其基于微小濾波器尺寸的設計,已廣泛用于分類和定位任務,基于VGG 架構的網絡則已在檢測和分割[11-12]等方面進行探索與研究。 一般來說,網絡越深,特征提取能力越強。 然而,下采樣可能會導致低層特征丟失。 UNet 使用跳躍連接將低層特征與高層特征進行融合,能夠保留高分辨細節信息。因此本文采用結合VGG16 與UNet 的方法來構建網絡,在VGG16 模型的基礎上,將最后的3 個全連接層替換為UNet 解碼器部分的結構。 用VGG16 網絡作為編碼器部分進行主干特征提取,產生低分辨率的圖像;UNet 作為解碼部分進行加強特征提取,將低分辨率圖像映射到像素級別的預測上去;同時增加注意力機制來防止像素級信息的缺失,提高特征提取的準確性。
VGG 的核心思想是利用多個小卷積核代替大卷積核,既可以保證感受視野,又能夠在減少卷積層參數的同時提升網絡的表達能力。 近年來,VGG 網絡衍生出了A ~E 七種不同的層次結構,本文使用的是其中的D結構,也就是VGG16,主要包含了13個卷積層、5 個池化層和3 個全連接層。 一般來說,池化層、也即下采樣層,分為最大池化和平均池化兩種,主要位于連續的卷積層之間,用來壓縮圖像的特征尺寸。 而在VGG16 網絡中使用的是最大池化方法,在幾個卷積層之后續接一個最大池化形成了一個block。 卷積層、池化層用來將原始圖像數據映射至特征空間中,最后的3 個全連接層以及softmax分類器則用來將映射后的特征進行分類。 VGG16 網絡結構如圖3 所示,由圖3 可知,該結構共包括5 個block,每個block 的通道數一致,最大池化層用來減少特征圖的尺寸[13]。

圖3 VGG16 網絡結構Fig. 3 VGG16 network structure
UNet[14]是2015 年首次提出用于生物醫學圖像分割的功能強大的卷積神經網絡架構之一。 這是一個“U”型對稱網絡結構,由編碼器和解碼器兩個通用部分組成。 編碼器能夠捕捉上下文信息,完成圖片的下采樣。 編碼部分遵循交替卷積和池化操作的卷積網絡的典型架構,并逐步向下采樣進行特征映射,同時增加每層特征映射的數量。 每層通過對2個3×3 的卷積核、ReLU函數,包括一個2×2 的最大池化核進行操作,一共經過4 次相應的下采樣操作后,特征圖的寬度得以減小,通道數翻倍,從而能更好地完成對像素點的特征提取。 解碼器部分能夠實現精確定位,主要用于特征圖的上采樣。 通過對特征圖的上采樣以及卷積操作處理后,又融合了編碼部分對應的特征圖,進一步增加了輸出的分辨率,從而逐步恢復特征圖像的像素信息及圖像精度。 UNet將特征圖從編碼器的每一層傳遞到解碼器的類似層,就使得分類器可以依據不同規模和復雜性的特征來做出決策。 這種架構已被證明對于數據量有限的分割問題非常有用,網絡結構如圖4 所示。

圖4 UNet 網絡結構Fig. 4 UNet network structure
隨著深度學習的迅速發展,注意機制在圖像分類以及語義分割中也得到了大范圍的應用。 卷積運算的原理是將空間層次特性圖的局部特性與通道層次特性圖的局部特性加以相互融合,進而得到多維多尺寸的空間結構信息。 但是,各個通道所含信息內容的重要性也因圖像分類任務的差異而有所不同,如果不加以區別地整合每個通道的信息內容,那么在某種程度上會丟失許多重要的信息。 因此,Woo 等學者[15]于2018 年提出了一種輕量的注意力模 塊 ( Convolutional Block Attention Module,CBAM),可以在通道和空間維度上增加注意力,并且在ResNet 和MobileNet 等經典結構上添加了CBAM 模塊并進行對比分析,同時也進行了可視化,發現CBAM 更關注目標物體識別,這也使得CBAM具有更好的解釋性。
CBAM 由通道注意力模塊和空間注意力模塊組成[16]。 其中,通道注意力模塊是一種考慮特征圖通道之間關系的注意力機制,突出輸入圖像提供的代表性信息。 空間注意力模型能夠幫助神經網絡系統,使其更注重圖片中那些對圖像分類起著決定性意義的關鍵像素區域而忽略那些無關緊要的區域。實驗證明,輸入特征先指向通道注意力模塊、再指向空間注意力模塊效果會更好。
給定一個中間特征映射F∈RC×H×W作為輸入,CBAM 按順序推斷出一個1D 的通道注意映射Mc∈RC×1×1和一個2D 的空間注意映射Ms∈R1×H×W, 總的作用公式[17]可描述為:
其中,“ ?”表示元素級乘法;F表示輸入特征圖;F1表示經過通道注意力加權得到的特征圖;F2表示經過空間注意力加權得到的特征圖;Mc(F) 表示通道注意力輸出權值;Ms(F1) 為空間注意力輸出權值。 整體結構如圖5 所示。

圖5 CBAM 模塊結構Fig. 5 Structure of CBAM module
本文所用的整體網絡的結構框架如圖6 所示。圖6 中,左半部分是編碼器部分,有5 個子模塊。 設計上整合了原始VGG16 的13 個卷積層以及4 個池化層,實現下采樣。 網絡的右半部分是解碼器部分,也有5 個塊。 每個塊后面是一次上采樣操作,用于恢復圖像的尺寸。 此外,每層之間有一組跳躍連接用于恢復圖像的尺寸,這些跳躍連接是使用連接操作去組合相應的特征映射來實現的。 由于這是用于語義分割的全卷積神經網絡FCN 的變體,需要保留圖像的空間維度信息,因此需要使用跳躍連接。 最后一個卷積層只有一個濾波器,這與大多數其他神經網絡的最后一個密集層相似,并給出二進制掩碼預測。 對于網絡的瓶頸中心部分,本文去掉了VGG16 最后的3 個全連接層,取而代之的是通過上采樣直接把特征圖放大成一個與編碼器同層部分具有相同尺寸的圖像。 此外,本文還在編碼器部分提取出來的所有有效特征層上增加了注意力機制。

圖6 VGG16-UNet 整體網絡結構Fig. 6 VGG16-UNet overall network structure
本文使用的數據集均是通過高清相機在顯微鏡下對不同石油地質部門的熒光薄片進行拍攝而得的,隨后對采集到的圖像進行裁剪,裁剪后數據集中的原始圖像大小均為512×512。 本文實驗所用數據集共有1 199張,包括藍光激發的熒光圖像和紫外光激發的熒光圖像,如圖7 所示。 訓練集和測試集按照9∶1的比例,即用作訓練數據1 079 張,測試數據120 張。

圖7 數據集圖示Fig. 7 Dataset images
實際研究中,考慮到在顯微鏡下采集到的熒光圖像的尺寸通常是遠大于512×512 的,所以在預測時會對原圖進行預處理,首先將原圖裁剪為512×512 的圖片,然后用訓練后的模型分別對每一個裁剪后的圖進行預測,接著將預測后的圖加以拼接,最后可以得到一整張熒光圖像分類結果圖。
在本次實驗中,硬件環境為Ubuntu 20.04 LTS操作系統,CPU 的型號為i7-9700,GPU 型號為GeForce RTX 2080 Ti 以及32 GB 內存。 開發環境采用的是Pytorch 深度學習框架。 在訓練過程中,初始學習 率 為1 × 10-4,BatchSize為4, 共 訓 練100epoches,每個epoch總共訓練1 199 張圖。 同時,使用Adam 優化器,因為Adam 算法能夠自適應調節學習效率。
卷積層使用ReLU激活函數,該函數是從底部開始半修正的一種函數,數學公式具體如下:
其中,x表示輸入。
對巖石熒光薄片圖像的石油成分進行提取,是一個多分類問題。 對于分類問題,最常用的損失函數是交叉熵損失函數(Cross Entropy Loss)。
在二分類的情況下,網絡預測的結果最終只有2 類,假設對于每個類別預測的概率分別為p和1 -p,那么此時交叉熵損失函數的計算公式為:
其中,y是樣本標簽,正樣本標簽為1,負樣本標簽為0;p表示預測為正樣品的概率。
本文是一個多分類問題,多分類的交叉熵損失可表示為:
其中,K是種類數量;yi是一個One-hot 向量,除了目標類為1 之外其他類別上的輸出都為0;pi是神經網絡的輸出,也就是類別i的概率。
為了評估系統的有效性,本實驗采用了語義分割中最常用的評價指標, 分別是精確率(Precision)、 像 素 準 確 率 平 均 值(mean Pixel Accuracy,mPA) 和平均交并比(Mean intersection over union,mIoU)。 這些指標可以衡量每個像素值的分類對整個分類任務的性能。 對于多分類問題,假設總共有k +1 個類別(包括背景),Pij是類i被推斷為屬于類j的像素數量。 也就是說,Pii表示分類正確的真正數(真正例TP +真負例TN),而Pij和Pji通常分別被解釋為假正例FP和假負例FN。 對于本次實驗中采用的評價指標,可做闡釋分述如下。
(1)精確率:在全部預測為正的結果中,被預測正確的正樣本所占的比例。 推得的數學定義公式為:
(2)mPA:對每個類計算正確分類的像素數量與所有像素數量的比值,再對類總數取平均。 推得的數學定義公式為:
(3)mIoU:這是用于圖像分割問題的標準評價指標。 具體就是2 個集合(原始圖和預測圖)的交集和并集之間的比例。 在本實驗中,則表示真實分割圖和系統預測的分割圖之間的交并比。 該比例可以看作交集(真正數)與總數(包括真正數、假正例、假負例)的比值。 最后也是按類別取平均。 由此推得的數學定義公式為:
為證明本文提出的用UNet 作為編碼部分以及注意力機制模塊對網絡的有效性,分別進行了實驗比較上述模塊對結果的影響。 實驗結果見表1。 從3 組實驗可以看出,VGG16+UNet 模型相較于原始VGG16 網絡,各個分類評價指標都有了大幅度的提升;同時添加了注意力機制的模型能取得最佳效果,也說明了注意力機制對整個模型框架的有效性。
圖8 展示了訓練過程中的一組訓練參數曲線圖。 圖8(a)是損失函數曲線圖,圖8(b)是mIoU曲線圖。 橫坐標表示訓練的次數,縱坐標分別表示訓練損失值以及平均交并比。 由圖8 可以看出,損失值隨著訓練次數的增長而逐步收斂到一個下界,而平均交并比則隨著訓練次數的增長而逐步增大。 損失函數中間凸起的原因是訓練過程分為2 個階段,分別是凍結階段和解凍階段。 設置凍結階段是為了滿足機器性能不足時的訓練需求,此過程需要的顯存空間較小,可以根據顯卡情況動態設置參數,解凍階段占用的顯存空間較大,網絡的參數也會隨之發生改變。

圖8 訓練參數曲線Fig. 8 Training parameters curve
為了客觀驗證本文所用網絡的分類性能,使用了相同的數據集分別在ResNet、PspNet 等主流分割網絡上進行了對比實驗,表2 為不同網絡模型在3個評價指標上的結果。 由表2 可以看到,本文所使用的方法在各個指標上都有一定的優勢。

表2 不同網絡模型下熒光成分分類結果評價指標Tab. 2 Evaluation indicators for classification results of fluorescent components under different network models
同時,本文還選取了不同尺寸大小的熒光圖片,在分類時間上與傳統ISODATA 聚類方法做了對比,結果見表3。 由表3 可以看到,在不同尺寸的圖像下,本文的運行時間都優于傳統算法,尤其是在大圖下,其時間性能上的優勢則體現得更加明顯。

表3 熒光成分分類運行時間對比Tab. 3 Comparison of fluorescent component classification operation time ms
最后,為了直觀地感受本文的分類效果,圖9 給出了表3 中的4 張熒光圖像的分類結果,包括了不同激發光源下的巖石薄片熒光圖像。 圖9(a)是原始熒光圖像,圖9(b)是用本文的深度學習方法分類的結果圖,圖9(c)是用ISODATA 聚類算法分類的結果。 從結果可以看到,本文分類的結果在整體上沒有出現誤分類的情況,并且相較于ISODATA 聚類算法不會出現太多孤立的噪點,見圖9(c)中第一列標出來的區域。 在對整張熒光圖像進行分類時,ISODATA 聚類算法有時會把不發光的部分劃分為瀝青質,而本文算法的分類結果則不會出現此問題,見圖9 中第三列圖標記的部分。
本文針對巖石熒光薄片圖像在熒光成分提取上需要大量人工交互,并且對于不同色彩差異的熒光圖像需要分開聚類并產生不同的劃分文件的問題,提出了一種基于深度學習的熒光圖像成分分類技術。 該方法在VGG16-UNet 的網絡技術基礎上融入了注意力機制,UNet 框架實現了端到端的自動分割;VGG16 用較小的卷積核既有利于提高感受視野,又有利于在減小卷積層參數的同時提高網絡的表現力;同時融入注意力機制模塊,增加特征信息內容的學習權重,抑制無關背景信息內容的影響。 通過一系列實驗數據比對分析,分類結果不論是在主觀效果上、還是在客觀指標上都有一定的優勢。 對多個不同油田采集的熒光薄片圖像進行實驗,均取得了較好的分類結果,實驗結果也說明,該模型具有良好的性能,并且減少了傳統熒光成分分析過程中的人工交互過程。 后期將考慮在保證有效性的前提下,優化網絡模型,進一步減少參數量,將算法應用于實際工程中。