走進漢振
INTO HANCHINE
漢振分享 | 剛性物體6D位姿估計方法簡述
日期:2020年05月07日
 

 在工業上的抓取作業中,多數情況下會有:待檢測物體類型單一、物體模型表面紋理較少、工件散亂且密集、金屬表面(油污、反光)影響成像效果等作業環境上的特殊性條件存在。針對不同的應用場景及作業需求,需要有的放矢地選擇一種合適的位姿估計方案,以提高后續機器人的抓取成功率及作業的整體效率。

現階段,針對剛性物體的位姿估計方法,大致可以歸為以下三類: 

 

在可能的三維空間區域中,將待檢測物的三維模型進行不同視角下的渲染成像,提取各視角下物體的相關信息(如:輪廓、邊緣梯度、表面曲率等),對待檢測物體進行充分的采樣,提取足夠魯棒的模板集。匹配時,從場景中提取相關信息,并在建立好的模板集中進行查詢比對,找到相似度最高的模板,并以該模板的位姿作為粗位姿,然后結合ICP等方式進行位姿的細配準。 

 

《Real-Time 6D Object Pose Estimation on CPU》[1] 

該方法以模板匹配為基本原理,從特征集模板的構建、模板的存儲數據結構以及內存重組優化等三個方面作出了改進和優化工作,以提高配準的準確度及整個流程的速度。

 

從多個視角對工件的CAD模型進行投影成像,并對每一個投影數據構建PCOF(Perspectively Cumulated Orientation Feature)特征集(每個視角對應一個模板位姿)。

 

特征集在構建時,同時使用投影點云的表面法向及輪廓梯度方向信息創建方向直方圖(共8個方向),并按照閾值將直方圖進行二值化(組頻率大于閾值的置為1),最后用一個字節(byte)來存儲(一個byte共8個bit位,對應8個方向)。

 

方向直方圖示例,ori(二值化的方向直方圖),w(權重,以該直方圖中超過所設閾值的最大頻率來表示):

1,2兩像素點取自投影圖像的輪廓,以梯度方向構建直方圖

3,4兩像素點取自投影圖像表面,以法線方向構建方向直方圖

 

在對模型進行投影成像時,視角點的選取是通過將正二十面體(下圖中depth 0)不斷等分,最終形成正1280面體(下圖中depth 3),然后均勻選取正1280面體的頂點作為模型投影成像的視角點。

 

填充構建”樹”型存儲結構時,從第3層(depth 3)開始,實際的成像視角點也是從第三層選取,依次從上一層找到分割時的“父節點(頂點)”,并使用當前層中所有屬于該“父節點”的模板位姿的均值作為“父節點”的位姿;

遞歸處理,直至第0層(depth 0),以此創建一個4層的、由“粗”到“細”的模板位姿樹(BPT(Balanced Pose Tree))

將創建的模板按照“樹”型結構進行分層存儲(共四層),查找時,實現由“粗”到“細”的模板搜索方式,以便加速模板的匹配查找,得到粗位姿。

 

結合“樹”型數據存儲結構,利用SIMD(Single Instruction Multiple Data)技術實現內存重組,以達到加速的目的。

該方法示例效果:

 

該方法分別在桌面場景(左圖)

及無序抓取場景(右圖)下的測試效果

 

三組對應點即可解析得到兩模型之間的對應位姿,所以,利用法向量、點間距等數學語言描述出模型表面的線條、邊緣等多種局部特征,進而找出準確的對應點。在得到匹配的點對之后,再結合隨機采樣一致性(RANSAC)或者霍夫投票(Hough voting)等方式得到局部最優解,以此作為模型配準的粗位姿,最后利用ICP等方式進行精化得到最終結果。

 

《Model Globally, Match Locally: Efficient and Robust 3D Object Recognition》[2] 

