陳憲帥,吳自然,閆俊濤,吳桂初,郭天慧
(1.溫州大學(xué)樂清工業(yè)研究院,浙江 溫州 325000;2.襄陽市供電公司,湖北 襄陽 441000)
隨著工業(yè)生產(chǎn)中對機(jī)器自動(dòng)化、智能化需求的日漸提高,機(jī)器視覺作為工業(yè)生產(chǎn)向智能化方向發(fā)展的重要技術(shù)之一,已得到愈加深入的研究,越來越多的視覺檢測、測量及定位等技術(shù)被應(yīng)用到實(shí)際生產(chǎn)當(dāng)中[1-3]。但基于機(jī)器視覺的智能制造技術(shù)的發(fā)展,其可行及可靠性依靠高精度的圖像分類、識別和定位跟蹤等技術(shù)來支撐,而生產(chǎn)中所面臨的形色多樣的生產(chǎn)對象、復(fù)雜的工業(yè)環(huán)境及其不同的功能要求,給視覺的識別處理工作帶來極大的困難和挑戰(zhàn)。
隨著視覺技術(shù)在工業(yè)生產(chǎn)中的需求日益增加,越來越多的基于視覺的分類、識別及定位方法被提出。孔令聰[4]提出了一種以零件輪廓的形狀、面積和周長等特征參數(shù)對零件進(jìn)行分類,后計(jì)算零件的質(zhì)心等參數(shù)對零件進(jìn)行定位及姿態(tài)估計(jì)的方法;徐遠(yuǎn)等[5]采用兩個(gè)單目相機(jī),通過改進(jìn)NCC匹配算法的一次定位和基于邊緣特征的模板匹配進(jìn)行二次定位實(shí)現(xiàn)了對工件和裝配孔的兩次定位;曹冬梅等[6]通過對條煙圖像的邊緣與模板進(jìn)行匹配,從而進(jìn)行定位與姿態(tài)估計(jì),再用相關(guān)性、對比度和各向異性等特征訓(xùn)練支持向量機(jī)分類模型對目標(biāo)進(jìn)行分類;曾鵬[7]首先在虛擬空間每隔一定步長渲染工件的CAD模型進(jìn)行模板庫的建立,然后根據(jù)實(shí)時(shí)采集的圖像與模板庫匹配獲得工件的粗略位置姿態(tài)參數(shù),在第二步的精確姿態(tài)參數(shù)求取中使用L-M算法進(jìn)行迭代,獲得較為精確的工件位置姿態(tài);周逸徉[8]利用深度圖像進(jìn)行分割,再利用顏色數(shù)據(jù)提取HOG特征進(jìn)行SVM分類,然后通過三維點(diǎn)云配準(zhǔn)定位可抓取位置。綜上所述,在面對復(fù)雜程度相對較低的識別對象時(shí),可以利用輪廓、面積與質(zhì)心等信息進(jìn)行分類,并直接定位抓取點(diǎn)坐標(biāo)和對姿態(tài)進(jìn)行估計(jì),但當(dāng)識別對象復(fù)雜程度較高時(shí),便無法直接通過這些參數(shù)對抓取點(diǎn)及姿態(tài)進(jìn)行估計(jì)。此外,以支持向量機(jī)等建模的方法進(jìn)行分類,當(dāng)對象越多、越復(fù)雜時(shí),模型訓(xùn)練所需的數(shù)據(jù)量也就越大,極大地延長了開發(fā)周期[9-10]。
針對工業(yè)應(yīng)用中的視覺技術(shù)并考慮上述問題,以小型斷路器柔性裝配系統(tǒng)為實(shí)例,提出一種綜合物體自身及其成像的多特征融合的識別方法。以單目相機(jī)成像,完成對目標(biāo)零件的分類、姿態(tài)識別和抓取定位工作。
基于機(jī)器視覺的小型斷路器柔性裝配系統(tǒng)由視覺識別系統(tǒng)和機(jī)器人運(yùn)動(dòng)系統(tǒng)及零件等部分組成。通過視覺分類識別出散放零件的種類及擺放姿態(tài),定位零件抓取坐標(biāo),從而引導(dǎo)機(jī)器人完成對零件姿態(tài)的調(diào)整及后續(xù)的裝配工作。其系統(tǒng)框圖如圖1所示。
圖1 柔性裝配系統(tǒng)框圖
系統(tǒng)硬件如圖2所示。為降低相機(jī)對識別精度的影響,選用分辨率為2590×1942的Basler相機(jī),其分辨率高于常規(guī)機(jī)器視覺系統(tǒng)中使用的相機(jī)。為使散放的零件均能落入相機(jī)視野同時(shí)不影響機(jī)器人動(dòng)作,相機(jī)安裝高度為60 cm。系統(tǒng)主控制器為機(jī)器人控制器,其作用有:接收光電開關(guān)輸入的零件到達(dá)信號、輸出相機(jī)開始拍照信號以及對機(jī)器人運(yùn)動(dòng)和氣缸夾爪動(dòng)作的控制信號。
圖2 系統(tǒng)硬件圖
為便于不同種類零件及同種類不同擺放姿態(tài)的分類識別,首先規(guī)定使用兩級分類編號如圖3所示。
圖3 類別編號示意圖
視覺識別算法流程如圖4所示。
圖4 視覺識別算法流程圖
從獲取圖像到向機(jī)器人控制器發(fā)送數(shù)據(jù)的過程中:首先需對場景中不同種類零件及各類零件不同擺放姿態(tài)做出分類判斷;然后通過匹配當(dāng)前狀態(tài)零件與目標(biāo)狀態(tài)零件兩幅圖像中關(guān)鍵點(diǎn)的方式求取零件的旋轉(zhuǎn)角度;繼而用獲取到的關(guān)鍵點(diǎn)對計(jì)算出兩幅圖像的仿射變換矩陣,用以計(jì)算指定的抓取點(diǎn)在當(dāng)前狀態(tài)零件圖像中的像素坐標(biāo);最后使用通過相機(jī)標(biāo)定與手眼標(biāo)定得到的變換矩陣,將求取的抓取點(diǎn)像素坐標(biāo)變換成機(jī)器人坐標(biāo)系下的空間坐標(biāo)[11]。
預(yù)處理包括灰度化、邊緣提取、二值化、形態(tài)學(xué)操作、輪廓提取及最小矩形框擬合等步驟將場景中的5類零件從源圖中分割,用以后續(xù)的分類及識別工作。如圖5所示,針對以綠色最小矩形框無法直接分割圖像,而零件相距較近時(shí),以矩形框分割則出現(xiàn)如圖6a所示,將非目標(biāo)零件部分同時(shí)分割至一張圖中的問題,其解決步驟如下:
(1)創(chuàng)建與藍(lán)色框同等大小的背景圖像;
(2)將綠色最小矩形區(qū)域內(nèi)像素點(diǎn)坐標(biāo)減去藍(lán)色矩形框左上頂點(diǎn)坐標(biāo)構(gòu)成新像素點(diǎn),同時(shí)將其三通道灰度值賦予新像素點(diǎn);
(3)將新像素點(diǎn)畫入創(chuàng)建的背景圖像中,其分割效果如圖6b所示。
圖5 零件矩形框選圖
(a)藍(lán)色框分割效果 (b)改進(jìn)后分割效果圖6 切割效果對比圖
一級分類通過對零件最小矩形框的面積、輪廓面積以及顏色特征等進(jìn)行分析比較做出類別判斷。其算法流程如圖7所示。S0為分割后第一個(gè)零件的最小矩形框面積,用以初始化變量max_S和min_S,而Sn則是另外4個(gè)零件的最小矩形框面積。Th1、Th2分別為綠色與紅色像素?cái)?shù)的參考閾值。Sr1、Sr2分別為圖片3和4代表的零件最小矩形框面積。
圖7 一級分類算法流程圖
二級分類通過對零件自身在不同擺放姿態(tài)下的最小矩形框面積、顏色、成像以及固有特征等信息的比較依次做出類別判。
(1)零件0:如式(1),比較零件0最小矩形框面積max_S與給定閾值Th3的大小,其分類結(jié)果lab0記作:
(1)
對姿態(tài)01、02則通過零件成像特征來區(qū)分。如圖8a和圖8c所示,對矩形框可能出現(xiàn)的兩種情況,以P1點(diǎn)為基礎(chǔ)點(diǎn),判斷P1P2與P1P3的長短情況,并按式(2)重新規(guī)定4個(gè)頂點(diǎn)的順序,如圖8b和圖8d所示。
(2)
(a)橫向框 (b)陰影區(qū)域 (c)縱向框 (d)陰影區(qū)域圖8 最小矩形框示意圖
以Q1Q2所在的長邊劃定感興趣區(qū)域(ROI),如圖8b和圖8d陰影區(qū)域所示。假設(shè)表示零件的像素點(diǎn)集合為S,感興趣區(qū)域內(nèi)像素點(diǎn)集合為s,通過式(3)對感興趣的矩形長邊做出選擇,記作L:
(3)
對選取的邊L的兩個(gè)端點(diǎn),即頂點(diǎn),以類似邊選取的方式做出選擇。如圖9所示,實(shí)際操作中A點(diǎn)為最終選取的感興趣點(diǎn),同時(shí)記錄與其構(gòu)成矩形短邊和長邊的B、C兩點(diǎn)。設(shè)向量AB和AC的夾角為φ,因在圖像中順時(shí)針轉(zhuǎn)動(dòng)角度為負(fù),反之為正,所以根據(jù)式(4)做出類別判斷,記作:
(4)
(a)姿態(tài)01ROI (b)三點(diǎn) (c)姿態(tài)02ROI (d)三點(diǎn) 圖9 操作示意圖
(2)零件1:其算法流程如圖10所示。Th4為零件1在自身不同姿態(tài)下的綠色像素?cái)?shù)參考閾值,Th1與其的區(qū)別在于,Th1為自身與其它零件比較的參考;Th5為自身輪廓面積的參考閾值;小圓如圖11a中標(biāo)記的圓,與圖11b形成對比。
圖10 零件1二級分類流程圖
子流程‘姿態(tài)10or11’的步驟同零件0姿態(tài)01和02的區(qū)分步驟基本一致。但零件1選取的感興趣邊為矩形框的短邊,且依據(jù)是兩條短邊與質(zhì)心點(diǎn)m距離的大小。實(shí)際操作如圖11c、圖11d所示,選取的邊為AB邊,點(diǎn)為A點(diǎn)。其分類結(jié)果lab1記作:
(5)
(a)小圓 (b)無小圓 (c)姿態(tài)10 (d)姿態(tài)11圖11 操作示意圖
(3)零件2:如式(6),比較零件2最小矩形框面積min_S與給定閾值Th6的大小,其分類結(jié)果lab2記作:
(6)
如圖12所示,對零件輪廓進(jìn)行凸包檢測找出其中間彎曲處的彎曲點(diǎn)O。同樣以零件0中邊選取的方式找到AB邊所在,而兩種姿態(tài)下均有矩形框頂點(diǎn)A距離O點(diǎn)較近,從而確定A點(diǎn)所在。設(shè)向量OA和OB的夾角為φ,分類結(jié)果如式(7),記作:
(7)
(a)姿態(tài)21凸包 (b)三點(diǎn) (c)姿態(tài)22凸包 (d)三點(diǎn)圖12 操作示意圖
凸包即如圖12a和圖12c中的藍(lán)色包圍線,為凸多邊形,凸包所包圍白色區(qū)域即為凸性“缺陷”。
(4)零件3:依據(jù)零件3在一級分類中是否通過紅色提取判斷作出進(jìn)一步判斷,算法流程如圖13所示。s3為其最小矩形框面積,Th7為姿態(tài)30和32的區(qū)分閾值,Th8為姿態(tài)31和33的區(qū)分閾值。
圖13 零件3二級分類流程圖
(5)零件4:如式(8),比較零件最小矩形框面積s4與給定閾值Th9和Th10的大小,Th9 (8) 對于姿態(tài)41、42和43,如式(9),比較零件輪廓面積Scnt與給定閾值Th11的大小,將其分為兩個(gè)子類,記作: (9) 如圖14所示,姿態(tài)41和42在灰度、形狀、邊緣梯度等方面均存在極大的相似度,難以準(zhǔn)確區(qū)分,因此采用機(jī)械的方式使其變?yōu)樽藨B(tài)40或43再進(jìn)行角度識別。 圖14 姿態(tài):左41 右42 對于姿態(tài)44和45:順次對矩形框頂點(diǎn)劃定感興趣區(qū)域,滿足式(10)表述的條件,即確定為感興趣頂點(diǎn)。其中S為零件像素點(diǎn)集合,s為感興趣區(qū)域內(nèi)像素點(diǎn)集合。 S∩s=? (10) 回縮矩形框,獲取新矩形區(qū)域內(nèi)的零件輪廓點(diǎn);比較獲取的輪廓點(diǎn)與不以感興趣頂點(diǎn)為端點(diǎn)的兩條原矩形框的邊的最小距離的大小從而確定兩條邊的位置。實(shí)際操作如圖15所示,感興趣頂點(diǎn)為A,與回縮后矩形框內(nèi)輪廓點(diǎn)最小距離較小的邊為BD邊,另外一邊即為CD邊。設(shè)向量AB和AC的夾角為φ,根據(jù)式(11)做出類別判斷,記作: (11) (a)姿態(tài)44 (b)四點(diǎn)示意 (c)姿態(tài)45 (d)四點(diǎn)示意 圖15 操作示意圖 通過對矩形框中感興趣的邊以及感興趣的頂點(diǎn)位置的分析,提取用以計(jì)算旋轉(zhuǎn)角的關(guān)鍵點(diǎn),即與各頂點(diǎn)距離最近的輪廓點(diǎn)。其算法流程大致如圖16所示。 圖16 角度識別算法流程 大部分姿態(tài)感興趣邊或頂點(diǎn)的選取過程同零件0姿態(tài)01和02、零件2姿態(tài)21和22以及零件4姿態(tài)44和45等區(qū)分過程中的邊、點(diǎn)選取過程基本類似,只是選取的方法略有不同,便不再贅述,匹配效果如圖17a~圖17c所示。對于圖像具有對稱性的姿態(tài),則無需進(jìn)行邊或點(diǎn)的選取,可在區(qū)分出矩形框長短邊后直接進(jìn)行頂點(diǎn)順序的規(guī)定,如圖17d所示零件3姿態(tài)32;而對于特征點(diǎn)易抓取的姿態(tài),如零件1姿態(tài)12和13,可通過圓檢測和矩形檢測提取關(guān)鍵點(diǎn)用以計(jì)算角度,同時(shí)也可做抓取點(diǎn)。其效果如圖17e和圖17f所示。 (a)姿態(tài)00 (b)姿態(tài)20 (c)姿態(tài)40 (d)姿態(tài)32 (e)姿態(tài)12 (f)姿態(tài)13圖17 匹配效果圖 綜上所述,角度計(jì)算如圖18所示,計(jì)算實(shí)際圖像中兩個(gè)關(guān)鍵點(diǎn)的向量ac及對應(yīng)模板中的向量a1c1,其夾角θ即為旋轉(zhuǎn)角。為減小誤差,盡可能求多個(gè)值取平均。實(shí)際中,應(yīng)提前對模板圖像進(jìn)行關(guān)鍵點(diǎn)的提取與保存,在提取到實(shí)際圖像中的關(guān)鍵點(diǎn)后,直接查詢對應(yīng)姿態(tài)的關(guān)鍵點(diǎn)計(jì)算角度即可,減少無謂的時(shí)間消耗,從而提高算法的運(yùn)行效率。 圖18 角度計(jì)算示意圖 機(jī)器人坐標(biāo)系下的抓取點(diǎn)坐標(biāo)通過兩步獲取。首先,利用至少三對關(guān)鍵點(diǎn)對計(jì)算實(shí)際與模板圖像間的仿射變換矩陣,并同提前保存的對應(yīng)姿態(tài)零件的抓取點(diǎn)在模板圖像中的像素坐標(biāo)作矩陣乘法,得出抓取點(diǎn)在實(shí)際圖像中的像素坐標(biāo),如公式(12)所示;其次,利用相機(jī)標(biāo)定及手眼標(biāo)定獲取的坐標(biāo)轉(zhuǎn)換矩陣,將抓取點(diǎn)的像素坐標(biāo)變換為機(jī)器人坐標(biāo)系坐標(biāo),如公式(13)所示: (12) (13) 式中,M1為仿射變換矩陣、M2為坐標(biāo)轉(zhuǎn)換矩陣,(u,v)為抓取點(diǎn)在實(shí)際圖像中的像素坐標(biāo)、(u0,v0)為抓取點(diǎn)在模板圖像中的像素坐標(biāo)、 (x,y,z)為抓取點(diǎn)在機(jī)器人坐標(biāo)系下的坐標(biāo)、(x0,y0,z0)則為機(jī)器人坐標(biāo)系與世界坐標(biāo)系間的偏移量。 搭建實(shí)驗(yàn)臺,獲取并保存零件各姿態(tài)下的模板圖像及對應(yīng)抓取點(diǎn)像素坐標(biāo),對零件分類、角度與抓取點(diǎn)坐標(biāo)識別進(jìn)行實(shí)驗(yàn)分析。 采集各零件各姿態(tài)樣本400組進(jìn)行分類實(shí)驗(yàn),其分類結(jié)果如表1所示??煽闯鲆弧⒍壏诸愓_率均達(dá)到99.5%及以上,整體分類正確率在99%以上,均滿足分類要求。同時(shí),較深度學(xué)習(xí)等建模的分類方式,節(jié)省了模型訓(xùn)練所需的時(shí)間,使得其調(diào)整及維護(hù)更加方便高效。 表1 分類結(jié)果統(tǒng)計(jì)表 取30組樣本,分別采用算法1:帶K近鄰比約束和隨機(jī)抽樣一致性(RANSAC)剔除誤匹配的ORB特征匹配算法[12-13]、算法2:最小矩形框旋轉(zhuǎn)角質(zhì)心估計(jì)[4]和文章算法3對零件旋轉(zhuǎn)角度進(jìn)行實(shí)驗(yàn)。其中部分結(jié)果對比數(shù)據(jù)如表2所示。 表2 部分結(jié)果對比數(shù)據(jù)表 根據(jù)圖2所示的機(jī)器人裝配實(shí)驗(yàn),為保證機(jī)器人能夠?qū)α慵藨B(tài)進(jìn)行正確的調(diào)整,要求識別的角度絕對誤差在±0.8°范圍以內(nèi),超出該范圍則認(rèn)為識別不合格。所以,文章統(tǒng)計(jì)3種算法下零件旋轉(zhuǎn)角度計(jì)算合格的樣本組數(shù),計(jì)算合格率;同時(shí)對去除不合格情況后剩余的樣本進(jìn)行角度誤差分析,計(jì)算各樣本的絕對誤差,并統(tǒng)計(jì)該誤差絕對值的平均值。其結(jié)果如表3所示。 表3 角度識別數(shù)據(jù)分析表 從上述兩表可看出,通過算法1和算法2計(jì)算角度的合格率均小于算法3,且兩者在去除不合格樣本后的誤差平均值仍略高于算法3。綜合誤差精度及合格率兩方面考慮,算法3的角度計(jì)算效果要優(yōu)于前兩者。 而造成前兩種算法角度計(jì)算出現(xiàn)錯(cuò)誤的原因分別為以下兩點(diǎn): (1)一些零件自身特征點(diǎn)區(qū)分不明顯,匹配時(shí)易混淆卻又無法剔除,如圖19a所示,與文章算法匹配效果圖19b形成對比; (2)由于零件的外形復(fù)雜不規(guī)則,導(dǎo)致一些姿態(tài)下零件最小矩形框與自身的相對位置不是固定不變的,無法通過最小矩形框的旋轉(zhuǎn)角來正確描述零件本身的旋轉(zhuǎn)角,如圖19c所示。 (a)算法一效果 (b)算法三效果 (c)矩形框示意 圖19 誤差分析示意圖 算法2以質(zhì)心為抓取點(diǎn),對于外形不規(guī)則的零件而言,質(zhì)心點(diǎn)不一定是合理的抓取點(diǎn);算法1與文章算法的抓取點(diǎn)坐標(biāo)需依靠匹配到的特征點(diǎn)對來進(jìn)行計(jì)算,然而,算法1的匹配效果無法滿足要求,其坐標(biāo)計(jì)算的準(zhǔn)確性便無法得到保證。所以,通過文章算法對零件分類、角度識別及抓取點(diǎn)坐標(biāo)識別進(jìn)行綜合實(shí)驗(yàn),其部分結(jié)果如表4所示。對所列數(shù)據(jù)分析可得:角度識別的誤差平均值為0.41°,x軸坐標(biāo)識別的誤差平均值為0.194 mm,y軸為0.256 mm,滿足角度允許誤差±0.8°、坐標(biāo)允許誤差±0.3 mm的要求。 文章提出了一種基于多特征融合匹配的分類、識別與定位方法并進(jìn)行了實(shí)驗(yàn)分析。相比于SVM、深度學(xué)習(xí)等建模分類的方法,當(dāng)零件顏色、大小或形狀等信息發(fā)生變化時(shí),無需采集大量的數(shù)據(jù)重新對模型進(jìn)行訓(xùn)練,只需調(diào)整相關(guān)參數(shù)便能適應(yīng)改變,極大地縮短了系統(tǒng)的開發(fā)周期,提高了開發(fā)效率;而與常見的特征匹配等算法相比,在面對姿態(tài)多樣或者特征區(qū)分不明顯的零件時(shí),其匹配的穩(wěn)定性高,更大程度地保證了角度與坐標(biāo)計(jì)算的準(zhǔn)確性。實(shí)驗(yàn)結(jié)果表明,該方法的識別精度滿足實(shí)際系統(tǒng)的要求。 表4 部分零件樣本識別結(jié)果 續(xù)表2.4 關(guān)鍵點(diǎn)提取與角度計(jì)算
2.5 抓取點(diǎn)坐標(biāo)提取與轉(zhuǎn)換
3 實(shí)驗(yàn)及結(jié)果分析
3.1 零件分類識別實(shí)驗(yàn)
3.2 零件角度識別對比實(shí)驗(yàn)
3.3 綜合實(shí)驗(yàn)
4 結(jié)束語