劉 威,徐 莉
(常州信息職業(yè)技術(shù)學(xué)院,江蘇 常州 213164)
進(jìn)入21世紀(jì)后,人們的生活水平不斷提高,對各種產(chǎn)品的質(zhì)量有著更加嚴(yán)格的要求。其中,紡織品是很多日用品的基礎(chǔ)材料,比如衣服、包、床上用品等,因此,紡織品質(zhì)量檢測結(jié)果是非常重要的指標(biāo)。互聯(lián)網(wǎng)上的搜索結(jié)果顯示,紡織品在整理過程中的瑕疵占所有瑕疵不到10%,紡織品織造過程中的瑕疵類型占80%[1]。截至2013年,大多數(shù)紡織品瑕疵檢查都要求工人分階段進(jìn)行,長時間的檢測工作會使工人感到疲倦,導(dǎo)致瑕疵檢測不完善。因此,人工檢查方法適用于有限的瑕疵類型,一些極小區(qū)域的瑕疵很難檢測出。
隨著我國紡織工業(yè)的飛速發(fā)展,我國紡織品產(chǎn)量居世界之首,品種也越來越豐富,同時也造成了生產(chǎn)效率和產(chǎn)品質(zhì)量的問題。1980年,自動瑕疵檢測系統(tǒng)應(yīng)運(yùn)而生。1988年,塔卡特(Takat)使用灰度匹配來識別紡織品瑕疵。1990年至今,基于圖像處理技術(shù)在檢測瑕疵方面的研究達(dá)到頂峰,世界各地的專家學(xué)者發(fā)表了許多相關(guān)論文與著作[2]。
在收集紡織品圖像時,圖像質(zhì)量受到環(huán)境光照等元素的影響,所以需要進(jìn)行圖像預(yù)處理,去除紡織品圖像的背景,提高無圖案紡織品圖像的質(zhì)量。
灰度直方圖均衡化的原理是對像素多的灰度值進(jìn)行擴(kuò)展、對像素低的灰度值進(jìn)行合并,以此來提高圖像的對比度,使圖像變得清晰,達(dá)到增強(qiáng)圖像的目的。平紋無圖案紡織品均衡化前后的效果如圖1所示。
圖1 平紋無圖案紡織品均衡化前后的效果
由圖1可以看出,均衡化后的圖像灰度值分布非常均勻,極大地提高了紡織品圖像的對比度。在均衡化處理前,從圖1只能看到一條很淺的瑕疵區(qū)域,而經(jīng)過直方圖均衡化處理后,可以發(fā)現(xiàn)瑕疵區(qū)域更加明顯。
中值濾波是一種非線性平滑技術(shù),能將每一個像素點(diǎn)的灰度值設(shè)置為該點(diǎn)某鄰域窗口內(nèi)的所有像素點(diǎn)灰度值的中值[3]。中值濾波能有效抑制椒鹽噪聲,使圖像變得更加平滑,并凸顯瑕疵區(qū)域。
本研究將Python中的OpenCV模塊用于執(zhí)行兩種類型的濾波:中值濾波和均值濾波[4]。其中,均值濾波無法有效消除圖像的噪點(diǎn),只能使圖像變得模糊。中值濾波可以在很大程度上去除紡織品圖像的噪聲,效果比均值濾波好。本研究選擇3×3和9×9的窗口對圖像進(jìn)行中值濾波的處理,中值濾波可以使背景變得模糊,提高瑕疵區(qū)域與無瑕疵區(qū)域的對比度,有效增強(qiáng)后續(xù)檢測效果。
無圖案紡織品的瑕疵定位就是把紡織品圖像的瑕疵標(biāo)記出來,只關(guān)心瑕疵的位置與形狀。因此,本研究將圖像中瑕疵的位置賦值為“1”,將無瑕區(qū)域賦值為“0”。閾值分割的目的是在紡織品圖像中將瑕疵區(qū)域和無瑕區(qū)域分離,也是最有效的方法。通過選擇合適的閾值,將目標(biāo)與圖像背景分開,而閾值處理的關(guān)鍵是要選擇能達(dá)到有效分割效果的閾值。
簡單閾值只需確定一個閾值,然后算法就會自動對灰度值進(jìn)行分割,比如選擇閾值為128,則0~128的灰度值被保留,而129~255被全部去除,即圖像中灰度值低于128的像素為黑色,灰度值高于128的像素為白色,這樣就完成了紡織品圖像的瑕疵點(diǎn)分割。
使用cv2.threshhold()函數(shù):cv2.threshold(src, thresh, maxval, type)。其中,src:原圖片且必須是單通道;thresh:閾值,取值范圍為0~255;maxval:填充色,取值范圍為0~255;type:此次類型選擇cv2.THRESH_BINARY,只有黑白二色。經(jīng)過簡單閾值后如圖2所示。
圖2 簡單閾值實(shí)驗(yàn)結(jié)果
自適應(yīng)閾值是根據(jù)圖像中某一塊區(qū)域的像素值來計算對應(yīng)區(qū)域的閾值,在對紡織品圖像開展二值化等操作時,可以有效降低光照亮度的影響。自適應(yīng)閾值與簡單閾值的區(qū)別在于閾值的選擇更加依賴上下文的關(guān)系。
在Python中,自適應(yīng)閾值函數(shù)為cv2.adaptiveThreshold(src, maxval, thresh_type, type, Block Size, C)。其中,src:原圖片;maxval:填充色,取值為0~255;thresh_type:本次采用平均值方法;type:閾值類型;block size:圖像分塊的大小;C:閾值計算過程中的常數(shù)項(xiàng)。經(jīng)過處理后的圖像如圖3所示。
圖3 自適應(yīng)閾值實(shí)驗(yàn)結(jié)果
通過對比,簡單閾值的檢測速度比自適應(yīng)閾值更快。從結(jié)果來看,兩者并沒有太大差別,而簡單閾值算法簡單、速度快,因此,采用簡單閾值對無圖案紡織品圖像進(jìn)行閾值操作。
輪廓檢測方法目前有兩種:一種是通過邊緣差異來檢測目標(biāo)的輪廓,另一種是從視覺系統(tǒng)中提取可用的數(shù)字模型,以完成目標(biāo)輪廓檢測。其中,基于邊緣檢測的輪廓檢測方法主要定義亮度和顏色等特性的低級突變以及通過識別圖像中亮度明顯變化的點(diǎn)進(jìn)行邊緣檢測,再使用經(jīng)過閾值后的圖像,便可以檢測出目標(biāo)輪廓。
圖像的輪廓檢測就是在已有的二值圖像上,對圖像中的黑白邊界進(jìn)行標(biāo)記,檢測出瑕疵點(diǎn)的形狀與大小。
圖4左側(cè)為待檢圖像,右側(cè)為經(jīng)過以上方法檢測的結(jié)果。
圖4 樣例1檢測結(jié)果
圖4的結(jié)果存在誤檢的小面積區(qū)域呈椒鹽噪聲分布。通過修改滑動窗口的大小,將原來的9×9窗口改為15×15方形窗口進(jìn)行平滑后,得到圖5的檢測結(jié)果。
圖5 改為15×15后的檢測結(jié)果
圖6是典型的因光照不均導(dǎo)致檢測結(jié)果中存在大量誤檢像素點(diǎn)。通過觀察發(fā)現(xiàn),樣例2的下方相比其他區(qū)域存在較明顯的陰影。經(jīng)過以上方法檢測后,該部分的陰影區(qū)域均在閾值檢測范圍內(nèi),所以被定為瑕疵。因此,在獲取圖像樣本時,應(yīng)對四周的燈光進(jìn)行調(diào)整,讓光照分布均勻,避免光照不均造成的影響。
圖6 樣例2檢測結(jié)果
本研究主要探討無圖案紡織品的瑕疵檢測算法,對大多數(shù)無圖案紡織品的瑕疵點(diǎn)進(jìn)行了檢測,以有效檢測出瑕疵的位置,并對瑕疵的區(qū)域進(jìn)行標(biāo)記和輸出。該方法還存在待改進(jìn)之處,根據(jù)對無圖案紡織品進(jìn)行預(yù)處理的結(jié)果,加之拍攝紡織品圖像時的光照、角度等因素,導(dǎo)致圖像明暗分布不均勻,使后續(xù)閾值處理的結(jié)果中出現(xiàn)了誤檢的像素點(diǎn)。