鄒永寧,張智斌,李 琦,余浩松
(1.重慶大學 光電工程學院,重慶400044;2.重慶大學 光電技術及系統教育部重點實驗室ICT研究中心,重慶400044)
裂紋分割對工業計算機層析成像(Comput?ed Tomography,CT)圖像處理具有重要意義,其分割精度和分割準確度直接影響到后期的裂紋測量、分類和顯示等。但是,CT圖像中的噪聲、偽影等干擾會不同程度的對裂紋分割造成影響,因此工業CT圖像分割仍是一個具有挑戰性的問題。
目前,許多學者提出了各式各樣的圖像分割方法,且有些方法已應用于CT圖像裂紋分割。魏彤[1]等人結合自適應增強算法與分水嶺分割算法,實現了圖像中的盲道定位。王玨[2]等人使用小波變換增強圖像的對比度,然后用RSF模型完成了分割。陳愷[3]等人結合二維熵多閾值分割與螢火蟲算法實現了圖像的分割。宋巧君[4]等人在雙邊濾波的基礎上結合Black-hat變換和Otsu算法完成了裂縫分割。李玉[5]等人提出了一種利用高斯混合模型的多光譜圖像模糊聚類分割方法,實現了高分辨率多光譜圖像分割的問題。王雪虎[6]等人提出一種結合先驗稀疏字典和空洞填充的方法實現了CT圖像肝臟分割。李鵬[7]等人綜合考慮圖像的灰度像素特征與裂縫的幾何紋理特征,提出了結合聚類分析和區域生長算法的路面裂縫分割算法。謝楊灝[8]等人將CT序列圖像視為連續變化的視頻序列,使用光流網絡模型與區域聚類方法完成了分割。王慧倩[9]等人根據CT序列圖像的層間相關性與CT圖像的最大類熵完成了分割。王艷[10]等人利用遺傳算法優化裂縫PCNN模型,實現了裂縫分割。
盡管以上方法都具有較好的分割結果,但均具有一定的局限性,如基于深度學習的方法過度依賴訓練樣本、結構復雜;基于水平集的方法參數復雜、分割速度慢;基于閾值分割或聚類分析的方法對噪聲敏感。支持向量機(Support Vec?tor Machine,SVM)在處理小樣本、非線性、高維模式識別等問題上有著其獨特的優勢,而基于Hessian矩陣的多尺度濾波在增強線狀結構問題上具有較好的效果,因此本文結合基于Hessian矩陣的多尺度濾波及SVM完成CT圖像中的裂紋識別與分割,運用基于Hessian矩陣的多尺度濾波方法獲得CT圖像中的線狀結構,運用SVM分類算法識別圖像中裂紋所在的圖像塊,最后使用自適應閾值分割算法完成裂紋分割,從而提高CT圖像中裂紋分割算法的抗干擾性和準確性。
基于Hessian矩陣的多尺度線狀濾波方法當前已有廣泛的應用[1,9,11-12]。在二維圖像I中,每個像素點I(x,y)處的Hessian矩陣基本形式為:

其 中:Ixx,Iyy,Ixy,Iyx分 別 是 二 維 圖 像 在 像 素 點(x,y)處的二階差分,且有Ixy=Iyx。則QHessian是二維對稱正定矩陣,有兩個特征值λ1,λ2以及對應的特征向量,其中最大的絕對特征值表示最大的局部灰度變化,其對應的特征向量所指的方向代表了圖像變化的方向。
Frangi A F[13]等人結合Hessian矩陣特征值提出了Frangi濾波器:

由于圖像的二階差分對噪聲非常敏感,且通常圖像中包含有多種尺度的線狀結構,僅使用單尺度不能很好地檢測出各個尺度的線狀結構。因此,可將Hessian矩陣的差分運算與高斯函數結合,通過改變高斯函數的空間尺度因子來獲得不同尺度下的線狀增強濾波。根據高斯函數的卷積性質可知,高斯濾波器與二階差分圖像的卷積等價于高斯濾波器的二階導數與原圖像的卷積,則Hessian矩陣中各元素的計算公式可表示為:

