史先傳,董 沖,蘇勝輝,徐鎮(zhèn)冬
(常州大學(xué) 機(jī)械工程學(xué)院,江蘇 常州 213164)
紡織印染企業(yè)把織物緯斜程度作為一個衡量紡織品質(zhì)量的重要標(biāo)準(zhǔn)。標(biāo)準(zhǔn)的織物是經(jīng)紗和緯紗交織成一定有規(guī)律的紋理,但編織好的織物在經(jīng)過漂洗和染色工序后,織物的經(jīng)緯紗紋理出現(xiàn)彎曲無規(guī)律的傾斜情況,這是由于織物兩端所受到的張力不均勻或者中間和兩端所受到的拉伸力不一樣導(dǎo)致織物出現(xiàn)了緯斜和緯彎(緯弧)[1-3]。目前,找到一種可以檢測各種類型的織物緯斜的通用方法,仍然是織物緯斜檢測的難題。
國內(nèi)外的學(xué)者對織物緯斜檢測技術(shù)的研究有了一些成果。目前,織物緯斜檢測主要有兩大類:1)光電緯斜檢測技術(shù),如光電投射式檢測法、旋轉(zhuǎn)夾縫檢測法等;2)圖像處理緯斜檢測技術(shù),①像素點灰度值周期間隔法[4]、②小波變換投影分析法[5]、③Radon變換法[6-7]、④離散Fourier功率譜法[8]、⑤Hough變換法[9]。
上述①②③類方法都易受噪聲的影響;④⑤類方法具有較好的抗噪聲能力是目前較好的織物緯斜檢測的方法。目前,對織物緯斜檢測研究的學(xué)者提出了許多圖像處理緯斜檢測方法,但能夠?qū)嶋H在機(jī)器視覺整緯機(jī)上應(yīng)用的還是很少,多數(shù)還是光電整緯機(jī)[9-11]。因此,為了能夠快速準(zhǔn)確檢測不同類型的織物緯斜圖像,提出了結(jié)合Sobel邊緣方向和累加概率霍夫變換(PPHT)的機(jī)器視覺織物緯紗傾斜檢測方法,檢測方法有4個關(guān)鍵步驟:
1) 織物圖像濾波采用頻域濾波,增強(qiáng)織物圖像紋理;
2) Sobel方向算子對增強(qiáng)的織物圖像進(jìn)行邊緣方向檢測,再對其進(jìn)行形態(tài)學(xué)閾值分割出緯紗紋路區(qū)域;
3) 形態(tài)學(xué)骨架化(Skeletonization)算法提取緯紗紋路區(qū)域骨架,消除其冗余像素,只保留緯紗紋路區(qū)域的中心線,利于降低PPHT算法的計算量;
4) 累積概率霍夫變換(PPHT)算法快速檢測出近似緯紗紋理區(qū)域骨架的直線傾斜角度,也就是織物緯紗的傾斜角度,并將其傾斜角度傳送給緯斜糾正機(jī)構(gòu)控制器。
結(jié)合Sobel和PPHT的織物緯斜檢測方法架構(gòu)流程如圖1所示。
圖1 織物緯斜檢測方法架構(gòu)流程圖
通過工業(yè)相機(jī)對選定的4種類型織物進(jìn)行采集,選擇4種不同類型的織物灰度圖像(如圖2所示),通過傅里葉變換將織物的灰度圖像變換為頻譜能量圖像如圖3所示,使用二項濾波器平滑噪聲信號的能量,得到能量分布更清晰地頻譜能量圖,其能量分布與織物圖像的經(jīng)緯紗紋路走向垂直??椢锞暭喖y路的頻譜能量分布在距離頻譜中心一定距離的上下半部分上,濾除所有頻譜中心部分的低能頻譜部分(背景),保留織物經(jīng)緯紗紋路部分的高能頻譜,最后通過傅里葉逆變換得到經(jīng)緯紗紋路更加清晰的4種類型織物重構(gòu)圖像,如圖4所示。
圖2 灰度織物圖像
圖3 頻譜能量圖
圖4 織物重構(gòu)圖像
從圖2原織物圖像到圖4織物重構(gòu)圖像的變化,可以看出織物圖像中的經(jīng)緯紗紋理更清晰,說明織物經(jīng)緯紗紋路信息都表現(xiàn)在頻譜能量圖的高頻部分上。通過頻域濾波增強(qiáng)織物經(jīng)緯紗紋路,有利于準(zhǔn)確定位織物緯紗紋路走向。
邊緣檢測算子有Roberts算子、LoG算子、Canny算子、Sobel算子等[11]。利用Roberts算子提取的邊緣比較粗,定位不準(zhǔn)確;二階微分邊緣檢測LoG算子,它對噪聲影響非常敏感,但邊緣方向檢測信息會丟失;Canny算子計算復(fù)雜,指定的參數(shù)較多;Sobel算子對噪聲具有良好的抑制作用,但對邊緣定位的準(zhǔn)確性較低[12]。Sobel算子檢測織物圖像的緯紗紋路邊緣有方向和幅度兩個屬性,可以計算出織物圖像中的邊緣方向圖和邊緣幅度圖。Sobel邊緣方向和幅度檢測算法是一種計算梯度值的邊緣檢測近似方法,它使用水平掩碼Mx和垂直掩碼My來檢測邊緣,所對應(yīng)的卷積模板如下式所示:
使用Mx和My分別對織物圖像從左向右和從上到下掃描,進(jìn)行卷積運(yùn)算。圖像的子窗口為[a]3×3如表1所示。
表1 緯斜檢測角度絕對偏差均值比對實驗結(jié)果 ( °)
表1 3×3的圖像子窗口
圖像子窗口的中心像素點(a4)的水平梯度Gx和垂直梯度Gy的計算公式如式(1)和式(2):
令h1=a6+2a7+a8,h2=a0+2a1+a2
Gx=(a6+2a7+a8)-(a0+2a1+a2)=h1+h2
(1)
令s1=a6+2a7+a8,s2=a0+2a1+a2
Gy=(a2+2a5+a8)-(a0+2a3+a6)=s1-s2
(2)
對子窗口圖像中的中心像素點使用掩碼Mx和My進(jìn)行卷積運(yùn)算,計算出梯度。在Sobel邊緣方向算子中,硬件是采用8位結(jié)構(gòu)實現(xiàn)的,表達(dá)最大值為255。當(dāng)子窗口中的每個貢獻(xiàn)像素都是最大值(255)時,h1、h2、s1、s2的最大值為1 024,需要10位結(jié)構(gòu)來存儲。為了解決這個硬件存儲問題,h1、h2、s1、s2的值均被限制在原值的1/4,也就是圖像子窗口中的每個貢獻(xiàn)像素值除以4,再計算h1、h2、s1、s2的值,如式(3):
(3)
判斷中心像素點(a4)是否為邊緣像素點,主要方法是通過中心像素點(a4)的梯度Grad與預(yù)定義的閾值(T)比較。如果中心像素點(a4)的梯度大于設(shè)定閾值,則將其歸為邊緣像素點(記為1),否則為非邊緣像素點(記為0)。判斷表達(dá)式如式(4),這樣可獲取織物圖像的緯紗紋理邊緣。
(4)
織物圖像中沿著緯紗紋路邊緣方向的像素變化較平緩,垂直于緯紗紋路方向的像素變化劇烈。通過使用微分計算方法,檢測緯紗紋路邊緣上的變化,沿著緯紗紋路方向的邊緣點具有相同的梯度方向,所以緯紗紋路方向與梯度方向基本一致,利用Sobel算子的邊緣方向檢測織物圖像中的緯紗紋路。
由于織物圖像受噪聲影響較大,經(jīng)緯紗的結(jié)構(gòu)突變明顯,所以適合采用大尺度的Sobel邊緣檢測模板進(jìn)行緯紗紋路的邊緣方向檢測。大尺度的Sobel邊緣檢測模板對織物圖像的噪聲平滑效果更好,但檢測的邊緣較模糊,但不影響整體緯紗紋路走向的判斷。將7×7Sobel模板與增強(qiáng)的織物圖像進(jìn)行卷積計算,輸出以矢量方式表示方向的圖像,即方向向量圖。7×7Sobel算子模板的水平掩碼和垂直掩碼模板如下。
7×7Sobel算子模板的水平掩碼如下式:
7×7Sobel算子模板的垂直掩碼如下式:
將這4種類型織物的增強(qiáng)圖像與大尺度7×7Sobel算子卷積運(yùn)算后輸出的邊緣方向圖,如圖5所示。
圖5 邊緣方向圖
觀察織物圖像的邊緣方向圖,在區(qū)間[40~140]的灰度值區(qū)域?qū)?yīng)于織物圖像中的緯紗紋路區(qū)域,所以通過形態(tài)學(xué)閾值分割法提取出織物緯紗紋路區(qū)域如圖6所示。再對該區(qū)域進(jìn)行形態(tài)學(xué)開閉運(yùn)算,平滑區(qū)域的毛刺,有利于提取的區(qū)域骨架與緯紗紋路匹配準(zhǔn)確度的提高。為了檢測織物緯斜,直接對緯紗紋路區(qū)域進(jìn)行霍夫變換,運(yùn)算量大,耗時長,無法滿足實時檢測織物緯斜的要求。細(xì)化織物緯紗紋路的邊緣方向區(qū)域,提取它的骨架,能夠大大減少霍夫變換的計算量,降低織物緯斜的檢測時間。為了生成單個像素寬度的緯紗區(qū)域骨架,采用下面的緯紗紋路區(qū)域骨架化算法實現(xiàn)。
圖6 緯紗紋路區(qū)域
算法1:緯紗邊緣方向區(qū)域骨架化
目標(biāo):生成單個像素寬度的緯紗區(qū)域骨架
1:Image ←binary _fabric_ image;
2:while (Not empty(Image)) do
3:Weft_Skeleton←Skeleton | (Image&(!(Opening(Image))));
4:Image← Erosion(Image);
5:end while
6:return Weft_Skeleton;
緯紗邊緣方向區(qū)域骨架化算法使用了形態(tài)學(xué)的開運(yùn)算和腐蝕運(yùn)算以及邏輯運(yùn)算的集合,它是Lantuejoul代表性應(yīng)用[13-14]。對4種類型織物緯紗邊緣方向區(qū)域重復(fù)運(yùn)行骨架化算法,織物紋路區(qū)域的骨架逐漸被縮小,直到接近接近單像素的緯紗區(qū)域中心曲線骨架停止,最終生成了單像素寬度的緯紗紋理邊緣方向區(qū)域骨架如圖7所示。緯紗紋路區(qū)域骨架只保留緯紗紋路區(qū)域分量的中心曲線,它沒有過多冗余的紋路像素,保持連通性和無毛刺等優(yōu)點。
圖7 緯紗紋路區(qū)域骨架化
標(biāo)準(zhǔn)霍夫變換(standard hough transform,SHT)算法是目前廣泛用于圖像中直線檢測的方法。它具有較強(qiáng)的抗噪聲能力,但運(yùn)算量較大、耗時長,不適合用于實時性要求高的系統(tǒng)[15]。標(biāo)準(zhǔn)霍夫變換將檢測到的直線從圖像空間映射到參數(shù)空間,根據(jù)點——正弦曲線之間的映射關(guān)系,得到一系列的正弦曲線相交亮點[16-18]。極坐標(biāo)系表示檢測直線的定義如式(5):
ρ=xcosθ+ysinθ
(5)
ρ表示原點到直線的法線距離,θ表示直線的法線與水平軸的夾角。
累積概率霍夫變換(progressive probabilistic hough transform,PPHT)算法是在SHT算法的基礎(chǔ)上改進(jìn)后的直線提取算法,PPHT算法是較好的直線檢測方法,采用隨機(jī)取樣點的映射方法,映射和直線的檢測交替進(jìn)行[19]。如果一部分像素點完成映射,對應(yīng)的映射參數(shù)能確定一條直線,則刪除其余待處理點集,從而減少運(yùn)算量,更快速處理較長的直線檢測。
為了快速檢測到織物圖像中的近似緯紗紋路骨架直線,采用下面的PPHT算法來實現(xiàn)。
算法2:織物緯紗紋路骨架直線提取的PPHT算法
輸入:I:二進(jìn)制織物緯紗骨架圖像;δ:角度區(qū)域分辨率;
SegP←:極坐標(biāo)中有交點達(dá)到最小投票數(shù)(大于該最小投票數(shù)的直線保留,否則刪除);
MinLineLength:最小線片段的長度值(大于該最小長度值的直線保留,否則刪除);
MaxLineGap:最大內(nèi)部線片段之間的間隙值(小于該最大間隙值的直線保留,否則刪除)。
輸出:檢測到的緯紗紋路骨架直線列表。
1:SegP←將織物緯紗圖像I上的前景點添加到像素點集中待處理;
2:C(ρi,θi)←0{累加器初始化};
3:for 像素點(xn,yn) do {隨機(jī)從SegP中取一像素點;}
4:for 0°≤θi<180°,角步距為δdo
5:ρi←xncosθi+ynsinθi;
6:C(ρi,θi)=C(ρi,θi)+1;
7:end for
8:ifCm=max{C(ρi,θi)}>Thresholdthen
9:尋找沿著直線的線片段;
L={(x,y)|ρi=xcosθi+ysinθi}在圖像空間中;
10:連接間隙≤MaxLineGap的鄰近線片段;
11:添加長度≥MinLineLength的線片段到輸出列表;
12:刪除點(x,y)∈{L∩SegP};
13:C←0{清空累加器};
14:end if
15:刪除已選的像素點 ;
16:end for
在PPHT累加器中找出極坐標(biāo)上交點的最大投票數(shù),最大投票數(shù)的交點與緯紗區(qū)域骨架直線相關(guān),根據(jù)SHT檢測直線原理,最大數(shù)量的共線點對應(yīng)著緯紗的近似直線。再將經(jīng)過PPHT織物緯紗紋路骨架直線檢測的算法運(yùn)算得到檢測線段的兩個端點。為了計算出近似織物緯紗的傾斜角度,通過幾何計算由直線兩端點坐標(biāo)值表示直線與水平軸之間的角度[19]。計算公式如式(6):
(6)
式(6)中的(x0,y0)和(xn,yn)是檢測緯紗直線兩端的笛卡爾坐標(biāo),公式的右半部分是斜率—弧度—角度轉(zhuǎn)換[20]。此外,先對所檢測的織物緯紗骨架直線傾斜角度(θ)進(jìn)行均值處理,再根據(jù)θ的正負(fù)號判定織物緯紗傾斜的方向角度(φ),織物緯紗傾斜的方向角度(φ)定義如式(7):
(7)
織物緯斜檢測采用PPHT算法的優(yōu)點是通過刪除已選的像素點或刪除已確定直線剩余的待處理點集來降低計算量,大大提高織物緯斜檢測速度,對能否達(dá)到對織物緯斜實時在線檢測的要求起到關(guān)鍵的作用。利用PPHT算法檢測的4種類型織物的緯斜角度再逆變換成近似緯紗紋路骨架直線如圖8所示。
圖8 近似緯紗紋路骨架直線
結(jié)合Sobel邊緣方向檢測和累加概率霍夫變換(PPHT)的織物緯紗傾斜檢測方法,是在機(jī)器視覺軟件平臺HALCON上實現(xiàn)的,檢測的準(zhǔn)確度和實時性均達(dá)到了企業(yè)應(yīng)用的要求。為了驗證提出的檢測方法準(zhǔn)確率,利用圖像處理軟件對采集的標(biāo)準(zhǔn)織物圖像進(jìn)行指定角度的旋轉(zhuǎn),采用步距角為1°進(jìn)行圖像旋轉(zhuǎn)得到不同緯斜傾斜角度的測試織物圖像集,并以該角度作為誤差衡量的基準(zhǔn)??紤]織物緯斜的實際情況,測試實驗選用4種不同類型的織物,每種類型織物取36幅圖像。檢測的織物緯斜圖像是小區(qū)域圖像,面積為:30 mm×30 mm,選取測試區(qū)間為[-16~16°]的織物緯斜角度。
統(tǒng)計4種類型的織物緯斜檢測數(shù)據(jù),并計算出檢測的緯斜角度與對應(yīng)的標(biāo)準(zhǔn)緯斜角度的偏差值。將4種類型織物圖像的檢測偏差值繪制成折線圖。從圖9可以看出,提出的織物緯斜檢測方法對所有測試織物圖像的緯斜檢測偏差值都能控制在0.1°以下。
為了進(jìn)一步驗證提出的織物緯斜檢測方法的準(zhǔn)確度,選取5種目前流行的織物緯斜檢測方法與該方法進(jìn)行對比,利用絕對角度偏差值指標(biāo)進(jìn)行比較。絕對偏差角度均值計算公式如式(8):
(8)
MAD(mean absolute deviation)為緯斜絕對偏差角度均值,E(j)為第j個織物圖像的緯斜角度檢測偏差值,N為檢測織物圖像樣本的數(shù)量。比較6種方法對織物緯斜檢測的絕對偏差均值如表2和圖10所示。
圖10 緯斜檢測偏差值
圖10 織物緯斜檢測偏差均值
從圖11可以看出,提出的Sobel和PPHT法與其它5種檢測方法對比4種類型織物的檢測偏差均值情況,很明顯提出的Sobel和PPHT法的檢測偏差均值最低,對不同類型織物的檢測適應(yīng)性最高。顯然,提出的織物緯斜檢測方法具有較高的準(zhǔn)確性和適應(yīng)性。
提出的Sobel和PPHT法和其他5種方法的織物緯斜檢測時間(s)統(tǒng)計如表3所示。從表3中可以看出,該方法對織物緯斜檢測時間低于0.6 s(以平均值計算),達(dá)到織物緯斜檢測的實時性要求。
表3 檢測時間比對實驗結(jié)果 s
對不同類型織物能夠快速準(zhǔn)確地檢測出其緯斜角度,提出了一種結(jié)合Sobel和PPHT的織物緯斜檢測方法。該方法采用頻域濾波增強(qiáng)織物圖像中的緯紗紋路,對織物圖像的緯紗進(jìn)行邊緣方向檢測,對邊緣方向圖進(jìn)行形態(tài)學(xué)閾值分割出緯紗紋路區(qū)域,提取緯紗紋路區(qū)域骨架,快速檢測出近似緯紗紋路直線并檢測出緯斜角度。通過測試數(shù)據(jù)表明,該方法能將檢測織物緯斜角度的偏差有效控制在0.1°以下,檢測時間小于0.6 s。因此結(jié)合Sobel邊緣方向和累加概率霍夫變換(PPHT)的織物緯斜檢測方法能滿足機(jī)器視覺整緯器的精確性、實時性和通用性要求。