張團善,石 瑋
(西安工程大學 機電工程學院,陜西 西安 710048)
織物疵點主要是在織造過程中形成的[1]。隨著需求的增加、生產效率不斷提升[2],生產過程中織物的疵點數目和種類也會隨之增多,而產品表面缺陷會降低產品質量和商業價值[3]。研究表明,紡織品的價格會因生產質量的問題而損失45%~65%[4]。目前,國內幾乎所有紡織企業仍然釆用傳統的人工驗布方式進行瑕疵檢測,通過人眼觀察,手動剔除不合格產品。由于檢測勞動強度大,人為檢測效率低,漏檢率較高,可靠性較差[5],并增加企業勞動成本[6]。采用機器視覺[7]檢測技術,能夠使檢測實現自動化,并且高速高效地檢測織物疵點,保證產品的質量。
因為織物在生產過程中環境的復雜性,生產材料和產品的多樣性,使織物疵點檢測算法缺乏通用性。織物疵點檢測被許多從事此領域的研究人員認為是一個非常艱巨的任務[8]。目前,針對織物疵點檢測算法可分為基于統計信息的方法[9]、基于模型的方法[10-11]、基于頻譜的方法[12]、基于卷積神經網絡的方法[13]和基于顯著性的方法等。韓立偉等[14]通過實時收集圖像的特征, 分析有價值的統計信息,將有價值的信息進行模板更新和閾值的判斷。該方法適用于紋理結構清晰,紋理具有周期性的布匹,但對于密度較高、反光較強的防羽布檢測效果不佳。閔信軍等[15]利用圖像分塊處理灰度共生矩陣進行疵點檢測。該方法利用分塊提取圖像灰度共生矩陣特征紋理,分析紋理特征值的分布狀況,查找疵點并且確定疵點所在區域。不過,該方法在防羽布檢測時易受光照噪聲的影響。張波等[16]采用相對總變差模型對織物圖像進行濾波,以去除織物紋理,然后在得到的灰度圖像上直接進行基于自適應鄰域的灰度形態學運算,最終得到織物疵點的增強圖像。該方法在防羽布的檢測中同樣易受環境噪聲的影響,并且模型信息不足,與實際紋理具有一定差異,因此檢測精度不高。頻譜方法主要有小波變換系數[17]、傅里葉變換[18]、Gabor濾波器[19]和輪廓線變換[20]等,其過程是將圖像由空間域轉換為頻域,通過頻譜的分布描述紋理中的全局周期性質。肖樂等[21]利用Gabor濾波器和建立圖像金字塔對多幅圖像進行融合與重建提取疵點,但在防羽布的疵點檢測中,最優Gabor濾波器參數的選擇難度很大。
本文研究對象是以超細滌綸為原料的740/620高密防羽布,具有透氣性較好, 撕破強度高, 耐磨性能好,布面光潔勻整等特征。由于防羽布具有上述特性,在防羽布大規模生產的過程中會出現光照分布不均,布匹易褶皺等現象。目前織物疵點檢測算法雖然具有一定的普遍性、通用性,但由于織物的紋理、材料和生產環境的多樣性和差異性,因此對不同種織物的疵點檢測效果并不理想。本文提出一種針對高密度織物檢測算法。該方法利用灰度單通道圖,提取圖像上每個像素及其8個鄰域像素的變化特征;利用疵點像素與非疵點像素變化差異確定疵點因子,通過對比得到織物疵點二值圖。該算法雖在通用性、普遍性上尚有一定的局限性,但在光照不均勻、布面不平整等復雜環境下的防羽布疵點檢測具有很好的檢測性能。
設圖像為m×n的RGB三通道圖像,由于疵點類型為非色差類疵點,在不影響對織物檢測的前提下,為減少圖像處理計算量,方便后續計算,將圖像通過式(1)進行灰度變換。
Gray=0.299R+0.587G+0.114B
(1)
式中:R,G,B均為單通道矩陣。灰度圖像矩陣Gray表示為
(2)
式中:ai,j∈[0,255],i∈[0,m],j∈[0,n]。
為實現對微小和不顯著疵點的準確檢測,選取大小為3×3,像素數目為9的基矩陣aω,表達式為
(3)
式中:ω=1,2,…,(m-1)×(n-1);i=1,2,…,m-1;j=1,2,…,n-1。
由于光照分布不均、布匹不平整等噪聲和疵點在灰度圖像中都是通過像素值變化體現,因此通過像素變化的差異分析圖像。由式(4)計算圖像差異矩陣bω,得到差異矩陣式(5)。
(4)
(5)
在噪聲環境的疵點圖像中,疵點區域、噪聲區域和非疵點區域具有不同的變化趨勢,對應于差異矩陣中不同的差值。具體分為以下3種情況:
1) 正常織物區域無較大差值變化;
2) 光照分布不均、布匹褶皺等噪聲區域差值變化趨勢具有均勻性;
3) 疵點區域差值變化趨勢具有突變性。
計算差異矩陣像素變化波動值Sω

