陳從平, 姚 威, 王 欽
(常州大學 機械工程學院,江蘇 常州 213164)
在機械手上下料、搬運以及裝配等任務中,需要對工件位姿進行估計。目前對工件位姿估計的方法主要有2D特征點法[1]、輪廓擬合法[2]、三維點云配準法。其中,2D特征點法通過提取工件的多個特征點,并通過特征點和物體坐標系下的坐標的對應來求解位姿,此方法可以快速準確地定位紋理豐富的物體,但由于紋理單一的圖像的特征點難以提取,因此該方法不適用于處理低紋理的工件;輪廓擬合法通過將工件擬合成矩形,再計算矩形的質心和偏轉角度得到工件的位姿,此方法計算簡單,速度快,且適用于形狀規則且低紋理的工件,但只能計算工件所在平面的2D位置和1D旋轉角度;三維點云配準法首先獲取工件的單視角點云并求取其三維點特征,然后利用三維特征和工件的完整點云進行配準得到位姿,此方法不僅對特征點的依賴大大降低,而且可以計算工件的6D位姿。
在點云配準求取位姿方面,黃青丹等人[3]采用雙目視覺方案,通過SGBM(semi-global block matching)立體匹配算法求取場景的視差圖,根據視差圖重建場景的點云并分割出工件,最后和模板點云配準得到工件的位姿。該算法可以重建場景的稠密點云,但也因此導致立體匹配的計算時間太長,且SGBM算法對低紋理圖像的效果較差。李樹春等人[4]使用深度相機獲取工件的點云,并計算點云的快速點特征直方圖,采用奇異值分解和隨機一致算法來進行位姿估計,具有一定的穩定性和精確性,但此方法對工件表面的稠密點云進行計算,計算量大,且深度相機的成本較高,不具有普及性。
針對以上問題,提出一種將深度學習和輪廓重建結合的工件識別與位姿估計方法。使用雙目攝像機采集圖像并通過深度學習識別并定位工件所在的矩形區域,深度學習避免了傳統方法在識別低紋理目標時難以定義特征的問題,同時可以自動地提取到更深層的抽象特征,因此具有良好的魯棒性與準確性。位姿估計方面,考慮到低紋理工件的特征點不易提取的原因,采用點云配準的方法計算位姿。針對現有點云配準求位姿中計算復雜度高的問題,只對工件的輪廓進行重建和配準。輪廓重建方面,對工件所在矩形區域進行直線提取,提出一種結合YOLO檢測結果的多約束直線匹配算法對左右直線集合進行匹配,根據三角測量原理重建出空間直線方程并打斷得到工件的輪廓點云,最后和模板點云配準得到工件的6D位姿,從而完成低紋理工件的識別與位姿估計。
將兩個相同的攝像機平行放置組成雙目視覺系統,并將左右攝像機的距離設定為60 mm。通過雙目攝像機采集一定數量的棋盤格圖片后,使用 MATLAB標定助手進行標定,標定出的內參和畸變系數如表1所示。
將世界坐標系設定在左攝像機坐標系,右攝像機坐標系相對于左攝像機坐標系的旋轉矩陣R和平移向量T分別為
(1)

(2)
根據標定結果使用Bouguet算法進行立體校正,校正結果如圖1所示。可見,圖像畸變有很大改善,且左右圖像的同名點在同一水平線上,表明立體校正的結果較為準確。

圖1 校正結果
本文提出的深度學習和輪廓重建結合的工件識別與位姿估計方法,在對雙目攝像機采集的圖像立體校正的基礎上,使用YOLOv3網絡檢測得到工件的類別和所在的矩形區域,對所有檢測到的工件的矩形進區域行直線提取。由于直線的端點最能代表直線的特征,且直線的交點在不同視角下具有不變性,因此對距離較近的直線進行端點重構。重構完成后結合YOLO的同名區域約束、極線約束、直線特征相似度約束進行直線匹配。重建所有匹配的直線后得到工件的輪廓點云,最后和完整的模板點云進行配準得到工件的位姿。
對校正后的圖像進行目標檢測的基礎上,使用FLD(fast line detector)[5]算法對目標區域進行直線檢測,FLD算法首先進行邊緣檢測然后對相鄰直線進行合并并延長,直到遇到大曲率的邊緣則停止延長并返回直線。
直線檢測完成后對相近的直線進行端點重構,具體步驟如下:

本文提出的基于YOLO檢測結果的多約束直線匹配算法,具體約束為:
1)基于YOLO的同名區域約束
只對YOLO網絡在左、右圖像中檢測出的相同工件的矩形框內的直線進行匹配,例如圖2所示的左圖像物體1區域中的直線,只和右圖像物體1區域的直線進行匹配。

