當前位置:
首頁 > 知識 > 基於圖割演算法的木材表面缺陷圖像分析

基於圖割演算法的木材表面缺陷圖像分析

鑒於圖割方法的明顯優勢,白雪冰及其團隊採用Graph Cuts演算法和Grab Cut演算法分別對木材表面的單目標和多目標缺陷圖像進行分割試驗,以總結傳統圖割方法的不足和改進演算法的優點。

針對傳統Graph Cuts演算法只能針對灰度圖像進行分割、運行時參數的選擇比較複雜,並且存在該演算法效率和精度較低的缺陷,採用這兩種方法分別對3種木材表面缺陷活節、蟲眼和死節圖像進行分割實驗。為了驗證Grab Cuts方法的適用性,用含有多個缺陷目標的木質板材圖像做了圖像分割驗證。

結果表明:缺陷圖像的目標和背景的種子點選取直接影響Graph Cuts演算法的分割結果,Graph Cuts演算法的計算效率較低,分割時間較長,對相鄰像素間的區分度較差,分割結果不理想。改進後的Grab Cut演算法是迭代的Graph Cuts,該方法雖然在圖像分割前也需要人工畫定初始化矩形框,但操作相對簡單,分割結果能夠得到完整的閉合缺陷區域邊界,且不受木材表面缺陷的類型、數量、尺寸和缺陷形狀的影響,分割效果好,分割速度快,抗噪性強,對灰度圖像和彩色圖像都可使用。

圖割演算法

1.1 Graph Cuts 演算法的原理

圖割(Graph Cuts)互動式圖像分割演算法是一種基於圖論的組合最優化方法,其基礎是最大流演算法,將圖像分割問題轉化成能量函數的最小化問題,通過最小化能量函數,從而實現圖像的最優分割。首先,建立能量函數:

E(L) =R(L) +λB(L) (1)

式中:R(L)是區域項,表示區域屬性;B(L)是邊界項,表示邊界屬性;λ 為平衡因子,當λ 較小時,邊界項可忽略,當λ 較大時,圖像的所有點被賦予相同標記。

設P={p1,p22,…,pN2 } 是像素集合,L={0,1}是像素標記集合,0表示背景,1表示目標;像素的標記可以表示為從P到L的映射, 記作fp={fp|fp∈L}。

因此,式(1)中的區域項表示為R(f)=Rp(fp),p∈P,用Rp(fp)來進行判定像素p分配給某種標記的可能性。通常對能量函數中的區域項取概率的負對數,且將預定義的種子點作為目標和背景的採樣,以此估計目標和背景的灰度直方圖分布,對於目標/背景的二值分割,區域項可表示為:

式(2)代表了像素p分配給目標區域的可能性,式(3)代表像素p分配給背景區域的可能性,隨著可能性的增大,Rp(?) 的值會減小,從而可通過最小化能量函數來實現對圖像的準確分割。式(1)的邊界項可表示為:

式中:p和q為相鄰像素,邊界項體現圖像邊界像素值的不連續性;N為4鄰域或8鄰域系統。通過變分模型可以將式(4)寫為:

其中, T(fp,fq) 為指標函數,滿足 :

Bp,q> 為對像素p、q不連續性的懲罰值:

式中:Ip、Iq為像素p、q的灰度值;dist(p,q)是p和q的距離; δ為圖像雜訊。p和q越相近,則Bp,q>越大;若p和q相差較大,則Bp,q>趨近於0 。當Bp,q>的值較小時,兩個像素會更易於分給不同的區域,這時圖像分割得到最小的能量值。

Graph Cuts演算法源於圖論,通過最小化能量函數實現圖像分割 。首先要對(1)的能量函數公式來構造網路圖,把表示帶有非負邊權的無向圖G= (V,E)作為圖像,其中V為頂點集,與其相對應圖像的邊集為像素點集P,E。V含有兩個特殊的頂點,其一稱為源節點S(代表目標),其二稱為匯節點T(代表背景),因此構造的網路圖又稱為S-T圖。

1956年Ford等提出了網路流理論,論證了網路圖中的最大流與最小流的等價性。式(1)的能量函數可通過最大流/最小割定理來求解,具體包括增廣路徑(augmenting paths)法和推進?重標記(push-relabel)法。本試驗採用後者。

1.2 Graph Cut演算法的原理

由於Graph Cuts演算法只能分割灰度圖像,且參數選擇複雜,效率和分割精度較低。因此,Blake等從以下三方面進行了改進,形成Grab Cut演算法 :

1) 棄用灰度直方圖,轉而選用高斯混合模型(GMM 模型)來描述顏色信息的概率分布,實現彩色圖像分割;

2) 在GMM模型參數估計過程中,採用可進化的迭代演算法取代一次最小估計來完成能量最小化,提高了分割精度;

