周 軍,廖曉波,朱建公
(西南科技大學(xué)制造過程測(cè)試技術(shù)省部共建教育部重點(diǎn)實(shí)驗(yàn)室,四川 綿陽 621010)
當(dāng)前縫制行業(yè)的縫制軌跡是由工程師通過游標(biāo)卡尺等測(cè)量工具測(cè)量縫料的邊緣尺寸,再利用CAD 等繪圖軟件繪制出縫制軌跡,最后再利用專用的圖案生成軟件生成可直接供工業(yè)縫紉機(jī)使用的花樣文件[2]。但是,有許多待縫制的圖案路徑并不規(guī)則,各種曲線線條錯(cuò)綜復(fù)雜,這給繪制CAD 的工程師增添了不少麻煩。因此,針對(duì)這一問題我們提出了一個(gè)基于機(jī)器視覺的縫制軌跡自動(dòng)提取的算法。
對(duì)圖案的縫制軌跡進(jìn)行提取,已經(jīng)有很多比較成熟的方法。像最簡(jiǎn)單的圖像邊緣提取、圖像輪廓提取等。但是傳統(tǒng)的圖像邊緣原理基本都是圖片里面像素值變化最大的地方的梯度,這就意味著使用這些方法提取出的線條包含太多噪聲,同時(shí)也包含太多“斷線條”。“斷線條”在縫制過程中會(huì)出現(xiàn)不停剪線和跳針的情況,所以不適合用在縫制軌跡提取上。所以針對(duì)這一問題,很多學(xué)者研究一些算法是專門用來提取物體輪廓的,這大大減少了物體內(nèi)的不必要的噪聲線條的出現(xiàn)。這也為花樣機(jī)的縫制軌跡提取提供了不少方便。比如文獻(xiàn)[3]根據(jù)待提取目標(biāo)的先驗(yàn)知識(shí),提出了一種基于幾何活動(dòng)的輪廓提取方法,這種方法對(duì)目標(biāo)提取比較有針對(duì)性,對(duì)于不同的目標(biāo)識(shí)別性能不太好。文獻(xiàn)[4]利用傳統(tǒng)圖像邊緣提取的弱點(diǎn),提出了一種基于灰度閾值的圖像輪廓提取方法,這種方法抗干擾能力比較強(qiáng),但是由于其是對(duì)單像素進(jìn)行操作,對(duì)于縫制軌跡的提取會(huì)加入太多噪聲。針對(duì)這一問題文獻(xiàn)[5]以粒子濾波作為切入點(diǎn),建立圖像二維空間,以次來增加圖像的信息利用率,提出了一種新的圖像輪廓提取方法。這種方法確實(shí)有效緩解了輪廓提取中的絕大多數(shù)噪聲,也比較適用于工程應(yīng)用,但是算法復(fù)雜度較大,不太適合于實(shí)時(shí)領(lǐng)域。為了增強(qiáng)實(shí)時(shí)效果,文獻(xiàn)[6]在圖像的頻域進(jìn)行研究,針對(duì)城市道路中的綠燈進(jìn)行優(yōu)化,提出了基于頻域的圖像輪廓提取方法,這種方法實(shí)時(shí)性很好,但是算法運(yùn)用比較局限。文獻(xiàn)[7]針對(duì)實(shí)時(shí)視頻監(jiān)控領(lǐng)域,利用Douglas-Peucker 算法作為基礎(chǔ),采用圖像目標(biāo)輪廓質(zhì)心的方式來提取目標(biāo)輪廓,這在很大程度上消除了噪聲的影響,并且也能達(dá)到實(shí)時(shí)性能要求。但是這種方法提取出的輪廓跟目標(biāo)實(shí)際輪廓相差太大,不適用于縫制路徑的提取。同時(shí),國(guó)外也有許多輪廓提取的算法,如文獻(xiàn)[8]提出了一種基于圖像像素分類的輪廓提取方式,這向圖像智能識(shí)別、智能提取方向邁進(jìn)了一大步,但是這種算法由于需要事先進(jìn)行訓(xùn)練,因此對(duì)于縫制軌跡提取不太實(shí)用。文獻(xiàn)[9]為了快速準(zhǔn)確的提取出圖像目標(biāo)輪廓,利用康普頓窗重新確定凸輪廓,這主要用于在醫(yī)學(xué)圖像方面,對(duì)于自然圖像的輪廓提取也不是太好。針對(duì)自然圖像的輪廓提取中,文獻(xiàn)[10]利用Matting 原理提出了一種基于隨機(jī)步長(zhǎng)的圖像分割方法,此方法能夠很好地從自然圖像中分割出所需要的目標(biāo)邊緣,但是由于采用的是步長(zhǎng)的方式,輪廓邊緣有非常明顯的“階梯”狀,并且該算法耗時(shí)巨大,不適合利用在花樣軌跡提取。
上述描述的方法在確實(shí)能夠很好地提取出圖像的輪廓,并且一些算法的實(shí)時(shí)性能也算良好。但是在縫制路徑的提取中,要求圖像是自然圖像,這就意味著圖像里面背景和目標(biāo)相互交錯(cuò),一般算法無法正確去除目標(biāo)和背景。導(dǎo)致在自然圖像輪廓提取中出現(xiàn)較大噪聲,甚至根本無法提取其目標(biāo)輪廓。針對(duì)這一問題,利用圖像摳圖理論[11]提出并實(shí)現(xiàn)了一種基于自然圖像輪廓提取的算法。
在數(shù)字圖像處理領(lǐng)域和計(jì)算機(jī)圖像學(xué)中,背景與目標(biāo)用以下式子表達(dá):

