周棟鋒, 李俊峰
(浙江理工大學(xué)信息科學(xué)與工程學(xué)院, 杭州 310018)
目前,國(guó)內(nèi)外的鞋底噴膠系統(tǒng)都向智能化、自動(dòng)化、可視化的多功能數(shù)控集成系統(tǒng)的方向發(fā)展,但很多鞋業(yè)的片底涂膠還采用人工的方式。 機(jī)器視覺(jué)可以代替人眼對(duì)目標(biāo)進(jìn)行檢測(cè)和分析,并做出相應(yīng)的處理,現(xiàn)在的視覺(jué)噴膠技術(shù)大都集中在高幫鞋型,通過(guò)3D 點(diǎn)云的方式提取點(diǎn)[1]。 對(duì)點(diǎn)云進(jìn)行處理不僅十分費(fèi)時(shí),且對(duì)片底來(lái)說(shuō),采用線(xiàn)激光或結(jié)構(gòu)光提取輪廓精度不會(huì)很高。
在邊緣提取算法上,郭琳琴等[2]提出了基于分?jǐn)?shù)階微分算子的圖像邊緣檢測(cè)方法,通過(guò)構(gòu)造微分算子去計(jì)算x方向與y方向上的分?jǐn)?shù)階算子,此方法的計(jì)算復(fù)雜度比較高,且只計(jì)算了兩個(gè)方向的梯度,在邊緣準(zhǔn)確性上不太高;Feng Lin 等[3]提出了基于模糊徑向基數(shù)神經(jīng)網(wǎng)絡(luò)的圖像邊緣檢測(cè)算法,黃勝等[4]提出了基于語(yǔ)義信息的精細(xì)化邊緣檢測(cè)方法,鄭恩壯等[5]提出了各向異性的多尺度邊緣檢測(cè)算法,這3 種方法均需要對(duì)目標(biāo)圖片進(jìn)行人工標(biāo)注邊緣,對(duì)于工業(yè)生產(chǎn)來(lái)說(shuō)既費(fèi)時(shí)又不能保證穩(wěn)定性;田貝樂(lè)等[6]提出一種改進(jìn)的小波變換法替代高斯濾波,實(shí)現(xiàn)對(duì)圖像的降噪,采用改進(jìn)的迭代算法對(duì)高低閾值進(jìn)行計(jì)算,雖然增加了魯棒性,但邊緣的細(xì)化程度并不是很高;Hao[7]在普通Sobel 算法基礎(chǔ)上增加了其它方向上的梯度檢測(cè),但這種只增加邊緣檢測(cè),不做邊緣細(xì)化會(huì)產(chǎn)生邊緣斷開(kāi)的情況;Orhei Ciprian 等[8]在圖像濾波上采用擴(kuò)張濾波器,對(duì)邊緣會(huì)有比較好的保留效果,但對(duì)于背景復(fù)雜度不高的圖片來(lái)說(shuō)會(huì)增加邊緣的寬度,導(dǎo)致精度有所下降;G.Domínguez-Rodríguez 等[9]提出了新的邊緣細(xì)化方法,計(jì)算x、y方向上的梯度并通過(guò)循環(huán)方式與原圖進(jìn)行卷積,將卷積結(jié)果與設(shè)定閾值進(jìn)行比較,在保留邊緣的情況下細(xì)化邊緣,整個(gè)處理過(guò)程中不僅要保證邊緣提取的準(zhǔn)確性,還要保證處理速度不能過(guò)慢。
完成邊緣提取后,對(duì)邊緣進(jìn)行進(jìn)一步處理得到噴膠軌跡點(diǎn),再通過(guò)標(biāo)定的方式將圖像坐標(biāo)轉(zhuǎn)變?yōu)闄C(jī)械坐標(biāo)。 在標(biāo)定上,Kenji Koide 等[10]都提出了手眼標(biāo)定的方式,這些手眼標(biāo)定的方式需要計(jì)算許多的轉(zhuǎn)換矩陣,計(jì)算復(fù)雜度比較高,且多次轉(zhuǎn)換計(jì)算有可能導(dǎo)致最終的誤差偏大。
為解決3D 相機(jī)成本過(guò)高且邊緣檢測(cè)精度不高的問(wèn)題,本文提出采用2D 相機(jī)采集圖像并使用改進(jìn)Sobel 算法提取片底邊緣輪廓的方式來(lái)代替3D相機(jī)進(jìn)行邊緣提取。 為解決普通九點(diǎn)標(biāo)定算法引入過(guò)多轉(zhuǎn)換矩陣導(dǎo)致轉(zhuǎn)換誤差過(guò)大問(wèn)題,本文提出新的標(biāo)定方式,直接對(duì)圖像坐標(biāo)與機(jī)器人世界坐標(biāo)系進(jìn)行轉(zhuǎn)換,通過(guò)將得到的圖像坐標(biāo)系的坐標(biāo)數(shù)據(jù)與轉(zhuǎn)換矩陣相乘來(lái)得到世界坐標(biāo)系實(shí)際數(shù)據(jù)。
本文首先使用自動(dòng)掩膜生成算法去除背景干擾,再通過(guò)改進(jìn)Sobel 算法提取邊緣,對(duì)提取的邊緣進(jìn)行進(jìn)一步處理得到噴膠點(diǎn)位,最后通過(guò)本文使用的新的標(biāo)定算法對(duì)點(diǎn)位進(jìn)行轉(zhuǎn)換,所有步驟結(jié)合即為本文鞋底噴膠軌跡自動(dòng)生成算法。
最后,本文對(duì)改進(jìn)Sobel 算法邊緣提取精度與普通Sobel 算法邊緣提取精度進(jìn)行對(duì)比實(shí)驗(yàn),發(fā)現(xiàn)改進(jìn)Sobel 算法邊緣提取精度高于普通Sobel 算法邊緣提取精度;此外,本文又對(duì)鞋底噴膠軌跡自動(dòng)生成算法執(zhí)行時(shí)間進(jìn)行實(shí)驗(yàn),發(fā)現(xiàn)鞋底噴膠軌跡自動(dòng)生成算法執(zhí)行時(shí)間均小于1 s,符合生產(chǎn)節(jié)拍需求;實(shí)際噴膠測(cè)試,總體噴膠合格率在96%左右。 符合生產(chǎn)需求。
本文所處理的片底樣式有兩種,分別是16Q328與16Q329,如圖1 所示。 每一種片底樣式存在35 ~39 四個(gè)鞋碼與左右腳,總共8 種不同的情況。

