王 森,國 蓉,胡海軍,許 勇,張 鈺,李秀峰
(1.西安工業(yè)大學 光電工程學院,西安 710021; 2.西安交通大學 化學工程與技術學院,西安 701149; 3.長慶油氣田開發(fā)事業(yè)部, 西安 710000; 4.陜西師范大學 計算機科學學院, 西安 710062; 5.中國特種設備檢測研究院, 北京 100029)
當機械設備長期在高溫高壓、腐蝕性介質等環(huán)境下服役時,材料會發(fā)生劣化,出現(xiàn)蠕變、疲勞、腐蝕、侵蝕等現(xiàn)象。金相檢驗是檢測材料劣化情況,保障設備服役安全的重要手段[1]。其中,準確的評價金相檢驗圖片中材料的晶粒度等級是最關鍵的任務。當前對金相圖片晶界的提取主要由人工進行,結果易受人員檢驗水平的影響、一致性差,且晶界和晶粒之間的顏色差別、明暗差別等也會干擾人工判斷,影響檢測的準確性。對材料顯微組織的識別屬于圖像識別問題,同時也屬于計算機視覺等技術在材料科學領域的應用[2-4]。自動晶界提取如數(shù)字圖像處理、機器學習、深度學習等方法可以克服人工晶界提取的弊端,受到學者們的廣泛關注。
晶界提取屬于圖像分割任務,常用的圖像分割方法[5]有基于像素的圖像分割方法、基于輪廓的圖像分割方法和基于深度學習的圖像分割方法等?;谙袼氐膱D像分割方法主要包括聚類算法和閾值化[6]方法。閾值法首先求取閾值,再根據(jù)圖像閾值實現(xiàn)目標物體和背景的分割。然而,全局最優(yōu)閾值難以求取導致其分割結果較為粗糙。聚類方法思想簡單、便于操作,但是該方法依賴于閾值和樹的構建,容易忽略圖像的深層信息,對邊緣以及噪聲的處理效果較差?;谳喞膱D像分割算法依據(jù)圖像中的輪廓信息,將圖像的邊緣輪廓轉化成能量泛函的最小值求解過程。該方法對強噪聲,低對比度的目標邊界分割效果較好,但是需要人為預選相關目標的輪廓,計算復雜度高。
近年來,隨著計算機的算力和效率不斷提高,機器學習和深度學習算法得以快速發(fā)展。相比于傳統(tǒng)的分割方法[7],卷積神經(jīng)網(wǎng)絡分割方法是目前應用最廣泛的圖像分割方法,其在人臉識別、醫(yī)學圖像分割等方向已經(jīng)比較成熟[8-10]。卷積神經(jīng)網(wǎng)絡(CNN,convolutional neural network)能夠從數(shù)據(jù)集中自動學習相關特征[11],在計算機視覺領域有較為廣泛的應用[12]。2014年,由Jonathan Long等人[13]提出的全卷積神經(jīng)網(wǎng)絡FCN(FCN,fully convolutional networks),開啟了圖像分割Encoder-Decoder的新紀元。但是,F(xiàn)CN得到的是二維的分割結果[14],其精度低、細節(jié)不明顯、沒有充分考慮像素和像素之間的關系,不適用于金相圖像的分割任務。
對于金相圖像的晶界分割,庚嵩[15]等提出了一種基于改進CV(Chan-Vese)模型與局部擬合項相結合的金相圖像分割算法,實現(xiàn)了金相圖像的分割。謝建林[16]等人通過根據(jù)晶粒之間灰度值的相似性來提取出完整的晶粒,再找出晶粒之間的邊界就是晶界。周雨蓉[17]使用盒維數(shù)來描述鋁合金的金相組織特征,提取晶粒度的相關參數(shù)并利用PCA(principal component analysis)降維、FCM(fuzzy c-means)聚類方法減少特征的維度,從而減少次要特征的干擾。張海軍[18]等人采用雙閾值法進行圖像分割,其分割的閾值為圖像的極大值區(qū)域。朱建棟[19]等人提出了Mean Shift參數(shù)自適應算法和基于結構化隨機森林的鋼材金相圖像晶界提取算法。孫秋冬[20]采用自適應雙門限法對金相圖像分割。Chowdhury[21]和Decost[22]應用深度學習方法對鋼材的顯微組織識別進行了相關研究。
然而,上述方法普遍應用于圖像特征較為簡單的金相圖像,未對晶界與晶粒的像素級特征進行深入的研究,其應用于低對比度、復雜晶界的金相圖像時對晶界的分割效果較差。針對該問題,本文提出了基于輕量型U-net的金相圖像晶粒分割方法,主要內容有兩方面。
1)網(wǎng)絡設計:采用加入多層卷積以及在上采樣過程中采用跳躍連接策略以融入更多淺層特征層,強化了網(wǎng)絡的淺層特征提取能力;通過減少一層下采樣層并在特征提取過程中增加了一次卷積過程,從而減少網(wǎng)絡的參數(shù)量和計算量并使網(wǎng)絡輕量化,同時提高了網(wǎng)絡的預測準確率。
2)對比實驗:將本文提出的輕量型U-net圖像分割網(wǎng)絡模型與現(xiàn)有的在少量數(shù)據(jù)集上常用的圖像分割網(wǎng)絡模型U-net、U-net++及Attention U-net進行對比實驗,驗證了本文提出的卷積神經(jīng)網(wǎng)絡模型對金相晶界分割的有效性和優(yōu)越性。
CNN的全連接操作將圖像的特征圖變成一個向量,使得特征圖丟失了圖像的空間信息,F(xiàn)CN將傳統(tǒng)CNN的全連接層更換成了卷積層,使得網(wǎng)絡的輸出為熱力圖而并非類別,即其可以從抽象的特征中恢復出每個像素所屬的類別,從而實現(xiàn)對輸入圖像延伸到像素級分割。同時,采用上采樣的方法解決了卷積和池化使得圖像尺寸變化的問題。FCN的網(wǎng)絡結構主要包含兩個部分:即全卷積部分和反卷積部分,全卷積部分為一些經(jīng)典的CNN網(wǎng)絡,用于提取圖像特征,其網(wǎng)絡的輸入可以為任意尺寸的彩色圖像。反卷積部分主要為上采樣過程,通過該過程可以得到與原輸入圖像尺寸相同的語義分割圖像,最終的網(wǎng)絡輸出通道數(shù)為n(目標類別數(shù))+1(背景)。
U-net[23]是在FCN的基礎上進行改進得到的,設計的初衷是為了解決醫(yī)學圖像分割中的問題。其通過擴大網(wǎng)絡解碼器的容量改進了全卷積網(wǎng)絡結構,并給編碼和解碼模塊添加了收縮路徑(Contracting path),實現(xiàn)更精準的像素邊界定位,同時采用與FCN不同的特征融合方式:拼接(Concat),其將圖像特征圖按照通道維度進行拼接,從而形成更厚的特征圖,該操作可以在上采樣過程中融入更多有效特征層信息。其優(yōu)點主要是:網(wǎng)絡越深,感受野越大;網(wǎng)絡更關注于全局特征;淺層網(wǎng)絡更加關注紋理等局部特征;可以通過上采樣和圖像拼接來進行邊緣信息的特征找回。該網(wǎng)絡適用性好,近年來U-net被應用于多種場景的圖像分割任務中。
由于U-net中的Encoder和Decoder網(wǎng)絡特征層采用長連接方法直接連接,該過程會產(chǎn)生語義鴻溝,使得對醫(yī)學圖像分割缺乏更高的精確性,為了減少語義差別,Zhou等人[24]依據(jù)U-net網(wǎng)絡結構基礎提出了U-net++網(wǎng)絡,U-net++在U-net直接連接的基礎之上增加了類似于Dense結構的卷積層,并融合了下一階段卷積的特征。采用大量的跳躍連接來保留各網(wǎng)絡層的特征信息,將高分辨率的特征圖從Encoder網(wǎng)絡逐漸地和Decoder網(wǎng)絡中相應的語義特征圖進行疊加整合,由于不同深度的感受野對大小不同的目標敏感程度不一樣,淺層的對小目標更敏感,深層對大目標更敏感,通過特征拼接將淺層信息和深層信息融合到一起,可以整合二者的優(yōu)點。同時用小感受野的特征信息來補充下采樣過程中的邊緣信息丟失,使得位置信息更加的準確。
Oktay[25]等人在2018年提出的Attention U-net網(wǎng)絡通過跳躍連接將抽象的深層特征和包含上下文信息的淺層特征融合,強化了網(wǎng)絡的淺層特征提取能力,并在U-net的基礎上引入注意力機制重新調整了編碼器的輸出特征,用門控信號來控制不同位置處圖像特征的重要性,提高了對醫(yī)學圖像分割的準確率。其與U-net最大的區(qū)別就是Attention U-net中經(jīng)過卷積后的特征層在進行通道拼接的特征融合之前都需要先經(jīng)過注意力機制Attention gate模塊而原始的U-net網(wǎng)絡直接將同層的下采樣產(chǎn)生的特征圖采用通道拼接方法拼接到上采樣層中,Attention gate的結構如圖1所示。
圖1 Attention gate結構
其中,g為深層網(wǎng)絡特征圖(跳躍連接的輸入,包含上下文信息),xl為淺層網(wǎng)絡特征圖(前一個block的輸入),α為與特定分割任務相關的注意力系數(shù),可以抑制與本分割任務數(shù)據(jù)不相關的圖像特征信息表達,將注意力系數(shù)與淺層特征圖xl逐元素相乘即可得到輸出特征圖。加入Attention gate模塊可以增強對前景像素的敏感性,Oktay等人的實驗結果證明,其提出的Attention U-net在總體的Dice系數(shù)的結果上比原始的U-net有較大的優(yōu)勢,同時在計算成本上的增加較少。
金相圖像的對比度較低、部分區(qū)域亮度低、晶粒邊界復雜,經(jīng)過圖像預處理的方法雖然可以增強圖像對比度,但是分割復雜的晶界仍然十分困難。為了提高對晶界的提取準確率,需要在原U-net網(wǎng)絡的上采樣解碼過程中融入更多的有效特征層信息。本文結合U-net++的設計思路,在圖像的上采樣過程中融入更多的跳躍連接特征圖來改進U-net卷積神經(jīng)網(wǎng)絡模型,提高了該模型的淺層特征提取能力,圖像特征層的拼接策略示意圖如圖2所示。
圖2 圖像特征層拼接策略示意圖
其中,C為特征層的通道數(shù),H和W分別為特征層的高度和寬度,朝右的黑色空心箭頭為特征提取過程(采用卷積方法),朝下的空心虛線箭頭為下采樣過程(采用最大池化方法),朝上的黑色實心箭頭為上采樣過程(采用Up-Conv方法),黑色虛線單箭頭為特征層的跳躍連接過程。同時,為了減少網(wǎng)絡的參數(shù)量,本文將原始U-net的四次下采樣過程改為三次下采樣,減少了一次下采樣過程使得網(wǎng)絡總體參數(shù)量大幅減少,網(wǎng)絡更加輕量,計算速度更快??傮w的網(wǎng)絡結構圖如圖3所示。
圖3 改進的U-net圖像分割網(wǎng)絡
該網(wǎng)絡模型分為左右兩部分。黑色虛線左邊為收縮路徑(Contracting Path),該路徑由3個模塊組成。每個模塊都采用3個3×3卷積(圖中朝右的空心虛線箭頭)操作和1個2×2最大池化(圖中朝下的空心箭頭)操作。卷積的Padding策略采用Same模式(即在卷積圖外面一圈進行填充),從而保證經(jīng)過卷積操作之后的特征圖尺寸不變。卷積的激活函數(shù)采用神經(jīng)網(wǎng)絡中使用最多的[26]ReLu激活函數(shù),該激活函數(shù)具有稀疏性,在輸入大于0的區(qū)域上不會出現(xiàn)梯度飽和及梯度消失等問題,稀疏后的網(wǎng)絡模型能夠更好的挖掘輸入數(shù)據(jù)特征信息,擬合訓練數(shù)據(jù),計算復雜度較低。采用最大池化對輸入的圖像進行降采樣操作,其輸出的特征圖尺寸是輸入特征圖的一半。經(jīng)卷積和池化運算后,得到圖像中的淺層特征信息。
黑色虛線右側為擴展路徑(Expansive path),也由3個模塊組成。每個模塊前都采用1個2×2的反卷積操作(圖中朝上的黑色實心箭頭)和3個3×3的卷積操作。反卷積將特征圖的尺寸乘2,通道數(shù)減半。同時,在擴展路徑中將下采樣過程中生成對應的尺寸相同而通道數(shù)不同的特征圖進行復制和拼接操作(圖中黑色虛線箭頭)。將3個大小相同而通道數(shù)不同的特征圖進行拼接合并后,再進行3×3的卷積和反卷積上采樣操作,提取深層特征信息。直至將特征圖恢復到和原始輸入圖像尺寸大小相同后,對得到的特征圖進行1×1的卷積操作(圖中朝右的黑色實線箭頭),最終輸出一個2層的語義分割圖像。
在進行模型訓練之前,需要先建立相應的金相圖像分割數(shù)據(jù)集。由于現(xiàn)階段暫時沒有公開的金相晶粒分割數(shù)據(jù)集,本文采用由中國特種設備檢測研究院提供的金相圖像數(shù)據(jù)來制作數(shù)據(jù)集。
首先對由金相顯微鏡采集到的原始金相圖像進行灰度化操作,灰度化的公式如下:
Gray= 0.299*R+ 0.587*G+ 0.114*B
(1)
再對灰度化后的金相圖像依次進行自適應直方圖均衡化(AHE,adaptive histogram equalization)、雙邊濾波(bilateral filter)操作。自適應直方圖均衡化方法通過計算圖像的局部直方圖,重新分布圖像亮度來改變圖像對比度的方法,該算法更適用于改進圖像的局部對比度來獲得更多的圖像細節(jié)。雙邊濾波算法是一種在高斯濾波的基礎上進行改進的非線性濾波方法,其通過結合圖像的空間鄰近度和像素相似度進行折中處理,同時考慮圖像的空域信息和灰度相似性,能夠對圖像起到保邊去噪的作用,其通常具有簡單、非迭代、局部的特點,雙邊濾波操作所包含的空域核函數(shù)的運算公式為:
(2)
相應的值域核函數(shù)計算公式為:
(3)
根據(jù)上述兩式相乘所得的雙邊濾波權重函數(shù)為:
w(i,j,k,l) =
(4)
雙邊濾波的數(shù)據(jù)計算公式為:
(5)
其中:p(k,l)為模板窗口的中心坐標點,q(i,j)為模板窗口的其他系數(shù)的坐標(也即在模板窗口內,除去中心點的其他點的坐標),σd為高斯函數(shù)的標準差(也即坐標空間濾波器的sigma值),對應的像素值為f(k,l),σr為高斯函數(shù)的標準差(也即顏色空間濾波器的sigma值)。
整個預處理過程中,原始金相圖像如圖4(a)所示,經(jīng)灰度化后結果如圖4(b)所示,經(jīng)自適應直方圖均衡化后結果如圖4(c)所示,再經(jīng)過雙邊濾波后的結果如圖4(d)所示。
圖4 預處理操作圖
通過對原始金相圖像進行預處理操作有效的提高了圖像亮度、加大了細節(jié)對比度、濾除了部分噪聲,使得金相圖像中的晶粒邊界和晶粒之間更容易區(qū)分,晶界更加的清晰可見,更有利于卷積神經(jīng)網(wǎng)絡進行特征學習。原始金相圖像局部和預處理后的金相圖像局部(如圖4(a)、(d)中黑色框對應部位)對比如圖5所示。
圖5 原始金相圖像和預處理后圖像的局部對比
在對原始金相圖像進行預處理之后,需要手動繪制對應的晶界圖像作為數(shù)據(jù)集標簽,本文采用Ipad iOS上專業(yè)的繪圖軟件Procreate進行對應的晶粒邊界標簽繪制,繪制得到的晶粒邊界標簽經(jīng)過灰度化及二值化操作后得到二值晶界標簽。原始金相圖像及對應的手繪晶界標簽示例如圖6所示。
圖6 原始金相和對應的手繪晶界標簽
將預處理后大小為1 536×2 048像素的金相圖像和對應的晶界標簽按每隔128像素裁剪出1張512×512像素的圖像。依據(jù)此方法可以將原始圖像集中12張1 536×2 048像素的金相圖像裁剪成1 404張512×512像素的金相圖像。預處理裁剪后的金相圖像如圖7(a)所示,對應的手繪晶界標簽如圖7(b)所示,將這1 404張金相圖像和對應的標簽圖像作為本文的訓練集。
圖7 預處理裁剪后圖像與其對應的晶界標簽
由于有重疊的裁剪方法會導致圖像數(shù)據(jù)部分存在重復,為使測試集和訓練集保持特征一致性和個體獨立性,本文測試集采用與訓練集不重復的一張1 536×2 048像素的金相圖像,并按與訓練集相同的預處理方法進行預處理、晶界標簽繪制和圖像裁剪,得到117張512×512像素的金相圖像和對應的晶界標簽圖像,實際的訓練集圖像和測試集圖像的比例為12:1。
對于本金相晶界分割數(shù)據(jù)集的訓練學習,采用BCELoss(二分類交叉熵函數(shù))作為損失函數(shù),該損失函數(shù)常用于二分類任務中的損失計算,其計算公式如下:
loss(Xi,yi) = -wi[yilogxi+(1-yi)log(1-xi)]
(6)
其中:xi為模型的預測值,網(wǎng)絡最后一層輸出經(jīng)sigmoid激活函數(shù)后取值范圍為(0,1)。yi為標簽值,取值為0或1。wi為權重值,一般為1。
實驗在Nvida Xp GPU(12 GB內存)的卡上進行,使用Pycharm 2020進行模型網(wǎng)絡的訓練和測試,使用Pytorch框架搭建U-net、U-net++、Attention U-net及前述輕量型U-net模型,初始學習率設置為0.000 1、批大小(Batch Size)設置為1、迭代輪次(Epochs)設置為30、采用BCELoss損失函數(shù)及Adam(adaptive moment estimation)自適應矩估計梯度優(yōu)化器自動更新迭代網(wǎng)絡內部參數(shù)。設置基于上述網(wǎng)絡的金相圖像晶界分割的對比實驗,統(tǒng)計其相關的網(wǎng)絡評價指標。
本分割方法中由卷積神經(jīng)網(wǎng)絡分割出的晶界圖像中包含兩類目標,分別為前景(也即晶界,白色,像素值為1)以及背景(也即晶粒,黑色,像素值為0),統(tǒng)計預測得到的晶界圖像以及測試集中對應的手繪晶界標簽圖像中各像素點的像素值,生成對晶界預測結果統(tǒng)計的像素值混淆矩陣,如表1所示。
表1 混淆矩陣
其中,晶界的像素值為1,晶粒的像素值為0,晶界為正樣本,晶粒為負樣本。則TP代表標簽值為1,預測值為1;TN代表標簽值為0,預測值為0;FN代表標簽值為1,預測值為0;FP代表標簽值為0,預測值為1;依據(jù)此混淆矩陣計算下述常用圖像分割結果的評價指標:
2.4.1 準確率
準確率(Accuracy)是預測正確的樣本數(shù)相對于所有的樣本數(shù)的百分比(即預測對的像素點個數(shù)相對于所有像素點個數(shù)的百分比),對應語義分割的像素準確率PA,公式如下。
(7)
2.4.2 類別平均像素準確率(MPA)
類別平均像素準確率(mean pixel accuracy)為分別計算每個類別(即晶界和晶粒)被正確分類像素數(shù)的比例,然后累加求平均。
(8)
2.4.3 Dice系數(shù)
Dice系數(shù)是集合相似度度量指標,用于計算兩個樣本(即晶界和晶粒)的相似度。該系數(shù)取值范圍為(0,1),取值越高,分割結果越好。
(9)
2.4.4 特異度(Specificity)和靈敏度(Sensitivity)
其中,特異度表示所有負例樣本中被正確預測的概率,衡量對負類樣本的識別能力(即對晶粒的識別能力),靈敏度表示所有正例樣本中被正確預測的概率,衡量對正類樣本的識別能力(即對晶界的識別能力),相應的計算公式如下:
(10)
(11)
根據(jù)上述實驗的實施細節(jié),用訓練集分別在U-net、U-net++、Attention U-net、以及改進的輕量型U-net卷積神經(jīng)網(wǎng)絡上進行訓練,各模型訓練30個輪次在訓練集上的損失函數(shù)值變化曲線如圖8所示。
圖8 損失值對比曲線
根據(jù)實際訓練過程中的損失函數(shù)值曲線可以看出,本文所提出的輕量型U-net的訓練過程更好,損失值下降快并能快速趨于平穩(wěn)下降狀態(tài)。為了更直觀的評價本文所提出晶界分割方法的有效性和優(yōu)越性,圖9為各網(wǎng)絡在測試集上的實際預測結果示例,其中圖9(a)為經(jīng)預處理后的測試集圖像,圖9(f)為對應的手繪二值標簽圖像,圖9 (b),(c),(d),(e)分別為由上述4個網(wǎng)絡訓練得到重文件對測試集中的金相圖像進行晶界預測得到的晶界預測結果。為了更清晰的展示不同網(wǎng)絡對測試集圖像預測結果的差異,圖9(g),(h),(i),(j)分別為將預測圖像采用大津法(Otsu)二值化方法進行圖像二值化處理后的預測結果。
表2 在上述4個網(wǎng)絡上的相關實驗結果
圖9 測試集在各個網(wǎng)絡上的實驗結果
根據(jù)上述在不同網(wǎng)絡上對測試集進行預測所得的晶界圖像結果和測試集圖像及標簽圖像對比,可以看出本文提出的改進的輕量型U-net卷積神經(jīng)網(wǎng)絡的晶界提取效果相較于其他網(wǎng)絡模型更準確、實際的分割效果更好。
在各個網(wǎng)絡模型上對測試集中的圖像晶界預測實驗結果指標統(tǒng)計如表2所示。
將表2所列不同網(wǎng)絡模型上的實驗結果評價指標繪制在柱狀圖上如圖10所示。
根據(jù)實驗統(tǒng)計結果,本文提出的輕量型U-net圖像分割網(wǎng)絡的像素準確率、類別像素準確率、特異度、靈敏度系數(shù)等均略高于其他幾個卷積神經(jīng)網(wǎng)絡的分割結果,Dice系數(shù)值與其他網(wǎng)絡的結果持平,且其網(wǎng)絡參數(shù)量僅為2.99M,與U-net和U-net++相比,其網(wǎng)絡參數(shù)量分別減少了61.5%和66.9%,網(wǎng)絡參數(shù)量的減少有效的減少了模型的計算量,提高了對晶粒邊界的分割預測速度。
圖10 網(wǎng)絡參數(shù)指標對比
本文提出了一種基于輕量型U-net金相圖像晶界分割方法,用于提高對鋼材金相圖像中晶粒邊界的分割準確率和效率。主要結論如下:
1)針對U-net網(wǎng)絡進行改進,減少了下采樣層,并將每一個特征提取層中的兩次卷積運算改為三次卷積運算,強化網(wǎng)絡的淺層特征提取能力;在上采樣過程中,對3個特征信息層進行跳躍連接,有效的減少了下采樣過程中的特征信息丟失。
2)手繪了晶界標簽,并對原始金相圖像進行了預處理裁剪,建立了金相圖像晶界分割的數(shù)據(jù)集,包含訓練集圖像1 404張,測試集圖像117張。訓練集和測試集的比例為12:1。
3)輕量型U-net圖像分割網(wǎng)絡在本數(shù)據(jù)集上的像素準確率(93.91%)、平均像素準確率(88.27%),Dice系數(shù)值(71.04%),特異度(96.73%),靈敏度(81.6%)。這些指標上均略高于Attention U-net、U-net++、U-net等圖像分割卷積神經(jīng)網(wǎng)絡,同時其網(wǎng)絡參數(shù)量大幅減少,僅為2.99M,網(wǎng)絡參數(shù)量僅為U-net網(wǎng)絡參數(shù)量(7.77M)的38.5%,網(wǎng)絡參數(shù)量相對減少了61.5%;網(wǎng)絡參數(shù)量僅為U-net++網(wǎng)絡參數(shù)量(9.04M)的33.07%,網(wǎng)絡參數(shù)量相對減少了66.9%。網(wǎng)絡參數(shù)量的大幅減少可以有效提高網(wǎng)絡的計算速度。