圖2 基于YOLO的同名區域約束
2)極線約束
理想狀態下,立體校正后左右圖像其匹配點位于同一水平線上,即縱坐標相同。但由于攝像機標定和校正過程中總會存在誤差,需使誤差滿足一定的約束。如圖3所示,設左右直線起點、終點分別為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| 匹配完成后,根據雙目測距原理對直線進行三維重建。通過重建直線的兩個端點得到直線方程,接著打斷成點云,打斷規則為每條直線打斷出的點的個數根據直線的長度決定,且點與點之間的空間距離相等。記直線點云中的任意一點為Pi,Pi-1為前一點的坐標,迭代步長為ΔP,有 Pi=Pi-1+ΔP (3) 代入直線起始點,按式(3)逐步迭代至終點即可生成該直線的點云。生成所有匹配直線的點云即可得到工件輪廓點云。 直線重建后僅獲得了工件的輪廓點云,欲判斷工件當前位姿,需將重建的點云與該工件的模板點云進行點云配準,以獲得目標當前實際位姿。配準過程分為粗配和精配兩步進行。 粗配準使用采樣一致性初始配準算法(sample consensus initial aligment,SAC-IA)。使用此算法前,應先計算點云的快速點特征直方圖(FPFH)[6],步驟如下: 步驟1 計算點云中每個點的法線,如圖4所示。 圖4 以點Pq為中心時FPFH影響的空間范圍 步驟2 設當前點Pq和其鄰域內的一點Pk,q≠k,兩點的法線分別為nq,nk,以Pq為原點的建立如圖5所示的局部坐標系。 圖5 局部坐標系與SPFH生成過程 坐標系的三個軸計算式如下 (4) 法線nq,nk的變換角度α,φ,θ計算式如下 (5) 步驟3 為當前點Pq求得它與每個鄰域點之間的α,φ,θ三個特征元素值。然后將每個特征元素值的范圍劃分為11個子區間,并統計落在個子區間的點的數量,生成直方圖,最后連接在一起,形成一個33維的特征向量,即為FPFH。 步驟4 分別對當前點鄰域中的每個點計算其FPFH,最后按式(6)加權成快速點特征直方圖 (6) 式中k為鄰域點的個數,權重wk為當前點Pq與其鄰域Pk之間的距離。 計算出點云的FPFH特征后,使用SAC-IA算法對點云進行粗配準。首先,從模板點云中選取n個采樣點,然后,在重建的輪廓點云中查找和采樣點具有相似FPFH特征的多個點,從這些相似點中隨機選取一個點作為對應點。通過查找大量不同的對應點來計算變換矩陣,最后,在所有變換中取最優變換作為最終的粗配準變換。 粗配準后,兩點云已接近重合,但仍存在誤差,因此在粗配準的基礎上采用迭代最近點(iterative closest point,ICP)算法[7]進行精配準,ICP算法通過在兩片點云中搜索大量距離最近的點對,然后計算變換矩陣,之后將變換矩陣作用于模板點云從而生成新的模板點云,接著使新的模板點云繼續計算變換矩陣直到誤差或迭代次數滿足設定的條件。最終求解出兩點云之間的旋轉平移矩陣,即為工件的位姿矩陣。 選取長方體鐵塊、角鋁、T型平角片進行實驗。位姿估計方面首先使用輔助工具生成3個工件的外輪廓點云作為模板,然后重建工件的外輪廓點云進行配準得到位姿。 目標檢測方面,對每種工件采集500張訓練樣本,三種工件共1 500張訓練樣本,輸入YOLOv3網絡進行訓練得到模型的權重。使用訓練出的模型對立體校正后的左、右圖像進行工件識別并框選,然后對其進行直線檢測并端點重構,最后對左右直線集合進行匹配。圖6為目標檢測與長方體鐵塊的直線匹配結果。 圖6 目標檢測與直線匹配結果 對所有匹配的直線對進行三維重建,重建出3個工件的外輪廓點云,結果如圖7所示。 圖7 重建后的點云 重建完工件的輪廓點云后和對應的模板點云進行配準,即可得到工件的位姿。配準結果如圖8所示,兩片點云已基本重合。 圖8 點云配準結果 從不同角度對三個工件進行拍攝,并手工測量其真實位姿,和本文算法計算的位姿進行誤差計算。共進行9次實驗,記錄實驗結果,如表2所示,其中,1~3,4~6,5~9行的記錄分別為長方體鐵塊、角鋁、T型平角片的位姿。由表2可知,X,Y,Z方向的位置絕對誤差值均在2 mm以內,姿態絕對誤差值均在3°以內,表明位姿估計具有較高的精度。 表2 物體的位姿 針對低紋理工件識別和位姿估計較為困難的問題,提出一種結合深度學習與雙目視覺重建工件輪廓點云的方法。首先對搭建的雙目視覺系統進行標定,對采集的目標圖像進行立體校正,將校正后的圖像使用YOLOv3網絡進行目標檢測識別并定位出工件,然后對工件所在區域進行直線提取和端點重構,并對左、右直線集合進行匹配重建出工件的輪廓點云,最后和模板點云進行配準得到各個工件的位姿。實驗結果表明:本文所提出的方法不僅能識別低紋理的工件,而且能快速精確地計算其6D位姿。
2.3 直線重建并打斷
2.4 點云配準


3 實驗結果與分析
3.1 目標檢測與直線匹配實驗

3.2 點云重建與配準實驗



4 結束語