史先傳,許議元,殷 帥
(常州大學 機械與軌道交通學院,江蘇 常州 213164)
織物在染色、漂洗等工藝流程中,均會產生不同程度的緯斜量,需要經過整緯機矯正、定型機熱定型后,才能達到成品布料的質量標準[1-3]。緯斜檢測的準確性直接關系到整緯機的矯正效果。目前,國內緯斜檢測的主流技術依然是光電檢測技術,雖然在檢測實時性上占有一定優勢,但所能檢測的織物種類存在局限性,例如對于透光性較差的厚重布料,光電檢測信號較弱[4-6]。而機器視覺作為一種高效、無接觸的檢測技術,已經開始應用于織物緯斜的檢測中[7-8]。
國外的Leimer公司在基于機器視覺的整緯機開發上處于業內領先水平。其研發的整緯系統自動化水平高,對圖像數據處理速度快,在織物行進速度高達150 m/min時仍能穩定工作,整緯率可達100%,且對于不同種類的織物均能保證檢測質量,適應性較廣。其額外添加的監控系統通過自檢便能實現故障排查。Mahlo公司的寬幅圖像整緯機適用于緯斜角度在30°范圍內的絕大多數織物,允許的織物幅面長度最高可達4 000 mm,視覺檢測系統在檢測緯斜的同時還能檢測出緯紗的密度。其自身的恒張力控制機構,可以防止寬幅織物在行進過程中出現褶皺影響整緯效果。此外,整緯機還配有觸摸屏外設,使人機交互更為便捷。
近年來,國內多家企業在機器視覺整緯機的開發上也取得了一定的成效,如常州宏大公司生產的智能圖像整緯機,利用多部面陣相機結合透射與反射兩種紅外光源,對織物實行全幅采集檢測實現整緯矯正。但國內的攝像整緯技術還不夠成熟,在實際生產運行的復雜工況下仍不夠穩定,無法完全取代光電整緯機,與國外先進技術水平存在一定的差距[9]。織物種類繁雜多樣,國內學者都在試著尋求一種適應性較廣的緯斜檢測算法。對此,董燕等提出了離散傅里葉變換結合多步投影分析的緯斜檢測算法,通過對頻譜圖像的投影映射統計,計算得到緯斜角度[10]。王蕾等分析織物二值化后的頻譜圖像,計算功率譜后利用霍夫變換確定緯斜方向[11]。劉建寶等在傳統最大類間方差法的基礎上進一步優化,分步分割出緯紗紋理后進行窗口像素統計,統計結果中的最大值所對應的窗口角度即為緯紗傾斜的方向[12]。但上述文獻多局限于對于織物圖像的離線檢測,在少有的針對實時動態攝像檢測的設計中,樓躍升等指出投影法會統計到干擾信息,從而弱化了主要的紋理信息,不可避免地降低檢測結果的準確性,并提出了頻域次亮點檢測法。但該方法存在一定的局限性,實驗表明該方法的檢測精度受織物紋理數目的影響,對于紋理數目較少的織物檢測誤差會偏大[13]。這些理論基礎與實踐探究都為攝像整緯技術的不斷改進提供了很好的借鑒。
在動態采集的過程中實時檢測緯斜,必須要兼顧檢測精度以及檢測耗時這兩個關鍵因素。為解決這一問題,針對性地研究了基于機器視覺的緯斜檢測算法。在頻域內采用改進后的巴特沃斯陷波濾波器濾除干擾像素,得到緯紗紋理較為凸顯的織物圖像。分析緯紗紋理特征后計算其自相關圖像,結合邊緣檢測與Blob分析,將紋理區域提取出來,再對紋理區域進行霍夫變換,閾值自適應后檢測出緯斜角度,實現準確高效的緯斜檢測。最后搭建了由六臺CMOS工業相機構成的采集系統,模擬攝像整緯機的工作過程,動態抓拍織物圖像,并在上位機控制系統中檢測緯斜,觀察緯紗變化趨勢,綜合結果誤差與檢測耗時驗正所提出方法的合理性。
由相機采集到的原始織物圖像需進行預處理。預處理的主要目的在于濾除噪聲、經紗紋理等干擾像素,尤其是對于經紗密度大于緯紗密度的織物,其經紗紋理相較于緯紗紋理更加明顯,會對緯紗的檢測造成較大的干擾。而織物圖像上的干擾像素分布各不相同,在空間域中很難系統地分析,因此選擇利用傅里葉變換,將圖像轉變到頻域中處理。
圖1是同一織物處于不同緯斜角度時的頻譜圖像。當織物緯紗傾角發生θ0的變化時,由于傅里葉變換的旋轉性質f(r,θ+θ0)?F(ω,φ+θ0),其頻譜圖像也會發生相應角度θ0的變化。而當織物緯斜角度為0°時,緯紗紋理信息在頻域中則被集中反映在豎直方向的頻段上,頻域次亮點檢測法也由此衍生而出。鑒于該方法存在的缺陷,在頻域中只對織物圖像作預處理,將包含緯紗信息的頻段作保留處理,屏蔽包含經紗和其他干擾信息的頻段,便能達到頻域濾波的目的。

