陳玉婷,劉洞波,施怡澄,高櫻萍
(湖南工程學(xué)院 計(jì)算機(jī)與通信學(xué)院,湘潭 411104)
由于人工識(shí)別疵點(diǎn)成本高、檢測(cè)效果不理想,因此提出了各種基于機(jī)器視覺(jué)的織物疵點(diǎn)檢測(cè)方法[1].織物疵點(diǎn)與疵點(diǎn)背景的邊緣特征是檢測(cè)織物缺陷的關(guān)鍵特征[2],并且Canny 算子檢測(cè)精度高、信噪比大,因此在進(jìn)行疵點(diǎn)檢測(cè)時(shí)選擇Canny 算子[3]對(duì)織物圖像進(jìn)行邊緣檢測(cè).針對(duì)Canny 算子的高斯函數(shù)標(biāo)準(zhǔn)差和高低閾值需要人為設(shè)定的問(wèn)題,胡克滿等[2]提出了一種自適應(yīng)Canny 邊緣檢測(cè)算法,自適應(yīng)高斯濾波與圖像閾值選擇;閆偉偉等[4]運(yùn)用雙重基本全局閾值分割算法,根據(jù)實(shí)時(shí)的光照變化自適應(yīng)地確定高低閾值;李亞利[5]提出一種自適應(yīng)濾波,濾波時(shí)對(duì)圖像進(jìn)行局部加權(quán)以及原始信號(hào)迭代卷積,每次迭代都會(huì)改變加權(quán)系數(shù);張升等[6]提出了結(jié)合雙重Otsu 方法進(jìn)行高低閾值確定的算法.另一方面,頻譜分析方法也常被應(yīng)用于邊緣檢測(cè),其中小波變換[7]是為了解決傅里葉變換只能全局操作的問(wèn)題,小波變換能夠在空間和頻域進(jìn)行局部變換,從而反映信號(hào)局部特征,也能夠?qū)π盘?hào)進(jìn)行多分辨率分析[8-9].管聲啟等[10]提出一種小波域高斯差分濾波起球疵點(diǎn)評(píng)價(jià)的算法,具有較強(qiáng)的抗干擾能力;厲征鑫等[11]提出以單演小波分析工具為基礎(chǔ)的織物疵點(diǎn)檢測(cè)算法.由于噪聲和疵點(diǎn)的邊緣是圖像中的高頻分量,Canny 算子只能獲得圖像中的低頻分量,易丟失正確邊緣.趙靜等[12]融合改進(jìn)Canny 算子和小波模極大值法的圖像邊緣檢測(cè)方法,小波模極大值法通過(guò)從多方向取值的方式獲取局部模極大值,保留高頻邊緣的同時(shí)將邊緣與噪聲分離,邊緣圖像具有較好的連續(xù)性,然而目前該方法的研究只局限于理論層面,未應(yīng)用于織物疵點(diǎn)檢測(cè)領(lǐng)域.
為解決經(jīng)典Canny 算子參數(shù)需人為設(shè)定問(wèn)題,并同時(shí)保留高頻邊緣,本文將采用自適應(yīng)高斯濾波和最大類(lèi)間方差法自適應(yīng)獲取閾值實(shí)現(xiàn)Canny 算子的改進(jìn),并且結(jié)合小波模極大值算法對(duì)不同類(lèi)型的布匹瑕疵點(diǎn)進(jìn)行檢測(cè).分別用上述兩種方法來(lái)實(shí)現(xiàn)對(duì)邊緣的提取,再將兩個(gè)邊緣圖像進(jìn)行融合并優(yōu)化處理.
本文算法總體流程如圖1 所示.
圖1 本文算法總體流程圖
Canny 算子是一個(gè)多級(jí)邊緣檢測(cè)算法,實(shí)現(xiàn)過(guò)程主要包括四個(gè)步驟:圖像降噪、計(jì)算圖像梯度向量與梯度幅值、極大值的選擇與非極大值抑制、雙閾值篩選[2].在實(shí)現(xiàn)過(guò)程中圖像降噪和雙閾值篩選是兩個(gè)重要環(huán)節(jié),其中圖像降噪時(shí)采用的高斯函數(shù)標(biāo)準(zhǔn)差σ 和雙閾值篩選時(shí)的高閾值maxVal 與低閾值minVal 需要人為設(shè)定,在一定程度上限制了自動(dòng)化的疵點(diǎn)檢測(cè)處理.針對(duì)上述參數(shù),提出一種自適應(yīng)Canny 邊緣檢測(cè)算法.
1.1.1 自適應(yīng)高斯濾波
經(jīng)典Canny 邊緣檢測(cè)算法進(jìn)行高斯濾波時(shí),高斯函數(shù)標(biāo)準(zhǔn)差σ 需要人為設(shè)定,為了解決這個(gè)問(wèn)題,在N*N 窗口中,將殘差作為選取σ 的度量標(biāo)準(zhǔn)之一.這樣就使平滑后的圖像能夠保持細(xì)節(jié)信息.本文算法中的自適應(yīng)高斯濾波是要在最平滑的結(jié)果和最佳保持細(xì)節(jié)信息的結(jié)果中取一個(gè)折中方案.σ 的計(jì)算方法為:
式(1)中,當(dāng)c/σ2與ε2取最小值時(shí)的σ 為最優(yōu)的參數(shù)值,其中ε 為殘差.假設(shè)一幅二維圖像的高斯濾波函數(shù)表示為:
在(x,y)像素點(diǎn)處,I0(x,y)為原始圖像(x,y)點(diǎn)處灰度值;Iσ(x,y)為通過(guò)高斯濾波得到平滑后(x,y)點(diǎn)處灰度值;εσ(x,y)為(x,y)點(diǎn)處灰度值的殘差.式中c 為常數(shù),當(dāng)σ 盡可能大時(shí),能夠盡可能得到平滑的結(jié)果,使得c/σ2取最小值.ε 隨著像素點(diǎn)灰度值的變化而變化,通過(guò)高斯濾波后,(x,y)點(diǎn)處灰度值變化較小時(shí),ε 的值較小.
1.1.2 自適應(yīng)高低閾值獲取
在對(duì)織物疵點(diǎn)進(jìn)行檢測(cè)時(shí),非極大值抑制后,經(jīng)典Canny 算法的閾值需要人為設(shè)定,不同的閾值會(huì)影響到圖像邊緣檢測(cè)的效果.所以經(jīng)典Canny 算法無(wú)法滿足織物疵點(diǎn)在線檢測(cè)要求,實(shí)時(shí)性及精確性較差.
本文使用Otsu 提出的一種自適應(yīng)閾值確定方法,即最大類(lèi)間方差法.該算法按照?qǐng)D像的灰度特性,設(shè)定一個(gè)閾值t,將圖像所有像素分為前景C1和背景C2兩類(lèi),在圖像中占比分別為P1和P2,這兩類(lèi)像素的灰度均值分別為m1和m2,則圖像全局灰度均值mG為:
類(lèi)間方差S 為:
假定t0為最佳閾值,當(dāng)t 取t0時(shí),圖像前景與背景的方差最大,即此時(shí)前景與背景差異最大.設(shè)t0為雙閾值中的高閾值τh,則低閾值取值為τl=τh/2.
本文提出的基于小波模極大值的疵點(diǎn)檢測(cè)算法的步驟為:多尺度小波分解,獲取邊緣點(diǎn),去除噪聲點(diǎn).一幅織物疵點(diǎn)圖像f(x,y)的梯度矢量為:
該梯度為f(x,y)在(x,y)點(diǎn)的最大變換方向.設(shè)(x1,y1)點(diǎn)沿著最大變換方向的一維鄰域(x,y)=(x1,y1)+λ?(x1,y1)變化,當(dāng)|λ|充分小時(shí),該點(diǎn)可以取得局部極大值,則稱(x1,y1)是f(x,y)的一個(gè)邊緣點(diǎn)[13].對(duì)于一個(gè)二維平滑函數(shù)θ(x,y),需要滿足以下三個(gè)條件[14]:
式(8)中s=2j 表示小波變換的平滑尺度.在尺度s 下x,y 兩個(gè)方向上的二維小波為:
在尺度s 下,經(jīng)平滑函數(shù)θs(x,y)處理疵點(diǎn)圖像f(x,y)小波變換的2 個(gè)分量可表示為:
式(11)中,W1f(s,x,y)表示f(x,y)沿水平方向的梯度矢量;W2f(s,x,y)表示f(x,y)沿垂直方向的梯度矢量.另外,對(duì)應(yīng)模值以及梯度方向可分別表示為:
M 的模值大小反映了 f*θs(x,y)在(x,y)上的灰度變化程度 . Mf(s,x,y)在梯度方向Af(s,x,y)取極大值的點(diǎn)對(duì)應(yīng)著f(x,y)的奇異點(diǎn),即對(duì)于圖像上的點(diǎn)(x,y),要確定其小波變換系數(shù)的模局部極大值點(diǎn),對(duì)于該點(diǎn)的 8 領(lǐng)域點(diǎn),從四個(gè)方向(0°,45°,90°,135°)上點(diǎn)(x,y)所在梯度方向上考慮它是否為該方向上極大值點(diǎn).如果是,該點(diǎn)就是此梯度方向上模為局部極大值的點(diǎn),則稱之為這個(gè)圖像的一個(gè)邊緣特征點(diǎn).所以只需記錄這些模極大值點(diǎn)的坐標(biāo)以及其相對(duì)應(yīng)的模和角度,極大值點(diǎn)的集合即為圖像邊緣.
由于圖像噪聲也會(huì)產(chǎn)生小邊緣,需要設(shè)定閾值消除噪聲影響,局部模極大值大于閾值的點(diǎn)被保留為邊緣點(diǎn),小于閾值的為非邊緣點(diǎn),則不保留.具體方法是先對(duì)變換后整體小波系數(shù)模值進(jìn)行非極大值抑制,再按比例得到閾值.得到邊緣點(diǎn)后,將邊緣點(diǎn)連接起來(lái)得到邊緣圖像[15].
將Canny 算法的邊緣檢測(cè)圖像與小波模極大值法的邊緣檢測(cè)圖像進(jìn)行加權(quán)結(jié)合,生成最終邊緣圖像 .設(shè) Canny 算法的邊緣檢測(cè)圖像為 P(i,j),小波模極大值法的邊緣檢測(cè)圖像為Q(i,j),結(jié)合后的邊緣圖像為T(mén)(i,j),算法公式為:
其中,α 為加權(quán)因子.Canny 算法提取圖像邊緣時(shí),需要先平滑圖像,得到的圖像邊緣為低頻邊緣.而小波模極大值對(duì)信號(hào)奇異性極為敏感,能夠得到清楚的高頻邊緣輪廓.所以適當(dāng)提高小波模極大值的邊緣圖像權(quán)重,并將兩幅邊緣圖像的對(duì)應(yīng)像素乘以加權(quán)因子后相加,得到最終邊緣圖像[12].
獲取疵點(diǎn)圖像的邊緣圖像后,有一些像素點(diǎn)灰度值變化很大,但這些點(diǎn)不是疵點(diǎn)邊緣,用數(shù)學(xué)形態(tài)學(xué)消除非邊緣區(qū)域.設(shè)定一個(gè)閾值A(chǔ)Th,遍歷整幅邊緣圖像,將已檢測(cè)邊緣并且二值化的圖像中,面積小于ATh的小區(qū)域融合到周?chē)拇髤^(qū)域中.具體做法為:對(duì)邊緣圖像做8 連通域操作,去除那些像素?cái)?shù)據(jù)小于ATh數(shù)目的白色區(qū)域,將這些像素點(diǎn)全部置為0,變?yōu)楹谏?
為了檢驗(yàn)本文算法的效果,選取TILDA 標(biāo)準(zhǔn)織物圖像庫(kù)中破洞、切口、油污、飛絲等尺寸為256*256 像素的織物疵點(diǎn)圖像進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)基本配置為 i7-10700 CPU 和 32 GB 內(nèi)存,Windows10 操作系統(tǒng),在MATLAB2018b 環(huán)境進(jìn)行編譯,采用Canny 算子、小波模極大值法和本文改進(jìn)后的算法對(duì)織物圖像分別進(jìn)行實(shí)驗(yàn),得出檢測(cè)結(jié)果,檢測(cè)結(jié)果如圖2 所示.圖2(a)是織物疵點(diǎn)原圖,圖2(b)是經(jīng)典Canny算法的檢測(cè)效果圖,圖2(c)是改進(jìn)的自適應(yīng)Canny算法的檢測(cè)效果圖,圖2(d)是小波模極大值算法的檢測(cè)效果圖,圖2(e)是本文算法的檢測(cè)效果圖.
圖2 織物疵點(diǎn)檢測(cè)結(jié)果對(duì)比圖
實(shí)驗(yàn)時(shí)取α=0.3、面積閾值A(chǔ)Th=10 時(shí)融合效果較好.
可以看出,采用經(jīng)典Canny 算法進(jìn)行織物疵點(diǎn)的邊緣檢測(cè)時(shí),邊緣信息容易受到織物紋理信息與噪聲信息的影響,說(shuō)明人為設(shè)置的標(biāo)準(zhǔn)差和閾值不是最優(yōu)參數(shù),易產(chǎn)生偽邊緣.經(jīng)過(guò)自適應(yīng)平滑和自適應(yīng)閾值選擇的Canny 算法可以檢測(cè)出大部分的疵點(diǎn)邊緣,但從疵點(diǎn)類(lèi)型為斷經(jīng)這一類(lèi)可以看出,容易丟失正確的疵點(diǎn)邊緣信息.小波模極大值算法做織物疵點(diǎn)邊緣檢測(cè)時(shí),也會(huì)受到噪聲的影響,而且存在斷續(xù)邊緣的現(xiàn)象.將自適應(yīng)Canny 算法和小波模極大值算法融合之后的本文算法保留了兩者的優(yōu)點(diǎn),從本文算法的檢測(cè)效果可以看出,織物疵點(diǎn)與背景紋理分割明顯,檢測(cè)出的邊緣連續(xù)性得到了提高,邊緣完整性得到了增強(qiáng),同時(shí)還能有效去除圖像中的噪聲,具有很好的魯棒性.
從表1 可以得出,對(duì)于同一組織物疵點(diǎn)圖像,本文算法處理疵點(diǎn)圖像的平均檢測(cè)時(shí)間為1.098 s/張,自適應(yīng)Canny 算法處理疵點(diǎn)圖像的平均檢測(cè)時(shí)間為0.671 s/張.本文算法的檢測(cè)時(shí)間多于自適應(yīng)Canny 算法,這是因?yàn)楸疚乃惴ㄈ诤狭诵〔O大值算法并且進(jìn)行了優(yōu)化處理,計(jì)算量變大增加了檢測(cè)時(shí)間.但本文算法的檢測(cè)效果優(yōu)于自適應(yīng)Canny算法與小波模極大值算法單獨(dú)使用,與自適應(yīng)Canny 算法的檢測(cè)時(shí)間僅相差0.427 s/張,本文算法仍滿足實(shí)時(shí)性要求.
表1 算法檢測(cè)時(shí)間對(duì)比
為了驗(yàn)證本文算法的正檢率,從TILDA 標(biāo)準(zhǔn)織物圖像庫(kù)選取120 張織物疵點(diǎn)圖像作為樣本,其中正常、破洞、切口、油污、飛絲、斷經(jīng)(緯)各有20張.結(jié)果表明,算法正檢率為95.83%,對(duì)比文獻(xiàn)[16]中的算法提高了1.98%,相對(duì)優(yōu)于文獻(xiàn)[16]中的算法,滿足疵點(diǎn)檢測(cè)要求.疵點(diǎn)正檢率對(duì)比如表2 所示.
表2 疵點(diǎn)正檢率對(duì)比
本文在經(jīng)典Canny 邊緣檢測(cè)算法的基礎(chǔ)上,提出一種自適應(yīng)的Canny 邊緣檢測(cè)算法,在一定程度上保持了邊緣的連續(xù)性,能很好地降低噪聲,正檢率也有所提高.小波模極大值算法對(duì)高頻邊緣信息進(jìn)行定位,融合優(yōu)化后的圖像整合了高低頻邊緣的特征,使邊緣更清晰、連續(xù)性和完整性更好,并能很好地消除噪聲.但在對(duì)油污和斷經(jīng)(緯)類(lèi)疵點(diǎn)檢測(cè)時(shí),與織物灰度值較近的疵點(diǎn)容易丟失,還需要進(jìn)一步優(yōu)化算法,融合時(shí)的加權(quán)因子α 該如何自動(dòng)確定及邊緣細(xì)化也還需要進(jìn)一步的研究.