圖1 片底樣式Fig. 1 Sheet bottom style
圖像預(yù)處理過(guò)程流程如圖2 所示。

圖2 圖像預(yù)處理過(guò)程流程圖Fig. 2 Flow chart of the image preprocessing process
由于相機(jī)采集得到的圖像的背景比較復(fù)雜,對(duì)邊緣提取會(huì)產(chǎn)生很多的干擾。 本文提出自動(dòng)掩膜生成,在覆蓋所需片底的情況下盡可能減少圖片的背景。 由于片底的顏色為黑色,與周?chē)h(huán)境的像素值有較大的差異,通過(guò)大量的測(cè)試數(shù)據(jù)發(fā)現(xiàn)片底區(qū)域的像素分布在0~150 范圍內(nèi),而背景區(qū)域的像素分布在151~255 的范圍內(nèi)。 故通過(guò)像素分布的特征,設(shè)計(jì)自動(dòng)掩膜生成特征區(qū)域,使得掩膜部分可以完全包括片底。
設(shè)原圖像為G,產(chǎn)生掩膜圖像M步驟如下:
Step 1設(shè)置一個(gè)篩選的最小與最大的像素閾值,本文選擇像素閾值范圍為(0<Pixel<150);
Step 2對(duì)滿(mǎn)足像素閾值范圍的點(diǎn)進(jìn)行分析,計(jì)算出所有點(diǎn)行的最小值、列的最小值、行的最大值及列的最大值;
Step 3將行的最大值與行的最小值相減再除以2,將行的最大值與列的最小值相減再除以2,得到掩膜矩形的中心點(diǎn)坐標(biāo);
Step 4將行的最大值與行的最小值相減后的值加上60 作為矩形掩膜的長(zhǎng),將列的最大值與列的最小值相減后的值加上60 作為矩形掩膜的寬(加上60 是為了保證矩形掩膜可以覆蓋整個(gè)片底區(qū)域);
通過(guò)自動(dòng)掩膜生成的方式產(chǎn)生一個(gè)矩形掩膜,將矩形掩膜圖像與原圖進(jìn)行或運(yùn)算,或運(yùn)算得到結(jié)果圖記為O,或運(yùn)算的計(jì)算,式(1):
為使片底區(qū)域與背景的對(duì)比度更大,方便后續(xù)的邊緣提取,先將或運(yùn)算后圖像中鞋底的區(qū)域進(jìn)行填充,將原先像素分布在0 ~150 范圍之內(nèi)的像素點(diǎn)都填充為0。 填充步驟如下:
Step 1計(jì)算圖像中像素在0~150 的點(diǎn);
Step 2將滿(mǎn)足Step1 的點(diǎn)的像素都變?yōu)?。
將填充后圖像記為F,填充后圖像如圖3 所示。