式中:Ii—獲取的圖像的像素值;Fi—獲取圖像中的目標(biāo)像素(前景像素);Bi—獲取圖像中的背景像素;α—目標(biāo)像素的不透明度。在一張普通的自然圖像中,上式右邊全是未知量,而我們的任務(wù)則是要求出上式中的目標(biāo)像素Fi,這也就意味著我們要將上式右邊中的不透明度α 先求出。將上式變形得:



式中:W—在第j 個(gè)窗口中像素的總個(gè)數(shù)。于是有:


將式(6)回帶入式(5)中,可以得到:

上式中的最后一項(xiàng)簡(jiǎn)化了所有矩陣,其中L(N×N)稱為Matting Laplacian[11](后文簡(jiǎn)稱ML 矩陣)矩陣。經(jīng)計(jì)算,它的通項(xiàng)為:

式中:μk、Σk—窗口 k 像素的均值和方差;δij—克羅內(nèi)克函數(shù)。
通過定義我們可以知道,式(7)中的 L(i,j)是一個(gè)比較稀疏的矩陣。如果沒有其他約束,要想從(7)求得唯一解,幾乎不太可能。因此,我們必須依靠用戶手工標(biāo)注來表示已知的前景和背景像素,以此來約束(7)式的解。這樣,問題就變成了:

將上式變形為:

式中:αK—N×1 的向量,其值在前景像素位置為1,在其他位置為0;D—一個(gè)對(duì)角矩陣,他的對(duì)角元素在用戶輸入的位置為1,其他位置為1。λ—一個(gè)非常大的數(shù),它主要是用來將用戶輸入強(qiáng)制與最終的解拉近。于是(10)式的求解就可以等效為:

從式(11)中我們便可求得唯一解。
通過式(7)可以知道,ML 矩陣L的特征向量其實(shí)就是不透明α 度的解,由于矩陣L有若干個(gè)特征向量,而且這其中大部分特征向量對(duì)于不透明度α 來說是沒有意義的。由文獻(xiàn)[12]可以知道,矩陣L 的最小特征值所對(duì)應(yīng)的特征向量所包含的Matting 信息最為豐富,不同的特征向量代表不同的Matting 組分。因此我們可以將式(7)中的求最小值問題轉(zhuǎn)換為如下約束優(yōu)化問題:


其中E=[e1,…,eK],分別對(duì)應(yīng)ML 矩陣最小特征值所對(duì)應(yīng)的K 個(gè)特征向量;式(14)表示在每個(gè)像素的所有Matte 組分之和必須為1。在式(12)中,由于我們最終得到的Matte 只有唯一的一個(gè),因此其中的k=1,而ρ 的值定為0.9,因此式(12)可以變?yōu)椋?/p>

式(15)便是最終選擇的CRF 特征函數(shù),其表示了在各個(gè)像素點(diǎn)α 的值對(duì)總的損失函數(shù)的貢獻(xiàn)。
要使用條件隨機(jī)場(chǎng)[12]來智能獲取目標(biāo)輪廓,將圖像模型抽象,如圖1 所示。

圖1 基于Matting 的隨機(jī)步長(zhǎng)Fig.1 Random Step Based on Matting
從圖1 中可以看出,輪廓線出現(xiàn)的位置只能是在背景和目標(biāo)之間的位置,也就是0<α<1 的位置。輪廓提取的目標(biāo)就是在0<α<1 之間眾多的序列中尋找一條閉合的路徑,并且這條路徑必須要滿足以下條件[2]:
(1)相應(yīng)的錨點(diǎn)位置不能處于背景或者目標(biāo)像素,并且錨點(diǎn)之間的連線不能與B 和F 有交集;
(2)路徑的方向只能沿著B 和F 之間的區(qū)域,不能回旋;
(3)路徑的選取要以包容目標(biāo)像素為主,這樣得到的路徑才是準(zhǔn)確的;
(4)盡可能的減少錨點(diǎn)數(shù)量,減少輪廓線的毛刺。
從上述條件中可以知道,這條路徑并不唯一,但是在實(shí)現(xiàn)本算法的時(shí)候只要找到一條符合要求的路徑就可以結(jié)束程序。于是針對(duì)某一條序列可以得到下式:

其中,p(l|s)定義為:

式中:l—具體某條序列(軌跡),而s 則代表在F 和B 之間所有的所帶來的α 總的損失值。這樣一來,通過極大似然估計(jì)法就可以求得最終的一條比較準(zhǔn)確的軌跡。上式(16)跟logistic回歸[13]的表達(dá)式基本一致,不過CRF 模型注重的是序列,換句話說式(16)其實(shí)就是邏輯回歸的序列號(hào)版本。
實(shí)際上僅憑式(16)、式(17)是無法完成整個(gè)的輪廓的提取的。其中還有2 個(gè)未知量:帶評(píng)定的序列(軌跡)和軌跡步長(zhǎng)。
從式(8)所代表的矩陣中可以定以如下標(biāo)記方向矩陣:

這其中的eij采用默認(rèn)的方向進(jìn)行初始化,vk則代表圖像中邊緣處的頂點(diǎn)。于是ML 矩陣L 可以利用矩陣A 來進(jìn)行表示:

于是邊緣處的狄利克雷積分表示為:

這個(gè)積分表示的是目標(biāo)邊緣向A 方向的所有像素點(diǎn)的集合。也就是式(16)中的序列。
算法的實(shí)現(xiàn)已經(jīng)在Matlab 下完成,運(yùn)行環(huán)境為windows 10企業(yè)版64 位操作系統(tǒng)。處理器為i7-7700HQ,4 核2.8GHz 主頻。

圖2 算法結(jié)果Fig.2 Algorithm Results in this Paper