圖1 同一織物不同緯斜角的頻譜圖像
在M×N尺寸的織物圖像上,點(x,y)處的灰度值可以用實函數f(x,y)表示,其快速傅里葉變換得到的頻譜圖像具有共軛對稱性,即:
F*(u,v)=F(-u,-v)
(1)
式中,F(u,v)表示f(x,y)的傅里葉變換,F*(u,v)表示F(u,v)的共軛,u,v為頻域變量。
根據這一性質可知,這些頻段不可能獨立出現。對于這種對稱存在且較為分散的頻段,可以用巴特沃斯陷波濾波器來屏蔽[14],其產生公式為:
(2)
式中,D0表示濾波半徑。D1,D2分別表示點(u,v)到(uk,vk)和(-uk,-vk)的距離。n表示巴特沃斯陷波濾波器的階數,用于調整濾波器的陡峭程度,避免圖像產生振鈴現象。
濾波器使以(uk,vk)和(-uk,-vk)為濾波中心的圓形范圍頻段的響應值為0,歐式距離Di(i=1,2)表達式如下:
(3)
由于待濾除的經紗頻段多呈高亮條帶狀,因此在濾除經紗頻段的同時,要保留鄰域頻譜能量,以保證濾波后的圖像細節能被還原。故在選擇阻帶時,要求阻帶的形態較窄,然而傳統的巴特沃斯陷波濾波器是基于圓形區域的阻帶,會削弱非目標區域的頻譜能量,導致濾波后的緯紗邊緣發生一定程度的模糊和振鈴。針對傳統巴特沃斯陷波濾波器在此應用背景下的缺陷,本文將鄰域阻帶近似地設計成橢圓形,從而精準濾除目標頻段[15]。
若橢圓鄰域阻帶的長軸為a,短軸為b,傾斜角度為θ,則橢圓鄰域阻帶內的點D(x,y)可表示為:
(4)


圖2 織物預處理前后對比
紋理是描述織物結構的基本屬性,從圖像處理的角度出發,可以由灰度值、形狀特征、空間位置關系等多個角度定量分析。經預處理后的織物圖像中,經紗紋理像素已被弱化,緯紗紋理按照特定規律緊密排列在一起,與緯紗間的間隙呈現出明顯的高低灰度交替變化,即緯紗的紋理特征[16]。若將緯紗紋理視為由若干相互關聯的像素點構成的基元,則可通過構建灰度共生矩陣計算其相關性[17]。
設織物圖像為I(M,N),圖像上存在任意一點A(x,y),以及不與其重合的一點B(x+dx,y+dy)。若此時A點處的灰度值為li(x,y),B點處的灰度值為lj(x,y),則在點A移動的過程中,會產生不同的(li,lj),倘若圖像中共存在256個灰度等級,則會產生256×256個(li,lj)的組合。對于整幅織物圖像,統計出每種組合出現的次數,并計算其頻率,將結果排列構成矩陣,即為灰度共生矩陣P256×256。灰度共生矩陣的相關性可以間接反映出原織物灰度圖像中行列像素點間灰度值的相似程度,其計算表達式為:
(5)
式中,P(i,j)代表灰度共生矩陣中第i行j列的元素。
(6)
(7)
(8)
(9)
灰度共生矩陣及相關性計算結果如圖3所示。計算結果表明,紋理彼此間存在較大的相關性,可以將圖像與自身作自相關計算,得到其自相關圖像,獲取緯紗紋理像素點在圖像空間中的位置分布,達到間接提取緯紗紋理的目的,其計算表達式為:

(10)
式中,f(x,y)°f(x,y)表示空域自相關,f*(m,n)表示f(m,n)的共軛,M與N分別代表圖像的寬度與高度尺寸。
由于直接在空間域計算織物圖像的自相關圖像計算量較大、耗費時間長,為了減小計算量,考慮在頻域中進行自相關計算。空域自相關在頻域中可等價為:
f(x,y)°f(x,y)?F*(u,v)F(u,v)
(11)
由此,可在預處理的頻域濾波結束后,對頻譜圖像作自相關計算,計算結果如圖4(a)所示。再由頻域返回到空間域,獲得圖4(b)所示的空域自相關圖像,從微觀角度,原本的緯紗紋理被細化成分布規律的局部灰度峰值像素點;而從宏觀角度,緯紗紋理已表現為一條條等距分布的平行線。在此基礎上執行邊緣檢測和Blob分析,便能提取出清晰的緯紗紋理區域。

圖3 灰度共生矩陣相關性計算結果

圖4 自相關圖像
緯紗邊緣是由緯紗間灰度發生快速變化的鄰域產生的,其變化劇烈程度可以用梯度來度量,從而判斷緯紗的紋路走勢[18]。織物圖像作為離散數字圖像,其梯度是由圖像分別在x、y方向上的偏導數計算得到的,若圖像中某一像素點(x,y)的像素值為f(x,y),則其在(x,y)處的梯度f(x,y)可用式(12)表示,并可根據梯度分量計算該點處的幅值大小。
(12)

(13)
CMOS 相機實況采集得到的織物圖像易參雜噪聲,而邊緣檢測的Sobel算子是由Gaussian平滑和微分結合而成的離散型差分算子,對噪聲有抑制作用[19]。Sobel算子采用水平和豎直的離散近似模板求取兩個方向的梯度分量,一般來說掩碼模板的大小為3×3,但實際情況下小模版對織物紋理邊緣的檢測結果較為模糊,為了得到輪廓更加清晰的邊緣圖像,采用7×7的大模板掩碼。由帕斯卡三角形分別確定平滑系數和差分系數的向量,得到水平方向的掩碼Sobel1,將其轉置即為豎直方向的掩碼Sobel2。
對于層級為i位置為j的帕斯卡系數,可由來P(i,j)表示:
(14)
而模板大小為n的各個平滑系數S(k)和差分系數D(k)可分別記為:
S(k)=P(n-1,k)
(15)
D(k)=P(n-2,k)-P(n-2,k-1)
(16)
式中,k(0≤k≤n-1)表示系數所在位置。
則水平方向的掩碼模板Sobel1可表示為:
(17)
于是可計算得到7×7大小模板的x方向掩碼Sobel1為:

其中,中心系數權重較大是為了起到平滑邊緣的作用,而總和為0是為了使灰度一致的區域不產生梯度。
利用7×7模板Sobelk(k=1,2)分別與以(x,y)為中心的7×7窗口w[f(x,y)]做卷積運算,得到水平與豎直方向上的梯度分量fx(x,y),fy(x,y),根據式(18)計算得到(x,y)處的輸出值,圖5為最終輸出的邊緣方向圖,邊緣方向與緯紗傾斜方向一致。
(18)
式中,α表示衰減因子,用于防止計算結果溢出最大值255,取α=2。