圖3 填充后圖像FFig. 3 Post-fill image F
為得到準(zhǔn)確的片底邊緣信息,本文對(duì)傳統(tǒng)的Sobel 算子做了改進(jìn),在邊緣提取之前增加濾波操作來(lái)平滑片底邊緣。 在邊緣提取過(guò)程中采用8 個(gè)不同的卷積算子對(duì)圖像8 個(gè)方向進(jìn)行卷積操作,以防止圖像的邊緣出現(xiàn)斷裂情況。 完成邊緣提取后,增加邊緣細(xì)化操作,將多余的邊緣像素剔除掉,以便得到更加細(xì)致光滑的邊緣。
2.2.1 均值濾波
對(duì)預(yù)處理后的圖像F使用均值濾波器進(jìn)行均值濾波,使得鞋底邊緣更加平滑,以便于后續(xù)邊緣提取的準(zhǔn)確性。 采用以下3×3 卷積核對(duì)圖像進(jìn)行濾波操作,將濾波后圖像記為G。 將目標(biāo)矩陣與卷積核相乘得到新的矩陣卷積矩陣G(x,y),式(2):
其中,F(xiàn)(x,y) 是填充后圖像F中目標(biāo)點(diǎn)與目標(biāo)點(diǎn)周?chē)? 個(gè)點(diǎn),共9 個(gè)點(diǎn)組成的目標(biāo)矩陣。
將得到的G(x,y) 矩陣中的9 個(gè)元素取出相加后取平均值即為目標(biāo)點(diǎn)像素值。 通過(guò)計(jì)算得到所有點(diǎn)濾波后像素值即可組成新的濾波后圖像G。 為了便于邊緣提取,將濾波后圖像中周?chē)谏珶o(wú)關(guān)部分進(jìn)行了剔除,濾波后圖像如圖4 所示。

圖4 濾波后圖像GFig. 4 Filtered image G
2.2.2 8 方向邊緣檢測(cè)
本文共使用8 個(gè)方向的邊緣檢測(cè)算子,從不同的方向進(jìn)行數(shù)據(jù)提取,每個(gè)方向的卷積算子卷積核如式(3)~式(10)所示,8 方向邊緣檢測(cè)結(jié)果如圖5所示。

圖5 8 方向邊緣檢測(cè)結(jié)果Fig. 5 Eight-way edge detection results
因?yàn)檎麄€(gè)圖像采用8 個(gè)方向的檢測(cè)值,用原有方法計(jì)算各個(gè)方向梯度的時(shí)間復(fù)雜度比較高。 為了減少計(jì)算量,本文采用式(11)計(jì)算某一個(gè)點(diǎn)的像素值S(x,y):
2.2.3 邊緣細(xì)化
為得到更加細(xì)致的邊緣,本文對(duì)Sobel 算子得到的邊緣進(jìn)一步邊緣。 圖像像素點(diǎn)8 連通域如圖6所示。

