景軍鋒, 郭 根
(西安工程大學(xué) 電子信息學(xué)院, 陜西 西安 710048)
化學(xué)纖維作為一種人工合成材料,憑借其特殊的物理性質(zhì),被廣泛應(yīng)用于各行業(yè),如航天航空[1]、汽車制造[2]、建筑[3]等領(lǐng)域。為便于運輸,化學(xué)纖維由絲狀經(jīng)卷繞、纏繞在紙管上形成絲餅,從纏繞到封裝過程中,會形成各種缺陷,這些都將直接影響紡織品的質(zhì)量和物理性質(zhì),毛羽就是其中之一。為解決上述問題,在纏繞和封裝之間,增設(shè)了絲餅外觀檢測流程,以保證產(chǎn)品質(zhì)量。
毛羽對于織物的表面光潔度、手感、織物上染性、服用舒適性以及保暖性都有直接影響[4]。毛羽的數(shù)量將直接影響絲餅的等級層次,對于絲餅毛羽檢測,多數(shù)檢測只是針對紗線毛羽檢測,而對紗線纏繞成絲餅后形成的二次毛羽,檢測方法甚少。目前,絲餅毛羽檢測都是人工借助簡單設(shè)備,依靠人眼來實現(xiàn)檢測,但由于視覺疲勞和主觀因素的影響,會出現(xiàn)漏檢和等級不均現(xiàn)象,甚至?xí)z餅造成二次損傷。
隨著機器視覺檢測技術(shù)的發(fā)展和不斷完善,已經(jīng)在許多領(lǐng)域被廣泛應(yīng)用并取得重大成果。機器視覺技術(shù)使計算機能夠有效地感知、處理及理解視覺信息,最終讓機器效仿人眼去處理圖片信息,甚至在某些方面能夠超越人類[5]。本文運用機器視覺技術(shù),對絲餅表面毛羽進行檢測。通過背光打光方式采集絲餅毛羽原始圖像,根據(jù)其形狀特征以及整幅圖片的對比度信息,提出基于卷積核的絲餅毛羽特征提取方法,然后運用閾值分割和輪廓檢測獲得絲餅毛羽的輪廓點信息,最后利用單方向凸包檢測方法對毛羽進行統(tǒng)計。
絲餅毛羽檢測硬件平臺如圖1所示。檢測時需要對絲餅側(cè)面、上表面、下表面3處毛羽進行檢測,分別對應(yīng)于圖1中1號、2號和3號相機。將條形平行背光光源與相機共面排列,且3組平面均相切于對應(yīng)的絲餅表面。所有光源由一個多通道光源控制器控制其亮度,通過CMOS相機采集絲餅毛羽圖片,然后通過交換機將圖像數(shù)據(jù)傳輸至計算機,由計算機完成圖像處理算法。3處相機安裝時,可通過旋轉(zhuǎn)相機,使得毛羽凸起方向相同,毛羽圖片只是尺寸不同,本文中主要以1號相機采集圖片為例介紹算法,其他與之類似。
圖1 圖像采集系統(tǒng)Fig.1 Image acquisition system
絲餅毛羽檢測方法按照圖2所示流程實現(xiàn)。主要包括以下幾個步驟:1) 獲取絲餅毛羽的原始圖像;2) 運用卷積方法對采集所得圖像進行細節(jié)特征提取,初步獲得毛羽特征;3) 對初步所得毛羽特征圖進行閾值分割,去除噪聲,突出毛羽特征;4) 對毛羽二值圖像進行輪廓檢測,獲取二維輪廓點特征;5) 對滿足條件的輪廓點進行單方向凸包檢測,確定毛羽位置并進行計數(shù)。
圖2 檢測流程Fig.2 Detection process
二維卷積是一種通過與像素鄰域進行運算而獲得新圖片的數(shù)學(xué)工具[6]。卷積的本質(zhì)是產(chǎn)生加權(quán)值之和的過程,加權(quán)值陣列一般用矩陣表示,其大小為奇數(shù),這種卷積矩陣稱為卷積核[7]。卷積核作用于原圖像,會使圖像的特征信息發(fā)生改變。許多圖像處理技術(shù)都是基于二維卷積運算,其主要作用是使原圖像中邊緣信息發(fā)生變化,例如對比度增強[8]、目標跟蹤[9]、平滑濾波[10]、邊緣檢測[11]、噪聲消除[12-13]、顏色識別[14]、圖像分割[15]等。對于不同的操作,卷積核的值和大小也會隨之改變。
針對絲餅表面毛羽的以下2個特征,提出一種用于毛羽特征提取的卷積核構(gòu)建方法:1)絲餅毛羽本身是一種很細的被檢測物,可視作為邊界線;2)絲餅毛羽圖像中背景和毛羽對比度較高,卷積作用后,邊界信息會發(fā)生相應(yīng)變化。
上述2個特性,決定了絲餅毛羽可通過卷積運算的方式進行特征提取,繼而提出一種大小為5×5的卷積核,用于獲取絲餅毛羽特征,該卷積核的作用效果可看作是噪聲消除的逆過程,噪聲消除的效果是擦除原圖中一些細節(jié)特征,而本文提出的卷積核作用則相反,其效果類似于高通濾波器。該卷積核k結(jié)構(gòu)特征如式(1)所示。
(2)
由于絲餅毛羽主要在豎直方向凸起,因此通過水平掃描提取毛羽特征,體現(xiàn)在卷積核內(nèi)則是上下方向?qū)?yīng)核值較小,左右方向核值較大。絲餅毛羽原始圖像與該卷積核通過卷積運算,可直接從原始圖像中提取出含有少量噪聲的毛羽特征,經(jīng)過簡單閾值處理就可實現(xiàn)噪聲消除。
絲餅毛羽原圖經(jīng)過卷積后依然存在很多噪聲,這些噪聲就是原來圖像中不明顯的細節(jié),經(jīng)過卷積后使其變得明顯,為消除噪聲對毛羽檢測的影響,采用閾值分割對卷積后的圖像進行處理,得到增強后的毛羽特征圖像,采用式(3)方法將絲餅毛羽圖片進行二值化操作。
(3)
式中:Fx,y為圖像像素點(x,y)的灰度值;T為閾值,通過最大類間方差法可確定T值。
為獲取絲餅毛羽的輪廓信息,通過文獻[16]方法獲取毛羽的二維輪廓點特征,該方法是一種拓撲結(jié)構(gòu)分析方法,主要通過邊界跟蹤來實現(xiàn)輪廓檢測。對經(jīng)過閾值增強的毛羽圖片進行輪廓檢測,在追蹤之前,將所有的非零像素點x,y的值記為fx,y并初始化為1,點x,y在第N次被追蹤時確認為邊界,則fx,y=N,N為邊界被檢測的次序數(shù),亦是同一邊界點的編號,追蹤步驟如下。
步驟1,在毛羽圖片中,選擇滿足以下條件之一的1個點作為起始追蹤點。
條件1:如果fx,y=1且fx-1,y=0,則x,y為毛羽的外邊界追蹤起始點,且N=N+1,記x-1,y為(x2,y2);
條件2:如果fx,y≥1且fx+1,y=0,則x,y為毛羽的內(nèi)邊界追蹤起始點,N=N+1,記x+1,y為(x2,y2);
條件3:若以上2個條件均不滿足,則轉(zhuǎn)到步驟3。
步驟2,從毛羽圖片的x,y開始按照以下方法追蹤邊界,該步驟主要是尋找絲餅毛羽圖片中點x,y右側(cè)的拓撲結(jié)構(gòu):
1)在x,y的8個鄰域內(nèi),從(x2,y2)開始順時針旋轉(zhuǎn),在毛羽圖片中尋找非零像素點,并將第1個找到的點記為(x1,y1);如果x,y的8個鄰域內(nèi)沒有非零像素點,說明點x,y在毛羽圖片中是一個噪聲點,所以該點被檢測的次序數(shù)沒有意義,即用負數(shù)來代表fx,y=-N,并跳轉(zhuǎn)到步驟3;
2)將1)中(x1,y1)記作(x2,y2),x,y記作(x3,y3);
3)從(x2,y2)的下一個像素開始,逆時針旋轉(zhuǎn)尋找非零像素點,并將第1個找到的點記為(x4,y4);
4)按照以下規(guī)則記錄(x3,y3)的值,該步驟主要是尋找絲餅毛羽圖片中點x,y下方的拓撲結(jié)構(gòu):
如果在3)中檢測出(x3,y3+1)是零像素點,那么f(x3,y3)=-N;
如果在3)中檢測出(x3,y3+1)是非零像素點,且(x3,y3)此時被記錄為1,那么f(x3,y3)=N;
不滿足以上2個規(guī)則,f(x3,y3)值不變;
5)若fx4,y4=fx,y,fx3,y3=f(x1,y1),則說明毛羽圖片中點x,y的拓撲結(jié)構(gòu)已經(jīng)檢測完,轉(zhuǎn)到步驟3;否則將(x3,y3)記作(x2,y2),(x4,y4)記作(x3,y3),并轉(zhuǎn)到3)。
步驟3,從x+1,y開始掃描追蹤起始點,如果掃描至絲餅毛羽圖像右下角,則算法終止。若fx,y>0,那么點x,y為絲餅毛羽輪廓點。由于所得輪廓點數(shù)量較多,因此按照以下步驟篩選:
毛羽就是在絲餅表面凸起的部分,毛羽統(tǒng)計與凸包檢測非常相像,而且絲餅毛羽是由于紗線在纏繞時,由于張力過大而導(dǎo)致紗線斷開,所以不會有毛團現(xiàn)象,每個凸包僅對應(yīng)1根毛羽。李必棟等[17]將離散點劃分為5個平面區(qū)域,并對離散點排序,然后根據(jù)各區(qū)域單調(diào)鏈性質(zhì),剔除冗余點,最后用Graham進行凸包生成。劉凱等[18]通過雙極限點篩選平面內(nèi)凸包點,進而根據(jù)預(yù)選凸包點將平面分為4塊,根據(jù)這些點的行、列坐標值檢測凸包點。文獻[17-18]均是對整個平面進行凸包檢測,由于毛羽的凸起方向總是在絲餅表面上方,因此只對毛羽二維輪廓點進行單方向凸包檢測。凸包的數(shù)學(xué)性質(zhì)就是凸點的左右兩側(cè)梯度方向相反,根據(jù)凸包的數(shù)學(xué)特征,提出一種用于毛羽統(tǒng)計的單方向凸包檢測算法,檢測方法如圖3所示。單方向毛羽凸包檢測,首先對滿足凸包檢測的L個毛羽輪廓點沿X軸升序排列,目的是為了保證所得Y軸方向的梯度有意義。由于最左端和最右端會出現(xiàn)凸包信息不完整,所以不同位置的輪廓點(x,y),凸包檢測方法亦不相同:
1) 對于i=0,y0的左邊沒有可比較的梯度值:Δ0=y1-y0;若 Δ0<0,則(x0,y0)為凸包點。
2) 對于00且Δi<0,則(xi,yi)為凸包點。
3) 對于i=L-1,yL-1的右邊沒有可以比較的梯度值,ΔL-2=yL-1-yL-2,若ΔL-1>0,則(xL-1,yL-1)為凸包點。
圖3 單方向凸包檢測方法Fig.3 Unidirectional convex hull detection method
采用acA2500-14gm型BASLER面陣相機作為圖像采集設(shè)備,相機分辨率為2 592像素×1 944像素,鏡頭焦距為6.0 mm,光圈為F1.8-F22.0,圖像處理軟件采用python和openCV混合編程實現(xiàn),處理過程是在內(nèi)存8 GB、CPU工作頻率3.20 GHz的計算機上完成的,實驗采用圖像的大小為200像素×150像素。
當前對于毛羽分割最常用的算法就是閾值分割,于是選擇幾種常用于毛羽分割的閾值方法與本文提出的卷積核分割方法進行對比,圖4為對于不同特征的絲餅毛羽(記為毛羽Ⅰ、毛羽Ⅱ和毛羽Ⅲ)運用不同的分割方法對比結(jié)果。
通過對比圖4分割結(jié)果可看出,常用的閾值分割方法對于絲餅毛羽分割結(jié)果并不是很理想,其主要原因是閾值分割適用于背景和目標有鮮明對比的場合,但是由于絲餅尺寸較大,構(gòu)建純凈的單色背景比較困難,因此,使得毛羽無法與背景形成較明顯的對比。構(gòu)建卷積核的絲餅毛羽分割方法,可適應(yīng)圖4(a)~(c)不同光照強度、圖4(a)細毛羽和圖4(c)粗毛羽的情況,所以卷積核毛羽分割方法具有較強的適應(yīng)性。對于圖4(b)中復(fù)雜背景的毛羽圖片,無需復(fù)雜的圖像處理,該方法也可直接分割得到毛羽。
圖4 毛羽分割對比Fig.4 Comparison of hairiness segmentation. (a) Hairiness Ⅰ; (b) Hairiness Ⅱ; (c) Hairiness Ⅲ.
為驗證單方向凸包毛羽檢測算法的有效性,選擇不同粗細毛羽和不同背景的毛羽圖片進行測試,實驗結(jié)果如圖5所示。
圖5 毛羽檢測結(jié)果Fig.5 Results of hairiness detection. (a) Hairiness Ⅰ; (b) Hairiness Ⅱ; (c) Hairiness Ⅲ.
圖5(a)~(c)分別為細毛羽、復(fù)雜背景、粗毛羽3種典型絲餅毛羽特征。圖5(b)為在毛羽位置非常相近的情況下,單方向凸包檢測算法仍然可檢測出毛羽。從左邊和右邊凸包信息不完整情況下的檢測結(jié)果,可看出,在沒有完整的凸包被檢測的情況下,提出的毛羽檢測算法依然可以對毛羽做出判斷,并完成計數(shù),進一步證明單方向凸包檢測算法可以實現(xiàn)絲餅毛羽的準確檢測,具有較強的魯棒特性。
以絲餅毛羽作為研究對象,提出一種特定卷積核和單方向凸包相結(jié)合的絲餅毛羽檢測算法,完成對絲餅毛羽檢測和計數(shù)。首先,運用特定的卷積核構(gòu)建方法獲得卷積核,然后對原始絲餅毛羽圖像運用卷積處理,提取毛羽特征,通過輪廓檢測得到絲餅毛羽輪廓點,最終用單方向凸包檢測算法對絲餅毛羽進行計數(shù)。本文方法可實現(xiàn)不同特征絲餅毛羽圖像的有效檢測,而且其中卷積核毛羽分割方法相比傳統(tǒng)的閾值毛羽分割方法有較好的適應(yīng)性,可提高算法的魯棒特性,為進一步根據(jù)毛羽數(shù)量對絲餅進行分級提供幫助。
FZXB