李 穎,李秀宇,盧兆林,李世銀
(中國礦業大學 信息與控制工程學院,江蘇 徐州 221116)
煤炭是我國主要的能源和重要的生產原料,煤炭分選能夠減少燃煤造成的環境污染問題,其中煤粉顆粒粒度是煤炭分選過程中的重要參考信息。基于圖像處理的粒度分析方法憑借準確性和快速性成為研究的重點,利用圖像處理技術提取顆粒特征,進而對煤粉顆粒進行粒度分析。其中,圖像分割是關鍵技術,通過分割樣品圖像能夠得到圖像中顆粒數目、形狀、尺寸分布等信息,為煤炭分選提供依據[1-4]。
現有的煤炭顆粒圖像分割算法可分為傳統算法和基于深度學習的算法[5,6]。利用傳統算法處理較復雜的煤炭顆粒圖像時會出現一些問題,如閾值分割易受噪聲干擾,邊緣檢測需要處理優化邊緣,區域分割中常用的分水嶺算法則會存在過分割的情況,為了解決顆粒粘連等問題,還需引入數學形態學等算法進行后處理。傳統算法主要依賴于圖像灰度分布相關的閾值、邊緣等特征,而煤炭圖像中顆粒與背景的灰度分布較為接近,很難提取傳統特征,因此利用傳統分割算法處理煤粉顆粒CT圖像中顆粒過多過小和顆粒形態復雜等問題,分割效果并不理想[7-9]。
基于深度學習的分割算法則是利用卷積神經網絡學習煤粉顆粒特征進行分割。近年來,深度學習快速發展,廣泛地應用于各類圖像處理任務中[10],煤礦智能分選領域也進行了相關嘗試,利用深度學習解決各種煤炭圖像分割與識別問題,發現基于深度學習的算法可以更加快速、準確[11-13]。
其中基于深度學習的實例分割算法不僅能夠分割背景和顆粒,還可以直接利用端到端的分割模型得到單獨顆粒信息。因此本文采用實例分割算法來分割煤粉顆粒CT圖像,接下來主要介紹本文提出的分割算法、數據集、實驗結果和結論等。
本文旨在精確分割煤粉顆粒,得到單獨顆粒信息,因此采用基于Mask R-CNN[14]的實例分割算法。Mask R-CNN在自然圖像處理上效果顯著,但是直接應用于煤粉CT圖像存在顆粒漏分割、分割顆粒形態不完整等問題,針對上述問題,本算法首先在特征金字塔網絡中添加壓縮激勵(squeeze-and-excitation,SE)[15]模塊來增強特征的通道信息,同時將壓縮激勵模塊(simplified squeeze-and-excitation,SSE)改進后用于增強高層和低層特征間語義信息,這樣能夠有效提高小顆粒定位的準確性,減少欠分割;然后重新設計分割分支以達到更精細的分割;最后在訓練階段選取參數時,參考添加錨點框預處理結果可以更加合理選擇訓練參數,提高分割準確性。
本文提出的基于深度學習的煤粉分割模型結構如圖1所示,該模型分為兩個階段,第一階段采用殘差網絡和特征金字塔網絡(feature pyramid network,FPN)[16]提取顆粒語義特征和位置特征,得到不同尺度的特征圖,然后將特征圖傳入候選區域生成網絡(region proposal network,RPN)生成候選框。第二階段將候選區域映射到特征圖后傳入RoIAlign層,進行固定尺寸的池化操作,進而對頭部網絡中的目標分類、邊界框回歸和掩膜分割等任務進行處理。