圖6 8 連通域Fig. 6 Eight-linked domain
在完成邊緣提取后得到的圖像中,邊緣部分像素為255,其他地方像素均為0,對(duì)Sobel 算法所提取的所有邊緣點(diǎn)P0進(jìn)行細(xì)化的步驟如下(E(P0) 表示P0周?chē)袼貫? 的點(diǎn)的個(gè)數(shù)):
Step 1首先檢查邊緣點(diǎn)P0周?chē)? 個(gè)點(diǎn)像素是否全為0,若E(P0)=0,則判定這個(gè)點(diǎn)為離散點(diǎn),直接剔除;
Step 2若滿(mǎn)足如下條件,則標(biāo)記P0為待剔除邊緣點(diǎn);
(1) 1 ≤E(P0) ≤7;
(2)P1+P7+P8≠0,P1+P2+P3≠0,P3+P4+P5≠0 且P5+P6+P7≠0;
Step 3一次循環(huán)遍歷后,將標(biāo)記為待剔除點(diǎn)像素置0,將其剔除。
Step1 與Step2 兩步構(gòu)成一次循環(huán),多次循環(huán)執(zhí)行Step1 與Step2 直到?jīng)]有滿(mǎn)足標(biāo)記的條件為止。
在經(jīng)過(guò)邊緣細(xì)化后的邊緣相比之前會(huì)變得更加細(xì)致,連續(xù)性也更高。
邊緣提取結(jié)果如圖7 所示,最終的邊緣細(xì)化結(jié)果如圖8 所示。

圖7 邊緣提取結(jié)果Fig. 7 Edge extraction results

圖8 邊緣細(xì)化結(jié)果Fig. 8 Edge refinement results
片底邊緣細(xì)化后,對(duì)邊緣特征點(diǎn)進(jìn)行進(jìn)一步的提取并轉(zhuǎn)換,并將邊緣點(diǎn)信息轉(zhuǎn)變?yōu)闄C(jī)器人循跡所需要的實(shí)際點(diǎn)位信息。 具體的邊緣點(diǎn)提取與轉(zhuǎn)換步驟流程如圖9 所示。

圖9 邊緣點(diǎn)提取與轉(zhuǎn)換流程圖Fig. 9 Edge point extraction and transformation flowchart
輪廓內(nèi)縮需要將得到的輪廓以相同的距離往內(nèi)側(cè)收縮,形成一個(gè)新的內(nèi)縮輪廓。 以邊緣提取得到的輪廓中的每一個(gè)點(diǎn)為圓心,以自定義內(nèi)縮半徑為圓半徑繪制圓形,將所有圓形區(qū)域所包含的所有點(diǎn)組成一張新的圖像。 圓形公式(12):
其中,(X0,Y0) 是圓心坐標(biāo),R為圓半徑。
由于圓具有8 分對(duì)稱(chēng)性,圓心位于原點(diǎn)的圓有4 條對(duì)稱(chēng)軸X=0、Y=0、X=Y(jié)和X=-Y,若已知圓弧上一點(diǎn)P(X,Y),就可以得到其關(guān)于4 條對(duì)稱(chēng)軸的7 個(gè)對(duì)稱(chēng)點(diǎn):(X,-Y)、(-X,Y)、(-X,-Y)、(Y,X)、(Y,-X)、(-Y,X)、(-Y,-X),這種性質(zhì)稱(chēng)為8 分對(duì)稱(chēng)性。 因此只要能畫(huà)出1/8 的圓弧,就可以利用對(duì)稱(chēng)性的原理得到整個(gè)圓。
假設(shè)輪廓上某個(gè)點(diǎn)為(0,0),圓半徑大小為R,那么以這個(gè)(0,0) 點(diǎn)為圓心,R為半徑的圓上的1/8弧上的點(diǎn)可以通過(guò)以下方式求得,這里以(0,R) 點(diǎn)作為起始點(diǎn),順時(shí)針計(jì)算1/8 圓弧。
圓函數(shù)如式(13)所示,將平面區(qū)域分成圓內(nèi)和圓外,如圖10 所示。

