王小虎, 潘如如, 高衛東, 周 建
(生態紡織教育部重點實驗室(江南大學), 江蘇 無錫 214122)
在生產過程中織物疵點是由原料、工藝、機械故障及人為因素等原因所導致的。紡織品表面含有疵點將嚴重降低產品的質量,導致織物價格下降。檢測作為產品質量控制的重要環節,在生產過程中占有重要地位,其中疵點檢測是關鍵的部分。目前疵點檢測主要由人工來完成,但人工驗布由于檢出率低、速度慢、人員成本高等缺陷,無法達到高效率、高質量智能化生產要求,因此,將快速而可靠的圖像處理技術應用在疵點檢測中,實現織物疵點自動化檢測具有重要意義,也是近年來的研究熱點。
根據不同的織物圖像處理方法,織物疵點檢測可分為5類[1]:基于結構的方法、基于統計的方法、基于頻譜的方法、基于模型的方法以及基于學習的方法。結構法通過從織物中提取圖像的基礎紋理結構獲得結構特征,疵點的存在破壞了原有的結構紋理,通過與正常紋理比較相似度可檢測出疵點[2]?;诮y計的方法主要利用像素及其鄰域的灰度屬性,分析紋理區域的灰度一階、灰度二階或灰度高階屬性。常用的統計方法有直方圖統計法[3-4]、灰度共生矩陣[5-7]、數學形態學[8]等?;陬l譜的方法是利用織物紋理的周期性與頻譜特性的相似,將分析頻譜的方法應用于圖像紋理,傅里葉變換[9]、Gabor變換[10]、小波變換[11]等是其中常用的方法。基于模型的方法是通過假設紋理服從特定分布模型和該模型的參數,從而根據此特定分布模型來判斷被測圖像,實現疵點檢測,適用織物表面特征變化沒有規律的情況。常見的有自回歸模型和馬爾科夫隨機場。基于學習的方法主要有字典學習[12-13]、深度學習[14]、支持向量機等。
稀疏表達理論是近年來研究熱點問題之一,因其優秀的數據特征表達能力被廣泛應用于人臉識別[15]、圖像去噪[16]等領域。稀疏表示理論中最為重要的角色就是稀疏字典。通過學習所得的稀疏字典能夠更好地適應信號特征,允許字典通過學習對輸入信號進行更有效的表達。
對于疵點檢測來說,稀疏字典能夠對原織物紋理結構實現很好的表達和近似,因此應用稀疏字典方法進行織物疵點檢測可取得滿意的效果。但稀疏字典的學習與求解耗時較長,難以應對工業場景下實時檢測要求。為此,本文采用字典分組策略對稀疏字典進行優化,在保證檢測效果的同時提高算法速度。
在信號處理領域中,信號通常可分解為一些基本元素或函數的線性組合來進行表達。對織物紋理信號線性表達的基本思路是尋找一些基元素(即字典),這些基元素的線性組合可在一定的約束下對原信號進行最優的近似(重構)。通過學習所得的稀疏字典能夠更好地適應信號特征,允許字典學習對輸入信號進行更有效的表達。對于織物疵點檢測來說,這種表達方式能夠更有效地還原織物特征或者結構,突出疵點部分,有利于后續的疵點區域識別。
稀疏表達通常使用過完備字典,即字典數量大于其特征維度,對特征表達是只用過完備字典中的少量元素,在l0條件下,假設字典大小為k,表示為D=[d1,d2,…,dk]∈Rm×k,字典D中的每一列dk∈Rn即為1個原子,樣本數據矩陣為X,設α為編碼稀疏矩陣,記為α=[α1,α2, …,αn]∈Rk×n,則X≈D×α, 如果αi中僅有α0(α0?k)個非零個數,則αi的稀疏度為T。稀疏字典的求解可看作為一個以某種近似條件為目標函數的數學優化問題,通常將l0范數松弛為l1范數進行求解,在D已知下的稀疏編碼問題如式(1)所示:
(1)