圖3 邊緣算子結(jié)果Fig.3 Edge Operator Result
從圖2 和圖3 中可以很明顯看到,算法提取的自然圖像中的目標(biāo)輪廓相比使用常規(guī)的算子邊緣提取方法要光滑很多,這使得工業(yè)縫制設(shè)備可以很大程度上加快縫制的速度。并且使用其他邊緣提取算法所得到的目標(biāo)輪廓中有許多孤立的點(diǎn)和孤島存在,這是在縫制過程中不容許出現(xiàn)的。其中,利用文獻(xiàn)[10]提取的輪廓,如圖4 所示。

圖4 文獻(xiàn)結(jié)果Fig.4 Paper’s Results
從圖4 中可以看出,利用文獻(xiàn)[10]得出的結(jié)果中仍然具有孤島存在,并且其中在圖中牛的脖子部位有明顯的梯度線條出現(xiàn),如圖5、圖6 所示。

圖5 算法結(jié)果Fig.5 Algorithm Results in this Paper

圖6 左:文獻(xiàn);右:這里算法Fig.6 Left:Paper;Right:this Paper
梯度線條的出現(xiàn)會(huì)導(dǎo)致軌跡在縫制過程中方向突變,降低縫制效率。而這里算法在這些地方有明顯改進(jìn),并且上圖算法的運(yùn)行只花了1.33s,而文獻(xiàn)[10]卻需要2.14s,速度提升了近40%。
為了體現(xiàn)這里算法速度的提升,在測(cè)試的時(shí)候分別利用大小為 300×300、400×400、500×500、600×600 以及 720×600 的圖片分別運(yùn)行5 次進(jìn)行測(cè)試,結(jié)果如表1 所示。

表1 算法時(shí)間對(duì)比 單位(s)Tab.1 Algorithm Time Comparison
從上面中可以看出,這里算法在經(jīng)過優(yōu)化后與文獻(xiàn)[10]相比能夠整體提高31%左右。
算法的一些其他例子:

圖7 這里算法示例2Fig.7 Example 2 of this Algorithm

圖8 這里算法示例3Fig.8 Example 3 of this Algorithm
從上面示例中可以看出,這里算法在處理自然圖像縫制軌跡(輪廓)的提取上具有良好的作用效果,相比目前成熟的邊緣提取算法、輪廓提取算法而言具有較強(qiáng)的專一性。另外,自然圖像由于背景復(fù)雜,因此在目標(biāo)的選取中需要有人工參與,即采用大致標(biāo)注的方式將目標(biāo)像素和背景像素區(qū)分,這樣使得這里算法具有較強(qiáng)的適應(yīng)性。并且這里算法運(yùn)行速度大大提升,使得算法的應(yīng)用范圍更加廣泛。
基于自然圖像的Matting,構(gòu)建CRF 模型,提取出自然圖像中目標(biāo)的輪廓線。由于工業(yè)縫紉機(jī)對(duì)于縫制軌跡的要求較高,所以傳統(tǒng)的邊緣提取算法和輪廓提取算法顯得無能為力。其主要原因是傳統(tǒng)的邊緣提取和輪廓提取算法幾乎都是依賴于像素與像素之間的差異而開發(fā)的算法,因此所提取出的輪廓過于“精確”,導(dǎo)致提取出的輪廓線噪聲太多,不滿足工業(yè)縫紉機(jī)的縫制要求。因此提出的這種算法專門用于解決這種問題的出現(xiàn)。實(shí)驗(yàn)結(jié)果表明,提出的算法對(duì)于自然圖像的目標(biāo)輪廓提取方面具有較強(qiáng)的適應(yīng)性,并且提取出的輪廓較為光滑,無“孤點(diǎn)”、“孤島”的現(xiàn)象存在,非常適用于工業(yè)縫紉機(jī)的縫制軌跡。但是這里算法也有一定不足,就是由于算法計(jì)算量大,導(dǎo)致算法運(yùn)行時(shí)間依然很長(zhǎng),如需應(yīng)用到實(shí)時(shí)領(lǐng)域,還需要對(duì)算法進(jìn)行優(yōu)化。