圖10 圓內(nèi)圓外示意圖Fig. 10 Schematic diagram of the inside and outside of the circle
假設(shè)圓弧的生成方向是從A到B方向,當(dāng)某個(gè)點(diǎn)Pi被確定以后,Pi的下一個(gè)點(diǎn)Pi+1的取值就根據(jù)F(Xi,Yi) 的值進(jìn)行判定,判定的原則:
(1)當(dāng)F(Xi,Yi) ≤0 時(shí),取Xi+1=Xi+1,Yi+1=Y(jié)i,從圓內(nèi)走向圓外;
(2)當(dāng)F(Xi,Yi)>0 時(shí),取Xi+1=Xi,Yi+1=Y(jié)i-1,從圓外走向圓內(nèi)。
對(duì)于判別式F(xi,yi) 的遞推公式,也要分兩種情況分別推算:
(1)當(dāng)F(Xi,Yi) ≤0 時(shí),Pi的下一個(gè)點(diǎn)Pi+1取Xi+1=Xi+1,Yi+1=Y(jié)i,判別式F(Xi+1,Yi+1) 的推算過(guò)程如式(14)所示;
(2)當(dāng)F(Xi,Yi)>0 時(shí),Pi的下一個(gè)點(diǎn)Pi+1取Xi+1=Xi,Yi+1=Y(jié)i- 1,判別式F(Xi+1,Yi+1) 的推算過(guò)程如式(15)所示。
在得到1/8 圓弧后,通過(guò)圓的8 分對(duì)稱(chēng)性即可得到整個(gè)圓所包含的點(diǎn)的信息。
通過(guò)循環(huán)的方式多次繪制外接圓,將每一個(gè)外接圓都進(jìn)行填充變?yōu)橐粋€(gè)區(qū)域,再求取每一個(gè)外接圓,形成區(qū)域的并集形成新的區(qū)域,新的拼接區(qū)域如圖11 所示。 在得到新的拼接區(qū)域后,通過(guò)邊緣提取算子可以得到新區(qū)域的內(nèi)外輪廓,內(nèi)外輪廓如圖12所示。 通過(guò)比較兩個(gè)輪廓的實(shí)際長(zhǎng)度,長(zhǎng)度較小的輪廓即為所需要的內(nèi)縮輪廓。

圖11 拼接區(qū)域Fig. 11 Splicing area