(2)
式中,C即驗證此約束的矩陣凸集。此時結合以上2個式子可改寫成D和α的聯合優化問題,如式(3):
(3)
此時式(3)是非凸函數,無法求解,但當D或者α其中1個變量確定下來時,目標函數對另一個變量則成為凸優化問題,求解稀疏系數可以采用最小回歸角(LARS)算法。
如圖1所示,在學習階段,輸入為正常織物樣本圖像,并劃分為一定大小的子窗口,展開排成列向量后組合成1個矩陣。對樣本集合矩陣進行稀疏字典學習,并且對得到的稀疏字典D進行優化選擇并分為n組(優化策略詳見下節),作為后續檢測用字典庫集合Ds={Di},i=0,1,2,…,n-1。

圖1 算法流程圖Fig. 1 Algorithm flow chart
在測試階段,輸入有疵點圖像X,劃分子窗口提取所有樣本,排成列向量組合成矩陣Xt,利用字典庫Ds中所有組合Di對矩陣用最小二乘法求解得到相應系數αi,由式(4)可得重構圖像Xri,將其與排列組合過的圖像矩陣Xt相減取絕對值的平方即可突出疵點部分如式(5):
Xri=D×αi
(4)
Xεi=|Xt-Xri|2
(5)
式中:Xri為重構圖像;Xt為取塊排列后的圖像矩陣;Xεi為殘差圖像。
原圖與殘差圖像如圖2所示。
由于有n組字典,最終得到的殘差圖像也有n張,將所有殘差圖像合并得到Xε(圖2為將子窗口還原后的殘差圖像),對于殘差圖像Xε需要對每個子窗口樣本進行判斷,并標記疵點樣本,最后根據疵點樣本數量判斷是否為正常圖像(允許一定程度誤檢)。

圖2 原圖與殘差圖像Fig. 2 Original image(a) and residual image(b)
對于普通字典學習即無稀疏約束的字典學習而言,選擇無疵點樣本進行學習,此時織物圖像的紋理信息等已經包含于學習所得字典中,但得到的字典對于待測圖像進行線性表示時,所得的重構圖像中易包含疵點部分,其殘差圖像不能很好地突出疵點區域,導致檢測精度不高。
對于稀疏字典學習而言,字典通常為過完備字典,字典個數K大于每個字典中元素個數m,近似表達時,并不是采用全部字典元素對樣本進行近似,而是選取盡可能少的字典元素對樣本進行近似,這樣的近似方式有助于選取對織物宏觀上近似,從而忽略細節部分如疵點區域,提高檢測精度。但也因此造成求解系數時計算量較大,處理時間長,不能滿足實時連續檢測的要求。為提高后續求解系數的速度與重構圖像的準確度,本文對稀疏字典進行優化處理,主要從2個方面入手:子窗口尺寸和稀疏字典的優選。
2.2.1 子窗口尺寸
本文所用算法1個子窗口即為1個樣本,子窗口的尺寸是影響檢測結果非常重要的參數。如果子窗口過小,則不能包含完整的織物紋理信息,但是疵點卻可被突出;如果子窗口過大,雖然有利于刻畫織物紋理信息,但是子窗口中疵點區域占比會減小,影響檢測效果。
本文所用圖像大小為512像素×512像素,實際尺寸59.5 mm×59.5 mm,分辨率約為218像素/(2.54 cm)。 選用32像素×32像素(實際尺寸3.71 mm×3.71 mm),16像素×16像素的子窗口大小對不同種類疵點進行測試,結果如圖3所示。

