田俊杰, 張李超, 趙 星, 白 宇
(華中科技大學(xué) 材料成型與模具技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室, 湖北 武漢 430074)
目前,智能制造已成為中國(guó)制造業(yè)的重點(diǎn)發(fā)展方向,而機(jī)器視覺(jué)作為智能制造設(shè)備感知信息的核心技術(shù)受到越來(lái)越廣泛的關(guān)注[1]。作為傳統(tǒng)勞動(dòng)力密集型行業(yè),紡織品加工在基于機(jī)器視覺(jué)的紡織品檢測(cè)、切割加工等智能自動(dòng)化設(shè)備方面有著巨大的潛力[2]。對(duì)于許多涉及紡織品智能識(shí)別與檢測(cè)技術(shù)都需要提取紡織品的主結(jié)構(gòu)信息,如紡織圖案形狀大小偏差檢測(cè)、紡織品缺陷識(shí)別、床單窗簾經(jīng)編織造后沿花邊切割等。由于傳統(tǒng)基于模板匹配的機(jī)器視覺(jué)只適用于剛性物體,對(duì)具有柔性的紡織品應(yīng)用效果不理想,目前中國(guó)多數(shù)紡織品加工企業(yè)對(duì)于床單、窗簾沿花邊切割還采取人工電熱絲切割的方式,而對(duì)紡織品圖案形狀大小偏差檢測(cè)、紡織品缺陷識(shí)別也采用人工尺具檢測(cè)。這種狀況極大地影響紡織品產(chǎn)品的一致性,也限制了行業(yè)成本降低與生產(chǎn)效率的提高。對(duì)紋理進(jìn)行剔除的同時(shí)提取主結(jié)構(gòu)來(lái)滿足紡織品加工的實(shí)時(shí)花邊提取或形狀位置偏差檢測(cè),為改變這種狀況的瓶頸問(wèn)題。
快速穩(wěn)定提取紡織品主結(jié)構(gòu)算法的核心在于剔除紋理的效果和算法處理的速度。剔除紋理效果的重點(diǎn)在于保留主結(jié)構(gòu)信息的同時(shí)對(duì)紋理進(jìn)行模糊處理,涉及圖像處理中的保邊濾波;算法處理速度的重點(diǎn)則是大型稀疏矩陣的求逆。文獻(xiàn)[3-4]提出的幾種方法采用了優(yōu)化的總變化量圖像正則化器。用總變化量區(qū)分紋理和主結(jié)構(gòu)的效果不太令人滿意,因?yàn)榧y理和主結(jié)構(gòu)在優(yōu)化時(shí)可能接受相似的懲罰。Farbman等[5-6]提出了一種邊界保留濾波器,在保留邊界的同時(shí)對(duì)圖像進(jìn)行平滑處理,但是由于對(duì)紋理和主結(jié)構(gòu)的權(quán)重系數(shù)大小接近,不能很好地適用于紋理剔除。本文基于加權(quán)最小二乘法對(duì)紡織品圖案進(jìn)行保邊濾波處理,并提出了一種懲罰算子可克服上述幾種算法只能區(qū)分圖像邊界的缺陷,可有效區(qū)分紋理和主結(jié)構(gòu)區(qū)域,在保邊濾波過(guò)程中保留主結(jié)構(gòu)信息的同時(shí)剔除紋理,而且對(duì)不同紡織密度、存在織物密度不均和破洞等不同品質(zhì)缺陷的紡織品有較強(qiáng)的適應(yīng)性。
紡織品沿輪廓切割或圖案形狀位置檢測(cè)一般采用流水線模式,對(duì)實(shí)時(shí)性要求較高。加權(quán)最小二乘法提取主結(jié)構(gòu)過(guò)程中用到了稀疏的不均勻拉普拉斯矩陣,當(dāng)圖像的大小為m行n列時(shí),拉普拉斯矩陣的大小為m×n行m×n列。要得到處理結(jié)果需對(duì)拉普拉斯矩陣進(jìn)行求逆,若用一般的矩陣求逆方式,時(shí)間復(fù)雜度為O(n3)(n為拉普拉斯矩陣的行數(shù)),時(shí)間消耗較長(zhǎng)而無(wú)法接受,必須在求線性方程解的過(guò)程中利用稀疏矩陣的特性做特殊處理。
常用的求解大型稀疏矩陣線性系統(tǒng)的方法有Jacobi迭代器法、Gauss-Seidel迭代器法和SOR迭代器法等[7]。Krishnan等[8]為出現(xiàn)在各種計(jì)算機(jī)圖形應(yīng)用領(lǐng)域的離散泊松方程提出一個(gè)新的多級(jí)預(yù)處理方案。該方法通過(guò)去除領(lǐng)域內(nèi)潛在的細(xì)微級(jí)變量之間的弱連接以及對(duì)這些變化的補(bǔ)償,并在所得到的較小系統(tǒng)上遞歸地重復(fù)該稀疏過(guò)程可得到較好的加速效果;但文中根據(jù)鄰域內(nèi)粗細(xì)變量的拓?fù)潢P(guān)系選擇不同的稀疏方法加大了時(shí)間消耗,且在迭代過(guò)程中不能抑制矩陣條件數(shù)的增長(zhǎng)。本文采用分層預(yù)處理器對(duì)稀疏矩陣進(jìn)行預(yù)處理以減少時(shí)間消耗,并在構(gòu)建分層預(yù)處理器過(guò)程中使用一種更簡(jiǎn)單有效的稀疏與補(bǔ)償方法用于劃分強(qiáng)弱連接。
圖1為紡織品主結(jié)構(gòu)與紋理示意圖。圖中右上角是空間重復(fù)紋理的局部放大圖,右下角是含有主結(jié)構(gòu)信息區(qū)域的局部放大圖。本文的目的是快速剔除重復(fù)紋理的同時(shí)保留主結(jié)構(gòu)信息,以利于后續(xù)的紡織品輪廓提取以及紡織品圖案形狀位置偏差檢測(cè)處理。
圖1 主結(jié)構(gòu)與紋理示例Fig.1 Main structure and texture examples
圖像處理中采用加權(quán)最小二乘法來(lái)進(jìn)行保邊濾波,在保留邊界的同時(shí)對(duì)圖像進(jìn)行模糊處理。其中加權(quán)最小二乘法的定義為:
(1)
ax,p(u)=Mx,p(u)+ε-1
(2)
ay,p(u)=My,p(u)+ε-1
(3)
式中:ε是一個(gè)很小的正數(shù),Mx,p(u)與My,p(u)是本文提出的輸入圖像u某個(gè)像素點(diǎn)p處的懲罰算子,分別定義為:
(6)
式中:σ為超高斯分布的方差,其中進(jìn)行局部卷積的鄰域;xp為yp為像素點(diǎn)p的橫縱坐標(biāo);xq和yq為像素點(diǎn)q的橫縱坐標(biāo)。
求解式(1)可得輸入圖像與輸出圖像之間的關(guān)系。加權(quán)最小二乘法的求解步驟可參照Farbman等[5]提出的矩陣轉(zhuǎn)換過(guò)程。由文獻(xiàn)[5]中求解步驟可得到使求和式(1)最小的輸出圖像S與輸入圖像之間的關(guān)系:
(7)
對(duì)于紡織品圖案的圖像,本文提取主結(jié)構(gòu)的算法1步驟如下:1)圖像u、鄰域范圍σ和權(quán)重因子λ作為輸入;2)根據(jù)式(2)、(3)計(jì)算x方向和y方向權(quán)重值ax,p(u)、ay,p(u);3)根據(jù)ax,p(u)與ay,p(u)計(jì)算矩陣L;4)由式(2)對(duì)稀疏矩陣L進(jìn)行分層預(yù)處理;5)將輸出圖像S作為輸入圖像u,迭代此算法數(shù)次;6)將紡織品圖案作為輸入圖像u計(jì)算輸出圖像,迭代數(shù)次可從圖像u中剔除紋理得到主結(jié)構(gòu)圖S。
為驗(yàn)證本文提出的懲罰算子的有效性,采用了Xu等[9]的紡織品紋理圖案樣本庫(kù),此樣本庫(kù)包含了50張紡織圖案,以及對(duì)應(yīng)的人工標(biāo)出的主結(jié)構(gòu)圖案,如圖2所示。
本文使用的每張圖像為從樣本庫(kù)中隨機(jī)提取出大小為29像素×29像素點(diǎn)區(qū)域的方式生成樣本塊,并根據(jù)人工標(biāo)出的主結(jié)構(gòu)圖將樣本塊分為主結(jié)構(gòu)樣本塊和紋理樣本塊。圖2(b)、(c)分別是主結(jié)構(gòu)樣本塊和紋理樣本塊的示例。每張圖片生成主結(jié)構(gòu)樣本塊和紋理樣本塊各 2 500 個(gè),這樣就建立了1個(gè)主結(jié)構(gòu)樣本塊和紋理樣本塊各125 000張的樣本庫(kù)。為驗(yàn)證懲罰算子的有效性,需要證明懲罰算子能在主結(jié)構(gòu)區(qū)域像素點(diǎn)和紋理區(qū)域像素點(diǎn)附近產(chǎn)生不同的值。
對(duì)樣本庫(kù)中每一個(gè)樣本塊根據(jù)式(4)、(5)計(jì)算圖像中心像素點(diǎn)處懲罰算子Mx,p(u)和My,p(u)的值,參數(shù)σ的值定為5。圖3示出對(duì)整個(gè)樣本庫(kù)每個(gè)樣本計(jì)算懲罰算子的值而得出的主結(jié)構(gòu)樣本塊和紋理樣本塊的Mx,p(u)+Mx,y(u)值分布的概率直方圖??梢钥闯?,本文提出的懲罰算子的值在紋理樣本中分布大多數(shù)集中在0附近,而其在主結(jié)構(gòu)樣本上中主要在區(qū)間0~0.014 都有分布,所以懲罰算子可有效區(qū)分主結(jié)構(gòu)區(qū)域與紋理區(qū)域。
注:圖(a)、(b)中第1行為樣本庫(kù)中隨機(jī)挑選的紡織品圖案;第2行為與其對(duì)應(yīng)的人工標(biāo)出的主結(jié)構(gòu)邊界;圖(c)第1行紡織品圖案中無(wú)主結(jié)構(gòu)邊界,與其對(duì)應(yīng)的第2行無(wú)圖案信息。圖2 用于測(cè)試懲罰算子有效性的樣本庫(kù)Fig.2 A sample library for testing validity of a penalty operator. (a) Textile pattern; (b) Samples containing boundaries of main structure; (c) Samples only containing texture
圖3 懲罰算子值的概率分布直方圖Fig.3 Probability distribution histogram of penalty operator values. (a) Texture sample; (b) Main Structure
圖4示出應(yīng)用算法1對(duì)紡織品圖案提取主結(jié)構(gòu)的示例,其中迭代次數(shù)為4次。圖4(a)示出大小為250像素×250像素的紡織品圖案的1個(gè)示例,圖像在提取主結(jié)構(gòu)后,可用于后續(xù)的形狀位置偏差檢測(cè)。圖4(b)示出提取主結(jié)構(gòu)的效果展示。圖4(c)是本實(shí)驗(yàn)室基于機(jī)器視覺(jué)的紡織品圖案沿輪廓切割項(xiàng)目中的實(shí)際圖像,大小為1 280像素×1 024像素。此項(xiàng)目中圖像處理的目標(biāo)是提取出紡織品花邊所在的輪廓位置以用于切割加工,而使用本文算法提取主結(jié)構(gòu)可減少紋理對(duì)提取花邊的干擾。在目前國(guó)內(nèi)很多紡織品加工企業(yè)中,紡織品本身品質(zhì)良莠不一,紡織圖案各區(qū)域的濃密程度不一,還存在小的紡織缺陷的干擾,這使提取紡織品輪廓信息難度加大,圖4(c)示例了這種情況,同時(shí)比較了不同系數(shù)λ的提取效果,增大λ的值可加大模糊程度,從一致性很差的紡織品中提取主結(jié)構(gòu),有利于后續(xù)的輪廓提取。
圖4 紡織品圖案提取主結(jié)構(gòu)效果Fig.4 Effect of main structure of textile pattern extraction. (a) Figure 1 of raw and extracted; (b) Figure 2 of raw and extracted; (c) Figure 3 raw and extracted
算法1中大規(guī)模稀疏矩陣直接求逆會(huì)消耗大量時(shí)間,在流水線輪廓切割或形狀位置偏差檢測(cè)等實(shí)時(shí)性要求高的場(chǎng)景下時(shí)間代價(jià)不可接受,本文采用一種分層預(yù)處理的方案以減少算法中矩陣求逆的時(shí)間消耗,定義為算法2。
來(lái)消除粗節(jié)點(diǎn)與細(xì)節(jié)點(diǎn)之間的聯(lián)系,在矩陣L兩邊分別乘以PT和P,可得到原問(wèn)題的一個(gè)小的子系統(tǒng):
劃分粗細(xì)節(jié)點(diǎn),消除粗節(jié)點(diǎn)與細(xì)節(jié)點(diǎn)之間的連接并對(duì)此變化進(jìn)行補(bǔ)償。通過(guò)在更小的子系統(tǒng)中迭代該過(guò)程可構(gòu)建分層的預(yù)處理器。Krishnan等[10]根據(jù)領(lǐng)域內(nèi)粗細(xì)節(jié)點(diǎn)的分布采用不同的稀疏方法,增加了時(shí)間復(fù)雜度,且在迭代過(guò)程中不能抑制矩陣條件數(shù)的增長(zhǎng)。本文提出了一種簡(jiǎn)單的局部稀疏和補(bǔ)償算法來(lái)劃分粗細(xì)節(jié)點(diǎn)。圖5示出一個(gè)局部稀疏補(bǔ)償案例。在相鄰的3個(gè)節(jié)點(diǎn)組成的三角形中去除最長(zhǎng)邊,并將最長(zhǎng)邊的權(quán)重分別加到其他兩邊上。圖5(a)為節(jié)點(diǎn)間連接的鄰接矩陣的示意圖, 其中W表示節(jié)點(diǎn)間權(quán)重值。圖5(b)示出某個(gè)局部三角形內(nèi)去除最長(zhǎng)邊,并將最長(zhǎng)邊的權(quán)重用于懲罰三角形中其他兩邊的過(guò)程。
圖5 矩陣局部稀疏補(bǔ)償示例Fig.5 Matrix sparse compensation example. (a) Node adjacency matrix diagram; (b) Example of local sparse compensation
算法2為本文在一次稀疏處理中對(duì)矩陣L的處理流程:1) 輸入為拉普拉斯矩陣L,當(dāng)前迭代次數(shù)為t,節(jié)點(diǎn)的網(wǎng)格坐標(biāo)數(shù)組為X、Y。輸出為代表粗節(jié)點(diǎn)的索引向量C和稀疏后的矩陣L~;2) 去除拉普拉斯矩陣L對(duì)角線的元素,將對(duì)角線元素存儲(chǔ)在D中,將L中元素的值取其相反數(shù),得到鄰接矩陣;3) 將所有節(jié)點(diǎn)的屬性設(shè)為未知,第1個(gè)節(jié)點(diǎn)設(shè)為細(xì)節(jié)點(diǎn);4) 遍歷矩陣中每個(gè)節(jié)點(diǎn)i,如果i是粗節(jié)點(diǎn),則忽略這個(gè)節(jié)點(diǎn),轉(zhuǎn)而對(duì)下一個(gè)節(jié)點(diǎn)進(jìn)行處理;如果i是細(xì)節(jié)點(diǎn),遍歷節(jié)點(diǎn)i組成的每個(gè)三角形V,去除三角形V最長(zhǎng)邊,并懲罰其他兩邊。根據(jù)節(jié)點(diǎn)屬性數(shù)組中的值設(shè)定節(jié)點(diǎn)是粗節(jié)點(diǎn)還是細(xì)節(jié)點(diǎn);5) 矩陣L的值取其相反數(shù),并加上D中對(duì)角線元素,得到稀疏后矩陣L~。
其中節(jié)點(diǎn)屬性數(shù)組的分配根據(jù)下式計(jì)算。
(8)
式中:t表示當(dāng)前的迭代次數(shù);x和y表示節(jié)點(diǎn)的網(wǎng)格坐標(biāo);當(dāng)Flag=1時(shí)表示節(jié)點(diǎn)為粗節(jié)點(diǎn),F(xiàn)lag=0時(shí)表示節(jié)點(diǎn)為細(xì)節(jié)點(diǎn)。
節(jié)點(diǎn)屬性數(shù)組的目的在于根據(jù)迭代次數(shù)的增加,在鄰域內(nèi)均勻交錯(cuò)的分布粗細(xì)節(jié)點(diǎn)。圖6示出對(duì)256個(gè)分布在16像素×16像素網(wǎng)格坐標(biāo)中的點(diǎn),迭代次數(shù)從t=1到t=5變化時(shí)粗細(xì)節(jié)點(diǎn)屬性分布的一個(gè)示例。紅色表示細(xì)節(jié)點(diǎn),黑色表示粗節(jié)點(diǎn)。
圖6 不同迭代次數(shù)的節(jié)點(diǎn)屬性分布示例Fig.6 Example of node attribute distribution at different iterations. (a) First iteration; (b) Second iteration; (c) Third iteration; (d) Fourth iteration; (e) Fifth iteration
圖7示出稀疏的過(guò)程,每張圖片代表了1次稀疏過(guò)程,其中紅色節(jié)點(diǎn)表示細(xì)節(jié)點(diǎn),黑色節(jié)點(diǎn)表示粗節(jié)點(diǎn),紅色連接線代表稀疏過(guò)程中被去除的邊,藍(lán)色連接線表示稀疏過(guò)程被保留下來(lái)的邊,邊的粗細(xì)代表權(quán)重的相對(duì)大小。圖7(a)是一個(gè)四點(diǎn)鄰域的拉普拉斯矩陣的鄰接圖,節(jié)點(diǎn)之間的連線代表權(quán)重。圖7(h)表示稀疏的最終結(jié)果。
圖7 矩陣被稀疏化的過(guò)程Fig.7 Matrix thinning process. (a) Neighborhood weights; (b) First iteration; (c) Second iteration; (d) Third iteration; (e) Fouth iteration; (f) Fifth iteration;(g) Sixth iteration;(h) Seventh iteration
表1 矩陣求逆平均時(shí)間比較
由表1中不同圖案大小的平均求解時(shí)間及預(yù)處理前后平均求解時(shí)間的對(duì)比可看出,對(duì)于較小的圖案(如64像素×64像素的圖案),預(yù)處理的加速效果不明顯,隨著圖案大小的增加,預(yù)處理前后時(shí)間之比越來(lái)越大,加速效果越來(lái)越明顯。
本文提出一種懲罰算子在加權(quán)最小二乘法處理紡織品圖案過(guò)程中對(duì)主結(jié)構(gòu)和紋理進(jìn)行不同程度的模糊處理以剔除紋理,保留主結(jié)構(gòu)。經(jīng)大量樣本測(cè)試驗(yàn)證了懲罰算子在主結(jié)構(gòu)和紋理附近可產(chǎn)生不同大小的權(quán)重值。由于提取主結(jié)構(gòu)過(guò)程中稀疏矩陣的求逆時(shí)間消耗較大,本文采用分層預(yù)處理對(duì)加權(quán)最小二乘法處理紡織品圖案過(guò)程中大型稀疏矩陣的求解進(jìn)行加速,經(jīng)實(shí)驗(yàn)檢測(cè),可在不影響提取主結(jié)構(gòu)效果的同時(shí)有效降低稀疏矩陣的條件數(shù)以減少求逆時(shí)間消耗,加快主結(jié)構(gòu)的提取速度。
FZXB
參考文獻(xiàn):
[1] 王耀南,陳鐵健,賀振東,等. 智能制造裝備視覺(jué)檢測(cè)控制方法綜述[J].控制理論與應(yīng)用, 2015,32(3): 273-286.
WANG Yaonan, CHEN Tiejian, HE Zhendong, et al. A survey of visual detection and control methods for intelligent manufacturing equipment [J]. Control Theory and Application, 2015,32(3): 273-286.
[2] 李文羽, 程隆棣. 基于機(jī)器視覺(jué)和圖像處理的織物疵點(diǎn)檢測(cè)研究新進(jìn)展[J]. 紡織學(xué)報(bào), 2014,35(3): 158-164.
LI Wenyu, CHENG Longdi. New advances in fabric defect detection based on machine vision and image processing[J]. Journal of Textile Research, 2014,35(3): 158-164.
[3] LISCHINSKI D, FARBMAN Z, UYTTENDAELE M, et al. Interactive local adjustment of tonal values[J]. ACM Transactions on Graphics, 2006,25(3): 646-653.
[4] YIN W, GOLDFARB D, OSHER S. Image Cartoon-texture Decomposition and Feature Selection Using the Total Variation Regularized L1 Functional[M]. Berlin: Springer Berlin Heideberg, 2005:73-84.
[5] FARBMAN Z, FATTAL R, LISCHINSKI D, et al. Edge-preserving decompositions for multi-scale tone and detail manipulation[J]. ACM Transactions on Graphics, 2008,27(3): 1.
[6] FARBMAN Z, FATTAL R, LISCHINSKI D. Diffusion maps for edge-aware image editing [J]. ACM Transactions on Graphics, 2010,29(6):145.
[7] SAAD Y. Iterative Methods for Sparse Linear Sys-tems[M]. 北京:科學(xué)出版社, 2009:245-319.
SAAD Y. Iterative Methods for Sparse Linear Sys-tems [M]. Beijing:Science Press, 2009:245-319.
[8] KRISHNAN D, FATTAL R, SZELISKI R, et al. Efficient preconditioning of lapalacian matrices for computer graphics[J]. ACM Transactions on Graphics, 2013,32(4):142.
[9] XU L, YAN Q, XIA Y, et al. Structure extraction from texture via relative total variation[J]. ACM Transactions on Graphics, 2012, 31(6):139.
[10] KRISHNAN D, SZELISKI R. Multigrid and multilevel preconditioners for computational photography[J]. ACM Transactions on Graphics, 2011, 30(6):1-10.