該方法提出了一種新的局部描述符——PPF(Point Pair Featrue),通過對待匹配工件的點云中,任意兩個數據點之間構建PPF特征,最終形成一個該工件模型整體的PPF特征集。在實際匹配時,從場景點云中選取參考點,以該參考點為中心,與周圍的數據點構建PPF特征,并將該特征與模型特征集中的數據作匹配,然后利用霍夫投票的形式,得到場景點云中該參考點所屬工件的粗位姿,最后再利用ICP等方式進行位姿的細化配準。

 

整體建模,構建對模型的全局描述,其中“Globally”是指對整個模型點云進行特征(PPF,Point Pair Feature)的計算,然后將所有計算得到的特征集存儲在Hash表中,以供后續匹配時查詢使用。(離線階段完成)

Model Globally 的本質是通過定義 Point Pair Feature,來構建特征矢量的集合以及每個特征矢量對應的“點對”集,作為 Global Model Desciption。

PPF 描述了兩個有向點(oriented points)的相對位置和姿態。假設有兩個點 m1 和 m2 ,法向量(normals)分別為 n1 和 n2 ,d = m2 - m1 (有向線段) ,則 PPF 定義如下:

 

( 即 F(m1,m2) ≠ F(m2,m1) )

 

m1為該PPF(m1, m2)中的參考點,n1,n2分別為各自的法向量; 

點對特征PPF(m1,m2) = (F1, F2,F3,F4);

由于存在具有相同PPF特征的多個點對,所以同一個hash表索引可能對應多個特征點對

 

局部匹配,從場景點云中選取參考點,并與周圍數據點構建PPF特征,然后到hash表中查找是否存在一致的特征值,由于是以場景的單個點對特征到模型的全局描述(hash table)中進行匹配,所以稱為“局部”匹配。

其中,恒定坐標系為整個匹配流程的核心概念,由于模型及場景點云中每個數據點都是法線已知,故將“模型點對”與“場景點對”各自旋轉,使其參考點的法向與恒定坐標系X軸的正方向一致,且參考點的位置與恒定坐標系原點重合,得到各自的變換矩陣(RT) Ts-g和Tm->g;當“場景點對”與“模型點對”同處于恒定坐標系下時,將“模型點對”繞X軸旋轉,使其與“場景點對”重合,得到旋轉角度值α,接著以該模型點的索引與α值,在累計投票表中進行投票。(參考圖示如下)

 

PPF(mr, mi) 為“模型點對”,mr為模型參考點

PPF(sr, si) 為“場景點對”,sr為場景參考點

PPF特征中的法線方向,皆為參考點的法線方向

構建的“場景點對”需要與有相同Hash索引的所有“模型點對”進行上述投票處理,故每一個“場景點對”都會生成一張投票表,其中,行數與模型點數相同,且與模型索引值一一對應;列數為劃分的角度數目,該方法中共劃分為30份,以(π/15)為角度間隔。(參考圖示如下)

 

從Hash表中搜索與“場景點對”具有相同Hash索引的“模型點對”,然后進行累計投票

 

根據上述流程中統計得到的累計投分表尋找分值大于所設閾值的位置。由于我們已經得到了“場景點對”及“模型點對”各自旋轉到恒定坐標系下的變換矩陣,以及“模型點對”繞X軸旋轉到“場景點對”的旋轉角度α,故可以計算出模型旋轉到場景中工件位姿的變換矩陣,即:

 

每個參考點都可能會返回多個位姿(分值相同或多個分值大于所設閾值的位姿),對所有返回的位姿進行聚類,將位姿差異不超過所設閾值的位姿歸為同一類,然后對每個聚類中的位姿取均值,以此代表該聚類的位姿,其分值為聚類中所有位姿的總分值,最后比較所有聚類的分值,將分值最高的聚類位姿作為配準得到的位姿輸出。

該方法示例效果:

 

在遮擋及噪聲場景下的測試

經物體識別與位姿估計后,模型以網格的形式展現,以作對比

 

這類方法也可以叫作基于回歸的方法。從模型的三維點云數據或投影到多個視角下的的圖像數據中尋找位姿和圖像之間的內在聯系。常見的基于學習的方法可分為兩類,一類是直接回歸出物體的6D位姿(語義分割->Translation估計-> Rotation估計);另一類方法是先估計3D KeyPoint在2D圖像上的投影點,然后使用PnP(Perspective-n-Point)等算法方式對位姿進行恢復。

 