圖12 內(nèi)外輪廓Fig. 12 Inner and outer contours
每一個(gè)內(nèi)縮輪廓由多個(gè)離散的點(diǎn)擬合而成,經(jīng)過(guò)測(cè)試發(fā)現(xiàn)不同角度鞋底圖片得到的點(diǎn)的起始位置是不確定的,導(dǎo)致輪廓信息存在不確定性。 因?yàn)檩喞钠瘘c(diǎn)無(wú)法確定,所以在執(zhí)行后續(xù)處理算法前增加了將輪廓重組操作,輪廓重組以整個(gè)輪廓行最小值位置為起點(diǎn),最小點(diǎn)基本處于鞋尖位置,故通過(guò)輪廓重組后的輪廓數(shù)組均可以鞋尖位置作為起點(diǎn)。
輪廓重組過(guò)程:假設(shè)原輪廓行數(shù)據(jù)數(shù)組為[TR0…TRend],通過(guò)輪廓重組后得到的行數(shù)據(jù)數(shù)組為[TRmin…TRend…TR0],其中[TRmin是行數(shù)據(jù)數(shù)組輪廓[TR0…TRend] 中最小值所在索引位置,同樣輪廓重組后得到列數(shù)據(jù)數(shù)組為[TCmin…TCend…TC0] 。
通過(guò)重組操作不管鞋底角度如何變化,原輪廓起點(diǎn)在什么位置,新的輪廓的起點(diǎn)都確定在鞋尖位置。
在每一次軌跡生成時(shí),都需要知道鞋底、鞋跟兩個(gè)點(diǎn)的位置與鞋尖點(diǎn)的位置,這3 個(gè)點(diǎn)為整個(gè)輪廓的轉(zhuǎn)折點(diǎn),需要提前取得。 通過(guò)繪制內(nèi)縮輪廓外接圓的方式可以得到內(nèi)縮輪廓的外接圓,再求取外接圓與內(nèi)縮輪廓的交點(diǎn),其中一個(gè)交點(diǎn)為鞋尖點(diǎn),另一個(gè)交點(diǎn)為左側(cè)鞋跟交點(diǎn)。 由于在實(shí)際操作時(shí)確定了鞋底來(lái)料的大致方向,所以在圖像窗口中鞋底永遠(yuǎn)在上方,可以保證鞋底點(diǎn)的行坐標(biāo)永遠(yuǎn)都是小于鞋尖點(diǎn)的行坐標(biāo),通過(guò)比較兩個(gè)交點(diǎn)的行坐標(biāo)即可確定鞋尖點(diǎn)和鞋跟點(diǎn)。
通過(guò)大量測(cè)試輪廓總點(diǎn)數(shù)與鞋跟兩側(cè)所隔點(diǎn)數(shù)的關(guān)系可以獲得一個(gè)擬合方程,式(16):
其中,[Distance] 是取整后的距離,PointT是外輪廓點(diǎn)數(shù)。
通過(guò)計(jì)算得到鞋跟右側(cè)交點(diǎn)與左側(cè)交點(diǎn)所隔點(diǎn)的數(shù)量,從而在輪廓數(shù)組中找到右側(cè)交點(diǎn)。 得到的3 個(gè)關(guān)鍵點(diǎn)如圖13 所示。

圖13 3 個(gè)關(guān)鍵點(diǎn)Fig. 13 Three key points
在得到了3 個(gè)關(guān)鍵點(diǎn)之后,通過(guò)其在輪廓數(shù)組中的索引的位置即可得到其它位置軌跡點(diǎn)的信息,將軌跡點(diǎn)進(jìn)行組合就可以得到完整的軌跡信息,得到的軌跡如圖14 所示。

圖14 全部點(diǎn)與軌跡Fig. 14 All points and trajectories
首先在鞋底中繪制9 個(gè)固定點(diǎn),將鞋底放置在相機(jī)下進(jìn)行圖像采集。 在圖像坐標(biāo)中找到之前手動(dòng)繪制的9 個(gè)固定點(diǎn),并記錄下9 個(gè)點(diǎn)的行列坐標(biāo)值,再將機(jī)器人移至9 個(gè)固定點(diǎn),記錄實(shí)際機(jī)器人TCP(Tool Center Position)的X/Y值。
通過(guò)式(17)即可計(jì)算得到圖像坐標(biāo)系中點(diǎn)位與實(shí)際機(jī)器人坐標(biāo)系之間的轉(zhuǎn)換關(guān)系。 本文為了使得轉(zhuǎn)換矩陣更加的準(zhǔn)確,在標(biāo)定過(guò)程中選擇9 個(gè)點(diǎn)作為標(biāo)定點(diǎn)。
通過(guò)計(jì)算式(17)即可得到轉(zhuǎn)換矩陣H,有了轉(zhuǎn)換矩陣H就可以把圖像坐標(biāo)系上任意一個(gè)點(diǎn)坐標(biāo)變?yōu)閷?shí)際的機(jī)器人世界坐標(biāo)系下的點(diǎn)坐標(biāo)。
實(shí)驗(yàn)所使用的計(jì)算機(jī)配置為:工控機(jī)CPU 為AMD Ryzen5 4600H,內(nèi)存條為兩個(gè)Hynix 的8 GB內(nèi)存條,頻率為4 600 MHz,軟件使用編譯器為VS2019,框架為NET 4.6.1。
對(duì)普通Sobel 算法與本文所提出的改進(jìn)Sobel算法的邊緣檢測(cè)準(zhǔn)確性進(jìn)行比較,將提取的邊緣點(diǎn)數(shù)據(jù)進(jìn)行坐標(biāo)轉(zhuǎn)換后轉(zhuǎn)為實(shí)際機(jī)器人可以使用的實(shí)際坐標(biāo),并通過(guò)移動(dòng)機(jī)器人比較兩個(gè)算法的準(zhǔn)確性。
本文做邊緣準(zhǔn)確度實(shí)驗(yàn)所取的邊緣點(diǎn)數(shù)均為40 個(gè),每一次的誤差值是所有40 個(gè)點(diǎn)中每個(gè)點(diǎn)到真實(shí)邊緣距離的平均值。 測(cè)試方式為機(jī)器人走至算法給出的邊緣點(diǎn),再通過(guò)人為操作機(jī)器人控制器將機(jī)器人TCP(Tool Center Position)移至實(shí)際邊緣記錄算法給出的Xf/ Yf值與控制器上實(shí)際邊緣的Xr/Yr值。 通過(guò)計(jì)算得出每一個(gè)點(diǎn)的誤差值,式(18):
本文總共進(jìn)行了100 次對(duì)比實(shí)驗(yàn),普通Sobel算法邊緣提取與改進(jìn)后Sobel 算法邊緣準(zhǔn)確度對(duì)比如圖15 所示。