圖1 基于深度學習的煤粉顆粒圖像分割模型
第一階段的作用是提取顆粒位置特征和語義特征并生成候選區域。首先利用特征提取網絡提取圖像特征,得到不同尺度的特征圖;然后將特征圖傳入候選區域生成網絡獲取候選框。
特征提取網絡如圖1所示,本文采用殘差網絡和特征金字塔網絡為基礎提取圖像特征。利用殘差網絡提取不同尺度信息,在本文中共提取5個尺度的特征圖,標記為C1,C2,C3,C4,C5,這5個特征圖具有不同的分辨率,相對于原始圖片的大小是 {1/4,1/8,1/16,1/32,1/64}, 由于C1的特征圖較大,計算負擔加大,故不采用。
特征金字塔網絡包含自下至上連接、自上至下連接和橫向連接3種連接方式,能夠輸出多個尺度的特征圖。其中,自下至上連接是指在殘差網絡中可利用底層特征圖通過降采樣得到高層特征圖,另外兩種連接方式與圖1特征金字塔部分中箭頭的方向一致,輸出特征記作P2,P3,P4,P5,與對應的C2,C3,C4,C5大小相同。在原始的特征金字塔網絡中自下至上連接只采用了上采樣的方式,不適于解決較小煤粉顆粒目標特征表達能力弱的問題。為此本文引入壓縮激勵(SE)模塊,結構圖如圖2所示,SE模塊首先采用全局池化操作對特征圖進行壓縮,得到一個具有全局感受野的特征圖;然后利用兩個全連接層去構建通道間的相關性,本文將特征維度降低到輸入維度的1/16,通過ReLU激活后利用全連接層提升到原來的維度,這樣既可以增加網絡的非線性,減少計算量,也可更好地擬合通道間復雜的相關性;最后將通過Sigmoid激活函數得到的結果作為權重與原始特征圖相乘得到輸出特征,使用該操作可增強殘差網絡的輸出特征圖的通道信息。

圖2 壓縮激勵模塊結構

圖3 SSE模塊結構
利用卷積神經網絡提取特征時,隨著網絡深度的增加,模型可以學習到更多的圖像特征,但是較小的煤粉顆粒目標隨網絡深度的增加可能會出現特征減少、特征表達能力減弱等問題,導致最終學習到的特征非常有限。故本文考慮了不同分辨率特征之間的關系,對原有的壓縮激勵模塊進行針對性改進,進一步增強圖像特征間的聯系。改進后的壓縮激勵模塊(SSE)如圖3所示,其不再用于增強同一個特征的通道信息,而是用于兩個特征圖之間,一般我們稱經過更多層卷積后的特征為高層特征。首先將高層特征進行全局池化操作,然后將原有激勵操作合并成一個1×1卷積,獲得統一的通道數(本文采用256),最后采用批歸一化(batch normalizatoin,BN)和Sigmoid激活函數,得到一個與高層特征相關的輸出。低層特征經卷積得到與高層特征相同的通道數,再與高層特征相關的輸出進行點乘得到新的特征,新的特征與高層特征兩倍上采樣相加,得到最終的輸出。這樣既保持原有的壓縮激勵操作能夠增強通道信息的優點,又能增強不同分辨率的特征圖的語義信息,提升了圖像分割的性能。
RPN的作用是生成目標的候選區域,得到與特征金字塔網絡輸出特征維度相同的特征圖,通過兩個并行的全連接操作對該特征圖進行分類(二分類,包含目標和不包含目標)和目標框坐標回歸操作,最后輸出一組目標的候選區域以及對應的置信度分數,置信度分數代表候選區域的質量,分數越高,質量越高,可根據實際情況篩選合適的候選區域,輸入第二階段進行目標的細化。

