1. 程式人生 > >物體姿態估計——DeepIM

物體姿態估計——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 函式,來表示姿態真值和估計值之間的損失。

注:博眾家之所長,叢集英之薈萃。