3) 為了降低用戶交互的工作量,通過非完全標號(incomplete labeling)方式(交互中沒有指定明確的目標)進行像素標記。該方法只需用戶在目標周圍畫一個矩形框即可。

Grab Cut演算法把圖像表示為矢量Z= {z1,z2,…,zn,…,zN} ,這樣便將圖像的分割轉化為求每個像素對應的不透明度數組α= {α1,α2,…,αn,…,αN}αN|(αn∈[0,1]),αn取值為0(背景)或者1(目標),圖像目標與背景模型分別用k維的全協方差矩陣GMM表達,通常k=5。向量k={k1,k2,…,kn,…,kN}為每個像素的獨立GMM(目標或背景的參數,參數來自目標還是背景,取決於αn的值 ,從而使目標提取問題轉化為能量函數的最優化問題,然後採用圖割方法求解。

對於RGB空間上的彩色圖像,吉布斯(Gibbs)能量函數為:

式中:E為能量;U代表數據項;V代表光滑項;α代表不透明度;θ代表圖像目標和背景的灰度直方圖;z代表圖像灰度值數值。數據項U定義為:

其中, D(αn,kn,θ,zn) = -logp(zn|αn,kn,θ)-

式中:π(?) 代表該高斯模型的樣本數在總樣本中的混合權重係數;p(?)代表高斯概率分布。所以數據項又可表示為:

則高斯混合模型的參數模型為:

其中:π(α,k)代表每個高斯概率分布的樣本數在總樣本數中的權值;μ(α,k) 代表高斯模型的均值;

代表協方差;α代表不透明度Alpha值;k代表高斯混合模型參數。

平滑項V可以採用RGB彩色空間的歐幾里德距離求得:

式中:C代表相鄰像素對;γ為自適應λ參數;β為常數項。

若把一個更接近真實情況的標記賦予某個像素,則將會懲罰更小的數據項,這樣會使總能量函數減少,不斷地迭代,最終收斂至最優分割,這樣便將Grab Cut演算法的圖像分割問題轉化成求解最小割的問題。

Grab Cut演算法的圖像分割步驟如圖1所示。

木材表面缺陷圖像分割實驗

2.1基於Graph Cuts演算法的木材表面缺陷圖像分割

本試驗採用的計算機為Intel(R) Core(TM)i5-4200U CPU,1.60G硬碟,4G RAM,操作系統為Windows 7 with SP1,編程軟體為Visual Studio 2010 C++,OpenCV庫。

採用Graph Cuts演算法對單缺陷目標圖像進行圖像分割,木材樣本如圖2,灰度圖像如圖3。

2.1.1活節缺陷的圖像分割

採用Graph Cuts演算法對圖3a活節缺陷圖像進行分割,參數λ=1。試驗中對活節灰度圖像進行3次人工種子點標記(其中紅色為目標標記,藍色為背景標記,且標記畫筆的半徑是5個像素),如圖4所示,對應的分割結果如圖5所示。

Graph Cuts 演算法是基於像素級的分割,不能準確評估像素屬於前景或者背景的概率,由於活節缺陷邊緣與背景的灰度值差距較小,即使標定的目標種子點像素數量很多(如圖4c),但仍存在較嚴重的欠分割情況。對應圖4a、b、c的分割初始化時間分別為41140.06,41022.37和40904.52ms,圖像分割所用時間分別為146268.57,278338.17和388243.09ms。可見,種子點素數越多,初始化所用的時間越短,圖像分割所用的時間越長。

2.1.2蟲眼缺陷的圖像分割

採用同樣的方法對圖3b的蟲眼缺陷圖像進行分割:設置λ=1,3次人工標記種子點的結果如圖6,對應的分割結果如圖7。由試驗結果可知,蟲眼缺陷圖像的分割結果與活節缺陷分割相似,分割結果受標定的前景/背景種子點像素數量影響,且都存在一定的欠分割問題。對應圖7a、b、c的分割初始化時間分別為41152.20,41038.55和40894.37ms,圖像分割時間分別為177052.53,368657.00和417434.91ms。種子點素數越多,初始化所用的時間越短,圖像分割所用的時間越長。

2.1.3死節缺陷的圖像分割

對圖3c死節缺陷圖像進行分割:設λ=1,3次人工標記種子點的結果如圖8,對應的分割結果如圖9。可見,採用Graph Cuts演算法對標註像素點多的死節缺陷圖像能夠實現完整分割,但死節缺陷的分割輪廓曲線不平滑,且存在部分過分割情況。對應圖8a、b、c的初始化時間分別為40933.91,40921.05和40916.92ms,圖像分割所用時間分別為34677.35,371604.00和413967.44ms。

綜上所述,採用Graph Cuts演算法對木材表面缺陷圖像進行分割時,由於Graph Cuts演算法對能量函數採用一次性最小化,對目標和背景的人工標記的種子點選取十分重要,選取結果直接影響分割結果;且該演算法對相鄰像素間的區分度較差,對活節和蟲眼缺陷進行分割時存在欠分割問題,對死節缺陷進行分割時出現過分割情況。該演算法的初始化時間隨種子點標記的像素數的增加而縮短,運行時間相反。

2.2 基於Grab Cut演算法的木材表面缺陷圖像分割

採用Grab Cut演算法對含有單缺陷目標、多缺陷目標的木材表面缺陷圖像進行分割試驗。試驗的參數設定為距離參數β=0.1和GMM更新迭代次數k=5。木材缺陷圖像為512×512的彩色圖像。在試驗過程中,首先輸入相同的初始化矩形框。

2.2.1 單缺陷目標的圖像分割

1)單活節圖像分割:圖10a為單個活節樣本的原圖像,圖10b為初始化矩形框,圖10d為分割結果,圖10c為分割結果的局部放大圖,圖10e為分割結果與原圖像的掩模。雖然活節缺陷的像素灰度值與背景的灰度值的差距較小,但Grab Cut演算法仍然可以得到完整的分割輪廓, 分割時間為108144.784ms。由圖10e可見,分割結果與原圖的吻合度較高,分割效果較好;從圖10c分割結果局部放大圖可見,Grab Cut演算法進行圖像分割時,會使活節缺陷內部出現零星的欠分割區域。

