李 亮, 倪俊芳
(蘇州大學(xué) 機(jī)電工程學(xué)院, 江蘇 蘇州 215021)
花型樣條加工代碼通常是由花樣設(shè)計(jì)者以直線、圓弧、樣條曲線等基本線條通過(guò)移動(dòng)、復(fù)制、鏡像、旋轉(zhuǎn)等操作繪制出圖形輪廓,再通過(guò)逼近、插補(bǔ)等算法的轉(zhuǎn)化,得到的可用于絎縫機(jī)或特定數(shù)控系統(tǒng)的加工代碼[1-2],可直接用于床墊、床罩、棉被等織物的絎縫加工?;用柚扑惴╗3]即通過(guò)上述操作對(duì)目標(biāo)絎縫圖像進(jìn)行描摹繪制,從而使圖像輪廓作為加工路徑,將面料、填充料、底料縫制在一起,實(shí)現(xiàn)外層布料與填充料之間的相對(duì)固定,同時(shí)增加絎縫制品的立體感與美感。該方法可大大降低花樣設(shè)計(jì)的難度,減少人工成本,且可保存花樣以便后續(xù)使用;但其也存在因描制圖樣尺寸過(guò)大、形狀不規(guī)則、花樣過(guò)復(fù)雜的缺點(diǎn),導(dǎo)致描制速度過(guò)慢,且受操作者的經(jīng)驗(yàn)影響較大,常常難以加工出高質(zhì)量花樣。為了解決上述方法的不足,基于圖形矢量化方法的花樣自動(dòng)生成算法應(yīng)運(yùn)而生,其核心思想是提取目標(biāo)圖像的圖元,以基本線條進(jìn)行分段擬合,從而得出相應(yīng)花樣及加工代碼。Bezier、NURBS、B樣條等復(fù)雜曲線被提出以精確表達(dá)高次曲線[4-5],然而目前大多數(shù)的數(shù)控系統(tǒng)仍不支持上述曲線插補(bǔ),故絎縫加工系統(tǒng)仍采用將加工路徑離散為微段直線和圓弧的插補(bǔ)方法[6-7]。
國(guó)內(nèi)學(xué)者[8-9]研究了在保證圖像不失真的條件下,提取圖像基本圖元進(jìn)行曲線擬合,實(shí)現(xiàn)圖形的矢量化,并取得了一定進(jìn)展。其方法通常分為2類:1)先獲取輪廓上的基元,即優(yōu)先恢復(fù)的方法;2)先抽取基元間的分界點(diǎn),即優(yōu)先分割的方法。前者注重分割質(zhì)量,但擬合速度慢;后者則更注重效率。分界點(diǎn)即角點(diǎn),在保留圖像重要特征的同時(shí),可以有效地減少數(shù)據(jù)量,提高計(jì)算速度,使圖像的實(shí)時(shí)處理成為可能,同時(shí)角點(diǎn)在加工時(shí),可視為加工微段基元的起末端點(diǎn)?,F(xiàn)有多種角點(diǎn)檢測(cè)方法[10],如:基于曲率計(jì)算的方法,其計(jì)算量小,但易受到噪聲影響,產(chǎn)生假角點(diǎn);基于小波變換的角點(diǎn)檢測(cè)方法,其抗干擾能力強(qiáng),但計(jì)算量大且復(fù)雜;基于灰度圖像的角點(diǎn)檢測(cè)方法,如Harris角點(diǎn)檢測(cè)方法,在檢測(cè)時(shí),設(shè)置閾值過(guò)大會(huì)導(dǎo)致偽角點(diǎn)的產(chǎn)生,閾值過(guò)小則導(dǎo)致遺失角點(diǎn)。為此,本文基于遺傳算法(GA)[11],獲取絎縫圖像輪廓信息以生成對(duì)應(yīng)二進(jìn)制數(shù)組作為初始種群,其中每行二進(jìn)制數(shù)列都是對(duì)加工路徑的表達(dá);設(shè)定微段基元上各坐標(biāo)點(diǎn)的位移偏差之和為誤差函數(shù),并將擬合總誤差和擬合段數(shù)作為每條加工路徑的適應(yīng)度函數(shù)的參量;通過(guò)選取合適的選擇、交叉、變異算子,在初始種群的不斷進(jìn)化下得到最優(yōu)染色體,即為角點(diǎn)的分布與角點(diǎn)間的微段基元屬性,也即絎縫花樣的最優(yōu)加工路徑;并將各微段基元直接轉(zhuǎn)化為G代碼,從而將采集的圖像轉(zhuǎn)化生成加工代碼,加工出復(fù)雜花樣,以滿足絎縫領(lǐng)域的自動(dòng)化加工需求。
采集到的圖像無(wú)法直接被用于遺傳算法以進(jìn)行輪廓擬合,因此,首先需要對(duì)圖像進(jìn)行輪廓追蹤以獲取關(guān)鍵信息。
在圖像采集過(guò)程中,由于光照等因素影響會(huì)降低圖像質(zhì)量,即需要對(duì)所采集的圖像進(jìn)行預(yù)處理。將任選攝影類圖像經(jīng)過(guò)濾波、形態(tài)學(xué)操作和Canny算子處理后,得到邊緣點(diǎn)陣圖像,如圖1所示。采用Freeman鏈碼[12]的方法檢索邊緣輪廓,將其追蹤為若干條攜帶坐標(biāo)信息的有序數(shù)據(jù)點(diǎn)鏈,但其邊緣輪廓存在孤立點(diǎn)、毛刺點(diǎn)、斷點(diǎn)的問(wèn)題(見(jiàn)圖2),且在絎縫加工中,奇異點(diǎn)會(huì)被認(rèn)作邊界點(diǎn),從而執(zhí)行剪線和跳針操作,不但增加了加工的復(fù)雜性,同時(shí)影響產(chǎn)品的美觀性,因而需要對(duì)細(xì)節(jié)及冗余信息處理以優(yōu)化絎縫織物質(zhì)量。
圖1 圖像預(yù)處理Fig.1 Image preprocessing
圖2 奇異點(diǎn)Fig.2 Singular points
本文所改進(jìn)的輪廓追蹤算法是:被尋訪過(guò)的點(diǎn)不會(huì)被立即取為背景色,而是在整條輪廓都被尋訪到后執(zhí)行,因而單個(gè)像素點(diǎn)可以被不止1次地訪問(wèn)。為避免如2個(gè)像素點(diǎn)間的來(lái)回尋訪,規(guī)定下一次尋訪方向是使得本次尋訪點(diǎn)為最末尋訪方向的相反方向,且使用的Freeman鏈碼方法為8鄰域方法。圖3示出輪廓追4條點(diǎn)鏈:外閉合輪廓1、短分支輪廓2、長(zhǎng)分支輪廓3和內(nèi)閉合輪廓4,避免了因拓?fù)潢P(guān)系過(guò)復(fù)雜而造成的錯(cuò)誤分割。算法流程圖如圖4所示。
圖3 輪廓追蹤算法實(shí)例Fig.3 Example of contour tracking algorithm.(a) Test bitmap image;(b) Segmentation results
圖4 輪廓追蹤算法流程圖Fig.4 Flow chart of contour tracking algorithm
針對(duì)提取出的點(diǎn)鏈輪廓,以直線和圓弧作為微段加工基元進(jìn)行擬合,確定遺傳算法方案,通過(guò)進(jìn)化的思想迭代出最優(yōu)染色體,即為最優(yōu)的絎縫花樣曲線加工路徑。
設(shè)N為通過(guò)輪廓追蹤算法從目標(biāo)絎縫圖像中得到的一條待擬合點(diǎn)鏈,并定義為
N={p1(x1,y1),p2(x2,y2),…,
pn-1(xn-1,yn-1),pn(xn,yn)}
其中(x1,y1),(x2,y2),…,(xn-1,yn-1),(xn,yn)是該絎縫圖像上對(duì)應(yīng)點(diǎn)的坐標(biāo)。點(diǎn)鏈中的點(diǎn)可分為微段加工直線或加工圓弧的端點(diǎn)和端點(diǎn)之間的連續(xù)點(diǎn)2種,采用二進(jìn)制編碼表達(dá)染色體,當(dāng)染色體基因?yàn)?時(shí),該坐標(biāo)點(diǎn)為微段基元端點(diǎn);否則該點(diǎn)為端點(diǎn)間連續(xù)點(diǎn)。此時(shí),每條二進(jìn)制染色體數(shù)列就是對(duì)應(yīng)加工路徑的描述。
染色體長(zhǎng)度L:染色體的長(zhǎng)度為點(diǎn)鏈的長(zhǎng)度n。種群規(guī)模M:取L/4作為加工路徑總數(shù)。隨機(jī)生成長(zhǎng)度為L(zhǎng),寬度為M的二進(jìn)制數(shù)組為初始加工路徑組。
2.2.1 微段加工基元誤差函數(shù)
設(shè)Pi,Pm(1≤i 對(duì)于直線加工擬合,確定直線函數(shù)為 Y=kX+b (1) 式中,k和b為待求參數(shù)。 添加2個(gè)約束: (2) 式中,xi、yi,xm、ym分別為點(diǎn)pi,pm的橫縱坐標(biāo)。解出k,b,可得直線方程: (3) 則直線位移誤差: (4) 式中,yj、Yj分別為擬合前、后點(diǎn)pj的縱坐標(biāo)。 對(duì)于曲線加工擬合,確定誤差函數(shù)Ec為 Ec=X2+Y2+AX+BY+C (5) 式中,A、B、C為待求參數(shù)。 添加2個(gè)約束: (6) 此時(shí),求解圓弧加工位移誤差的參數(shù)問(wèn)題,變?yōu)榱饲蠼釧、B、C的最優(yōu)值的問(wèn)題?;?jiǎn)后得到: (7) 其中,λ1和λ2為常數(shù),從而可得A、B、C的值,并得出圓弧擬合的位移誤差Ec。 比較El和aEc(其中a為經(jīng)驗(yàn)參數(shù),當(dāng)a大于1時(shí),趨向于擬合為直線;反之則趨向于擬合為圓弧,預(yù)設(shè)值為1.2),從而將最小誤差作為該微段的最終位移誤差S(i),并同時(shí)將線條屬性state.flag和微段基元的其他相關(guān)屬性保存。輸入測(cè)試點(diǎn)鏈數(shù)據(jù) [0,0;1,1;1,2;1,3;2,4;3,5;4,5;5,5],擬合結(jié)果如圖5所示。 圖5 微段加工基元擬合結(jié)果Fig.5 Base processing element fitting result 2.2.2 加工路徑適應(yīng)度函數(shù) 第i條加工路徑的適應(yīng)度值F(i),與加工路徑中微段基元的總段數(shù)d及該路徑的總誤差T(i)成反比,則確定其適應(yīng)度函數(shù)為 (8) (9) 式中,b為調(diào)整系數(shù),預(yù)設(shè)值為1.5。 2.2.3 遺傳算子 選擇概率Ps:選擇操作可以保證優(yōu)秀的加工路徑能被保留至子代中,則由輪盤賭的思想,第i條路徑的選擇概率Ps定義為 (10) 交叉概率Pc:交叉操作可以將2條不同的加工路徑從某點(diǎn)交換,從而生產(chǎn)新的路徑,取定值為0.3。 變異概率Pm:變異操作通過(guò)改變加工路徑中部分微段加工基元屬性從而保證多樣性,取定值為0.1。 2.2.4 終止條件 最優(yōu)適應(yīng)度值連續(xù)10代不改變時(shí),迭代結(jié)束。此時(shí),適應(yīng)度最高的個(gè)體即為最優(yōu)染色體,也就是目標(biāo)絎縫花樣的最優(yōu)加工路徑。在最優(yōu)染色體中,值為1的點(diǎn)對(duì)應(yīng)為微段加工基元的端點(diǎn),端點(diǎn)之間的微段為加工直線或加工圓弧,其具體類型由該微段的各點(diǎn)對(duì)應(yīng)坐標(biāo)信息決定。 基于MatLab平臺(tái)編程,對(duì)改進(jìn)輪廓追蹤算法得出的圖1(b)中的最外層輪廓圖樣使用遺傳算法擬合驗(yàn)證。該輪廓共有1 431個(gè)像素點(diǎn),一共運(yùn)行到96代,運(yùn)行時(shí)間為51 s,最優(yōu)加工路徑見(jiàn)圖6,各代路徑的最優(yōu)適應(yīng)度見(jiàn)圖7。 圖6 最優(yōu)加工路徑Fig.6 Optimal processing path 圖7 各代最優(yōu)適應(yīng)度Fig.7 Optimal fitness of each generation 采用誤差函數(shù)對(duì)對(duì)應(yīng)點(diǎn)鏈處理后,將代表線條屬性的state.flag輸出,同時(shí)若判定該微段基元為圓弧時(shí),將代表圓弧加工半徑大小的state.R輸出。根據(jù)已有信息,可將直線微段轉(zhuǎn)化為相應(yīng)的G代碼,但仍不能判定圓弧加工的加工方向,即G02與G03的判定。 當(dāng)起點(diǎn)、終點(diǎn)、圓弧加工半徑已知時(shí),圓弧加工的方向問(wèn)題也即判定圓弧加工路徑的優(yōu)劣弧問(wèn)題。獲取微段基元中點(diǎn)pz(xz,yz),連接起點(diǎn)、中點(diǎn)、終點(diǎn),通過(guò)矢量點(diǎn)積的方法求得矢量夾角,從而判定優(yōu)劣弧,進(jìn)而轉(zhuǎn)化為G代碼語(yǔ)句。 (11) 將G代碼文件導(dǎo)入,采用絎縫機(jī)控制器進(jìn)行模擬加工,加工路徑如圖8所示。結(jié)果表明,圖像還原度高,質(zhì)量高,加工效果好。 圖8 絎縫機(jī)模擬加工Fig.8 Quilting machine simulation processing 花樣自動(dòng)生成算法相比花樣描制算法具有智能化、自動(dòng)化高的優(yōu)點(diǎn),是絎縫機(jī)花樣制版領(lǐng)域的發(fā)展趨勢(shì)。本文提出了將圖像輪廓直接轉(zhuǎn)化為絎縫加工路徑的方法,有效地彌補(bǔ)了絎縫加工領(lǐng)域普遍存在的效率低、人工成本高、受經(jīng)驗(yàn)影響大的不足;改進(jìn)了輪廓追蹤算法,減少了奇異點(diǎn)造成的影響,并將點(diǎn)陣圖像分割為若干段有序點(diǎn)鏈輪廓;通過(guò)帶約束的最小二乘法作為誤差函數(shù),確保了花樣的一階連續(xù),避免了剪線和跳針的影響;使用遺傳算法,在選擇、交叉、變異算子的作用下,基于適應(yīng)度函數(shù)的指導(dǎo),經(jīng)過(guò)96代迭代進(jìn)化,最終代染色體所代表的絎縫加工路徑適應(yīng)度高,擬合段數(shù)少。文中對(duì)任選攝影類圖像進(jìn)行處理,結(jié)果較好,在處理卡通類圖像時(shí)效果更佳,但處理部分復(fù)雜紋理圖像時(shí),所取經(jīng)驗(yàn)參數(shù)仍需改進(jìn)。該算法為圖像實(shí)時(shí)轉(zhuǎn)化為加工代碼提供了參考,并在絎縫機(jī)上進(jìn)行了相關(guān)實(shí)驗(yàn),結(jié)果滿足絎縫加工的要求,為刺繡機(jī)加工代碼的生成提供了依據(jù)。3 實(shí)例應(yīng)用分析
3.1 實(shí)驗(yàn)驗(yàn)證
3.2 絎縫機(jī)控制器模擬加工
4 結(jié) 論