楊曉波,白直燦
(浙江樹人學院,浙江 杭州 310015)
傳統(tǒng)人工驗布速度約為10 m/min,檢測效率低且易受檢測人員主觀因素影響。隨著計算機科學和圖像處理技術的不斷發(fā)展,機器視覺被引入織物疵點檢測,并逐漸替代人工檢測。國內外專家和學者進行了深入研究,并陸續(xù)提出了許多有價值的織物疵點檢測算法。Amet等[1]提出了一種子帶共生矩陣方法,利用小波分解將原始圖像分解為多個子帶圖像,并計算共生矩陣特征值,檢測精度可達88%;Rosler[2]從共生矩陣中提取新的特征值檢測織物疵點,檢測精度可以提高到90%;鄒超等[3]提出了一種模糊邏輯灰度分類方法,利用少量類別替代256個灰度級,不需要復雜的特征計算即可得到模糊類別共生矩陣,但只適用于簡單素色織物。共生矩陣方法雖然檢測精度較高,但存在灰度級別劃分方法不統(tǒng)一且特征值計算量較大等問題。
Conci等[4]利用分形方法對155幅大小為256像素×256像素的織物圖像樣本進行檢測,檢測精度達到92%;Bu等[5]提取4種分形特征,對織物紋理進行分類檢測,檢測精度最高可達93.5%。分形方法雖提高了檢測精度,但對于連續(xù)性不強且形狀特征不顯著的疵點難以檢測。
Jain等[6]提出了一種基于Gabor濾波器組的非監(jiān)督疵點分割算法,該算法采用多個濾波器組覆蓋整個頻域空間,可以非監(jiān)督的檢測疵點的位置和頻率;Mak[7]采用Gabor小波網絡從無疵點的織物紋理中提取最優(yōu)紋理特征,并用其檢測織物疵點,對平紋和斜紋的檢測效率分別達到94.3%和95.2%,檢測速度達到20 m/min。由于一種Gabor濾波器只能檢測一種類型的疵點,而在生產現場待檢測的織物疵點種類繁多,因此采用濾波器訓練疵點特性不適合用于生產現場。
Cohen等[8]采用高斯馬爾科夫隨機場對織物紋理進行建模,經過假設檢驗過程檢測織物疵點;Baykut等[9]將基于高斯馬爾科夫隨機場與基于KL變換的織物疵點檢測算法進行比較,結果表明前者的計算效率高于后者。由于馬爾科夫隨機場只能對較大疵點反應靈敏,因此該方法不適用于對細小疵點進行檢測。
上述算法中由于計算量較大,難以滿足疵點實時性檢測的要求,不能有效地提高檢測效率,因而難以得到實際應用?;诖?本文提出一種基于分類算法的高實時性織物疵點檢測方法,以達到僅對正常紋理織物進行訓練后便可檢測未知類型疵點,克服神經網絡等傳統(tǒng)機器學習算法需要大樣本訓練的問題,滿足織物疵點高實時性檢測要求。
采用機器學習方法可以進行奇異性檢測[10],適用于解決疵點分類問題,分類器在訓練過程中僅需要對正常織物樣本進行訓練,而不需要對疵點織物樣本訓練,因而節(jié)約了訓練時間,比較適合在線疵點實時檢測。
織物疵點的檢測過程包含2個階段:學習階段和分類階段。疵點檢測可以認為是一個分類過程,對織物疵點的檢測算法流程如圖1所示。 在學習階段,只需對正??椢锛y理樣本進行訓練,不需要訓練疵點樣本,正常紋理樣本可根據紋理模型進行量化,圖像經過量化后便可提取紋理特征,紋理特征通常是由1組紋理特征向量構成,這些特征向量用于支持選擇合適的紋理特征分類器。在分類階段,先將待檢測的織物樣本進行圖像量化,接著提取待測樣本的紋理特征,最后利用最優(yōu)的分類器進行特征分類,判別待測樣本中是否含有疵點。
圖1 疵點檢測算法流程圖Fig.1 Flowchart of defect detection algorithm
選取素色無疵點的平紋和斜紋織物樣本(圖2),并分析二者的灰度直方圖,如圖3所示。
圖2 無疵點平紋和斜紋織物樣本Fig.2 Samples of no-defect plain fabric(a) and twill fabric(b)
圖3 無疵點平紋和斜紋織物灰度直方圖Fig.3 Gray level histogram of no-defect plain fabric(a) and twill fabric(b)
通過分析2種類型織物的灰度直方圖可以發(fā)現,素色平紋織物包含1個灰度色調,而素色斜紋織物則包含2個灰度色調。2種織物紋理模型近似服從由2個高斯函數組合在一起的高斯分布,因此織物的紋理模型可以采用灰度級概率密度函數來表示,平紋織物的概率密度函數如式(1)所示:
(1)
式中:μ和σ分別代表高斯分布的均值和方差。
斜紋織物的紋理模型對應灰度級概率密度函數如式(2)所示:
(2)
式中:ω1和ω2分別表示2個高斯函數的加權值,且ω1+ω2=1;μ1、σ1與μ2、σ2分別代表2個高斯函數的均值和方差,且μ1≤μ2、σ1≤σ2。
為了統(tǒng)一平紋和斜紋織物紋理模型,可以利用式(2)對織物紋理進行統(tǒng)一建模,平紋織物紋理模型(式(1))可以認為是式(2)的特殊形式,即式(2)中ω1=1,ω2=0且μ1=μ2,σ1=σ2。
進行織物疵點判別時,需要從織物紋理圖像中提取表征疵點的紋理特征。根據疵點檢測算法,可以采用灰度共生矩陣法[11]提取無疵點織物的紋理特征,疵點織物則采用異常像素分析法[12]提取紋理特征。
利用灰度共生矩陣法需要選取有代表性的紋理特征,本文選取對比度(CR)和逆差分距(IDM)作為代表紋理特征,對比度反映圖像的清晰度,逆差分距反映圖像紋理的同質性。式(3)反映織物圖像紋理的對比度,通常正??椢锏膶Ρ榷仁怯行蚯揖鶆蚍植?而有疵點的織物像素點明暗變化無序,相應的紋理對比度也會發(fā)生改變。式(4)反映圖像紋理的均勻度,當出現疵點時,紋理的均勻度將會受到破壞,因此特征值CR和IDM可以較好地反映織物的紋理特征,用于判別正常區(qū)域和疵點區(qū)域。
(3)
(4)
式中:N為灰度共生矩陣的總行數(或總列數);p(i,j)為共生矩陣經過規(guī)范化處理后的元素。
當織物中存在疵點時,織物圖像中的像素點亮度便會出現異常。為了定量描述像素點亮度異常,采用異常像素分析法提取織物疵點特征,異常像素分析法的核心思想是提取異常行程特征,主要包括亮度異常行程(LER)和暗度異常行程(DER)。LER定義如下:
(5)
式中:Q為量化后的像素值;CL為LER的行程長度;Sl為行程長度大于l的異常亮度的集合;Cs為亮度異常行程的總長度;s(k)表示第k個元素的量化級別;設定行程長度閾值l時,通常選取在正常紋理中包含亮度異常行程長度的90%分位數。
除了亮度異常特征LER之外,另一個核心特征是DER,定義如下:
(6)
式中:CD為DER的行程長度;Dl行程長度大于l的異常暗度的集合;Cd表示暗度異常行程的總長度;d(k)表示第k個暗元素的量化級別;DL閾值設定為織物高斯分布的置信區(qū)間下限。
為了表征所選特征值的有效性,選取常見的織物疵點圖像,圖像樣本大小為256像素×256像素,如圖4所示。
圖4 常見織物疵點類型Fig.4 Types of common fabric defects.(a)Broken weft; (b) Lack of warp; (c) Random weft; (d) Nep;(e) Loose warp; (f) Dirty weft (g) Broken; (h) Lack of weft
以缺經疵點為例,將圖像樣本劃分為4個互不相交的子區(qū)域,其中子區(qū)域1代表疵點區(qū)域,子區(qū)域2、子區(qū)域3和子區(qū)域4代表正常區(qū)域,如圖5所示。計算疵點的4類特征值,結果如表1所示。
表1 不同區(qū)域的4類特征值Tab.1 Four types of feature value for different areas
圖5 標記有疵點區(qū)域的樣本Fig.5 Samples of marked defect areas and its feature value
子區(qū)域1的特征值明顯高于其他子區(qū)域的特征值,即疵點區(qū)域的特征值明顯高于正常區(qū)域,說明本文所選的4類特征值可以較好的表征疵點特性,捕捉異常像素點的存在。由于將圖像劃分為16個區(qū)域,每個區(qū)域采用4類紋理特征值,因此可以采用64個特征組描述織物紋理特性。
采用機器學習中的分類算法,可以得到判別疵點的分類器。選取織物樣本圖像中互不相交的每個子區(qū)域作為訓練樣本,經過迭代訓練才能獲得適合的分類器,在整個訓練過程中,首先提取每個訓練樣本的特征值,然后利用式(7)對特征值進行歸一化處理。
Vm=(Vm-α)(N1×β)
(7)
式中:Vm為歸一化后的特征向量;N1為訓練樣本的總數;α與β為歸一化處理中的偏移系數。
經過歸一化處理后各個特征值的權重較為接近,每個特征值對整體屬性的影響力差異較小,訓練后的分類器才能較為準確的描述特征值。分類器經過訓練后可以用于檢測樣本織物,判斷織物中是否包含疵點,織物的分類檢測過程如圖6所示。待測織物圖像經過劃分后,提取4類特征值并進行歸一化處理,而后輸入訓練后的分類器之中,分類器將分類結果輸出,如果結果為1,則為正常織物紋理,反之則判定存在疵點。
為了驗證本文疵點判別算法的可靠性,分別選取正常紋理樣本和疵點樣本進行評估實驗。所有樣本圖像采用CCD線陣相機捕獲,圖像樣本大小為256像素×256像素,每個像素點包含256個灰度級別,每幅圖像被分割成16個大小為64像素×64像素的子區(qū)域,圖像數據樣本從每個子區(qū)域中獲取,樣本的數據集信息如表2所示。
表2 3種織物數據集信息Tab.2 Three types fabric datasets information
利用分類器對表2中的無疵點樣本數據集進行訓練,分類器訓練參數α設定為0.01,參數β設定為0.02,經過10次迭代處理后,分類器得到疵點判定結果。為了進一步驗證本文所提算法的優(yōu)勢,選用小波重構算法[13]、GMRF模型[14]、BP神經網絡[15]與本文算法進行對比實驗,結果如圖7所示。
圖7 4種算法的檢測結果對比Fig.7 Comparison of detection results of four algorithms
由圖7可見,從疵點檢出正確率來看,小波重構算法的平均準確率為88%,GMRF模型的平均準確率為81%,BP神經網絡的平均準確率為91%,本文所提算法的平均準確率為97%,高于前3種算法,可以更好地用于檢測織物疵點,同時也說明影響檢測準確率的因素主要與分類算法選擇和特征值提取有關。
除了檢測精度之外,還需對疵點判別算法的實時性進行檢測,CPU處理器的選擇對疵點實時性檢測至關重要,為了進行對比測試,選取DSP T1 320C40、Pentium Ⅲ 450 MHz、Matrox Odyssey XCL、P4 3.0 GHz 4種處理器,分別對應選用小波重構算法、GMRF模型法、BP神經網絡法與本文所提算法進行疵點檢測,檢測結果如表3所示。
表3 4種織物疵點檢測算法的檢測速度Tab.3 Detection speed of four fabric defect detection algorithms
從表3可知,在織物幅寬接近的情況下,采用不同的處理器和檢測算法,檢測速度差異明顯,采用本文的檢測算法和處理器,檢測速度可達41 m/min,表明本文檢測算法在實時性方面具有較為明顯的優(yōu)勢,也說明影響實時性檢測效果的因素主要與織物幅寬、表面分辨率和處理器類型有關。
針對織物疵點算法中存在實時性不足問題,提出了一種基于機器學習的高實時性織物疵點檢測算法,通過算法分析和對比性實驗得出以下結論:
①采用高斯函數對織物紋理圖像直方圖進行建模,能夠描述織物圖像的灰度色調變化,選取對比度、逆差分距、亮度異常行程和暗度異常行程4類紋理特征刻畫織物紋理并突出紋理中包含的疵點。疵點檢測通過分類過程實現,僅對正常紋理織物進行訓練后便可檢測未知類型疵點。
②通過對比實驗得出,本文所提算法的檢出準確率高于其他傳統(tǒng)檢測算法,在織物幅寬相近的情況下,采用本文的檢測算法和處理器,檢測速度可達41 m/min,能夠滿足在線實時監(jiān)測需求,可以應用于高實時性的工業(yè)檢測環(huán)境之中。
今后的研究內容可以考慮如何減少原始圖像256像素×256像素的量化級別,從而減少各個紋理特征的計算量,進一步提高檢測算法的實時性。