鄒華東,林勝鵬,張志田,李祖明
(清遠(yuǎn)職業(yè)技術(shù)學(xué)院,廣東清遠(yuǎn) 511510)
打印機在世界各地使用非常廣泛,打印機墨水作為一種耗材,其消耗量非常大,市場前景廣闊。采用全自動灌墨包裝線,既減少勞動力,又提高生產(chǎn)效率和準(zhǔn)確度,是解決目前生產(chǎn)工廠勞動力緊缺的重要手段。國內(nèi)不少自動化設(shè)備公司都投入較大的研發(fā)資源對自動灌墨包裝線進(jìn)行開發(fā),出現(xiàn)了一些市場推廣應(yīng)用產(chǎn)品。由于打印機廠家數(shù)量較多,墨水瓶生產(chǎn)型號和種類較為繁多,且其機械結(jié)構(gòu)也都有所差異,這就造成自動灌墨線需要針對不同產(chǎn)品進(jìn)行個性化定制和研發(fā),增加了自動灌墨包裝線的開發(fā)難度。
針對自動灌裝線設(shè)計中帶有外部把手的墨水瓶的自動定位問題,研究一種亞像素圖像邊緣檢測算法,利用該算法檢測把手的邊緣點信息,進(jìn)而確定把手角度,完成后將角度信息傳遞給SCARA機器人,機器人根據(jù)角度信息調(diào)整機械手的角度,避開瓶蓋把手位置并將墨水瓶蓋自動夾取到指定工位。
墨水瓶自動灌裝線主要包括空瓶送料、墨水灌裝、封口和瓶蓋旋緊等幾個主要工序。瓶蓋旋緊環(huán)節(jié)中,由于瓶蓋具有把手,需要在抓取的前端環(huán)節(jié)能夠識別出把手的方向,以便抓取機器人能夠避開把手位置進(jìn)行抓取并將瓶蓋移送到傳送帶規(guī)整排放。整齊排放的瓶蓋送到傳輸線上后,后續(xù)旋蓋工位才能夠順利工作。視覺檢測技術(shù)因其非接觸、準(zhǔn)確和高效率等優(yōu)點在機器人定位方面應(yīng)用非常廣泛[1-2]。
圖1為墨水瓶蓋視覺檢測與機器人夾放系統(tǒng)示意。工作時,墨水瓶蓋由振動盤振動,使得其排隊由傳送帶傳輸;當(dāng)瓶蓋傳送到預(yù)定工位,PLC 檢測到位置傳感器信號后,控制移動機械手夾取瓶蓋到預(yù)定載物臺;載物臺上的光纖位置傳感器檢測到有瓶蓋時,傳遞信號給PLC 并由PLC 發(fā)送指令給工業(yè)機器人;SCARA 工業(yè)機器人接收到信號后,通過網(wǎng)絡(luò)接口發(fā)送檢測開始的指令給計算機;計算機接收到后,進(jìn)行把手角度測量,完成后將信號反饋給工業(yè)機器人,由工業(yè)機器人根據(jù)信號轉(zhuǎn)動第4 軸調(diào)整夾取裝置角度,移動到瓶蓋位置夾取,夾取完成后進(jìn)行旋轉(zhuǎn)調(diào)整;最后移動機械臂將瓶蓋規(guī)整放置在預(yù)定的傳送帶位置;傳送帶移動瓶蓋到下一個工位進(jìn)行旋蓋操作。
圖1 視覺檢測與機器人夾放系統(tǒng)示意圖Fig.1 Schematic diagram of vision inspection and robot clamping system
圖2為墨水瓶蓋的俯視和側(cè)試圖,瓶蓋的最大直徑為27 mm,把手最外端到圓心的距離為27.5 mm,夾取速度為0.5 個/s,前端排隊和夾取2 道工序保證圓心位置能夠較為準(zhǔn)確放置,偏差在2 mm 以內(nèi),但是把手的邊在放置好后可能出現(xiàn)在左側(cè),也可能出現(xiàn)在右側(cè),所以需要視覺檢測系統(tǒng)能夠判斷出把手的方位。設(shè)計機械手張開到最大位置時,最大內(nèi)徑為33 mm,夾取時的間隙在2.5~5 mm,所以放置的圓心偏差不影響夾取。視覺檢測只需要檢測出把手的偏角。由于把手為彈性塑料制品,且瓶蓋有一定的高度,所以存在成像和安裝誤差,導(dǎo)致視覺測量時,投影的把手不一定為正投影,存在重影,影響測量精度。為保證夾取效率,設(shè)定系統(tǒng)的檢測速度為3 ms/次,視場范圍為115×86 mm,測量角度允許最大誤差為3°。
圖2 墨水瓶蓋俯視和側(cè)視圖Fig.2 Top and side view of ink bottle cap
視覺檢測部分的硬件構(gòu)成主要包括有相機、鏡頭、光源和工控機。根據(jù)需要檢測的工件尺寸、檢測精度和檢測速度要求,系統(tǒng)選用微視圖像的130 萬像素高分辨千兆網(wǎng)工業(yè)相機RSA1400-GM60,圖幅尺寸為1 280×1 024 Pixel,像元尺寸為5.3×5.3 μm,采集幀率為60 fps/s;鏡頭選用Computar 百萬像素鏡頭M3514-MP2,鏡頭焦距f為35 mm;照明采用諾視80*80 mm 的陣列LED光源。
相機的安裝高度可以由下式求得。
式中 L——安裝高度,mm;
W——視場范圍,mm;
f——鏡頭焦距,mm;
w——相機靶面寬度,mm。
代入所選部件的技術(shù)參數(shù),求得:L= (115 × 35 ×1000 )/ (5.3 × 1280 )=585.5 mm。該安裝高度能夠讓視覺采集裝置避開機械手的操作行程范圍。
當(dāng)計算機通過網(wǎng)絡(luò)接口接收到機器人傳遞的角度信號后,計算機通過工業(yè)相機進(jìn)行墨水瓶蓋圖像采集,然后對圖像進(jìn)行預(yù)處理,即通過中值濾波,過濾掉圖像中可能存在的離散小顆粒雜點。這些雜點通常為工作時落在臺面上的粉塵的投影,對于亞像素邊緣檢測影響很大。該步完成后,對圖像進(jìn)行亞像素邊緣檢測,獲取圖像把手的邊緣點數(shù)據(jù),獲取后進(jìn)行角度計算,得到的計算結(jié)果由計算機傳遞給機器人,供機器人調(diào)整夾具的偏轉(zhuǎn)角度。
在圖像分割、尺寸檢測和模式識別等機器視覺應(yīng)用領(lǐng)域,圖像邊緣檢測已成為一項基本任務(wù),很多像素級檢測算法不斷被提出,如Sobel、Roberts、Prewitt、Canny 算子,這些算法得到了國內(nèi)外學(xué)者的廣泛研究和關(guān)注。但是隨著技術(shù)的發(fā)展,像素級檢測結(jié)果已經(jīng)不能滿足實際應(yīng)用需要,像素級邊緣檢測技術(shù)逐漸發(fā)展為亞像素邊緣檢測。亞像素邊緣檢測最早由Hueckel 提出,現(xiàn)已發(fā)展為基于空間矩、基于插值法、基于擬合、基于小波變換的四大類亞像素檢測算法[3-8]。
基于空間矩的算法計算量較大,對噪聲敏感,而且都是針對理想邊緣模型提出,理想邊緣模型與真實模型間存在差異,因此存在原理誤差;基于擬合和基于小波變換的檢測算法雖然抗噪聲能力強,但是計算量較大;基于插值的方法算法設(shè)計簡單,計算量相對較小但是抗噪聲能力不足[9-12]。
本文針對墨盒灌裝線的墨盒把手檢測需求,設(shè)計一種亞像素邊緣檢測算法,用于快速準(zhǔn)確確定把手位置,算法的總體流程如圖3所示。
圖3 亞像素邊緣算法總體流程Fig.3 Overall flow chart of sub pixel edge algorithm
進(jìn)行邊緣點探測時,首先設(shè)定偵測線起點和終點坐標(biāo),獲得偵測線上的n 個像素點,每個像素點對應(yīng)一個向量P[i],表示為{X[i],Y[i],f[i]},其中f[i]對應(yīng)于偵測線上第i+1 個點的灰階值,對應(yīng)坐標(biāo)值為(X[i],Y[i])的像素點的灰度值。通過維度變換后,向量P[i]可以表示為(i,f[i]),其中i 代表點的實際像素坐標(biāo)為(X[i],Y[i]),坐標(biāo)系由原來的三維變?yōu)槎S。經(jīng)過維度變換,探測線上每個像素點的一階導(dǎo)數(shù)為:
一階導(dǎo)數(shù)的大小反映圖像灰度的變化率。邊緣的亞像素位置,通常存在于過渡區(qū)域中的灰度曲線斜率最大處,因此一階導(dǎo)數(shù)極值位置就是圖像的邊緣位置,邊緣檢測的目的就是獲取一階微分的峰值位置。為減少噪聲和雜散信號對偵測的影響,根據(jù)邊緣過渡區(qū)域的灰度變化規(guī)律,設(shè)置一階微分峰值的閾值DThreshold,超過閾值的峰值才列入考慮,此時有公式:
由高等數(shù)學(xué)Rolle 定理和函數(shù)極值的判定方法可以推導(dǎo)出:當(dāng)1 條連續(xù)曲線2 次穿越零位,其極限值位置必然在2 個零位之間。當(dāng)V[i]值2 次超越零位時,根據(jù)其特征(V[i]>0 且V[i+1]<0 或V[i]<0 且V[i+1]>0),可以得到邊緣過渡曲線的2 個像素點對應(yīng)位置。
圖4中直線為閾值線,曲線為一階微分曲線??梢钥闯觯叶刃》▌拥囊浑A峰值全部被排除在外,而灰度小幅波動代表了成像時的雜訊波,所以設(shè)置峰值閾值可以提高系統(tǒng)的抗噪能力,避免找到多個局部極值,造成虛擬邊界點。如果把峰值線當(dāng)作X 軸,此時閾值線與一階峰值曲線有2個交點,分別為PP1 和PP2,而一階微分的峰值點一定位于2 點之間的某一位置。
圖4 零位穿越示意圖Fig.4 The schematic diagram of zero crossing
PP1、PP2 兩點在偵測線上的具體位置,可以通過弦截法獲得。圖5為弦截法原理圖,在曲線上如果存在點X1和X2,如 果f(x1)<0,f(x2)>0,那么2 點連線與X 軸的交點坐標(biāo)如式(4)所示。
圖5 弦截法原理圖Fig.5 Schematic diagram of chord section method
當(dāng)2 點較為靠近時,可以用x 值來近似f(x)與X 軸坐標(biāo)的交點。因此在V[i]值超越零位時(V[i]>0 且V[i+1]<0 或V[i]<0 且V[i+1]>0),穿越的零位點的實際位置坐標(biāo)估計值:
此時的T[i]值就是該零位點在偵測線上的估計位置,位于第i 和第i+1 點之間。通過該步驟,2 個穿越點的位置就已經(jīng)確定,一階微分峰值點位置位于2 點之間,實際上相當(dāng)于在過渡區(qū)域人工插入2 個圖像中并不存在的像素點,2 點對應(yīng)的一階微分值等于峰值閾值,2 點之間沿著偵測線方向的像素點用于邊界點擬合評價。該2 點的確定使得過渡邊緣點的評估范圍大幅度縮減,評估點的減少有效縮短計算時間,而且范圍縮減使得大多數(shù)接近峰值的像素點被用作評價點,有利于提高定位精度。
經(jīng)過峰值閾值設(shè)置和過零點的插入,邊緣點的位置范圍已經(jīng)縮減到PP1、PP2 兩點之間。假設(shè)PP1、PP2 之間有k 個像素點,那么參與評價的像素點的個數(shù)為k+2。
此時記X0=IntSPt,Y0=0;Xk+1=IntEPt,Yk+1=0。其中IntSPt 和IntEPt 分別是由式(5)計算出的坐標(biāo)值,其余像素點的坐標(biāo)值:
為方便擬合數(shù)據(jù),將坐標(biāo)原點平移到插值起點,完成后X0=0,Y0=0;Xk+1=IntEPt-IntSPt,Yk+1=0。其余像素點的坐標(biāo)值Yi不變,Xi變?yōu)椋?/p>
偵測線上的所有像素點的一階微分曲線經(jīng)過峰值閾值截取后所得曲線形狀與二次曲線相似,因此邊緣過渡區(qū)域的曲線采用二次曲線模型,如下式所示。
數(shù)據(jù)擬合方法中,基于最小二乘準(zhǔn)則的函數(shù)擬合是一個有效的數(shù)學(xué)工具[13],可以保證測量的可靠性和效率。其原理是給定一系列點(Xi,Yi),在某一函數(shù)類f(x)中,尋求一個函數(shù)f*(x),使得目標(biāo)函數(shù)S 取值最小,其中:
S 的大小反映全部實際值與回歸函數(shù)值之間的偏離程度,擬合過程用來確定函數(shù)f*(x)系數(shù)的最佳取值,即確定系數(shù)值使得誤差偏離累積值S 最小。由于過渡區(qū)域的像素點灰度值曲線分布近似二次曲線,所以目標(biāo)函數(shù)定義為f*( x )= ax2+ bx +c 。根據(jù)矩陣求解的規(guī)則可知,在擬合點數(shù)≥3 時能夠找到最優(yōu)的系數(shù)解。具體求解如下式所示。
其中:
在系數(shù)求得的情況下,由過原點的二次曲線方程可以得到過渡邊緣的峰值點位置和幅值:
由于擬合點的坐標(biāo)值都經(jīng)過了1 次平移,所以探測線上的邊緣點實際位置:
根據(jù)數(shù)學(xué)中的積分可知,二次曲線峰值區(qū)域包圍面積就是曲線的定積分值,如下式所示。
令d=IntEPt-IntSPt,代入公式后有:
二次曲線峰值區(qū)域面積實際上是一階微分值的積分,代表灰度峰值兩側(cè)灰階值變化大小。由于干擾信號產(chǎn)生的局部極值,其灰度一階微分曲線包圍面積較小。
通過二次曲線擬合獲得了一階微分值的峰值位置,但是由于噪聲和干擾信號的影響,有的情況下會出現(xiàn)局部極值點,所以峰值位置是否為邊界位置還需要進(jìn)一步確定。局部極值點有2 個特點:一是峰值相較于真正的極值要??;二是峰值幅度小,或者有時僅僅是受局部較少幾點的影響,其峰值區(qū)域的積分面積也較小。所以通過設(shè)置二次峰值幅度Hysteresis、區(qū)域面積閾值MinGStep 來去除局部極值點,降低干擾信號對邊緣檢測影響,其判斷式:
二次曲線模型對于大多數(shù)應(yīng)用場合都適用。在比對實際圖像邊緣的灰度曲線和灰度一階微分曲線的情況下,可以根據(jù)實際情況選擇修正為其他類型的曲線模型,僅僅需要改變擬合曲線類型,因此算法的擴展性良好。
通過數(shù)值擬合等計算,邊緣在偵測線上的位置已經(jīng)得到精確計算,并存儲在浮點型變量Plocation 中,但是該數(shù)字僅僅代表其在偵測線上的位置,即一維坐標(biāo)值,通過維度轉(zhuǎn)換后可以精確獲得邊緣點最終的二維度亞像素標(biāo)值。
圖7為帶把手的墨水瓶蓋在自動灌裝線工位上的圖像。
圖7 墨水瓶瓶蓋圖像Fig.7 Image of ink bottle cap
可以看出,工裝夾具中間為圓形定位部分,讓瓶蓋放置能夠?qū)ξ坏街行?,為方便找到墨水瓶蓋把手的角度,需要準(zhǔn)確找到圓弧中心點。采用本文所提供的亞像素檢測方法,沿著點(450,296)至(450,600)和點(444,424)至點(872,424)分別繪出1 條垂直偵測線和1 條水平偵測線,分別找到黑到白和白到黑的亞像素邊緣點,具體如圖8所示。檢測到的邊緣點的坐標(biāo)值見表1。由幾何特征知識可知瓶的放置中心點的坐標(biāo)為(631.746,435.202),即分別取水平探測線的邊緣點的中點X 坐標(biāo)和垂直探測到的邊緣點的中點Y 坐標(biāo)。完成中心點探測后,即存儲在圖像檢測軟件中供后續(xù)調(diào)用。
表1 邊緣點坐標(biāo)探測值Tab.1 Detection values of coordinates of edge points
圖8 垂直探測和水平探測物體邊緣點Fig.8 Edge points on the vertical and horizontal detection line
圖9為工件以起點(380,358)和終點(380,528)作探測線進(jìn)行亞像素邊緣點定位,用于提取把手的位置。檢測獲得2 個邊界點坐標(biāo),其中白到黑的邊緣點為(390,441.042),黑到白的邊緣點為(390,273.526),因此其中心點的坐標(biāo)為(390,357.284)。將該點和墨水瓶中心點連接,利用求角度的公式可以求得其角度為183.842°。和實際量取的183.6°接近。
圖9 單探測線法測量把手角度(正投影)Fig.9 Measurement of handle angle by single detection line method(orthographic projection)
把手實際放置不一定為正投影,采用亞像素檢測算法如果僅通過1 條直線搜素邊緣點,偏斜的影響導(dǎo)致采集的邊緣像素點可能并不分別位于把手的上側(cè)和下側(cè)。
實際檢測時,可以通過雙檢測線方法來解決該問題,即從上到下搜索邊緣點和從下到上搜索邊緣點,2 條探測線在X 方向的間距為6 個像素點距離,分別進(jìn)行亞像素邊緣檢測獲得邊緣點然后取平均值,這樣可以減少測量的角度偏差。圖11(a)為單探測線方法測到的把手的方向線圖像,檢測到的把手角度為-16.58°;圖11(b)為雙探測線方法得到的結(jié)果,測到的角度為-19.13°。可以看出,雙探測線方法能夠減少測量偏差,當(dāng)偏斜量大時其效果更明顯。
圖11 單探測線方法和雙探測線方法測量結(jié)果Fig.11 Measuring results of single detection line method and double detection line method
圖12 為墨水瓶自動灌裝線機器人夾蓋工位的現(xiàn)場照片,應(yīng)用設(shè)計的亞像素邊緣檢測算法對墨水瓶蓋進(jìn)行視覺檢測,單個瓶蓋的平均檢測時間為2.15 ms,瓶蓋的角度測量偏差在3°以內(nèi),總體夾放速度達(dá)到0.4 s/個,優(yōu)于設(shè)計要求。
圖12 墨水瓶自動灌裝線機器人夾蓋工位Fig.12 Robot cap clamping station of ink bottle autopackaging line
設(shè)計一種基于二次曲線擬合的2 步定位亞像素邊緣檢測算法,邊緣定位過程中采用降維的方法將探測直線上像素點二維坐標(biāo)轉(zhuǎn)化為一維坐標(biāo),完成定位后將邊緣點一維坐標(biāo)轉(zhuǎn)換為圖像像素坐標(biāo),減少運算時間。算法分為初定位和精確定位2 步,根據(jù)定位點探測線的灰度微分特性曲線,通過弦截法定位出粗略的邊緣點范圍,減少精確定位時的擬合點數(shù)目;精確定位通過二次曲線擬合確定出邊緣點的準(zhǔn)確位置,依據(jù)實際物理模型的不同改變擬合算法,提高算法的適應(yīng)能力。利用亞像素邊緣檢測算法設(shè)計一種雙探測線法并應(yīng)用到墨水瓶蓋的灌裝線上,保證機器人夾取瓶蓋時有效避開把手位置,取得良好應(yīng)用效果。該算法可以廣泛應(yīng)用于視覺檢測中需要快速精確進(jìn)行邊緣點定位的場合。