將Sω與差異矩陣均值mω(見式(4))的對數進行比較,根據式(6)定義疵點因子ε。
(6)
式中:c為常數,c=1,2,…。
Sω的大小可以直觀反應基矩陣內像素變化的波動性。通過動態判斷差異矩陣bω中的像素bi,j與疵點因子ε的大小,得到對應區域中每個像素的像素值。若疵點因子大于像素變化差異值,則定義為非疵點像素點(像素值為0);否則,定義為疵點像素點(像素值為255)。進而得到整幅圖像每個像素的像素值。為使圖像更具有直觀性和可控性,通過式(7)得到動態二值圖像矩陣th。
(7)
式中:ci,j表示二值化后像素值,且
經過上述計算得到的二值圖中含有由噪聲引起的斑點。為解決這個問題,通過式(8)對最終生成的二值圖進行中值濾波,得到圖像矩陣I*。
(8)
式中:M為中值濾波算子。
綜上分析,防羽布疵點檢測的具體實現過程如圖1所示。將CCD相機采集的彩色圖片進行灰度化處理,利用基矩陣aω和差異矩陣均值mω計算得到差異矩陣bω;然后,計算疵點因子ε,與差異矩陣內像素比較后得到二值圖像矩陣th;最后,通過中值濾波得到圖像矩陣I*。

圖 1 防羽布疵點檢測過程Fig.1 Down-proof fabric detection process
算法運行軟件環境PyCharm2018,通過Python語言編寫,使用Intel(R) Pentium(R) CPU G4600 @3.60 GHz處理器。實驗樣本采用工廠實際生產的防羽布圖像。實驗環境:光源為D65光源和日光,照射方式為垂直照射和分散式照射;相機采用工業CCD相機,分辨率為2 056×2 056;相機與樣本采用垂直拍攝,間距為20 cm。本文算法針對防羽布進行結構類型疵點檢測,色差疵點不作為本研究的主要內容。工業CCD面陣相機采集RGB圖像,是為進行隨后的色差疵點檢測。
使用準確率及誤檢率作為算法檢測效果的評價指標。準確率及誤檢率定義為


為驗證算法檢測效果的有效性,選擇無疵點樣本846個,破洞樣本439個,邊撐疵樣本387個,斷紗樣本501個,極光樣本364個,劃傷樣本511個,使用準確率和誤檢率指標來評價算法檢測效果,檢測結果如表1所示。

表 1 疵點檢測準確率和誤檢率統計結果Tab.1 Defect detection accuracy and false detection rate %
從表1中可直觀看出,本文算法對防羽布各類疵點具有良好的檢測效果,可較為準確判斷織物疵點。雖然對于極光類型疵點的檢測準確率最低,但也在92%以上。由表1可得本文算法對防羽布疵點檢測平均準確率為95.37%,平均誤檢率為3.63%。
選取圖像差異矩陣均值、圖像均值不同的4類圖像,分別記為a,b,c,d;各取89個樣本,當c為不同數值時,4類圖像檢測的準確率如圖2所示。

圖 2 常數c與檢測準確率關系Fig.2 Relationship between constant c and detection accuracy
從圖2可得,對于不同均值和不同差異矩陣均值的防羽布疵點圖像,當常數c=3時,檢測結果都具有較高的準確率。故將c=3,帶入式(6),進行后續計算。
為進一步驗證算法的有效性,選擇有破洞、邊撐疵、斷紗、極光和無疵點5種類型織物,采用另外3種疵點檢測算法與本文算法對比實驗效果,其中包括基于灰度共生矩陣(GLCM)的方法、基于傅里葉變換的方法和基于Gabor變換的方法。實驗結果如表2所示。
表2疵點檢測統計結果
Tab.2 Defect detection results
從表2可直觀看出,基于灰度共生矩陣的檢測算法對防羽布斷紗和劃傷效果較為明顯,而對于破洞、色點以及無疵點圖像檢測的準確率偏低;基于傅里葉變換的檢測算法在防羽布細小疵點和反光較為明顯的圖像中,檢測的準確率偏低;基于Gabor的檢測算法對于防羽布上有明顯疵點和無疵點圖像的檢測效果較好,但是其抗干擾能力偏低;本文算法具有較高的抗干擾能力,能夠消除復雜環境對疵點檢測的影響,并且對防羽布疵點檢測具有較高的準確率。其他3種算法檢測效果魯棒性不強,主要是因為防羽布質地柔軟平滑易出現反光和褶皺現象影響檢測結果,以及算法參數設定不夠精準等原因造成。
對于防羽布這種高密度、柔軟平滑的紡織物,經典的疵點檢測算法很容易將光照與布面不平整等噪聲在檢測時誤識別為疵點。本文提出的防羽布疵點檢測算法,主要通過比較區域內像素的變化差異判斷疵點。由于非疵點噪聲在區域內像素變化是非突變的,而疵點是突變的,通過該特性,可以有效的區分反光、褶皺的影響,并且能夠較準確地從織物圖像中定位出疵點區域的位置。相比于其他疵點檢測算法,本文提出的算法針對性強、準確率高,因而更具有實際應用價值。但本文算法在時間的優化和對其他紡織布品的檢測效果等方面,還有待進一步研究。