圖4 圖像目標尺寸分布
在RPN中,為了選取候選區域,一般會在特征圖的每一個像素點上預先設定錨點框(anchor box),錨點框一般為預先設定的不同尺寸的長方形,負責選取圖像中可能屬于數據集中某一類的候選區域,再把候選區域輸入到分類網絡中進行最終的分類。針對煤粉顆粒數據集,本文采用了錨點框預處理模塊,利用k-means聚類算法得到顆粒尺寸分布情況如圖4所示,本文將k值設置為50,淺色小圓點從訓練集中隨機選取的2000個目標框的大小,深色三角為聚類結果,從聚類結果中選擇合適的錨點框尺寸。從圖中可以看出,煤粉圖像中顆粒目標尺寸相對較小,根據COCO數據集[17]的劃分標準(目標面積小于32×32為小目標,介于32×32和96×96之間的為中等目標,大于96×96為大目標),圖像中小目標和中等目標占比非常大,為了識別所有顆粒,錨點框的尺寸應與圖像中顆粒尺寸相匹配,既包含所有目標又不宜太大,針對本文數據集選取的錨點框尺寸為 {10,25,50,75,100}, 比率為 {0.5,1.0,2.0}。
第二階段主要是將RPN輸出的候選區域傳入RoIAlign層,得到固定尺寸的特征圖用于分類、回歸和分割。頭部網絡處理任務之前,將得到的候選區域映射回特征金字塔輸出特征圖后傳入RoIAlign層,RoIAlign層采用雙線性插值的方法使得每個感興趣區域能夠與原圖中對應區域對齊,然后對該區域進行池化操作,生成固定大小的特征圖進行細分類、目標框回歸以及掩膜分割。
Mask R-CNN原有的掩膜預測網絡結構相對單一,難以得到較為精細的分割結果。全卷積神經網絡[18]用于語義分割時為了得到更加精細的分割結果,不只采用最后的輸出進行分割預測,還采用跳級連接添加中間層的特征,實驗結果表明,添加中間層特征有助于恢復圖像細節。受這一想法的啟發,本文對分割分支進行了重新設計,結構圖如圖5所示,經RoIAlign輸出的特征圖采用連續卷積計算,每兩個卷積進行一次兩倍上采樣,并將RoIAlign上采樣的結果與兩個卷積輸出上采樣的結果相加得到用于預測的特征圖,實驗結果顯示預測掩膜會更加完整。

圖5 掩膜預測分支結構
煤粉顆粒分割模型屬于多任務學習,可以完成目標分類、檢測和分割3個任務,在第二階段訓練時,采用了3個損失函數共同參與網絡訓練,損失函數的定義如下
L=Lcls+Lbox+Lmask
(1)
3個損失函數分別為分類損失、回歸損失和分割損失。分類損失采用Softmax交叉熵損失函數,計算的是輸出煤粉顆粒的類別損失。分類損失函數的定義如下
Lcls=-ylog(y′)-(1-y)log(1-y′)
(2)
其中,y表示真實值,y′表示預測值。煤粉顆粒圖像可以分為顆粒和背景兩類。
回歸損失函數采用Smooth L1損失函數,計算方式如式(3)
(3)

分割損失采用的是二進制Sigmoid交叉熵損失函數,計算公式如下
(4)
其中,yi表示真實值,y′i表示預測值,m表示預測掩膜的大小,本文取28×28,該公式計算每一個掩膜的損失函數值。分割損失函數在輸出層采用Sigmoid作為激活函數,只能用于二分類,對輸出的特征圖進行預測,判斷特征圖中的每一個像素點屬于顆粒還是背景來實現分割。
本文采用高分辨三維X射線顯微成像系統(3D-XRM)采集煤粉顆粒圖像。所獲圖像樣本為1500張連續序列的煤粉CT圖像,圖片寬高為990×1013,由于標注成本過高,沒有對全部圖片進行標注,隨機選取序列中的圖片進行剪裁,利用Labelme[19]進行顆粒標注,每幅圖像的顆粒數目從20到60不等,能夠充分表達不同的顆粒形態。本文采用訓練集數目為100,驗證集數目為20,大小為229×229的圖像進行訓練,數據集樣本如圖6所示,其中圖6(a)是訓練集圖像,大小為229×229,圖6(g)是真實標注的標簽(ground truth,GT),所有的顆粒標注為一類,不同的顏色代表不同的實例,即單個顆粒。圖6(b)至圖6(f)展示了不同的圖像增強方式,如圖像翻轉、圖像鏡像、圖像旋轉、圖像倍乘、高斯模糊、部分圖像變換等,圖6(h)至圖6(l)是相應的變換對應的標簽。通過圖像增強增加訓練樣本數量擴充至1000,可有效減輕過擬合的情況。