《PoseCNN: A convolutional neural network for 6d object pose estimation in cluttered scenes》[3] 

在傳統的物體識別與位姿估計方式中,存在對于弱紋理、對稱以及有遮擋的物體的識別及位姿估計能力相對較弱的情況,針對這些問題,該方法提出一種端到端(end to end)的用于6D目標姿態估計的新型卷積神經網絡PoseCNN。 PoseCNN通過在圖像中定位物體的中心并預測其與攝像機的距離來估計物體的三維平移。通過回歸到四元數(w,x,y,z)表示來估計物體的三維旋轉。其主要任務有三項:語義分割、3D平移估計、3D旋轉估計。此外,還引入了一種用于對稱物體姿態估計的新訓練損失函數ShapeMatch-Loss,并提供了一個大規模的RGB-D視頻數據集(YCB-Video dataset),用于6D物體姿態估計。

網絡架構

 

該網絡共含有三個分支:語義分割分支、位置估計分支、姿態估計分支,每個分支都有一個loss函數,共三個。

 

通過3D位置估計獲得平移矩陣T=(Tx,Ty,Tz)(目標物體在相機坐標系下的坐標),一種簡單的估計T的方法是直接將圖像特征回歸到T,但是由于目標可能出現在圖像上的任意位置,因此這種方式是不可推廣的。并且不能處理同類的多個目標實例。該方法通過定位2D圖像的目標中心并估計目標到相機的距離來估計三維平移量。

 

該層采用像素方式的語義標記結果和中心回歸結果作為輸入。對于每一個物體,首先計算圖像中的每個位置的投票得分,其分值表明了相應的圖像位置是物體的中心的可能性大小。物體的每個像素都會根據網絡預測添加圖像位置的投票,在處理完物體的所有像素后可以獲得所有圖像位置的投票分數,最后選擇最高分的位置作為物體中心。

通過如下公式,可以恢復得到位置平移矩陣中的Tx和Ty:

 

fx、fy表示相機焦距,(px,py)是主點,c是目標的二維中心

 

生成了一系列目標中心之后,將投票給目標中心的像素視為該中心的初始值。然后,中心深度Tz的預測,被簡單地計算為由初始值預測的深度的平均值。

 

在Hough投票層可以預測得到的物體對象2D BBox,同時利用兩個RoI池化層對網絡第一階段生成的視覺特征進行剪裁和池化,然后進行3D旋轉回歸,得到目標對象的旋轉變換。

為了對四元數進行回歸訓練,該方法提出兩個損失函數:

 

該方法示例效果:

 

分別在YCB-Video和OccludedLINEMOD數據集上作測試,

由上至下分別為:輸入數據、語義分割及中心點標注后的結果、

僅使用RGB數據、使用RGB-D數據并使用ICP進行位姿細化

 

參考文獻:

[1] Yoshinori Konishi, Kosuke Hattori, and Manabu Hashimoto. Real-time 6d object pose estimation on cpu. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Macau, China, 2019, pp. 3451-3458

[2] B. Drost, M. Ulrich, N. Navab, and S. Ilic. Model globally, match locally: Efficient and robust 3d object recognition. IEEE Computer Society Conference on Computer Vision and Pattern Recognition ? July 2010

[3] Yu Xiang, Tanner Schmidt, Venkatraman Narayanan, and Dieter Fox. PoseCNN: A convolutional neural network for 6d object pose estimation in cluttered scenes. arXiv preprint arXiv:1711.00199, 2017. 

 

更多機器視覺分享,歡迎繼續關注“漢振智能”....

 
麻将视频技术视频教学 全国前10正规配资公司上上盈实盘配资 山西十一选五遗漏 湖北11选五遗漏查询 今天山西十一选五 特马开奖结果查询2019 北京快乐8计划 私募基金配资是什么意思 黑龙江十一选五19期开奖结果 河北20选5官网 大乐透开奖日期