通過分析圖像中目標線狀結構的尺寸,設置尺度因子σ的迭代范圍為[σmin,σmax],選取在多尺度下像素點的最大響應值作為該點的輸出,最后將圖像中各像素點處的輸出進行融合,即可得到原圖像經過多尺度濾波后的增強圖像,其數學表達式為:

其中,v(x,y;σi)為在尺度σi下,像素點I(x,y)處的最大響應值。
支持向量機是在有序風險最小化的基礎上發展起來的一種專門的小樣本統計理論,至今已被成功應用于各種領域[14-17]。支持向量機的本質是二次型方程求最優解,其學習的基本思想是尋找一個最優的超平面,該超平面能夠正確分開數據集(使分類錯誤率為0),且使得兩類數據之間的間隔最大。
支持向量機的分類問題可分為線性可分和線性不可分兩種情況,線性不可分的情況是由線性可分發展而來的。以圖1中二維空間中兩種數據分類為例,在圖1(a)和圖1(b)中,實心點和空心點分別表示兩類樣本,其中線性可分的情況如圖1(a)所示,圖中H為找到的最優分類線,H1,H2為與兩類樣本相切的直線,位于切線H1和H2上的樣本即為支持向量;線性不可分的情況如圖1(b)所示。

圖1 簡單分類問題Fig.1 Simple separation problem

灰度共生矩陣(Grey-Level Co-occurrence Matrix,GLCM)是在假定圖像中各像素間的空間分布關系包含了圖像紋理信息的前提下,提出的具有廣泛性的紋理分析方法。GLCM通過統計在方向θ上間隔d的一對像素點灰度出現的統計規律來反映圖像在方向、間隔、變化幅度及快慢上的綜合信息。
一般不直接使用灰度共生矩陣計算,而是使用在其基礎上獲取的二次統計量[18],研究發現由GLCM得到的二次統計量中僅有能量、對比度、相關性、逆差矩這4種特征是不相關的,且這4個特征既便于計算,又能得到較高的分類精度[19],因此本文采用這4種特征來表示圖像的裂紋信息,這四種特征的定義如下:
(1)能量:又叫角二階矩,反映了圖像灰度分布均勻程度和紋理粗細度。若灰度共生矩陣的元素值相近,則能量小,表示紋理細致。

(2)相關性:反應局部灰度相關性,用來度量圖像的灰度級在行或列方向上的相似程度,其值越大相關性也越大。

(3)對比度:反映圖像的清晰程度,是圖像矩陣值的分布情況和圖像的局部變化,其值越大表示紋理基元對比度越強、溝紋越深、圖像越清晰。

(4)逆差矩:度量圖像的紋理局部變化,其值越大則圖像紋理越規則。

其中:p為共生矩陣,N g為共生矩陣的階數,i和j分別表示共生矩陣的行和列,μ1,μ2表示均值,σ21,σ22表示方差。
基于Hessian矩陣和SVM的CT圖像裂紋分割方法可分為3個步驟:(1)使用訓練集圖像訓練SVM分類模型;(2)使用SVM分類模型定位裂紋所在的圖像塊;(3)使用自適應閾值分割得到裂紋。其詳細步驟如下所示:
(1)訓練集中的每幅圖像均采用圖2所示的步驟處理,其中前景區域包括工件和裂紋區域,所有的后續處理步驟只考慮前景區域內的像素點;基于Hessian矩陣的多尺度濾波方法可以獲得圖像中的線狀結構;然后增強線狀圖像的對比度并分割為若干尺寸相同的小圖像并按小圖像中有無裂紋分為兩類。當所有訓練集圖像均已分割為小圖像并分為兩類后,再使用特征提取方法提取兩類小圖像的特征,得到兩個特征矩陣;最后選擇適當的SVM參數,利用前面得到的兩個特征矩陣訓練SVM分類模型。

