崔旭東,黃 成,王平江*
(1.鞍山師范學(xué)院 計算中心,遼寧 鞍山 114005;2.華中科技大學(xué) 國家數(shù)控工程中心,湖北 武漢 430074)
新生產(chǎn)的布匹上疵點的檢測,如果采用人工憑肉眼進(jìn)行檢測,難免產(chǎn)生很多問題.隨著機器視覺技術(shù)的發(fā)展,人們將該技術(shù)應(yīng)用于布匹疵點的檢測[1-2].目前世界上基于視覺的布匹疵點檢測技術(shù),在梭織布、無紡布疵點檢測方面有了很好的發(fā)展[3-6].
然而,對于經(jīng)編布來說,由于制造工藝的原因,所生產(chǎn)的布匹雖然具有彈性好、可形成獨特的花紋及色澤鮮艷、樣式美觀,但是織線間距大、紋理顯著,使得當(dāng)采用機器視覺方法進(jìn)行布匹疵點檢測時:或者由于疵點的面積大小與網(wǎng)格大小比較接近,而產(chǎn)生誤檢;或者由于布匹本身的紋理特性將疵點隱沒,尤其是對于經(jīng)過染整后的經(jīng)編布;或者不同顏色紗線混合編制的經(jīng)編布,現(xiàn)有的機器視覺檢測技術(shù)更難于準(zhǔn)確地檢測出疵點.同時,經(jīng)編布的疵點種類高達(dá)數(shù)十種,造成適用于緯編布匹疵點檢測的機器視覺的技術(shù),不能滿足經(jīng)編布匹高速生產(chǎn)環(huán)節(jié)中疵點的在線檢測[7-8].
論文通過對經(jīng)編布匹上疵點的特點分析,提出了適合于經(jīng)編布匹疵點的視覺檢測方法.
在利用機器視覺技術(shù)對布匹疵點進(jìn)行檢測時,主要步驟為經(jīng)編布匹在線圖像采集、圖像處理[9]、疵點識別(疵點特征提取與分析)、疵點分類、疵點位置定位及形成布匹疵點報告等幾個步驟,能否根據(jù)所采集的圖像準(zhǔn)確且高速識別疵點是這幾個步驟中最關(guān)鍵的技術(shù)[10-11].
圖1所示為幾種典型的經(jīng)編布匹紋理及疵點的類型.不難看出,由于編制工藝的原因,經(jīng)編布匹的紗線不僅粗大結(jié)實(以增加其抗拉強度),而且紗線之間的間隔較大(亦即網(wǎng)紋粗大不密實),粗大的網(wǎng)紋間隔極易在布匹疵點檢測時被誤檢為疵點,或者疵點隱藏在紋理之中,使得經(jīng)編布匹疵點檢測與密實編制的緯編布相比更加困難.因此要想對經(jīng)編布匹圖像進(jìn)行瑕疵檢測時僅保留疵點的基本特征信息,而又干凈地過濾掉大片的紋理區(qū)域,須將疵點區(qū)域與正常紋理部分準(zhǔn)確區(qū)分分割開來.
圖1 幾種典型的經(jīng)編布匹疵點
為了確定預(yù)處理的方法,論文向原始圖像的灰度圖中加入椒鹽和高斯噪聲[12],利用中值濾波、高斯濾波和鄰域平均濾波3種預(yù)處理方法進(jìn)行去噪處理,并對比去噪前后的圖像和灰度直方圖,以判斷幾種預(yù)處理手段的去噪效果和關(guān)鍵信息保留的能力.
研究表明,雖然平滑濾波處理可以有效減少經(jīng)編布匹正常紋理對于疵點檢測的干擾,但是也很容易將細(xì)小的疵點一起濾掉,故不能將平滑濾波的方法應(yīng)用于經(jīng)編布匹疵點檢測的預(yù)處理.高斯濾波相對于中值濾波的圖像預(yù)處理,可以得到更好的檢測效果.
將破洞的疵點圖像(如圖1(e)所示)作為圖像分割算法選擇的測試樣本,對其分別進(jìn)行平滑、高斯和中值濾波,再進(jìn)行邊緣增強和閾值分割的操作,最終處理結(jié)果如表1所示.
表1 對去噪后的破洞類疵點進(jìn)行圖像分割的處理結(jié)果
表1所列的各種邊緣增強算法中,均丟失了較多的疵點信息,只有二值化處理能夠較好地保留疵點的原始信息,但是固定的二值化閾值并不能保證每次都是合適的分割閾值,導(dǎo)致其難以對不同類型疵點都達(dá)到理想的檢測效果.因此在對圖像進(jìn)行閾值分割處理時,需要有一種方法來讓系統(tǒng)自動判別每一次的分割閾值,最大限度地保留疵點的原始信息,為此論文引入最大熵閾值分割的方法.熵是用來衡量某個觀察對象(系統(tǒng))信息分布均勻程度的數(shù)學(xué)概念,信息分布越均勻則表明信息熵越大,系統(tǒng)的不確定性就越高、越無序.在圖像中灰度等級即信息,因此在圖像處理中,當(dāng)圖像具有最大熵時,即代表此時的圖像具有最大信息量.將熵的概念引入圖像分割,其目的是有效分割圖像的前景和背景區(qū)域,使得前景與背景在其各自的區(qū)域內(nèi)都具有最大熵,從而實現(xiàn)提取圖像中的疵點部分,將經(jīng)編布匹的正常紋理剔除.
在帶有疵點的經(jīng)編布匹上,疵點區(qū)域像素的灰度級彼此接近,正常紋理區(qū)域像素的灰度級同樣也彼此接近,它們在各自的灰度區(qū)間里分布相對均勻,即在各自的灰度區(qū)間里均具有較大的局部熵.由于圖像整體的灰度分布并不均勻,需要找到一個合理的閾值,以期望將細(xì)小、狹長至大片的疵點區(qū)域同明顯的正常紋理區(qū)域區(qū)分開來.該閾值兩側(cè)像素區(qū)域內(nèi)的灰度級在各自區(qū)間都是均勻分布的,即在該閾值兩側(cè)的局部熵越大越好.亦即,在閾值兩側(cè)的局部熵累加起來具有最大值時,該閾值便可以將疵點區(qū)域和正常紋理區(qū)域準(zhǔn)確地區(qū)分開,使疵點部分的信息能夠被最大限度地保留,以便有效識別與獲取疵點區(qū)域(面積大小)、類型及其位置等信息.
最大熵分割的疵點檢測方法,是遍歷每一個灰度級,并將每個灰度級(且該級灰度下的像素數(shù)目不為零)作為分割閾值對圖像進(jìn)行操作,利用該閾值劃分前景和背景區(qū)域,分別計算圖像的前景熵和背景熵,二者相加得到累積熵,最后選擇具有最大累積熵時的閾值作為分割閾值.
由前述可知,在進(jìn)行最大熵閾值分割時,算法可能需要遍歷0~255個灰度級,依次讓這256個灰度級作為閾值來分割圖像,并以此來統(tǒng)計計算圖像閾值為何值時分割的圖像具有最大的累積熵.該種遍歷的方法,雖然具有最好的分割效果,然而在實際生產(chǎn)中布匹運行速度非??欤看螜z測都遍歷所有的灰度級會嚴(yán)重影響檢測的實時性,因此論文針對這個問題提出了改進(jìn)方法.
觀察各種經(jīng)編布匹圖像的直方圖發(fā)現(xiàn),無論原始圖像還是對圖像進(jìn)行高斯濾波預(yù)處理后,其灰度直方圖中的灰度級會高度集中在一個單峰區(qū)間內(nèi).在布匹的污漬疵點圖像(圖1(c))中,疵點顏色較正常布匹顏色更深,灰度級更低;在布匹的棉結(jié)疵點圖像(圖1(d))中,疵點顏色較正常布匹顏色更淺,灰度級更高.因此論文選取背景紋理相同的污漬和棉結(jié)疵點圖像作為對比樣本,預(yù)處理方式為高斯濾波,高斯函數(shù)的σ參數(shù)值設(shè)定為2,迭代次數(shù)為兩次,顯示結(jié)果如圖2所示.
觀測圖2中濾波前后的灰度直方圖可以發(fā)現(xiàn),經(jīng)高斯濾波的平滑處理后,污漬疵點的峰值點灰度值為177,最大熵分割閾值為147,而棉結(jié)疵點的峰值點灰度值為182,最大熵分割閾值為203,兩種疵點圖像的直方圖均集中在[130, 230]的單峰區(qū)間內(nèi),且灰度分布更狹窄了.在經(jīng)過預(yù)處理后,污漬疵點圖像中灰度級小于147的像素被歸類為目標(biāo)疵點區(qū)域,大于147的像素被歸類為背景紋理區(qū)域,最大熵分割閾值小于其灰度直方圖峰值點所在灰度級;而棉結(jié)疵點圖像中則是灰度級大于203的像素被歸類為目標(biāo)疵點區(qū)域,小于203的像素被歸類為背景紋理區(qū)域,最大熵分割閾值大于其灰度直方圖峰值點所在灰度級.
不論疵點顏色灰度級大于或小于正常布匹紋理的灰度級,最大熵分割的閾值總是在預(yù)處理后灰度直方圖峰值點前后的一定大小區(qū)間內(nèi),因此可以對最大熵閾值分割方法做出改進(jìn),以避免遍歷計算所有的灰度級而消耗時間.理論上,最大熵閾值分割的過程中遍歷的灰度級數(shù)量多達(dá)256個,而實際檢測中由于高斯濾波預(yù)處理的作用,使得圖像的灰度級高度集中于某個單峰區(qū)間,因此算法運行時需要遍歷的灰度級并不需要達(dá)到256個.
通過大量測試實驗可知,閾值點的分布總是在灰度直方圖峰值點前后50個灰度范圍以內(nèi).因此,在對圖像利用高斯濾波進(jìn)行預(yù)處理后,可以求得其灰度直方圖峰值點所在的灰度值,令其為p,則得到最大熵分割的閾值點可能存在的區(qū)間為[p-50,p+50].若出現(xiàn)p-50<0的情況,則將遍歷的灰度級區(qū)間改為[0, 100],若出現(xiàn)p+50>255的情況,則將遍歷的灰度級區(qū)間改為[155, 255].改進(jìn)后的最大熵閾值分割方法只需要遍歷這101個灰度級即可得到最大熵分割閾值T,這將有效減少熵計算的運行時間,提高檢測的實時性.將改進(jìn)后的最大熵閾值分割方法應(yīng)用于布匹檢測的流程如圖3所示,改進(jìn)后的算法在預(yù)處理后圖像上的取值區(qū)間如圖4所示.
圖4 改進(jìn)后最大熵算法的閾值取值區(qū)間
外來纖維疵點(圖1(f))作為測試對象,最大熵閾值分割的初步處理后,布匹疵點的原始圖像被轉(zhuǎn)化為了二值圖像,如圖5所示.
由此可知,最大熵分割的閾值可以將原始圖像中絕大多數(shù)疵點信息保留,并能清晰地將疵點區(qū)域與布匹正常紋理部分區(qū)分開來.從圖5(c)中可以看到,依舊存在部分正常紋理被判定為目標(biāo)疵點區(qū)域,形成了干擾噪聲區(qū)域.在利用MATLAB對二值圖像進(jìn)行處理時,系統(tǒng)默認(rèn)黑色像素點為背景,白色像素點為前景,而在所有的圖像處理中,形態(tài)學(xué)操作都是面向前景部分進(jìn)行的,因此在通過最大熵閾值分割初步獲得的二值圖像中可能存在以下3個問題:①圖像前景背景劃分錯誤.疵點存在的形式種類繁多,不同類型疵點間的灰度級差異很大,因此在初步得到最大熵閾值分割的圖像后,應(yīng)該判別目標(biāo)疵點的像素點是否被設(shè)置為前景;②二值圖像的4周邊界出現(xiàn)了部分黑邊;③在原始疵點灰度圖像中,部分布匹正常紋理區(qū)域在二值圖像中被錯誤判斷為目標(biāo)疵點區(qū)域.
為了解決問題①,在最大熵閾值分割處理后,通過計算白色像素點在二值圖像中的占比來判斷圖像的目標(biāo)疵點區(qū)域是否被正確設(shè)置為前景.在不考慮大面積壞布(顏色漸變而產(chǎn)生)的情況下,疵點區(qū)域的大小通常遠(yuǎn)遠(yuǎn)小于正常布匹區(qū)域的大小,因此若白色像素占比高于1/2,則說明系統(tǒng)將目標(biāo)疵點區(qū)域錯誤判定為背景,此時對二值圖像進(jìn)行顏色反轉(zhuǎn)操作;若白色像素占比低于1/2,則保持原二值圖像輸出即可.
為了解決問題②,論文將預(yù)處理后的圖像部分邊緣進(jìn)行裁剪,具體邊緣裁剪的像素行個數(shù)則需要根據(jù)實際相機采集圖像的分辨率來確定,裁剪的目的是消去圖像邊緣區(qū)域在濾波時產(chǎn)生噪聲對疵點檢測造成的影響.而對該部分邊緣的補償可以由相機對經(jīng)編布匹圖像重復(fù)覆蓋采集獲得,并將補償?shù)牟糠衷诓杉降南噜張D像中顯示,以確保系統(tǒng)采集布匹信息的完整性.
通過上述兩種方法的處理,可以將圖5(c)中的疵點布匹圖像獲得如圖6所示的顯示效果.
圖6 初步優(yōu)化和最終優(yōu)化后的圖像
由圖6(a)看到,通過初步優(yōu)化后的二值圖像的疵點信息可以較為完整地顯示出來.但是問題③依舊沒有得到解決,解決這個問題的核心是提高二值圖像中的信噪比,為此引入連通域的概念.對連通域進(jìn)行形態(tài)學(xué)去噪處理時,可以選用一個小塊連通域作為結(jié)構(gòu)元素,利用結(jié)構(gòu)元素可以與目標(biāo)檢測連通域進(jìn)行腐蝕、膨脹和開、閉操作.初步優(yōu)化后的二值圖像經(jīng)過優(yōu)化去噪后獲得的最終二值圖像如圖6(b)所示.可以看到,目標(biāo)疵點區(qū)域正常紋理部分得到了非常好的分割,且目標(biāo)疵點部分為二值圖像的前景,布匹正常紋理部分為二值圖像的背景,沒有多余噪聲干擾,疵點區(qū)域也得到了最大限度的保留.
通過以上操作得到了一個較為準(zhǔn)確的布匹疵點二值圖像,其中疵點部分為白色前景,布匹正常紋理部分為黑色背景.為了能夠在檢測出布匹疵點的同時獲得疵點的準(zhǔn)確位置,選擇利用連通域的重心坐標(biāo)作為疵點區(qū)域位置的表示方法.連通域重心可通過MATLAB中的regionprops方法獲得,regionprops可以獲得連通域的包括重心屬性(centroid)和邊界屬性(boundingbox)在內(nèi)的多種基本屬性.在提取到目標(biāo)疵點連通域的重心后,用MATLAB對目標(biāo)疵點區(qū)域進(jìn)行重心和輪廓繪制,繪制時依舊可以選用regionprops方法進(jìn)行操作.由于只需要對經(jīng)過優(yōu)化后的二值圖像進(jìn)行操作,因此可以選擇MATLAB中的hold on和hold off命令確保操作對象的正確性.
通過上述操作可以獲取到目標(biāo)疵點連通域的重心信息,并可顯示重心和輪廓在二值圖像的具體位置,如圖7所示.
圖7 疵點連通域質(zhì)心與輪廓圖
通過圖7和圖5(a)中的原始疵點圖像的對比,可以發(fā)現(xiàn)原圖中的疵點部分區(qū)域被清晰地表示了出來,利用繪制連通域的重心和輪廓也較好地達(dá)到了對疵點檢測和定位的目的.
論文選擇了一幅帶有外來纖維疵點(圖1(f))的經(jīng)編布匹的照片作為測試對象,利用灰度直方圖對測試樣本圖像去噪前后的效果進(jìn)行分析,如果去噪后圖像的灰度直方圖與原始圖像的灰度直方圖一致性好(實際上是以峰值信噪比作為評價的客觀準(zhǔn)則),說明去噪效果好.原始灰度圖像加入高斯噪聲和利用幾種預(yù)處理方法去噪前后的灰度直方圖如圖8所示.
圖8 幾種濾波方法對高斯噪聲去噪后的灰度直方圖
由圖8(c),(d)可見,在經(jīng)編布匹的灰度圖像加入高斯噪聲后,中值濾波和高斯濾波的直方圖與原始圖像的直方圖很好地重疊在一起,說明這兩種濾波方法都可以獲得較好的去噪效果,能將原灰度圖像的大部分信息保留下來.同理,在測試樣本的原始灰度圖像加入椒鹽噪聲,分析上述濾波方法去除噪聲的能力,依舊是中值濾波和高斯濾波可以獲得較好的去噪效果.結(jié)合表1的處理結(jié)果,最終決定采用高斯濾波預(yù)處理方法用于實際圖像預(yù)處理.將有疵點的和無疵點的布匹照片作為輸入,通過相應(yīng)步驟的處理后,將得到的疵點圖像及其中心坐標(biāo)作為輸出,判斷有無錯檢、漏檢現(xiàn)象的產(chǎn)生.限于篇幅,僅列出3張布匹疵點圖像的檢測結(jié)果(實驗選擇了14張布匹疵點圖像作為測試對象),疵點類型分別為污漬、棉結(jié)和破洞,見圖9和表2.設(shè)定該次實驗選用的預(yù)處理方式為高斯濾波,公式中的σ參數(shù)值設(shè)定為2,高斯濾波的迭代次數(shù)為兩次.
圖9 經(jīng)編布匹疵點檢測實驗結(jié)果
表2 經(jīng)編布匹疵點檢測實驗結(jié)果
由實驗結(jié)果的統(tǒng)計信息可以得到以下結(jié)論:①該方法用于檢測疵點時,可以對疵點的輪廓和位置進(jìn)行精準(zhǔn)的描述,在測試14張布匹疵點圖像時,準(zhǔn)確率達(dá)到了100%.當(dāng)擴大樣本數(shù)量后,選取100張經(jīng)編布匹圖像作為實驗樣本,其中20張為正常布匹紋理圖片,根據(jù)相關(guān)的計算方法可以得到該實驗的準(zhǔn)確率達(dá)到95%,誤檢率為5%,漏檢率為5%.②該方法適用范圍較廣泛,能檢測出數(shù)十種以上明顯疵點,相較于現(xiàn)有的常見方法,具有較好的普適性.③表2中最右列顯示的是該算法在處理該圖片時運行一次的平均時間,大多數(shù)情況下算法的運行時間都能保證在0.1 s以內(nèi).上述圖片的大小均為256*256 pixel,線陣CCD相機的采樣行頻為1 024 Hz,因此0.1 s形成的像素行個數(shù)約為103個,遠(yuǎn)小于該次實驗的256行像素點,而在布匹橫向部分的幅寬可以在采集到圖像后分割為多個子圖像,采用多線程并行處理.由此可知,在t時間內(nèi)采集到的布匹圖像,使用該算法檢測的時間小于采樣時間,因此該算法滿足生產(chǎn)需求,在實際應(yīng)用中能夠具有較好的實時性.④通過高斯濾波后的灰度直方圖可以看出,在經(jīng)過高斯濾波處理后的圖像中,灰度級的分布高度集中,最大熵分割閾值點所在的灰度級總是分布在灰度直方圖峰值點所在灰度值±50個灰度級范圍內(nèi),所以使用改進(jìn)的最大熵閾值分割方法可以有效提高算法的運算速度.⑤從高斯濾波后的灰度直方圖可以看出,當(dāng)疵點顏色深于布匹顏色時,布匹正常部分的灰度級分布幾乎全部集中于最大熵分割閾值的右側(cè);當(dāng)疵點顏色淺于布匹顏色時,布匹正常部分的像素點灰度級分布幾乎全部集中于最大熵分割閾值的左側(cè).由此可知,在圖像進(jìn)行了最大熵閾值分割后,系統(tǒng)對圖像前景和背景的區(qū)分尤為重要,否則在對疵點進(jìn)行二值化時便可能將存在疵點的目標(biāo)區(qū)域誤認(rèn)為是背景,產(chǎn)生錯誤的疵點區(qū)域的劃分,造成檢測結(jié)果出現(xiàn)偏差.
論文將最大熵閾值分割和連通域分析的方法引入經(jīng)編布匹疵點檢測和定位中,并且為了提升檢測效果進(jìn)行了算法的優(yōu)化改進(jìn),使得該算法能夠準(zhǔn)確檢測出常見的數(shù)十種經(jīng)編布匹疵點.在檢測出疵點的同時,系統(tǒng)可以自動輸出疵點中心坐標(biāo)及其面積,通過人機交互界面向檢測人員發(fā)出預(yù)警信息并及時停機處理,具有高度自動化的特征.