圖6 訓練集圖片及其增強方法展示
在本文中,我們采用準確率(Precision)和召回率(Recall)來評價算法,準確率用于衡量結果的準確性,召回率用于衡量結果的好壞,公式如下
(5)
(6)
其中,TP為被正確識別為正樣本的實例數,FP為被錯誤劃分為正樣本的實例數,FN為被錯誤劃分為負樣本的實例數,在本文中,實例數目就是指圖像中煤粉顆粒的數目。
同時,我們采用平均精確度(mean average precision,mAP)來評價分割算法的質量,它能夠定量地描述準確率和召回率的分布情況,采用多閾值計算平均精確度,共采用10個閾值(閾值是指分割掩膜和真實掩膜的交并比),從0.5開始取值,取值間隔為0.05,最大閾值為0.95,同時,我們取0.5(AP50)和0.75(AP75)兩個單閾值來共同衡量分割算法。
本文采用ResNet50和特征金字塔網絡作為特征提取網絡,采用ResNet50既能獲取更快的訓練速度也能滿足計算要求。理想的深度學習訓練需要大量的標注樣本,但是數據標注成本較高,很難針對某些任務建成大規模數據集,為了解決訓練樣本數量不足的問題,可利用遷移學習方法進行處理。遷移學習[20]是解決樣本數量不足時有效的訓練方法,常見的處理方式是將相關任務的權重遷移到目標任務模型的訓練中,然后利用小規模數據集進行參數學習,這樣能夠得到較好的訓練效果。本文的數據集規模較小,因此采用了遷移學習,具體方法為:將采用經過大規模數據集COCO數據集訓練的模型參數遷移到本文的模型中,然后利用煤粉數據集進行模型訓練,總共訓練80個epoch,訓練時每個epoch的訓練步長為100,批處理尺寸(batch size)設置為2。本文在訓練時采用隨機梯度下降的方法優化模型,動量設置為0.9,初始學習率設置為0.001,權重衰減指數為0.0001。
在候選區域生成網絡訓練過程中進行多尺度預測,每個特征圖得到的預測的目標框的個數為特征大小乘15個設定的錨點框,總計得到261 888個預測錨點框,計算量非常大。為了減小計算量,增加訓練效率,我們首先采用非極大值抑制算法[21]篩選預測框,本文閾值設置為0.7,即如果兩個框重疊的面積與總面積之比大于0.7,則該框刪掉,否則保留。然后利用交并比(IoU)去選擇正樣本和負樣本,交并比的計算公式如下
(7)
其中,anchor box為預測框,GT box即Ground Truth box,為標注框,如果IoU大于0.7,則為正樣本,小于0.3則為負樣本,我們設置每張圖片保留256個預測框。在頭部網絡訓練中,每張圖片隨機選取200個感興趣區域進行訓練,正負樣本比率選擇均為0.33。
設置訓練參數時,錨點框的尺寸是預先設定的,錨點框的尺寸應當包含所有目標的大小,在Mask R-CNN中,錨點框的尺寸為 {32,64,128,256,512} 和3個決定形狀的比率為 {0.5,1.0,2.0}, 經實驗發現這樣對煤粉顆粒并不能產生很好的結果,按照建議進行等比例縮小修改,效果更差。故本文根據錨點框預處理模塊得到的圖4所示的顆粒分布情況,最終選取錨點框的尺寸為 {10,25,50,75,100}, 比率為 {0.5,1.0,2.0}。 在測試階段,測試圖像大小輸入為990×1013,最大目標檢測數目設置為512,置信度設置為0.9。實驗結果見表1,由對比結果可得出,經過錨點框預處理模塊合理設計得到的錨點框尺寸能與我們的數據集更好地匹配,可以提升訓練效果。