2)單蟲眼圖像分割:圖11a為單蟲眼樣本的原圖像,圖11b為初始化矩形框,圖11d為分割結果,圖11c為分割結果的局部放大圖,圖11e為分割結果與原圖像的掩模。雖然活節缺陷的像素灰度值與背景的灰度值的差距較小,但Grab Cut演算法仍然可以得到完整的分割輪廓, 分割時間為87329.92ms。由圖11e可見,分割結果與原圖的吻合度較高,分割效果較好;從圖11c分割結果局部放大圖可見,Grab Cut演算法進行圖像分割時,會使蟲眼缺陷內部出現零星的欠分割區域。

3)單死節圖像分割:圖12a為單蟲眼樣本的原圖像,圖12b為初始化矩形框,圖12d為分割結果,圖12c為分割結果的局部放大圖,圖12e為分割結果與原圖像的掩模。雖然活節缺陷的像素灰度值與背景的灰度值的差距較小,但Grab Cut演算法仍然可以得到完整的分割輪廓, 分割時間為77545.63ms。由圖12e可見,分割結果與原圖的吻合度較高,分割效果較好;從圖12c分割結果局部放大圖可見,Grab Cut演算法進行圖像分割時,會使蟲眼缺陷內部出現零星的欠分割區域。

綜上所述,Grab Cut演算法進行木材表面缺陷分割,能夠得到完整的分割輪廓,且不受背景雜訊影響,分割速度快,且對目標與背景像素差別較大的死節和蟲眼缺陷分割速度更快,但分割結果均會出現少量的欠分割問題。

2.2.2 多缺陷目標的圖像分割

1)多活節缺陷分割試驗(圖13):圖13a為多活節樣本的原圖像,圖13b為初始化矩形框,圖13c為分割結果,圖13d為分割結果與原圖像的掩模。可見,Grab Cut演算法能將木材表面的每一個活節缺陷都分割出來,且分割輪廓曲線完整,分割結果與原圖的吻合度較高,但在背景中識別出兩個過分割噪點,分割時間為13.337s。

2)多蟲眼缺陷分割試驗(圖14):由圖14可見,Grab Cut演算法能將木材表面的每一個蟲眼缺陷都分割出來,且分割輪廓曲線完整,分割效果好,分割結果與原圖吻合度較高,分割時間為10.913s。

3) 多死節缺陷分割試驗(圖15):由圖15可見,

Grab Cut演算法能將木材表面的每一個死節缺陷都分割出來,且分割輪廓曲線完整,但是右下角死節缺陷的輪廓上存在少量過分割噪點,分割時間為11.634s。

由圖13、14、15的分割結果可知,Grab Cut演算法能夠快速鎖定多個木材表面缺陷的邊界輪廓,且不受木材表面缺陷的多少、大小和缺陷輪廓形狀的影響,分割效果好,分割速度快,抗噪性強,運行時間短。但是Grab Cut演算法對木材表面缺陷分割時會出現零星的欠分割或者過分割情況,且分割前需要用戶人工畫定初始化矩形框。

來自:林業工程學報

-加入人工智慧學院系統學習-

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI講堂 的精彩文章:

使用TensorRT集成加速TensorFlow推理
重磅!Google發布機器學習速成課程!

TAG:AI講堂 |