圖5 織物邊緣方向圖
在經過頻域濾波、自相關計算和邊緣檢測后,織物的邊緣方向圖主要由緯紗和背景兩部分的像素點構成,統計[0,255]區間上各個灰度級的像素點個數,繪制灰度直方圖,如圖6所示。通常情況下,經過平滑后的灰度直方圖整體呈現出3個波峰和兩個波谷,而常用的最大類間方差法難以處理存在多個灰度直方圖波峰的圖像。

圖6 邊緣圖像灰度分布統計
經過試驗分析發現,第一個波峰灰度值較低,主要是較暗的背景像素點;第三個波峰灰度值較高,主要是殘存的經紗像素點;而兩個波谷間的過渡部分就是構成緯紗紋理的像素點。基于對灰度直方圖的分析,只需求取兩個波谷灰度值分別作為低閾值T1與高閾值T2,就能實現對邊緣方向圖的二值化處理,分割出緯紗紋理部分。其中,T1作為弱邊界,主要用于過濾背景像素的同時平滑緯紗邊緣輪廓,使原本強邊界T2分割出的斷斷續續的緯紗邊緣連接起來。
經平滑后的邊緣方向圖的灰度分布,可以近似看作由離散點擬合而成的曲線f(x),其一階導數f′(x)=0處的灰度x即為波峰或是波谷。這里用差分代替微分,對于f(x)有各個等距節點xk=x0+k,k=(1,2,…,255),則f(x)上相鄰灰度級上的一階差分可以表示為:
Δf(xk)=f(xk+1)-f(xk)
(19)
當Δf(xk)>0且Δf(xk-1)<0時,則認為此時的xk為波谷閾值。依據此法遍歷直方圖尋找T1與T2,從而分割出二值化紋理區域。在后續實時檢測中,由于光照不勻等外界因素的影響,得到的直方圖的灰度分布有時會出現多個局部的峰值,給處理造成一定程度的干擾。但通過此方法對不同織物圖像的多次試驗分析,得到的緯紗像素點灰度范圍均集中在[50,140]區間內,動態檢測中可以此經驗二值化范圍直接進行閾值分割,完成緯紗紋理區域的提取。
霍夫變換將待檢測區域轉換到參數空間,利用圖像空間與參數空間兩者間由點到線的映射關系,實現對于直線區域的角度檢測[20]。因其較好的魯棒性且不易受噪聲影響,在區域特征檢測中被普遍采用。霍夫變換的原理是創建并初始化一個二維數組累加器L(ρ,θ),遍歷圖像區域上的像素點(x,y),根據θ的取值范圍(θmin,θmax)轉化到參數空間,其轉化關系式為:
ρ=xcosθ+ysinθ
(20)
式中,ρ表示極徑,θ表示極角。
將得到的ρ在對應的位置累加,當遍歷結束后,若累加器中的最大值大于事先設定的直線檢測閾值,則判定該點為參數空間中多數曲線的交點,而這些曲線在圖像空間中恰恰是構成所求直線的像素點,參數空間中交點對應的坐標(ρ,θ)即為所求直線方程的參數[21]。
圖7(a)為原緯紗區域經霍夫變換得到的參數空間圖像。參數空間圖像中一系列的高亮點,其實質是變換前特定像素較為集中的緯紗區域,緯紗越長越近似直線,參數空間圖像上對應點的灰度值就越高[22]。
基于上述參數空間圖像的特性,采用了如下的閾值適應方法檢測直線。參數空間中各個像素點(x,y)處的灰度值可以用二次多項式G(x,y)近似表示:
G(x,y)=α1x2+α2y2+α3xy+α4x+α5y+α6
(21)
建立式(22)所示的黑塞矩陣H[G(x,y)],并按照式(23)計算其行列式值det(H),可判斷出圖像中的灰度極值點。
(22)
(23)


圖7 霍夫變換直線檢測