圖3 不同種類瑕疵不同子窗口大小的檢測效果Fig. 3 Detection results of different types of defects and different patch sizes.(a)Detection result of warp defect; (b)Detection result of weft defect; (c)Detection result of blocky defect
以上檢測結果表示,32像素×32像素對不同種類瑕疵檢測效果比較理想。對于16像素×16像素大小的子窗口,瑕疵區域被切割到多個子窗口中,從而丟失了疵點紋理信息,導致檢測效果較差。對于未知織物品種,疵點大小和分布區域隨機,32像素×32像素的子窗口可保證不會將同一區域疵點分割開,最大程度地保留瑕疵信息。
2.2.2 稀疏字典優選
由于稀疏字典通常采用過完備字典進行信號表征,其字典的數量及稀疏化程度直接決定了系數編碼的求解時間。為此,本文采用對稀疏字典庫進行分組優化策略實現其求解時間效率的提升,具體是通過對稀疏字典庫和分組字典數量的優選實現。
1)稀疏字典庫。首先需要確定稀疏字典的大小K值,稀疏字典通常為過完備字典。由于本方法是要挑選部分組合,因此稀疏字典K無需過大,滿足所需即可。在子窗口大小為32像素×32像素,K分別為128,256,512,1 024,1 248時,測試重構誤差,結果如圖4所示。
從圖4可看出,當K=512時重構誤差變化幅度明顯降低,且能滿足挑選組合所需,因此稀疏字典大小定為K=512。

圖4 K的大小與其對應的重構誤差Fig. 4 Size of K and its corresponding reconstruction error
2)分組字典優化策略。稀疏字典個數確定后,為保證分組的效率及每個組合對織物圖像的重構效果,每組字典中k的個數選擇同樣是重點。
從理論上講,k增大有利于還原圖像的組織紋理,減小近似誤差,但另一方面,如果k過大,就很可能將疵點區域引入字典原子中,使得疵點部分也能很好的近似還原,影響檢測效果;而且k增加,系數的求解耗時會越長,影響檢測效率。
此時,對512像素×512像素的白坯布進行測試,優化字典個數k與重構誤差的關系如圖5所示。
從圖5中可以看出,隨著優選字典個數k的增加,重構誤差會隨之減小,即原織物圖像的近似效果越好。對于不同子窗口大小,在字典個數k=10之后,k增加而重構誤差減小的幅度已經不大,至k為12~14時趨于穩定。為綜合考慮檢測效果與速度,選擇k=14。

圖5 k的大小對重構誤差的影響Fig. 5 Influence of k on reconstruction error
綜上所述,從字典庫中優選其中的14個字典就能對織物紋理實現很好的近似,但其優化過程耗時較長。為此,本文提出一種分組字典優化策略提升算法時間效率,其算法流程如下。
Input: 圖像Y,字典D,分塊提取Y中所有樣本Yp
1: 初始化Di=?,i=0
2: 按順序分組每組14個字典基,找出整體重構誤差最小的組合得到初始字典D0

4: repeat
5: 輸入上一周期更新過的Yp
6: repeat
7: 從D中隨機挑選14個字典基