表1 不同錨點框尺寸的對比實驗結果/%
我們的實驗結果可視化如圖7所示,在圖中不僅展示了本文算法和Mask R-CNN的可視化結果,還與閾值分割算法[22]、分水嶺算法[23]、一階段實例分割算法YOLACT[24]和二階段實例分割PANet算法[25]進行直觀上的比較。測試集圖像是CT序列的原始圖像,大小為990×1013。圖7(a)為CT序列中任選的一張圖片,從圖可以看出煤炭CT圖像中顆粒數量多并且煤粉顆粒中摻雜礦物顆粒,形態較為復雜。圖7(b)是其真實的顆粒標注標簽,考慮到圖像中的顆粒如果十分分散,不成形態就不進行標注,對整體的分析不會產生影響。圖7(c)是采用閾值分割得到的結果,可以看到分割結果圖中存在很多細小的斑點,嚴重影響顆粒形態。圖7(d)是采用傳統的分水嶺算法得到的結果,因為分水嶺算法依賴灰度分布情況,而CT圖像灰度值前景和背景相差不大,所以不僅存在過分割問題,也很難分割出完整的顆粒形態。圖7(e)是選取的典型一階段實例分割算法YOLACT的測試結果,其分割效果遠遠不如兩階段的實例分割算法,欠分割非常嚴重,這是因為單階段的實例分割依賴掩膜形態,對規則物體效果較好,但對于顆粒這種形態十分不規則的目標效果不理想。圖7(f)是Mask R-CNN的測試結果,分割效果較傳統算法和YOLACT算法有很大提升,但是仍存在顆粒欠分割等問題。圖(g)是PANet算法預測結果,PANet可以看作是Mask R-CNN的改進,但是更多得考慮了底層信息以及信息之間的傳遞路徑,雖然分割效果略有提升,但是模型的參數量卻大大增加。圖7(h)是本文算法的實驗結果,從圖中標注的位置可以看出,檢測出的顆粒結構比較完整,分割效果最好并且參數量幾乎沒有增加。

圖7 不同分割算法分割結果對比
圖7的結果展示了本文算法可以得到更加精細的顆粒形態,為了評價本文分割算法的有效性,驗證每個模塊對本文方法的貢獻,我們采用mAP以及AP50和AP75來評價該算法并與MaskR-CNN和PANet進行對比。改進的壓縮激勵模塊能夠增強不同特征之間的語義信息和通道信息,改善顆粒分割情況,由表2可以看出,添加壓縮激勵模塊以及改進的壓縮激勵模塊較原來的算法在平均精度上提高了1.85%。重新設計的分割分支增強了卷積層之間的聯系,將不同的卷積層進行相加后得到最終的特征圖進行二值分割,不僅可以改善分割出的顆粒形態,平均精度也提高了1.12%。表2表明了添加的模塊對顆粒分割的有效性。本文算法與PANet算法比較,發現PANet相較于MaskR-CNN的效果有所提升,說明改善信息路徑對小顆粒也有作用,但是PANet更針對于大目標,對顆粒分割改善有限。本文算法對于顆粒目標更有針對性,最終的平均精度可以達到53.73%,較Mask R-CNN的平均精度50.99%提高了2.74%,能夠表明本文算法對煤粉顆粒CT圖像分割效果較好。
為了進一步驗證本文算法能夠分割更多的顆粒,改善漏分割情況,將本文算法與原始的Mask R-CNN進行實驗對比。表2的召回率是隨機選取序列中的5張圖片進行顆粒預測的結果。每張圖片中的顆粒數目不等,先進行單張計算然后再進行匯總,結果顯示,較Mask R-CNN總體的召回率提升了2.24%,由此可以得出,本文算法可以有效提高分割顆粒數目。
為了驗證SE模塊和SSE模塊能夠有效改善小顆粒分割效果,分割出更多的顆粒,本文進行消融實驗,計算測試集中Mask R-CNN和添加這兩個模塊后分割出的準確度和召回率,實驗結果見表3,從中可以看出,添加SE模塊和SSE模塊對分割效有所提升,分割平均準確度分別提高了0.95%和1.98%,召回率分別提高了1.83%和1.17%,說明添加SE模塊和SSE模塊都能夠提高小顆粒的分割效果。同時使用這兩個模塊平均準確率提高了1.85%,召回率提高了2.1%,說明同時使用分割效果更好。

表3 SE模塊和SSE模塊消融實驗結果/%
煤粉顆粒CT圖像分割是獲取顆粒信息的重要方法,本文主要研究高分辨三維X射線顯微成像系統采集到的圖像數據,其特點是煤粉顆粒小,形態不規則等。本文采用深度學習的方法,設計端到端的分割模型,以Mask R-CNN為基礎,針對煤粉顆粒數據集引入了錨點框預處理方法,利用SE模塊和SSE改善顆粒漏分割情況,重新設計了分割分支,實現更精細化分割。實驗結果表明,本文算法能夠有效分割煤粉顆粒。未來在分割后的煤粉顆粒圖像基礎上,可對煤粉顆粒的數量、大小、形狀等信息進行深入研究,為煤粉質量判斷和煤炭分選提供依據。