圖15 邊緣檢測(cè)準(zhǔn)確度對(duì)比圖Fig. 15 Edge detection accuracy comparison chart
實(shí)驗(yàn)結(jié)果表明,普通Sobel 算法的平均邊緣提取誤差為0.248 3,而改進(jìn)后Sebel 算法的平均邊緣提取誤差為0.223 8,更加符合精度需求。
對(duì)不同鞋型鞋碼的片底進(jìn)行隨意旋轉(zhuǎn)(旋轉(zhuǎn)角度控制在0°~180°之間),對(duì)不同位置與角度的片底進(jìn)行軌跡提取。 本文總共對(duì)1 000 張不同樣式角度的鞋底進(jìn)行軌跡提取,算法運(yùn)行時(shí)間統(tǒng)計(jì)如圖16 所示,在1 000次算法執(zhí)行實(shí)驗(yàn)中算法執(zhí)行最長(zhǎng)耗時(shí)為0.990 s,最短耗時(shí)為0.416 s,大多數(shù)算法執(zhí)行時(shí)間在0.4~0.8 s 之內(nèi),提取結(jié)果算法均十分理想,且所有算法執(zhí)行時(shí)間都控制在1 s 之內(nèi),經(jīng)計(jì)算1 000算法執(zhí)行的平均時(shí)間為0.661 1 s,符合生產(chǎn)所需要速度要求。

圖16 算法運(yùn)行時(shí)間結(jié)果Fig. 16 Algorithm runtime results
部分軌跡提取結(jié)果如圖17 所示。

圖17 部分軌跡提取結(jié)果Fig. 17 Partial trajectory extraction results
本文對(duì)片底進(jìn)行了實(shí)際噴膠測(cè)試。 經(jīng)過(guò)500 次噴膠測(cè)試,在500次的噴膠結(jié)果中合格樣品數(shù)量達(dá)到480 只,總體的合格率高達(dá)96%符合生產(chǎn)要求。
本文針對(duì)當(dāng)前3D 相機(jī)處理片底價(jià)格昂貴且邊緣提取精度不高的問(wèn)題,提出了通過(guò)使用2D 相機(jī)的方式來(lái)提取軌跡。 通過(guò)改進(jìn)邊緣提取算法得到準(zhǔn)確度更高的邊緣輪廓,并通過(guò)邊緣點(diǎn)提取算法從邊緣輪廓中獲取噴膠點(diǎn)位數(shù)據(jù);最后,通過(guò)坐標(biāo)轉(zhuǎn)換算法將圖像點(diǎn)位數(shù)據(jù)轉(zhuǎn)為實(shí)際機(jī)器人噴膠點(diǎn)位。
在不影響精度的情況下,如果可以找到更快速得到內(nèi)縮輪廓的方式,可以使得軌跡生成的速度控制在0.5 s 之內(nèi)。 目前的執(zhí)行速度已經(jīng)可以滿(mǎn)足生產(chǎn)的要求,從算法執(zhí)行時(shí)間的測(cè)試數(shù)據(jù)來(lái)看,每一次的算法執(zhí)行速度都控制在了1 s 之內(nèi),加上皮帶運(yùn)行時(shí)間和機(jī)器人加工時(shí)間,全自動(dòng)噴膠的總體速度也可以控制在5 s 之內(nèi),且最終的噴膠穩(wěn)定性也符合生產(chǎn)要求,相比人工有很大的提升。