圖2 圖像預處理Fig.2 Image pre-processing
(2)測試圖像使用圖2所示的預處理步驟處理,得到若干由測試圖像分割得到的小圖像;再從小圖像中提取與(1)中相同的特征;然后用(1)中得到的SVM分類模型對特征矩陣預測;最后將預測為無裂紋的圖像塊區域像素置零,其他區域像素保留不變,得到圖像P1。
(3)使用自適應閾值分割方法得到圖像P1中的裂紋結構。
在訓練SVM分類模型前,先對CT圖像預處理,預處理流程如圖2所示。圖2中前景區域是指所有工件和裂紋區域,為了加快識別分割的速度且防止背景中的噪聲對識別和分割帶來干擾,前景區域之外的像素點不參與后續的計算。
由于樣本圖片對比度低,且存在噪聲、偽影等干擾,本文在預處理階段首先使用基于Hes?sian矩陣的多尺度線狀濾波方法提取原CT圖像中的線狀結構,并對得到的線狀圖像進行對比度增強。
然后將線狀圖像分割為若干尺寸相同的小圖像,以提高識別算法的正確率與處理效率,并將得到的小圖像按有無裂紋分為兩類。
訓練SVM分類模型需要確定一組參數,包括SVM的類型、核函數的類型、懲罰因子等。其中核函數是支持向量機算法的核心,常用的核函數有線性核函數、多項式核函數、徑向基函數(Radial Basis Function,RBF)、Sigmoid核函數。根據本文研究對象的特征,選擇RBF核函數,這是一種徑向對稱標量函數,高斯函數是最常用的徑向基函數。
與RBF核函數緊密相關的有兩個參數:懲罰因子c和γ。懲罰因子在誤分類樣本和分界面簡單性之間進行權衡,低的c值使分界面平滑,高的c值通過增加模型自由度以選擇更多支持向量來確保所有樣本都被正確分類。而參數γ定義了單個訓練樣本的影響大小,值越小影響越大。本文使用網格搜索方法獲得最佳的c和γ。
對測試圖像進行預處理,預處理的過程如圖2所示,得到線狀圖像P2。預處理結束后將得到N幅子圖像,提取所有子圖的特征向量得到由N個特征向量組成特征矩陣,再利用上一步得到的SVM分類模型對特征矩陣預測,預測結果為一個僅由元素1和-1組成的N維列向量,本文SVM訓練時選擇有裂紋子圖像的特征矩陣為正樣本,因此預測結果為1和-1分別表示對應的子圖像中有裂紋和無裂紋的情況。然后只保留P2中預測為有裂紋的圖像塊,最后使用自適應閾值分割方法分割得到圖像P2中的裂紋結構。
本文的實驗環境是在型號配置為Inter?Core?i7-8700 3.20GHz CPU、16GB RAM、Win?dows10系統的計算機下,采用MATLAB結合C++語言在MATLAB 2018a平臺上實現的。本文主要研究對象是鋼軌CT圖片與石油巖心CT圖片,其中鋼軌CT圖像含有較嚴重的偽影,石油巖心CT圖像中存在明顯的噪聲且裂紋對比度低,典型的鋼軌CT圖像和石油巖心CT圖像如圖3。鋼軌CT樣本共60幅,石油巖心CT樣本共58幅,部分樣本圖像如圖4。

圖3 工業CT切片圖像Fig.3 Typical industrial CT images

圖4 部分CT樣本圖片Fig.4 Partial sample CT images
提取并增強圖3(a)、3(b)中的線狀結構,結果如圖5所示,可以看出:圖5(a)、5(b)中較好的保留了原圖中的線狀結構,且裂紋處對比度較高。雖然圖5(a)、5(b)中裂紋結構已比較明顯,但直接使用自動閾值分割方法的話,仍會受到圖中偽影和噪聲的干擾,導致分割結構不佳。圖5中兩張樣本圖片使用自動閾值分割的結果如圖6所示。

圖5 形態學運算后濾波結果圖Fig.5 Filtering results after morphological operation

圖6 自動閾值分割結果Fig.6 Automatic threshold segmentation results
為獲得更好的分割結果,本文將線狀圖像分割為小圖像,通過判斷小圖像中是否含有裂紋,從而將裂紋所在的范圍縮小。圖7為將線狀圖像分割為小圖像并分類的效果圖。