10: 添加Di到Ds,i+1
11: untilYp=?
Output:字典集合Ds
首先輸入正常圖像Y和稀疏字典D,將圖像劃分子窗口提取所有樣本。然后挑選初始字典,將原稀疏字典按順序分組,每組14個字典基,超出部分去除。用每個字典組合對所有樣本進行重構,選擇圖像整體重構誤差最小的組合,即初始字典組合D0。之后更新其它字典組合,設置重構誤差界限L,用Di(i=0,1,2,…,n-1)對所有樣本進行重構,重構誤差超出界限L的樣本留待下個周期,每個周期選擇1個Di加入字典庫集合Ds,直至所有樣本都能夠被很好的表達。
加入Ds的判斷依據如式(6)所示,Di能很好地重構部分樣本則加入,若所有樣本的重構誤差都超過L,則Di需要重新挑選,Di的挑選方式為從稀疏字典D中隨機選擇14個字典基(初始字典不在其內)。
(6)
式中:Ds為優選字典庫;L為重構誤差界限;1代表加入;0為重新挑選。
具體分組字典優化策略的流程見表1中偽代碼算法描述。
如表1中算法所述,初始字典能夠近似大部分樣本,經過不斷選擇更新,所有樣本都能夠很好的近似。多個字典組合之中有重疊部分,即包含相同字典基,并且對樣本的近似能夠達到互補的效果。
本文實驗所用的白坯布來自生產線,基本組織為平紋,疵點主要有斷緯、斷經等斷疵,也包含棉結、竹節、破洞、雙經和油污等疵點。為評價算法對疵點的檢測效果,采用2個指標:檢出率(P)和誤檢率(E)。
(7)
(8)
式中:Np為瑕疵樣本被正確檢測出的個數;Ndf為瑕疵樣本的總個數;Ne為正常樣本被誤檢為瑕疵樣本的個數;Nnf為正常樣本的總個數。
本文視每個窗口為一個樣本,在上文已經討論過窗口大小對檢測效果的影響。為保證圖像中瑕疵區域不被分割到邊緣以影響到算法的檢測效果,測試時,選用窗口大小為32像素×32像素。一張圖像大小為512像素×512像素,可劃分256個子窗口,即256個樣本,圖像劃分子窗口樣本如圖6所示。

圖6 子窗口樣本的劃分圖像Fig. 6 Image of patch divided samples

平紋白坯布總計125張(其中含疵點圖像25張,正常圖像100張),子窗口樣本總計32 000個,對其用3種不同方法進行測試,并統計實驗結果。含疵點實驗圖像分為3大類,分別是經向瑕疵的圖像(J1~J13)、緯向瑕疵的圖像(W1~W6)和塊狀瑕疵(K1~K6)的圖像。
各方案參數:無約束字典的字典個數為14;稀疏字典的字典個數為512,正則化參數λ=0.6;優化稀疏字典包含24組,每組14個字典。
3種方法綜合對比結果如表1所示,疵點檢測實驗結果統計如表2所示。
從表1匯總的數據可看出,稀疏字典算法耗時非常長,優選稀疏字典算法次之,無約束字典耗時最短,其中算法耗時只計算輸入圖像到輸出是否為疵點圖像結果的檢測用時,不包含字典學習過程耗時及優選字典的時間。稀疏字典算法1張圖像平均耗時10 812 ms,無約束字典算法平均1張耗時 32 ms, 優選稀疏字典算法為208 ms。優選稀疏字典和無約束字典在時間上都可以滿足實時檢測的要求。稀疏字典的檢出率最高,優選稀疏字典次之,無約束字典最低。誤檢率無約束字典最高且與其余二者相差較大,優選稀疏字典略高于稀疏字典。

表1 不同字典方案檢測效果對比Tab. 1 Comparison of three defect detection methods
從表2的統計結果可以看出,3種字典學習算法對于平紋白坯布的各種類型瑕疵都有比較好的檢測效果,檢出率都在90%以上。本方法對于經向瑕疵如斷經、竹節等檢測效果優秀且穩定,對于緯向瑕疵僅有個別圖像的檢測效果較差。油污、破洞和雜物等塊狀瑕疵由于灰度區分明顯,絕大部分都可完全檢出。

表2 織物疵點檢測結果匯總
綜上所述,就檢測精度而言,無約束字典檢測精度較差,稀疏字典檢測精度最佳,優選稀疏字典的檢測精度介于二者之間。優選后的稀疏字典庫能在保證稀疏字典算法檢測精度的情況下,節約大量時間,證明了本算法的有效性和實時性。
本文采用分組優化策略對學習所得稀疏字典進行分組優選,通過學習多組互補字典解決不同樣本的最優近似,在大幅縮短時間的情況下更準確地突出疵點部分。結果證明本方法能夠綜合普通字典學習耗時短和稀疏字典學習精度高的優點,在保證實時性和低誤檢率的同時具有較好的檢測效果,且對不同類型的瑕疵有較強的適應性,尤其對經向瑕疵具有較高的準確率和穩定性。