饒 健
(三明學(xué)院 信息工程學(xué)院,福建 三明 365004)
機器視覺、物聯(lián)網(wǎng)和機器人已經(jīng)越來越多地用到了工業(yè)制造領(lǐng)域,其中以基于機器視覺的工件定位為核心展開的智能化項目是基礎(chǔ),本研究以工件定位為研究對象,以貝葉斯分類、角點匹配為手段,讓機器知道工件位置,用于引導(dǎo)機器人的作業(yè)。
工件定位屬于計算機視覺領(lǐng)域中的目標定位,國內(nèi)研究人員已經(jīng)取得了一定研究成果。王翰[1]提出基于雙目視覺的帶圓特征工件空間定位,建立虛擬橢圓投影模型,然后建立虛擬橢圓錐面,計算圓面的姿態(tài),解決圓面定位的二義性問題,獲得空間圓面準確的位姿。但是該技術(shù)缺乏大數(shù)據(jù)測試與論證,在實際流水線運作環(huán)境可能出現(xiàn)誤定位的問題。翟永杰[2]提出基于機器視覺的汽車工件抓取定位系統(tǒng),以FANUC機器人為平臺,采用單應(yīng)性矩陣和最小外接矩形方法,完成定位。該技術(shù)過度依靠硬件支持,且成本較高。郭斌[3]基于工業(yè)相機完成圖像采集,由NI Vision軟件進行圖像處理,基于邊緣檢測提取質(zhì)心點,完成目標定位。該技術(shù)采用商業(yè)付費軟件,不僅底層應(yīng)用調(diào)取不靈活,而且成本較高。
為了增強復(fù)雜條件下工件定位的準確性,本文融合了圖像處理技術(shù)與機器學(xué)習(xí)來設(shè)計并實現(xiàn)了工件定位算法,并開發(fā)了一套了工件定位軟件系統(tǒng)。為保證算法和系統(tǒng)的普適性,本文算法面向多種工件進行定位,并且預(yù)留了增設(shè)其他工件定位的接口。最后,測試了本文算法的定位準確性。
工廠智能化需要用到大量工業(yè)機器人,機器人具有機械手裝置,但是缺乏視覺與分析系統(tǒng)。需要開發(fā)出與之配套的視覺系統(tǒng),給與其動作引導(dǎo)功能。為了達到引導(dǎo)機器人的目的,采用角點檢測的方式,保證定位準確度,采用貝葉斯分類的方式,保證識別的穩(wěn)定性,整個定位過程如圖1所示。利用工業(yè)相機完成工件圖像采集;采用角點檢測與角點匹配的方式,定位工件的區(qū)域與位置;利用貝葉斯分類,完成工件的精準定位;最后將定位機制從方案實現(xiàn)為代碼和系統(tǒng),完成落地化應(yīng)用,以達到準確、快速識別工件目標的目的。典型的待定位的工件目標圖像如圖2所示。
由于工件種類繁多且擺放隨意,本文以螺絲、螺帽和六角螺母為例,定位對象為六角螺母,即區(qū)分開螺絲、螺母。采用簡單的灰度閾值分割和形態(tài)學(xué)處理的方式很難滿足需要,因此本研究引入角點檢測。角點是輪廓交匯點,即同場景的視角發(fā)生變化,附近區(qū)域像素點在梯度方向和幅值上有較大變化[4]。六角螺母具有6個角的特點,這種特征點較為明顯。窗口在圖像上滑動,比較滑動前后窗口中灰度變化,如果存在較大灰度變化,則認為窗口中存在角點[5]:
E(u,v)=∑x,yw(x,y)[I(x+u,y+v)-I(x,y)]2
(1)
式中:[u,v]是偏移量;(x,y)是窗口內(nèi)坐標,w(x,y)是窗口函數(shù)。本算法中,w(x,y)函數(shù)以中心為原點二元正態(tài)分布[6],變換式(1)為
(2)
式中:[u,v]代表窗口的偏移量;M代表窗口角點矩陣
(3)
式中:M是角點矩陣;w(x,y)是窗口函數(shù);Ix和Iy代表像素梯度坐標,Harris角點檢測通過窗口內(nèi)像素的x與y方向上梯度統(tǒng)計分析[7-9]。
圖1 本文系統(tǒng)框架
對于所提算法而言,主要是根據(jù)Harris角點特征來完成對六角螺母的檢測。在此基礎(chǔ)上,本研究進行角點匹配,即將待檢圖像中的疑似角點與標準六角螺母的已知角點進行配對,從而得出六角螺母的6個角位置,完成角點檢測。對圖2角點檢測后的結(jié)果如圖3所示,正確定位到六角螺母的位置。
圖2 待定位的工件圖像 圖3 角點檢測結(jié)果
在實際應(yīng)用中,一次需要檢測的工件數(shù)量往往較多,而且待檢視野中還有其他工件,比如螺絲和螺帽。為了準確定位到螺母而不是螺絲,引入了機器學(xué)習(xí)技術(shù),即貝葉斯分類器。貝葉斯分類基于概率統(tǒng)計進行分類,通過先驗概率,計算出其后驗概率,選擇最大后驗概率的類作為所屬類[10-11]。
首先,建立工件圖像種類庫,將其作為貝葉斯分類器的輸入端。其中,圖像、工件種類作為一條特征行:
x={a1,a2,...,am}]
(4)
式中:x代表特征行;a代表特征;m代表特征個數(shù)。
其次,把每條特征行存入樣本數(shù)據(jù)庫,接著針對人工標注的工件種類,建立類別集合[12]:
C={y1,y2,...,yn}]
(5)
式中:C代表結(jié)果類別集合,y代表文本文字內(nèi)容;n代表文本文字個數(shù)。
貝葉斯分類算法解釋了一個識別結(jié)果的可能性,基于對同類事物理解的經(jīng)驗和知識[13],數(shù)學(xué)表達式為
(6)
式中:c代表待識別的工件種類;a代表支撐判斷的證據(jù)特征。
隨后,在上述基礎(chǔ)上引入概率密度函數(shù),完成數(shù)據(jù)訓(xùn)練和結(jié)果識別[14-15]:
(7)
式中:c代表待識別的工件種類;a代表支撐判斷的證據(jù)特征;u代表特征均值。
以圖3的角點檢測結(jié)果為數(shù)據(jù),利用貝葉斯分類器來定位工件,結(jié)果如圖4所示。由圖4可知,工件定位準確。
圖4 定位結(jié)果
本次實驗將算法以代碼實現(xiàn),并且集成在軟件系統(tǒng)中進行實驗,角點參數(shù)為 [0.65,0.78]。為了凸出所提技術(shù)的優(yōu)勢,將文獻技術(shù)[1-2]的定位結(jié)果作為對照組。
待定位的圖像如5所示,有2個六角螺母待檢測定位。工件定位系統(tǒng)界面如圖6所示,功能有:貝葉斯分類、角點匹配和工件定位。
本文算法采用Harris角點檢測,完成螺母工件的粗定位,并基于貝葉斯分類,完成螺母工件的識別確認和精定位如圖7所示。螺母工件定位正確,定位到兩個螺母工件,沒有對螺絲螺帽誤定位。文獻[1]算法通過建立虛擬橢圓投影模型,然后根據(jù)虛擬橢圓錐面來計算圓面的姿態(tài),該技術(shù)缺乏大數(shù)據(jù)訓(xùn)練,在實際流水線運作環(huán)境中,往往出現(xiàn)系統(tǒng)不穩(wěn)定的問題。文獻[2]技術(shù)以機器人軟件系統(tǒng)為基礎(chǔ)平臺,基于單應(yīng)性矩陣的原理,用平臺自帶的最小外接矩形定位工件目標,該技術(shù)過度依靠商業(yè)硬件平臺支持,且成本較高,缺乏靈活性。文獻[1]和文獻[2]定位結(jié)果如圖8和圖9所示,定位結(jié)果有一定的誤差,圖8誤定位了一個螺帽,圖9誤定位了一個螺帽,少定位了一個螺母。通過實驗對比發(fā)現(xiàn),本文算法對工件定位更為準確,具備更好的準確度與穩(wěn)定性。
圖5 待定位圖像 圖6 系統(tǒng)界面圖
圖7 本文算法的定位結(jié)果 圖8 文獻[1]算法的定位結(jié)果
圖9 文獻[2]算法的定位結(jié)果
為了客觀反映本文算法的穩(wěn)定性,自行構(gòu)建10組測試樣本,每一組中均含有8個螺母,10個螺釘,以及12個螺栓,但是所有的零件尺寸與形狀都不一樣。再利用所提算法與文獻算法[1-2]來檢測其中的螺釘,并統(tǒng)計各自的準確性,結(jié)果如表1所示。由表1可知,所提算法具備更好的準確性,例如,對于第1組實驗,其能夠準確定位出10個螺釘,無誤檢和漏檢現(xiàn)象。而文獻[1]的檢測正確度不佳,只將其中的6個螺釘識別出來,并存在誤檢目標,把3個螺栓誤判為螺釘。同樣,文獻[2]方案的準確性也不理想,雖然能夠?qū)?0個螺釘全部檢測出來,但是也存在誤檢,將1個螺母和3個螺栓誤判為識別目標。同樣,對于其他幾組實驗,也具有類似的檢測結(jié)果。
表1 不同算法的穩(wěn)定性測試
為了解決現(xiàn)場復(fù)雜環(huán)境下工件目標難定位的問題,本文設(shè)計并實現(xiàn)了一套基于貝葉斯分類與角點檢測的工件定位算法。該技術(shù)分別從角點特征、檢測匹配、貝葉斯分類出發(fā),根據(jù)工件定位應(yīng)用場景,分析并建立了Harris角點檢測方程,檢測出六角螺母的特征角點位置,以此定位六角螺母;建立貝葉斯分類模型,通過特征集訓(xùn)練,基于訓(xùn)練出的分類器確認所定位的工件為六角螺母,實現(xiàn)算法與系統(tǒng)并落地于實際產(chǎn)線量產(chǎn),達到準確定位工件目標的目的,為后續(xù)智能化設(shè)備奠定了智能算法基礎(chǔ)。在實際生產(chǎn)中,逐步研發(fā)增加各種工件目標定位的技術(shù)是下一步深入研究的內(nèi)容。