圖7 部分子圖像Fig.7 Partial of sub-images
圖像識別中常用的特征有:GLCM特征[20-21]、HOG特征[22-23]、Hu不變矩特征[20,24]、LBP特征[25-26]。為驗證GLCM特征的有效性,分別使用以上4種特征訓練SVM模型和預測,實驗結果如圖8所示。圖8中每行的4幅圖像為同一測試圖像依次使用GLCM特征、LBP特征、HOG特征、Hu特征的識別效果,圖(b)~(d)中虛線標記的部分為在圖(a)的基礎上增加的誤識別的區域;實線標記的部分為在圖(a)的基礎上漏識別的區域。誤識別指SVM分類模型將無裂紋子圖識別為有裂紋子圖;漏識別指SVM分類模型將有裂紋子圖識別為無裂紋子圖。可以看出,4種特征中,使用GLCM特征訓練的SVM分類模型識別的正確率最高。

圖8 不同特征識別結果Fig.8 Recognition results of different features

為驗證本文分割方法的有效性,將本方法與RSF(Region-Scalable Fitting)方法、數學形態學分割、Otsu(自適應閾值分割)分割方法作對比。經實驗,直接使用RSF、數學形態學、Otsu方法不能分割出圖像中的裂紋,因此本文先提取并增強原圖中的線狀結構,再在線狀圖像上進行RSF、數學形態學及Otsu分割,其結果圖像如圖9所示。圖9(a)為原圖,圖9(b)~9(d)分別為使用本文方法、RSF方法、數學形態學方法、Otsu方法分割的結果,圖9(c)中綠色標記的區域為RSF方法分割得到的裂紋。由4組實驗可以看出,當裂紋對比度低時(如第一行與第二行),Otsu方法分割完整性最差,RSF方法次之,本文方法最佳;當噪聲、偽影較為嚴重時(如第三行與第四行),Otsu分割正確性最差,RSF次之,本文方法效果最好。且在實驗過程中發現,RSF方法參數較多,需要多次手動調整獲得最佳值,數學形態學方法也需要多次手動調整才能獲得最好的分割效果。

圖9 不同算法分割結果Fig.9 Segmentation results of different algorithms

本文定義SVM模型的識別率為SVM模型識別子圖像有無裂紋的準確率,即SVM模型識別準確率=正確識別的子圖像數/總子圖像數×100%,其計算步驟為:首先將所有測試圖像分割為小圖像,然后利用SVM分類模型分類,最后統計分類結果中正確識別的子圖像數量。表1為由測試集中10幅巖心CT圖像與10幅鋼軌CT圖像計算出的SVM模型識別率。

表1 不同對象識別準確率統計表Tab.1 Statistical table of different object on recognition rate
為驗證本文模型的泛化能力和魯棒性,選擇了一個新的巖石CT圖像作為測試樣本,如圖10(a)所示。新樣本未出現在訓練集圖像中,圖10中紅色區域標注的區域為待分割的裂紋。使用本文方法分割圖中裂紋,結果如圖10(b)和10(c)所示,結果顯示本文模型具有較好的泛化能力和魯棒性。


圖10 模型泛化能力與魯棒性驗證Fig.10 Model generalization ability and robustness verification
實驗結果表明,本文方法具有較好的抗干擾性與魯棒性,即在圖像對比度低或圖像中偽影嚴重時,仍能獲得較好的分割結果;利用SVM算法識別裂紋圖像塊的準確率達到了94.5%。
為實現CT圖像裂紋精確分割,解決圖像中金屬偽影、噪聲等干擾,本文聯合基于Hessian矩陣的多尺度濾波和支持向量機的算法優勢,提出了基于Hessian矩陣和支持向量機的CT圖像裂紋分割方法,并對方法進行了有效性驗證。基于Hessian矩陣的多尺度濾波方法可以突出圖像中的裂紋結構,增加裂紋的對比度;基于SVM的分類方法可以識別圖像中帶裂紋的圖像塊。將本文方法與RSF方法、數學形態學方法、Otsu方法分割的結果進行對比,結果表明,基于Hessian矩陣與SVM的裂紋分割方法具有較好的抗干擾性且算法參數簡單,圖像識別率達到了94.5%,是一種有效、可行的方法,具有實際工程應用價值。