湯曉慶,黃開興,秦元慶,周純杰
(華中科技大學(xué)自動化學(xué)院,圖像處理與智能控制教育部重點實驗室,武漢 430074)
在紡織工業(yè)中,織物的疵點會使其價值降低45%~65%,傳統(tǒng)的織物疵點是通過人工進(jìn)行檢測,不僅效率低下,而且漏檢率高,研究發(fā)現(xiàn)人工疵點檢測的準(zhǔn)確率大概只有60%~75%,不能滿足現(xiàn)在企業(yè)對產(chǎn)品質(zhì)量的要求[1]。
目前基于機(jī)器視覺和圖像處理的疵點檢測技術(shù)已經(jīng)成為國內(nèi)外研究學(xué)者的熱門研究方向,各種圖像處理算法被研究用于疵點檢測當(dāng)中,如基于統(tǒng)計的、基于模型的、基于頻譜的方法等,并產(chǎn)生了許多有益的成果[2-3]。其中 Gabor濾波器作為一種重要的時頻分析方法,由于在空間域和頻率域都具備良好的局部性,并且和人眼的視覺通道很相似,因此被廣泛的應(yīng)用于疵點檢測中[4]。利用Gabor濾波器對織物分析的方法主要有兩類:一類是通過使用多尺度、多方向的Gabor濾波器組對織物疵點圖像進(jìn)行濾波[5];另一類是通過最優(yōu)化的方法調(diào)整Gabor濾波器參數(shù)來構(gòu)造最優(yōu)濾波器對織物圖像進(jìn)行檢測,這類方法需要事先對大量樣本進(jìn)行學(xué)習(xí)[6]。Gabor濾波器對織物圖像濾波可以減少疵點圖像對比度低和光照不均的影響,但是很難完全的消除背景紋理和噪聲對疵點檢測的干擾。方向梯度直方圖 (Histogram of Oriented Gradient,HOG)是一種有效的形狀和邊緣信息提取算子,在機(jī)器視覺和圖像處理領(lǐng)域被廣泛應(yīng)用于物體檢測和體感識別等方面,目前也有一些研究將其應(yīng)用于疵點檢測中[7-8]。HOG 算子可以統(tǒng)計圖像局部強(qiáng)度梯度和邊緣分布來描述局部物體形狀特征,并且對光照變化不敏感[9]。通過提取織物圖像的HOG特征,利用織物背景和疵點區(qū)域的HOG特征差異可以盡可能消除背景紋理和噪聲對疵點檢測的影響。
本文經(jīng)過對國內(nèi)外相關(guān)文獻(xiàn)的研究,將Gabor濾波器和HOG特征結(jié)合用于織物疵點檢測,通過增強(qiáng)織物圖像的疵點信息和消除背景及噪聲影響,使織物疵點的檢測更加準(zhǔn)確。
Gabor變換是一種重要的時頻分析方法,在空間域,它是由高斯函數(shù)調(diào)制的復(fù)振蕩信號;在頻率域,它是一個平移的高斯函數(shù)[10]。Gabor濾波器在二維空間的沖激響應(yīng)函數(shù)為:
其中:σx和σy為濾波器的尺度因子,控制高斯函數(shù)在x軸和y軸的伸縮程度,如果σx=σy,則高斯截面是圓形的,否則是橢圓形的;w0則代表徑向中心頻率,其決定了Gabor濾波器在頻率域中的位置;x'=xcosθ+ysinθ,y'=-xsinθ+ycosθ,θ為旋轉(zhuǎn)角度,x,y為原來坐標(biāo),x',y'為旋轉(zhuǎn)后坐標(biāo)。通過選擇不同的尺度w0和方向θ的值,可以獲得一組不同尺度、不同方向的自相似的Gabor濾波器。
Gabor濾波器由實部和虛部組成,可表示為:
其中:ge(x,y)是二維Gabor濾波器的實部,go(x,y)是二維Gabor濾波器的虛部。文獻(xiàn) [11-12]的研究發(fā)現(xiàn):Gabor濾波器的實部適用于檢測團(tuán)狀疵點,而虛部適用于邊緣檢測。
方向梯度直方圖 (HOG)是一種在機(jī)器視覺和圖像處理中用來進(jìn)行物體檢測的特征描述子[13]。其基本觀點是局部目標(biāo)的外表和形狀可以被局部梯度或邊緣方向的分布很好的描述。本文采用的HOG特征提取算法流程如下:
1)采用Gamma矯正法對圖像進(jìn)行矯正,降低圖像局部的陰影和光照變化所造成的影響,同時抑制噪聲干擾。
式中,H(x,y),h(x,y)分別表示圖像在點 (x,y)處的Gamma矯正后和校正前的像素值;gamma一般取1/2。
2)計算圖像每個像素點的梯度。其中圖像在點 (x,y)處的水平梯度和垂直梯度為:
式中,Gx(x,y),Gy(x,y)分別代表像素點 (x,y)處的水平梯度、垂直梯度??汕蟮孟袼攸c (x,y)處的梯度幅值和方向分別為:
式中,G(x,y),α(x,y)分別為圖像在像素點 (x,y)處的梯度幅值和梯度方向。
3)將圖像分為4*4像素的單元 (cell),8*8像素的塊 (block),其中block由鄰近的2*2的cell組成,以4個像素 (一個單元)為塊步長。
4)統(tǒng)計每個cell的梯度直方圖,梯度直方圖選擇4個方向通道,即可得到4維的HOG向量。
5)將每個block內(nèi)4個cell的HOG向量進(jìn)行統(tǒng)計,即得到block的16維HOG特征向量,同時對該HOG特征向量采用重疊單元?dú)w一化,減弱圖像中的光照不均等影響。
6)統(tǒng)計圖像中所有block的HOG特征向量。
在進(jìn)行織物疵點檢測時,首先使用3個尺度、4個方向的Gabor濾波器對織物圖像進(jìn)行濾波并將濾波后的圖像進(jìn)行融合;然后再利用雙邊濾波對圖像去噪;最后通過HOG特征提取和閾值分割實現(xiàn)疵點檢測。算法的流程圖如圖1所示。
圖1 疵點檢測算法流程圖
在獲取到待檢測織物圖像后,首先利用Gabor濾波器對圖像進(jìn)行濾波,濾波過程包括以下幾步:
1)在文獻(xiàn) [14-15]中對比了Gabor濾波器的實部和虛部在不同徑向中心頻率和方位角組合下的分辨能力,發(fā)現(xiàn)Gabor濾波器的實部的分辨力遠(yuǎn)遠(yuǎn)好于虛部。考慮到常見織物 (平紋布和斜紋布)的紋理一般在水平、垂直和對角線方向,本文采用3個尺度和4個方向(00,450,900,1350)的二維實Gabor濾波器來對織物圖像進(jìn)行濾波。織物圖像的Gabor濾波可以表示為:
式中,f(x,y)表示待檢織物圖像,fmn(x,y)表示濾波后的圖像,‘*’表示二維卷積運(yùn)算;gmn(x,y)表示實Gabor濾波器,m表示尺度數(shù),n表示方向數(shù);m=1,2,3;n=1,2,3,4。
2)Gabor濾波后得到了12幅圖像。首先把相同尺度,不同方向的圖像進(jìn)行融合,得到3幅不同尺度的融合圖像:
式中,pm(x,y)表示融合后的圖像;m=1,2,3。
3)將3幅不同尺度的圖像再進(jìn)行融合,得到融合圖像p12(x,y),p23(x,y):
4)對p12(x,y),p23(x,y)進(jìn)行融合,得到最終融合圖像P(x,y):
在織物圖像經(jīng)過Gabor濾波之后,織物圖像的疵點區(qū)域得到增強(qiáng),背景紋理信息得到一定的抑制,為了保證疵點檢測的準(zhǔn)確性,需要進(jìn)一步去除背景紋理信息和噪聲。這里對比三種織物疵點檢測中常用的圖像去噪手段:中值濾波、高斯濾波、雙邊濾波,觀察三種濾波算法對一幅含有明顯疵點的織物圖像的濾波效果,如圖2所示。
在圖2中,圖2(a)是疵點原圖,圖2(b)是Gabor濾波后的圖像,圖2(c)、圖2(d)、圖2(e)分別是對圖2(b)進(jìn)行雙邊濾波、高斯濾波、中值濾波的效果圖。從3種濾波算法對圖2(b)的濾波效果來看,雙邊濾波相比于其他兩種算法,不僅很好的抑制了背景紋理,而且保持了圖像中疵點的邊緣信息。因此本文采用雙邊濾波對Gabor濾波后的織物圖像進(jìn)行去噪。
圖2 三種濾波算法效果對比
經(jīng)過雙邊濾波之后,對濾波后的圖像進(jìn)行HOG特征提取和閾值分割。處理過程包括以下幾步:
1)提取圖像的HOG特征向量。
按照前面HOG特征提取算法的步驟,提取圖像所有8*8圖像塊的HOG特征向量。以256×256像素的圖像為例,經(jīng)過HOG特征提取可以得到3969個圖像塊,因此可以得到3969個16維的HOG特征向量。
2)根據(jù)圖像提取的HOG特征向量進(jìn)行閾值處理。
首先將待檢織物的無疵點織物圖像作為樣本進(jìn)行訓(xùn)練。通過對無疵點織物圖像進(jìn)行Gabor濾波和雙邊濾波之后,提取圖像的所有16維HOG特征向量,然后統(tǒng)計16維特征向量每一維的最大值:
式中,n表示特征向量總數(shù);vi表示第i個特征向量,i=1,2…,n;vi(j)表示特征向量 vi的第 j維特征值,j=1,2…,16;表示特征向量第j維的最大值。
將無疵點織物圖像中提取的HOG特征向量的每一維的統(tǒng)計最大值作為疵點檢測閾值,然后對被檢織物圖像進(jìn)行閾值處理:
式中,Bi(x,y)表示特征向量vi對應(yīng)的圖像塊的像素值;表示特征向量第j維的檢測閾值。通過將圖像中所有子圖像塊的HOG特征向量的每一維特征 (比如第j維)與對應(yīng)維度的疵點檢測閾值比較,如果存在某一維的特征值大于,即說明該圖像塊為疵點區(qū)域,將圖像中該圖像塊的像素全置為1;否則該圖像塊為正常區(qū)域,將圖像中該圖像塊像素全置為0。
3)顯示閾值分割后的二值圖像,從圖像中可以清楚的觀察織物圖像中是否存在疵點以及疵點出現(xiàn)的位置。
為了檢驗本文提出算法的疵點檢測效果,對破洞、斷經(jīng)等幾種常見的織物疵點進(jìn)行實驗測試,其中疵點圖像來自TILDA織物紋理數(shù)據(jù)庫以及CCD工業(yè)相機(jī)采集的織物圖像,圖像大小為256×256像素。實驗在OpenCV2.4.10和Microsoft Visual Studio2010環(huán)境下進(jìn)行。
本節(jié)利用本文提出算法對破洞、斷徑、斷緯、油污、跳紗5種常見的織物疵點各選取30幅疵點圖像進(jìn)行實驗測試,疵點圖像如圖3(a)所示。算法的具體實現(xiàn)步驟如下:
1)對疵點圖像進(jìn)行Gabor濾波與圖像融合。
首先通過前面選定的Gabor濾波器參數(shù)來構(gòu)造Gabor濾波器組與疵點圖像進(jìn)行卷積運(yùn)算實現(xiàn)Gabor濾波,然后將Gabor濾波后的疵點圖像按前述方法步驟進(jìn)行圖像融合。融合后的圖像如圖3(b)所示,從圖中可以看出經(jīng)過這步運(yùn)算圖像中疵點區(qū)域和背景紋理的對比度得到了明顯增強(qiáng)。
2)對融合后圖像進(jìn)行雙邊濾波。
圖像雙邊濾波通過調(diào)用OpenCV中的雙邊濾波函數(shù)實現(xiàn),其中雙邊濾波的參數(shù)是經(jīng)過對5種疵點圖像進(jìn)行測試設(shè)置的經(jīng)驗值。雙邊濾波后的圖像如圖3(c)所示,從圖中可以看出雙邊濾波不僅實現(xiàn)了圖像平滑,同時很好的保留了疵點區(qū)域的邊緣。
圖3 疵點檢測效果圖
3)對圖像進(jìn)行HOG特征提取與閾值分割
圖像HOG特征提取與閾值分割是按照前面介紹的算法步驟進(jìn)行實現(xiàn)的,其中閾值通過對20幅正常紋理織物圖像按照前述方法進(jìn)行訓(xùn)練得到。閾值分割后的最終疵點圖像如圖3(d)所示,從圖中可以看出幾種疵點被準(zhǔn)確地從織物圖像中檢測和分割了出來。
經(jīng)過對5種疵點各30幅圖像進(jìn)行實驗測試,這里對5種疵點的檢測準(zhǔn)確率進(jìn)行了統(tǒng)計,統(tǒng)計結(jié)果如表1所示。從圖3中的疵點檢測效果和表1中的疵點檢測準(zhǔn)確率來看,本文提出的算法利用Gabor濾波器與HOG特征提取,很好的實現(xiàn)了織物圖像疵點區(qū)域的增強(qiáng)與背景紋理影響的消除,進(jìn)而保證了本文算法能夠有效地實現(xiàn)織物常見疵點的檢測,并能較準(zhǔn)確地確定疵點出現(xiàn)的位置和疵點的大致形狀。
表1 織物5種疵點檢測準(zhǔn)確率統(tǒng)計
為了進(jìn)一步檢驗本文提出算法的檢測效果,這里將本文提出算法與文獻(xiàn) [16]中的算法進(jìn)行了對比,其中文獻(xiàn)[16]中利用了4個尺度、6個方向的Gabor濾波器組對織物圖像進(jìn)行疵點檢測。兩種算法的實現(xiàn)與實驗對比在本文搭建的實驗平臺下進(jìn)行。
首先在實驗中對比了兩種算法對4種不同種類疵點的檢測效果,如圖4所示。其中圖4(a)為疵點樣本圖像,圖4(b)為本文提出的算法對疵點樣本圖像的檢測結(jié)果,圖4(c)為文獻(xiàn) [16]中算法對疵點樣本圖像的檢測結(jié)果。從4種疵點檢測結(jié)果的對比上可以看出,兩種算法都檢測到了疵點并將疵點從圖像背景中分割了出來,但是從整個疵點檢測的效果上來看,文獻(xiàn)[16]中算法將一些背景紋理也檢測為疵點,而本文算法較好地消除了背景紋理和噪聲的影響,更加準(zhǔn)確地定位了疵點的位置。
另外在實驗中通過CCD相機(jī)收集了50幅織物圖像,其中包括20幅無疵點的樣本圖像,30幅含不同種類疵點的樣本圖像,并將圖像大小調(diào)整為256×256像素,以提高檢測效率。然后使用本文提出算法和文獻(xiàn)[16]中算法分別對樣本圖像進(jìn)行疵點檢測,檢測結(jié)果見表2。表2中的正檢率表示疵點樣本圖像被正確檢測的比率,誤檢率表示無疵點樣本圖像被誤檢為存在疵點的比率。
表2 織物疵點檢測率統(tǒng)計
從表2中可以看出,本文算法和文獻(xiàn) [16]中算法的正檢率相同,但是本文算法對無疵點的織物圖像的誤檢率較低。整個對比實驗的結(jié)果表明:與文獻(xiàn) [16]中傳統(tǒng)的Gabor濾波算法相比,本文將Gabor濾波器和HOG特征提取結(jié)合可以更好的消除織物背景紋理和噪聲的干擾,使得整個織物疵點的檢測結(jié)果更為準(zhǔn)確。
圖4 兩種算法疵點檢測結(jié)果對比
本文提出了一種基于Gabor濾波器和HOG特征的織物疵點檢測算法。首先采用3個尺度、4個方向的Gabor濾波器組對織物圖像進(jìn)行濾波,使圖像對比度增強(qiáng),同時抑制背景紋理信息;然后通過雙邊濾波進(jìn)一步對圖像去噪;最后通過提取圖像HOG特征并利用圖像疵點區(qū)域和背景紋理的HOG特征差異進(jìn)行閾值分割實現(xiàn)織物的疵點檢測。通過本文提出算法對多種織物疵點進(jìn)行了測試,并與傳統(tǒng)的Gabor濾波算法進(jìn)行了比較,實驗表明本文算法并且可以較好的抑制織物背景及噪聲的干擾,準(zhǔn)確的將織物疵點從織物背景中分割出來。由于實際應(yīng)用中的織物類型和生產(chǎn)條件各不相同,根據(jù)實際情況后面可以對算法中的Gabor濾波器等的參數(shù)進(jìn)行優(yōu)化,使其疵點檢測的效果更好。