木材表面缺陷不利于木材的加工利用,降低木制品的品質,影響生產企業的經濟效益,因此木材表面缺陷的圖像檢測技術越來越受重視。而采用圖像處理方法進行木材表面缺陷檢測,是實現木材表面缺陷自動檢測、提高企業生產效率的必由之路。
鑒于圖割方法的明顯優勢,白雪冰及其團隊采用Graph Cuts算法和Grab Cut算法分別對木材表面的單目標和多目標缺陷圖像進行分割試驗,以總結傳統圖割方法的不足和改進算法的優點。
針對傳統Graph Cuts算法只能針對灰度圖像進行分割、運行時參數的選擇比較復雜,并且存在該算法效率和精度較低的缺陷,采用這兩種方法分別對3種木材表面缺陷活節、蟲眼和死節圖像進行分割實驗。為了驗證Grab Cuts方法的適用性,用含有多個缺陷目標的木質板材圖像做了圖像分割驗證。
結果表明:缺陷圖像的目標和背景的種子點選取直接影響Graph Cuts算法的分割結果,Graph Cuts算法的計算效率較低,分割時間較長,對相鄰像素間的區分度較差,分割結果不理想。改進后的Grab Cut算法是迭代的Graph Cuts,該方法雖然在圖像分割前也需要人工畫定初始化矩形框,但操作相對簡單,分割結果能夠得到完整的閉合缺陷區域邊界,且不受木材表面缺陷的類型、數量、尺寸和缺陷形狀的影響,分割效果好,分割速度快,抗噪性強,對灰度圖像和彩色圖像都可使用。
1、圖割算法
1.1Graph 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) 為指標函數,滿足 :
B 為對像素p、q不連續性的懲罰值:
式中:Ip、Iq為像素p、q的灰度值;dist(p,q)是p和q的距離;δ為圖像噪聲。p和q越相近,則B越大;若p和q相差較大,則B趨近于0 。當B的值較小時,兩個像素會更易于分給不同的區域,這時圖像分割得到最小的能量值。
Graph Cuts算法源于圖論,通過最小化能量函數實現圖像分割 。首先要對(1)的能量函數公式來構造網絡圖,把表示帶有非負邊權的無向圖G= (V,E)作為圖像,其中V為頂點集,與其相對應圖像的邊集為像素點集P,E。V含有兩個特殊的頂點,其一稱為源節點S(代表目標),其二稱為匯節點T(代表背景),因此構造的網絡圖又稱為S-T圖。
1956年Ford等提出了網絡流理論,論證了網絡圖中的最大流與最小流的等價性。式(1)的能量函數可通過最大流/最小割定理來求解,具體包括增廣路徑(augmenting paths)法和推進?重標記(push-relabel)法。本試驗采用后者。
1.2Graph 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、木材表面缺陷圖像分割試驗
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算法對木材表面缺陷分割時會出現零星的欠分割或者過分割情況,且分割前需要用戶人工畫定初始化矩形框。
3、結論
本研究采用Graph Cuts算法及其改進算法Grab Cuts對木材表面缺陷圖像進行分割試驗,分別從木材的單節、蟲眼、死節出發,做缺陷的單項和多項Grab Cut分割試驗,對分割的試驗數據進行分析。試驗表明:目標和背景的種子點選取直接影響Graph Cuts算法的分割結果,Graph Cuts算法的計算效率較低,分割時間較長,對相鄰像素間的區分度較差,分割結果不理想。改進后的Grab Cut算法是迭代的Graph Cuts,該方法雖然在圖像分割前也需要人工畫定初始化矩形框,但操作相對簡單,分割結果能夠得到完整的閉合缺陷區域邊界,且不受木材表面缺陷的類型、數量、尺寸和缺陷形狀的影響,分割效果好,分割速度快,抗噪性強,對灰度圖像和彩色圖像都可使用。由此我們可以對木材進行圖像檢測,以減少選取存在缺陷的木材,降低成本,提高木材的利用率。
審核編輯:郭婷
-
函數
+關注
關注
3文章
4361瀏覽量
63641 -
效率
+關注
關注
0文章
151瀏覽量
20301
原文標題:基于圖割算法的木材表面缺陷圖像分割
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
基于GAC模型實現交互式圖像分割的改進算法
機器視覺有助于解決表面缺陷
一種新的彩色圖像分割算法

SAR圖像海陸分割算法

評論