物體姿態估計——DeepIM

  • 《DeepIM: Deep Iterative Matching for 6D Pose Estimation》
    2018,Yi Li et al. DeepIM

1.引言:
本文,作者提出了一種新的深度神經網絡對物體的6D姿態(3D位置和3D方向)進行估計,命名爲DeepIM。採用對圖像進行直接回歸物體姿態的方式,準確率是有限的,通過匹配物體的渲染圖像可以進一步提高準確率。即給定初始姿態估計,對合成RGB圖像進行渲染來和目標輸入圖像進行匹配,然後在計算出新的更準的姿態估計。
1)Depth信息侷限性: 最新的技術已經使用深度相機(depth cameras)爲物體的姿態估計,但這種相機在幀速率、視場、分辨率和深度範圍等方面還存在相當大的侷限性,一些小的、薄的、透明的或快速移動的物體檢測起來還非常困難。
2)RGB信息侷限性: 基於RGB的6D物體姿態估計仍然具有挑戰性,因爲目標圖像的表觀會受光照、姿態變化、遮擋等影響
此外,魯棒的6D姿態估計方法還需要能處理有紋理和無紋理的目標。

傳統的6D姿態估計:將2D圖像中提取的局部特徵與待檢測物體3D基準模型中的特徵相匹配來求解R和T,也就是基於2D-3D對應關係求解PnP問題。但是,這種方法對局部特徵依賴太強,不能很好地處理無紋理的目標。
爲了處理無紋理目標,目前的文獻有兩類方法:
1) 學習估計輸入圖像中的目標關鍵點或像素的3D模型座標。
2) 通過離散化姿態空間將6D姿態估計問題轉化爲姿態分類問題,或轉化爲姿態迴歸問題。
這些方法雖然能夠處理無紋理目標,但是精度不夠高。

2.DeepIM迭代結構:
在這裏插入圖片描述
DeepIM: 一種基於深度神經網絡的迭代6D姿態匹配的新方法。給定測試圖像中目標的初始6D姿態估計,DeepIM能夠給出相對SE(3)變換符合目標渲染視圖與觀測圖像之間的匹配關係。提高精度後的姿態估計迭代地對目標重新渲染,使得網絡的兩個輸入圖像會變得越來越相似,從而網絡能夠輸出越來越精確的姿態估計。上圖展示了作者提出網絡用於姿態優化的迭代匹配過程。
這項工作主要的貢獻有:
1) 將深度網絡引入到基於圖像的迭代姿態優化問題,而無需任何手工製作的圖像特徵,其能夠自動學習內部優化機制。
2) 提出了一種旋轉和平移解耦的SE(3)變換表示方法,能夠實現精確的姿態估計,並且能使提出的方法適用於目標不在訓練集時的姿態估計問題。
3) 作者在LINEMOD和Occlusion數據集上進行了大量實驗,以評估DeepIM的準確性和各種性能。

3.算法流程
如果目標在輸入圖像上是非常小的,它是困難的去提取有用的特徵。如下圖所示,作者爲了獲得足夠的信息進行姿態匹配,對觀測圖像進行放大,並在輸入網絡前進行渲染。要注意的是,在每次迭代過程中,都會根據上一次得到的姿態估計來重新渲染,這樣才能通過迭代來增加姿態估計的準確度。
Zoom in:
在這裏插入圖片描述
DeepIM網絡結構圖:
在這裏插入圖片描述
輸入觀測圖像、渲染圖像以及對應的掩模。使用FlowNetSimple網絡第11個卷積層輸出的特徵圖作爲輸入,然後連接兩個全連接層FC256,最後旋轉和平移的估計分別使用兩個全連接層FC3和FC4作爲輸入。(作者也嘗試使用VGG16圖像分類網絡來作爲基礎網絡,但效果很差,直覺:估計光流是有用的對於姿態匹配。)

4.Untangled Transformation Representation
通常使用四元數或歐拉角來表示旋轉矩陣RR_{\bigtriangleup}和一個向量表示平移tt_{\bigtriangleup},因此一個完成的轉換矩陣可以寫成[Rt][R_{\bigtriangleup}|t_{\bigtriangleup}],給予一個原始目標姿態[Rtsrc][R_{\bigtriangleup}|t_{src}]
通常目標從初始位置到新位置的旋轉與平移變換關係如下所示:
在這裏插入圖片描述
一般來說:旋轉變換會影響影響最後的平移變換,即兩者是耦合在一起的。
在本文中,作者讓座標軸平行於當前相機座標軸,這樣可以算得相對旋轉,後續實驗證明這樣效果更好。還要解決相對平移估計的問題,一般的方法是直接在三維空間中計算原位置與新位置的xyz距離,但是這種方式既不利於網絡訓練,也不利於處理大小不一、邊關相似的目標或未經訓練的新目標。
估計相對的平移:
在這裏插入圖片描述
本文采用在二維圖像空間進行迴歸估計平移變換,vx和vy分別表示圖像水平和垂直方向上像素移動的距離,vz表示目標的尺度變化。其中,fx和fy是相機的焦距,由於是常數,在實際訓練中作者將其設置爲1。
在這裏插入圖片描述
這樣一來,旋轉和平移進行解耦了,這種表示表示方法不需要目標的任何先驗知識,並且能處理一些特殊情況,比如兩個外觀相似的物體,唯一的區別就是大小不一樣。

5.Matching Loss
模型訓練的損失函數,通常直接的方法是將旋轉和平移分開計算,比如用角度距離表示旋轉誤差,L1距離表示平移誤差,但這種分離的方法很容易讓旋轉和平移兩種損失在訓練時失衡。本文作者提出了一種同時計算旋轉和平移的Point Matching Loss 函數,來表示姿態真值和估計值之間的損失。其中,xj表示目標模型上的三維點,n表示總共用來計算損失函數的點個數,本文中n=3000。
在這裏插入圖片描述
最後總的損失函數由
在這裏插入圖片描述
組成,其中(α,β,γ)(\alpha ,\beta ,\gamma )分別爲(0.1,0.25,0.03)。

6.實驗結果:
作者主要使用了LINEMOD和OCCLUSION數據集。
在LINEMOD數據集上作者分別使用了PoseCNN和Faster R-CNN初始化DeepIM網絡,發現即使兩個網絡性能差異很大,但是經過DeepIM之後仍能得到差不多的結果。
在這裏插入圖片描述
LINEMOD數據集上的方法對比結果如下表所示,本文的方法是最好的。
在這裏插入圖片描述
小結:
使用一種同時計算旋轉和平移的Point Matching Loss 函數,來表示姿態真值和估計值之間的損失。

參考:
https://mp.weixin.qq.com/s?__biz=MzAxMzc2NDAxOQ==&mid=2650368997&idx=1&sn=8db28f163c639153e32a18b855762ec8&chksm=83905f39b4e7d62fd6f35b1e71d8b74277ebffd9d918c7b960bbd6bdd9383386971bb6ede35b&scene=0#rd
將門創投公衆號


注:博衆家之所長,集羣英之薈萃。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章