圖8 閾值逼近流程圖
由霍夫變換檢測得到的角度為垂直于緯紗的法線與水平軸的夾角,記為α,即可由此計算出實際緯紗傾斜角度θ=90-α。當θ大于0,即為右上傾斜;當θ小于0,即為右下傾斜。
圖9為織物緯斜檢測系統的原理圖,主要由硬件采集系統與軟件檢測系統組成。考慮到單目相機視場尺寸有限,無法兼顧到整幅織物,故采用六路相機聯合工作,紅外透射光源為其補光,由各路相機采集到的局部織物圖像擬合而成織物整體變化趨勢。為模擬整緯機實際工作中的緯斜檢測過程,將變頻器接至PLC控制器,交流電機則通過皮帶直接與導布輥相連,由變頻器驅動電機將動力經過皮帶輪傳遞給導布輥,帶動織物行進,上位機則與PLC控制器通過RS232串口實時通訊。

圖9 緯斜檢測系統原理圖
搭建了如圖10所示的硬件系統結構。其中,上位機端因需要控制多路相機同步采集,短時間內處理多組圖像數據,對配置要求較高,故選用Windows10 64位系統,Intel?CoreTMi9-10900 處理器CPU,DDR4 16 GB內存,Intel?UHD Graphics 630顯示適配器,1 000 Mbps千兆網卡。

圖10 緯斜檢測系統結構示意圖
采集設備選用海康威視MV-CA003-20 GM GigE工業相機,Computar M2528相機適配鏡頭。該工業相機采用CMOS感光芯片,相比于CCD芯片更適用于高速采集的場合。為其選配的鏡頭能夠防止圖像發生畸變,成像清晰度高。GigE工業相機通過海康威視MV-ACC-01-1101網線接至上位機的千兆網卡實現與上位機的通訊,可以快速將分辨率為672 512的實時圖像幀數據傳輸到上位機用戶端[23]。測試現場如圖11所示。

圖11 測試現場
軟件平臺基于.NET Framework開發環境,為降低開發難度,調用MvCamCtrl.NET與HalconDotNet類庫函數。MvCamCtrl.NET源于海康威視GigE相機的SDK軟件開發包,可用于對相機功能的二次開發。而HalconDotNet源于視覺處理軟件Halcon 17.12,包含了上千種封裝好的圖像處理函數,可用于實現所提出的緯斜檢測算法。
在采集檢測任務開始前,上位機軟件平臺枚舉以太網內滿足GigE Vision傳輸協議的相機設備,為其注冊采集圖像的回調函數,創建句柄,配置曝光、幀率、增益等參數。利用多線程和委托為各個相機對象創建獨立的線程并行工作,提高CPU的利用率從而優化了系統的性能,使用戶可根據在線相機數目以及使用需求自由選擇1至8路相機同時工作,不會出現線程阻塞的現象。相機有連續采集與單幀采集兩種采集模式可供用戶選擇,其中單幀采集為硬觸發采集,由外部設備給相機發送觸發信號來實現。當任務啟動時,將各路相機采集到的圖像信息存放到各自獨立的緩存地址,交由緯斜檢測算法執行一系列的檢測處理。在窗口控件中實時顯示檢測結果,用箭頭標出緯斜方向,便于用戶觀察,下方文本框內則顯示具體緯斜角度。對多路相機的檢測結果進行融合運算,得到整幅織物的緯斜量和緯彎量,結合DevExpress.XtraCharts.Control控件與定時器動態繪制成曲線圖,實時有效地圖表化顯示織物的整體變化趨勢。上位機端將檢測數據發送給PLC控制器,PLC控制器便能控制斜輥和彎輥執行后續的緯紗矯正。系統運行效果如圖12所示。

