陳從平, 姚 威, 王 欽
(常州大學(xué) 機(jī)械工程學(xué)院,江蘇 常州 213164)
在機(jī)械手上下料、搬運(yùn)以及裝配等任務(wù)中,需要對工件位姿進(jìn)行估計(jì)。目前對工件位姿估計(jì)的方法主要有2D特征點(diǎn)法[1]、輪廓擬合法[2]、三維點(diǎn)云配準(zhǔn)法。其中,2D特征點(diǎn)法通過提取工件的多個(gè)特征點(diǎn),并通過特征點(diǎn)和物體坐標(biāo)系下的坐標(biāo)的對應(yīng)來求解位姿,此方法可以快速準(zhǔn)確地定位紋理豐富的物體,但由于紋理單一的圖像的特征點(diǎn)難以提取,因此該方法不適用于處理低紋理的工件;輪廓擬合法通過將工件擬合成矩形,再計(jì)算矩形的質(zhì)心和偏轉(zhuǎn)角度得到工件的位姿,此方法計(jì)算簡單,速度快,且適用于形狀規(guī)則且低紋理的工件,但只能計(jì)算工件所在平面的2D位置和1D旋轉(zhuǎn)角度;三維點(diǎn)云配準(zhǔn)法首先獲取工件的單視角點(diǎn)云并求取其三維點(diǎn)特征,然后利用三維特征和工件的完整點(diǎn)云進(jìn)行配準(zhǔn)得到位姿,此方法不僅對特征點(diǎn)的依賴大大降低,而且可以計(jì)算工件的6D位姿。
在點(diǎn)云配準(zhǔn)求取位姿方面,黃青丹等人[3]采用雙目視覺方案,通過SGBM(semi-global block matching)立體匹配算法求取場景的視差圖,根據(jù)視差圖重建場景的點(diǎn)云并分割出工件,最后和模板點(diǎn)云配準(zhǔn)得到工件的位姿。該算法可以重建場景的稠密點(diǎn)云,但也因此導(dǎo)致立體匹配的計(jì)算時(shí)間太長,且SGBM算法對低紋理圖像的效果較差。李樹春等人[4]使用深度相機(jī)獲取工件的點(diǎn)云,并計(jì)算點(diǎn)云的快速點(diǎn)特征直方圖,采用奇異值分解和隨機(jī)一致算法來進(jìn)行位姿估計(jì),具有一定的穩(wěn)定性和精確性,但此方法對工件表面的稠密點(diǎn)云進(jìn)行計(jì)算,計(jì)算量大,且深度相機(jī)的成本較高,不具有普及性。
針對以上問題,提出一種將深度學(xué)習(xí)和輪廓重建結(jié)合的工件識別與位姿估計(jì)方法。使用雙目攝像機(jī)采集圖像并通過深度學(xué)習(xí)識別并定位工件所在的矩形區(qū)域,深度學(xué)習(xí)避免了傳統(tǒng)方法在識別低紋理目標(biāo)時(shí)難以定義特征的問題,同時(shí)可以自動地提取到更深層的抽象特征,因此具有良好的魯棒性與準(zhǔn)確性。位姿估計(jì)方面,考慮到低紋理工件的特征點(diǎn)不易提取的原因,采用點(diǎn)云配準(zhǔn)的方法計(jì)算位姿。針對現(xiàn)有點(diǎn)云配準(zhǔn)求位姿中計(jì)算復(fù)雜度高的問題,只對工件的輪廓進(jìn)行重建和配準(zhǔn)。輪廓重建方面,對工件所在矩形區(qū)域進(jìn)行直線提取,提出一種結(jié)合YOLO檢測結(jié)果的多約束直線匹配算法對左右直線集合進(jìn)行匹配,根據(jù)三角測量原理重建出空間直線方程并打斷得到工件的輪廓點(diǎn)云,最后和模板點(diǎn)云配準(zhǔn)得到工件的6D位姿,從而完成低紋理工件的識別與位姿估計(jì)。
將兩個(gè)相同的攝像機(jī)平行放置組成雙目視覺系統(tǒng),并將左右攝像機(jī)的距離設(shè)定為60 mm。通過雙目攝像機(jī)采集一定數(shù)量的棋盤格圖片后,使用 MATLAB標(biāo)定助手進(jìn)行標(biāo)定,標(biāo)定出的內(nèi)參和畸變系數(shù)如表1所示。
將世界坐標(biāo)系設(shè)定在左攝像機(jī)坐標(biāo)系,右攝像機(jī)坐標(biāo)系相對于左攝像機(jī)坐標(biāo)系的旋轉(zhuǎn)矩陣R和平移向量T分別為
(1)
(2)
根據(jù)標(biāo)定結(jié)果使用Bouguet算法進(jìn)行立體校正,校正結(jié)果如圖1所示??梢姡瑘D像畸變有很大改善,且左右圖像的同名點(diǎn)在同一水平線上,表明立體校正的結(jié)果較為準(zhǔn)確。
圖1 校正結(jié)果
本文提出的深度學(xué)習(xí)和輪廓重建結(jié)合的工件識別與位姿估計(jì)方法,在對雙目攝像機(jī)采集的圖像立體校正的基礎(chǔ)上,使用YOLOv3網(wǎng)絡(luò)檢測得到工件的類別和所在的矩形區(qū)域,對所有檢測到的工件的矩形進(jìn)區(qū)域行直線提取。由于直線的端點(diǎn)最能代表直線的特征,且直線的交點(diǎn)在不同視角下具有不變性,因此對距離較近的直線進(jìn)行端點(diǎn)重構(gòu)。重構(gòu)完成后結(jié)合YOLO的同名區(qū)域約束、極線約束、直線特征相似度約束進(jìn)行直線匹配。重建所有匹配的直線后得到工件的輪廓點(diǎn)云,最后和完整的模板點(diǎn)云進(jìn)行配準(zhǔn)得到工件的位姿。
對校正后的圖像進(jìn)行目標(biāo)檢測的基礎(chǔ)上,使用FLD(fast line detector)[5]算法對目標(biāo)區(qū)域進(jìn)行直線檢測,F(xiàn)LD算法首先進(jìn)行邊緣檢測然后對相鄰直線進(jìn)行合并并延長,直到遇到大曲率的邊緣則停止延長并返回直線。
直線檢測完成后對相近的直線進(jìn)行端點(diǎn)重構(gòu),具體步驟如下:
本文提出的基于YOLO檢測結(jié)果的多約束直線匹配算法,具體約束為:
1)基于YOLO的同名區(qū)域約束
只對YOLO網(wǎng)絡(luò)在左、右圖像中檢測出的相同工件的矩形框內(nèi)的直線進(jìn)行匹配,例如圖2所示的左圖像物體1區(qū)域中的直線,只和右圖像物體1區(qū)域的直線進(jìn)行匹配。
圖2 基于YOLO的同名區(qū)域約束
2)極線約束
理想狀態(tài)下,立體校正后左右圖像其匹配點(diǎn)位于同一水平線上,即縱坐標(biāo)相同。但由于攝像機(jī)標(biāo)定和校正過程中總會存在誤差,需使誤差滿足一定的約束。如圖3所示,設(shè)左右直線起點(diǎn)、終點(diǎn)分別為Pls(xls,yls),Ple(xle,yle),Prs(xrs,yrs)Pre(xre,yre)。其中,e1=|yls-yrs|,e2=|yle-yre|需滿足e1+e2 圖3 極線約束和直線特征相似度約束 3)直線特征相似度約束 匹配的直線在長度l上具有一定的相似度,且各自與圖像橫軸正方向的夾角θ亦具備一定相似度。如圖3所示,即|ll-lr| 匹配完成后,根據(jù)雙目測距原理對直線進(jìn)行三維重建。通過重建直線的兩個(gè)端點(diǎn)得到直線方程,接著打斷成點(diǎn)云,打斷規(guī)則為每條直線打斷出的點(diǎn)的個(gè)數(shù)根據(jù)直線的長度決定,且點(diǎn)與點(diǎn)之間的空間距離相等。記直線點(diǎn)云中的任意一點(diǎn)為Pi,Pi-1為前一點(diǎn)的坐標(biāo),迭代步長為ΔP,有 Pi=Pi-1+ΔP (3) 代入直線起始點(diǎn),按式(3)逐步迭代至終點(diǎn)即可生成該直線的點(diǎn)云。生成所有匹配直線的點(diǎn)云即可得到工件輪廓點(diǎn)云。 直線重建后僅獲得了工件的輪廓點(diǎn)云,欲判斷工件當(dāng)前位姿,需將重建的點(diǎn)云與該工件的模板點(diǎn)云進(jìn)行點(diǎn)云配準(zhǔn),以獲得目標(biāo)當(dāng)前實(shí)際位姿。配準(zhǔn)過程分為粗配和精配兩步進(jìn)行。 粗配準(zhǔn)使用采樣一致性初始配準(zhǔn)算法(sample consensus initial aligment,SAC-IA)。使用此算法前,應(yīng)先計(jì)算點(diǎn)云的快速點(diǎn)特征直方圖(FPFH)[6],步驟如下: 步驟1 計(jì)算點(diǎn)云中每個(gè)點(diǎn)的法線,如圖4所示。 圖4 以點(diǎn)Pq為中心時(shí)FPFH影響的空間范圍 步驟2 設(shè)當(dāng)前點(diǎn)Pq和其鄰域內(nèi)的一點(diǎn)Pk,q≠k,兩點(diǎn)的法線分別為nq,nk,以Pq為原點(diǎn)的建立如圖5所示的局部坐標(biāo)系。 圖5 局部坐標(biāo)系與SPFH生成過程 坐標(biāo)系的三個(gè)軸計(jì)算式如下 (4) 法線nq,nk的變換角度α,φ,θ計(jì)算式如下 (5) 步驟3 為當(dāng)前點(diǎn)Pq求得它與每個(gè)鄰域點(diǎn)之間的α,φ,θ三個(gè)特征元素值。然后將每個(gè)特征元素值的范圍劃分為11個(gè)子區(qū)間,并統(tǒng)計(jì)落在個(gè)子區(qū)間的點(diǎn)的數(shù)量,生成直方圖,最后連接在一起,形成一個(gè)33維的特征向量,即為FPFH。 步驟4 分別對當(dāng)前點(diǎn)鄰域中的每個(gè)點(diǎn)計(jì)算其FPFH,最后按式(6)加權(quán)成快速點(diǎn)特征直方圖 (6) 式中k為鄰域點(diǎn)的個(gè)數(shù),權(quán)重wk為當(dāng)前點(diǎn)Pq與其鄰域Pk之間的距離。 計(jì)算出點(diǎn)云的FPFH特征后,使用SAC-IA算法對點(diǎn)云進(jìn)行粗配準(zhǔn)。首先,從模板點(diǎn)云中選取n個(gè)采樣點(diǎn),然后,在重建的輪廓點(diǎn)云中查找和采樣點(diǎn)具有相似FPFH特征的多個(gè)點(diǎn),從這些相似點(diǎn)中隨機(jī)選取一個(gè)點(diǎn)作為對應(yīng)點(diǎn)。通過查找大量不同的對應(yīng)點(diǎn)來計(jì)算變換矩陣,最后,在所有變換中取最優(yōu)變換作為最終的粗配準(zhǔn)變換。 粗配準(zhǔn)后,兩點(diǎn)云已接近重合,但仍存在誤差,因此在粗配準(zhǔn)的基礎(chǔ)上采用迭代最近點(diǎn)(iterative closest point,ICP)算法[7]進(jìn)行精配準(zhǔn),ICP算法通過在兩片點(diǎn)云中搜索大量距離最近的點(diǎn)對,然后計(jì)算變換矩陣,之后將變換矩陣作用于模板點(diǎn)云從而生成新的模板點(diǎn)云,接著使新的模板點(diǎn)云繼續(xù)計(jì)算變換矩陣直到誤差或迭代次數(shù)滿足設(shè)定的條件。最終求解出兩點(diǎn)云之間的旋轉(zhuǎn)平移矩陣,即為工件的位姿矩陣。 選取長方體鐵塊、角鋁、T型平角片進(jìn)行實(shí)驗(yàn)。位姿估計(jì)方面首先使用輔助工具生成3個(gè)工件的外輪廓點(diǎn)云作為模板,然后重建工件的外輪廓點(diǎn)云進(jìn)行配準(zhǔn)得到位姿。 目標(biāo)檢測方面,對每種工件采集500張訓(xùn)練樣本,三種工件共1 500張訓(xùn)練樣本,輸入YOLOv3網(wǎng)絡(luò)進(jìn)行訓(xùn)練得到模型的權(quán)重。使用訓(xùn)練出的模型對立體校正后的左、右圖像進(jìn)行工件識別并框選,然后對其進(jìn)行直線檢測并端點(diǎn)重構(gòu),最后對左右直線集合進(jìn)行匹配。圖6為目標(biāo)檢測與長方體鐵塊的直線匹配結(jié)果。 圖6 目標(biāo)檢測與直線匹配結(jié)果 對所有匹配的直線對進(jìn)行三維重建,重建出3個(gè)工件的外輪廓點(diǎn)云,結(jié)果如圖7所示。 圖7 重建后的點(diǎn)云 重建完工件的輪廓點(diǎn)云后和對應(yīng)的模板點(diǎn)云進(jìn)行配準(zhǔn),即可得到工件的位姿。配準(zhǔn)結(jié)果如圖8所示,兩片點(diǎn)云已基本重合。 圖8 點(diǎn)云配準(zhǔn)結(jié)果 從不同角度對三個(gè)工件進(jìn)行拍攝,并手工測量其真實(shí)位姿,和本文算法計(jì)算的位姿進(jìn)行誤差計(jì)算。共進(jìn)行9次實(shí)驗(yàn),記錄實(shí)驗(yàn)結(jié)果,如表2所示,其中,1~3,4~6,5~9行的記錄分別為長方體鐵塊、角鋁、T型平角片的位姿。由表2可知,X,Y,Z方向的位置絕對誤差值均在2 mm以內(nèi),姿態(tài)絕對誤差值均在3°以內(nèi),表明位姿估計(jì)具有較高的精度。 表2 物體的位姿 針對低紋理工件識別和位姿估計(jì)較為困難的問題,提出一種結(jié)合深度學(xué)習(xí)與雙目視覺重建工件輪廓點(diǎn)云的方法。首先對搭建的雙目視覺系統(tǒng)進(jìn)行標(biāo)定,對采集的目標(biāo)圖像進(jìn)行立體校正,將校正后的圖像使用YOLOv3網(wǎng)絡(luò)進(jìn)行目標(biāo)檢測識別并定位出工件,然后對工件所在區(qū)域進(jìn)行直線提取和端點(diǎn)重構(gòu),并對左、右直線集合進(jìn)行匹配重建出工件的輪廓點(diǎn)云,最后和模板點(diǎn)云進(jìn)行配準(zhǔn)得到各個(gè)工件的位姿。實(shí)驗(yàn)結(jié)果表明:本文所提出的方法不僅能識別低紋理的工件,而且能快速精確地計(jì)算其6D位姿。2.3 直線重建并打斷
2.4 點(diǎn)云配準(zhǔn)
3 實(shí)驗(yàn)結(jié)果與分析
3.1 目標(biāo)檢測與直線匹配實(shí)驗(yàn)
3.2 點(diǎn)云重建與配準(zhǔn)實(shí)驗(yàn)
4 結(jié)束語