劉 紀(jì), 張團(tuán)善*, 李秀昊
(1.西安工程大學(xué) 機(jī)電工程學(xué)院, 陜西 西安 710600; 2.中國(guó)科學(xué)院廣州先進(jìn)技術(shù)研究所, 廣東 廣州 511458)
紡織領(lǐng)域中織物的生產(chǎn)過(guò)程涉及多個(gè)環(huán)節(jié),其中產(chǎn)品質(zhì)量控制是保障效益最為關(guān)鍵的步驟。影響產(chǎn)品質(zhì)量最重要的因素就是織物表面缺陷。在生產(chǎn)過(guò)程中由于各種原因會(huì)產(chǎn)生多種不同類(lèi)型的缺陷,目前,紡織行業(yè)定義了70多個(gè)類(lèi)別的織物缺陷[1],這些缺陷影響織物的品質(zhì)和銷(xiāo)售,因此織物缺陷檢測(cè)至關(guān)重要?,F(xiàn)階段主要依靠人工檢查,但由于人的局限性,檢測(cè)結(jié)果經(jīng)常出現(xiàn)人為誤差,因此,人工檢驗(yàn)不能滿足質(zhì)量和控制要求[2]。
針對(duì)織物表面缺陷,大量研究和實(shí)踐提出了許多織物缺陷檢測(cè)算法,主要分為基于統(tǒng)計(jì)、頻譜、模型及學(xué)習(xí)等自動(dòng)化檢測(cè)的算法[3]?;诮y(tǒng)計(jì)的方法使用一階統(tǒng)計(jì)和二階統(tǒng)計(jì)來(lái)提取紋理分類(lèi)中的紋理特征。常見(jiàn)的方法包括共生矩陣,分形維數(shù)法,互相關(guān)函數(shù)等方法[4-6]。例如Zhang等[4] 82利用局部二值模式(LBP)和灰度共生矩陣(GLMC)分別提取缺陷圖像的局部特征信息和整體紋理信息,然后將兩部分特征信息作為輸入訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),用來(lái)分類(lèi)不同類(lèi)型的缺陷。這種方法適用于紋理周期性強(qiáng)的紡織品?;陬l譜的方法主要包括 Gabor 濾波器、小波變換和傅里葉變換等[7-9]。例如,Li等[8] 589基于多尺度小波變換和高斯混合模型開(kāi)發(fā)了一種缺陷檢測(cè)算法,大大提高了檢測(cè)效率。首先,分別使用“金字塔”小波分解算法和小波閾值去噪處理缺陷圖像,對(duì)生成的小波系數(shù)進(jìn)行重構(gòu)。獲得新圖像后,應(yīng)用期望最大化(EM)算法的高斯混合模型對(duì)新圖像進(jìn)行缺陷分割。該類(lèi)方法可有效提取缺陷的特征,但對(duì)于格狀和條狀織物檢測(cè)效果較差,適應(yīng)性較低?;谀P偷姆椒ㄓ凶曰貧w模型、馬爾科夫隨機(jī)場(chǎng)模型等[10-11]。例如,Cohen等[11] 805使用高斯馬爾可夫隨機(jī)場(chǎng)(GMRF)建立無(wú)缺陷的織物模型,其檢測(cè)過(guò)程是對(duì) GMRF法獲取的統(tǒng)計(jì)數(shù)字進(jìn)行假設(shè)檢驗(yàn),將測(cè)試圖像分為非重疊的子塊,然后判定每個(gè)子塊有無(wú)缺陷。這種方法可檢測(cè)紋理結(jié)構(gòu)相對(duì)簡(jiǎn)單、顏色單一的織物缺陷,適合斷頭、斷針等缺陷的檢測(cè),但是這種算法復(fù)雜度高,檢測(cè)耗時(shí)長(zhǎng)。基于學(xué)習(xí)的方法主要應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)[12-14]來(lái)檢測(cè)織物表面缺陷。例如,Liu等[14] 3391提出了一種基于生成對(duì)抗網(wǎng)絡(luò)(GAN)的織物缺陷檢測(cè)框架,首先使用樣式標(biāo)簽和實(shí)際缺陷訓(xùn)練條件生成對(duì)抗網(wǎng)絡(luò)(CGAN)生成不同類(lèi)型的缺陷,然后使用合成圖像和實(shí)際缺陷圖像訓(xùn)練另一個(gè)生成對(duì)抗網(wǎng)絡(luò),生成具有適當(dāng)融合缺陷的圖像,最后將混合數(shù)據(jù)集輸入進(jìn)deeplab v3網(wǎng)絡(luò)檢測(cè)缺陷,但是耗時(shí)時(shí)間長(zhǎng)、不易部署且穩(wěn)定性較差。
為解決上述問(wèn)題,課題組設(shè)計(jì)了一種基于L0梯度最小化和K-means聚類(lèi)的織物缺陷檢測(cè)方法,提高了紡織工業(yè)生產(chǎn)設(shè)備的自動(dòng)化程度。
課題組提出的缺陷檢測(cè)方法過(guò)程如圖1所示,主要包括圖像平滑、圖像聚類(lèi)、二值化等步驟。首先使用L0梯度最小化平滑圖像,然后將平滑后的圖像使用K-means算法聚類(lèi)分割,最后,二值化聚類(lèi)后的圖像。
圖1 缺陷檢測(cè)算法流程圖Figure 1 Flow chart of defect detection algorithm
織物圖像中的噪聲點(diǎn)和陰影是影響缺陷檢測(cè)的關(guān)鍵因素,圖像平滑的目的在于保護(hù)圖像邊緣,去除圖像背景紋理信息和無(wú)意義的細(xì)節(jié)。而目前大多數(shù)圖像平滑算法很難做到去除細(xì)節(jié)和邊緣保護(hù)二者之間的平衡。為此,使用L0梯度最小化平滑圖像,在去除背景紋理信息的同時(shí)去除圖像的噪聲和多余的信息。
L0梯度最小化平滑最早由香港中文大學(xué)徐立等人提出[15],是一種零梯度范數(shù)保留邊界信息的全局平滑方法。
L0范數(shù)為向量中不為零的元素的個(gè)數(shù),用來(lái)描述梯度的稀疏性時(shí)一般作為平滑項(xiàng),對(duì)圖像進(jìn)行L0梯度最小化平滑步驟如下:設(shè)織物的輸入圖像為I,平滑后輸出的圖像為S,S在圖像中任一像素p處的梯度可以用Sp=(?xSp,?ySp)T表示。其中x,y表示圖像在橫縱2個(gè)方向的坐標(biāo)值。在圖像中任一像素p處的梯度值定義為:
C(S)=#{{p||?xSp|+|?ySp||≠0}。
(1)
式中:#{}表示計(jì)數(shù),C(S)為p的幅值|?xSp|+|?ySp|不為零的個(gè)數(shù),?xSp,?ySp分別表示x和y方向上的梯度。
輸入的織物缺陷圖像需要限制水平和垂直2個(gè)方向的梯度數(shù)目。因此,平滑后輸出的圖像S可以定義為:
(2)
式中:λ為權(quán)重系數(shù),用來(lái)調(diào)節(jié)圖像的平滑程度;Sp為輸出圖像在像素p處的值;Ip為輸入圖像在像素p處的值。
輸出圖像的目標(biāo)函數(shù)在建模過(guò)程涉及像素差值和全局不連續(xù)項(xiàng),因此傳統(tǒng)的優(yōu)化方法不能解決該問(wèn)題,所以引入輔助變量(h,v)將正則項(xiàng)C(S)變?yōu)榫植考s束C(h,v)。則目標(biāo)函數(shù)定義為:
(3)
式中β為調(diào)節(jié)參數(shù),用于控制引入變量(h,v)與對(duì)應(yīng)梯度的相似性。
織物圖像經(jīng)過(guò)平滑后去除了紋理背景和噪聲點(diǎn)的影響,圖像呈現(xiàn)出缺陷位置和背景的二類(lèi)簇分布。1967年MacQueen等[16]提出的K-means聚類(lèi)算法易于實(shí)現(xiàn)且快速高效,因此筆者采用K-means聚類(lèi)算法對(duì)平滑后的圖像實(shí)現(xiàn)缺陷的分割。
K-means 算法的核心思想是通過(guò)多次迭代產(chǎn)生聚類(lèi)結(jié)果,首先選取K個(gè)聚類(lèi)中心,由于本文是分割缺陷和背景,所以K值默認(rèn)為2。設(shè)p為織物圖像S中的像素點(diǎn),xi為p中的數(shù)據(jù)對(duì)象,μi為p中所有點(diǎn)的均值。則目標(biāo)函數(shù)定義為:
(4)
式中Je為數(shù)據(jù)對(duì)象和其所在簇質(zhì)心的平方誤差和。
為求解目標(biāo)函數(shù)(4)的最優(yōu)解,算法的步驟如下:
1) 隨機(jī)選取2個(gè)對(duì)象作為初始聚類(lèi)中心。
2) 計(jì)算樣本點(diǎn)到2個(gè)聚類(lèi)中心的歐式距離,分配樣本點(diǎn)到離該點(diǎn)最近的聚類(lèi)中心。
3) 更新聚類(lèi)中心,再次計(jì)算類(lèi)別中樣本點(diǎn)的均值更新聚類(lèi)中心,公式為;
(5)
4) 不斷重復(fù)步驟1)和步驟2),直至目標(biāo)函數(shù)收斂。
利用K-means算法將圖像分為缺陷聚類(lèi)中心和背景聚類(lèi)中心,判斷像素點(diǎn)的歸屬,從而實(shí)現(xiàn)缺陷的分割。
為了驗(yàn)證我們提出的織物缺陷檢測(cè)算法的性能,使用Python3.5和OpenCV編程實(shí)現(xiàn),所采用的硬件為一臺(tái)搭載Intel酷睿i7-8700k處理器的Windows 10計(jì)算機(jī)。使用工業(yè)CCD相機(jī)獲取紡織廠織物缺陷數(shù)據(jù)集,并將圖像大小調(diào)整到(670×436)像素。部分織物圖像如圖2示。
圖2 織物缺陷樣本Figure 2 Samples of fabric defects
圖像平滑過(guò)程中,經(jīng)過(guò)處理的圖像明顯呈塊狀分布,圖像中的噪聲點(diǎn)和背景紋理被較好的平滑。因?yàn)樗惴ūA袅藞D像邊緣,因此,缺陷邊界被完整保存,圖像中其余細(xì)節(jié)部分被磨平。為了獲得最佳平滑效果,需要調(diào)節(jié)平滑權(quán)重系數(shù)λ。λ值越高,圖像細(xì)節(jié)保留就越完整,限制梯度的個(gè)數(shù)就會(huì)較低。平滑后結(jié)果如圖3所示。
為了獲得最佳參數(shù)λ,使用MATLAB圖像處理工具箱展示了平滑后全局圖像的細(xì)節(jié)信息以及邊緣保留情況。綜上實(shí)驗(yàn),選取λ=0.06為平滑最佳參數(shù),結(jié)果如圖4所示。
利用K-means聚類(lèi)算法對(duì)平滑后的缺陷圖像進(jìn)行聚類(lèi)分割。實(shí)驗(yàn)結(jié)果證明,在去除了背景紋理和噪聲點(diǎn)的缺陷圖像中,屬于缺陷的像素點(diǎn)能夠被準(zhǔn)確清晰地分割出。為了清晰地表達(dá)缺陷位置,對(duì)聚類(lèi)后的缺陷圖像做二值化處理,結(jié)果如圖5所示。
圖5 織物缺陷檢測(cè)結(jié)果Figure 5 Detection results of fabric defect
課題組針對(duì)織物缺陷的自動(dòng)化檢測(cè)提出了一種基于L0梯度最小化平滑和K-Means聚類(lèi)的檢測(cè)方法。為了降低缺陷圖像背景和噪聲點(diǎn)的影響,通過(guò)實(shí)驗(yàn)的方法給出了最佳平滑參數(shù)的取值,為后續(xù)缺陷分割提供了高效穩(wěn)定的保障。缺陷檢測(cè)利用K-Means算法直接完成缺陷像素點(diǎn)和非缺陷像素點(diǎn)的聚類(lèi),從而實(shí)現(xiàn)織物缺陷的自動(dòng)化檢測(cè)。實(shí)驗(yàn)結(jié)果證明:課題組提出的檢測(cè)方法可靠性較高,提高了檢測(cè)效率,降低了檢測(cè)時(shí)間。將來(lái)計(jì)劃對(duì)檢測(cè)算法做適當(dāng)?shù)男薷?,使得算法?duì)缺陷檢測(cè)率更高,更好地適應(yīng)工業(yè)生產(chǎn)。依據(jù)文中提出的方法,構(gòu)建一套數(shù)碼印花織物點(diǎn)狀缺陷檢測(cè)系統(tǒng)是下一步的研究重點(diǎn)。