圖12 系統運行效果
相機作為整個系統中最為重要的一環,其參數的配置直接決定了圖像質量,進而影響到后續檢測結果的準確性。相機需要配置的參數分別為曝光、幀率以及增益。
在動態采集時,得到的圖像會沿運動方向產生拖影,如圖13所示。拖影的產生會模糊緯紗紋理,干擾緯紗的檢測。為減小負面影響,提出精度要求,豎直方向拖影長度不得超過5 piexl。若豎直方向實際視場尺寸為20 mm,則可計算得到豎直方向上的精度要求為20/512×5≈0.195 mm。當織物行進速度為1333 mm/s(約80 m/min)時,可推出曝光時間必須要小于0.195×106/1 333≈146 μs。通常情況下,曝光時間越短,幀率越高,取幀率為最大值337。增益一般用于強化較弱的信號,同時也會增加圖像中的噪聲信號,故將其值設為0。

圖13 拖影現象
選取現有的多種低密、高密織物作為實驗對象。一般情況下,織物的緯紗傾斜角在-30°~30°范圍內。在實驗過程中,導布輥帶動織物以50 m/min的速度行進,GigE相機采用硬觸發的采集方式,配合透射光源每間隔500 ms進行一次采集,由上位機根據算法自動檢測。為各個相機創建對應的文件夾,將采集到的圖像自動保存到文件夾中,SQL Server數據庫中則按相機編號分類,記錄每一幀織物圖像的緯斜角度θi和耗時ti,以便后續的人工測量緯斜分析誤差。

表1匯總了六類織物緯斜的算法檢測結果與人工檢測結果的平均絕對誤差,以及平均檢測耗時。在織物快速行進的過程中,整幅織物兩端受力不均出現褶皺,光源亮度不勻造成織物表面局部較暗,以及織物受導布輥牽引發生形變都會給檢測造成不同程度的影響。除以上客觀因素外,人工檢測精確度較低,也會產生一定程度的誤差。相比之下,人工檢測耗時費力,所耗時間遠遠超過了算法檢測。
表2匯總了根據參考文獻[13]提出的頻域次亮點分析法檢測得出的數據,正如文獻[13]中所述,織物紋理數目會對檢測結果造成一定程度的影響,紋理數目越多,檢測結果的準確性越高。

表1 本文方法六類織物的檢測結果

表2 頻域次亮點分析法六類織物的檢測結果
而從六種織物的總體情況可以看出,本文算法對高、低密度的織物適應性較好。至于兩種方法的檢測時間,考慮到緯紗整體變化趨勢較為連續,不會發生突變,相機每500 ms硬觸發執行一次采集,300 ms內完成檢測處理已經能夠滿足實際的工作需求。
同時,為測試所提出的緯斜檢測算法在真實工況下的抗干擾能力,待測織物局部存在污漬、破損等缺陷,如圖14所示。圖14(a)由算法檢測出的緯斜量為-5.25°,人工測量結果為-5.08°,絕對誤差為0.17°;圖14(b)由算法檢測出的緯斜量為-3.13°,人工測量結果為-2.87°,絕對誤差為0.26°。該結果表明所提出的緯斜檢測算法不易受織物自身缺陷的影響,魯棒性較好。

圖14 存在缺陷的織物
針對實時動態檢測緯斜這一問題,提出了基于機器視覺的緯斜檢測算法,并搭建硬件、軟件平臺展開測試,模擬攝像整緯中的檢測過程,測試結果表明,緯斜檢測系統適用于多種高密、低密織物,平均絕對誤差在0.35°以內,平均耗時不超過225.5 ms,在實際工作中較為穩定。研究有如下創新點:
1)對初始圖像采用改進后的巴特沃斯陷波濾波器進行預處理,綜合了對織物圖像空間域與頻域兩個不同角度的分析,清晰地提取出緯紗紋理區域,避免了霍夫變換因區域干擾信息較多而造成較大的檢測誤差。
2)設計了獨立的攝像整緯系統上位機控制界面,控制六路GigE工業相機實現穩定高效的采集檢測,界面設計便于觀察織物整體變化趨勢,并可根據整緯機的門幅寬度拓展至八路相機。
但本文研究的算法主要針對帶有明顯紋理方向的織物,而對于少部分編織工藝復雜,不具備緯紗紋理走向的織物檢測存在一定困難,這也是攝像整緯技術下一階段研究的主要方向。