摘要
在機器人操作和虛擬現實應用中,從圖像中估計物體的6D位姿是一個非常重要的問題。鑑於直接從圖像中迴歸得到的物體姿態精度不高,如果將輸入圖像和物體渲染得到的圖像進行匹配,則能夠得到精確的結果。在本文中,作者提出了一種叫做DeepIM的深度神經網絡:給定一個初始位姿,網絡能將觀測圖像和渲染得到的圖像匹配,迭代地優化位姿。網絡訓練後能夠預測一個相對的姿態變換,使用了一種解耦表示的3D座標和3D朝向,並且使用了一種迭代的訓練過程。本文在用於6D位姿估計的兩個基準數據集上證明了DeepIM實現了較當前算法精度的極大提升,而且DeepIM有效處理之前未見到的物體。
1 問題提出
物體6D位姿估計的方法依據物體的紋理情況可以分爲兩大類:針對豐富紋理的物體以及針對弱紋理或無紋理物體。前者通過局部特徵匹配來尋找到2D圖像和3D物體點之間的對應,使用PnP方法解決;後者可分爲兩種方法:一種估計輸入圖像中的像素點或者物體的關鍵點對應的3D模型座標系;另一種離散化位姿空間,將問題轉變成姿態迴歸問題。這兩種方法能夠處理無紋理物體,但由於在分類或者回歸階段存在小誤差,導致位姿不匹配,不能得到精確位姿。常見的後優化方法使用手動設置的圖像特徵匹配,或者使用代價函數,精度都不高。因此本文提出了一種基於深度神經網絡的位姿優化技術,迭代地進行6D位姿的估計,提高位姿精度。
本篇論文的核心貢獻如下:
- 提出了一種深度網絡迭代地進行圖像中物體位姿的優化,不需要任何手工設計的圖像特徵,能夠自動地學習一種內部優化機制;
- 提出了一種對於位姿SE(3)的分別表示變換,描述物體位姿見的變換。這種變換允許對於位姿物體姿態的優化;
- 在LINEMOD和Occlusion數據集上評估了算法的精度以及其他特性,顯示提出算法達到了基於RGB圖像估計位姿方法的最優,而且在未知物體上得到的精度也很高。
2 算法綜述
給定圖像中一個物體的初始6D位姿,DeepIM能夠將物體渲染得到的圖像和當前觀測的圖像匹配,預測一個相對的SE(3)變換;之後迭代地根據估計的更爲精確的位姿重新渲染物體得到渲染圖像,並和觀測圖像相匹配,從而會變得越來越相似,使網絡得到越來越精確的位姿。整體框架如下圖所示:
圖1 算法框架
網絡的輸入:觀測的RGB圖像以及圖像中物體位姿的初始估計值;網絡輸出:相對的SE(3)變換,可以直接作用於初始位姿以提高估計位姿的精度;
以下通過五部分介紹: a.觀測圖像和渲染圖像的放大策略; b.進行位姿匹配的網絡結果; c.一種SE(3)變換的分開表示; d.以及一種用於位姿迴歸的新的損失函數; e.介紹網絡的訓練過程並且測試網絡。
2.1 高精度圖像放大
爲了在進行位姿匹配時獲取足夠多的細節,在將觀測圖像和渲染得到的圖像送入網絡前,我們將他們放大;特別地,再第次迭代匹配過程中,給定上一步得到的6D的位姿估計,我們將3D物體模型,根據渲染得到一個合成的圖像;之後,我們額外地爲觀測圖像和渲染圖像生成一個前景的蒙板。 這四張圖像再使用一個將蒙板擴大後的包圍盒裁剪。最後,我們放大並且進行雙線性上採樣得到和原始輸入圖像一樣的尺寸(480*640)。重要地,物體的比例不發生變化。
圖2 輸入圖像放大策略
2.2 網絡結構
-
觀測圖像、渲染圖像以及對應的蒙板區域串聯形成一個8通道(觀測和渲染圖像各自具有3通道,蒙板具有1通道)的張量,輸入進網絡;鑑於使用VGG16的圖像分類網絡作爲支撐網絡的效果不好,因此本文使用預測圖像間光流的FlowNetSimple架構作爲支撐網絡;位姿估計分支將由FlowNetSimple網絡的11層卷積層得到的特徵圖作爲輸入,之後經過2個256維的全連接層,再分別由兩個全連接層得到四元數表示的3D旋轉和3D平移;
-
在訓練過程中,我們增加了兩個輔助的分支來歸一化網絡的特徵表示以提高訓練的穩定性。一個分支訓練後預測渲染圖像和觀測圖像的光流,另一個分支預測觀測圖像的前景蒙板;
圖3 相對姿態估計網絡
2.3 解耦的變換表示
當前物體位姿和目標物體位姿之間的變換的表現形式具有重要意義。希望能夠具有以下特性:和3D物體模型的局部座標系無關;由網絡預測得到的位姿變化應該和圖像的變換一致。因此,本文提出將相對旋轉R和相對平移t解耦表示。對於旋轉,首先將相機幀的原點平移到相機幀中物體的中心(根據當前估計位姿得到),這樣的話,旋轉變化不會改變物體的平移;其後設置旋轉軸爲平行於相機座標系的軸,這樣和3D物體模型的座標系無關。對於平移,訓練網絡之間迴歸得到相對變換,其中,和代表着想x軸和y軸方向物體平移的像素,代表物體的尺度變化:
其中,和代表相機的焦距。
這種表示方法具有很多好處:旋轉不影響平移;中間變量代表了圖像空間簡單的平移和尺度變化;這種表示不需要物體的任何先驗信息,也能夠適用於具有相同外表但尺度不同的物體。
2.4 匹配損失
將平移和旋轉分別計算損失很直觀,但是對他們進行平衡非常困難;鑑於我們想精確預測物體在3D空間中的位姿,我們對幾何投影誤差進行修改,成爲點匹配損失:
其中代表的是真值位姿,代表的是估計的位姿,代表物體模型上的隨機3D點,$$n代表了用於計算損失的點數目。計算3D點根據真值位姿和估計位姿變換後的L1距離誤差。
2.5 訓練和測試
- 訓練數據:3D物體模型和標記真值物體位姿的圖像;通過增加噪聲,我們得到初始位姿,並且可以生成觀測圖像和渲染圖像,也可以得到需要輸出的位姿變換,也即真值位姿和加噪聲位姿之間的變換;
- 測試:訓練時使用單次迭代效果不明顯,因此在訓練時也通過多次迭代的方式,最後使得訓練數據更好的代表了測試分佈,也得到了更爲精確的結果。
3 實驗結果
在LINEMOD數據集和Occlusion LINEMOD數據集上進行評測,比其他RGB-only方法效果好了很多,也能夠實現未知物體的預測。
- 實現細節:使用FlowNet中的光流損失Lflow以及S形交叉熵損失作爲蒙板損失Lmask,最終整體損失如下:
- 實驗中設置a=0.1,b=0.25,r=0.03。實驗中使用PoseCNN的結果作爲初始位姿,在1080TiGPU上迭代兩次時,能實現12fps. 後續實驗中,網絡迭代四次。
實驗中設置a=0.1,b=0.25,r=0.03。實驗中使用PoseCNN的結果作爲初始位姿,在1080TiGPU上迭代兩次時,能實現12fps.
- LINEMOD數據集實驗
表1 LINOMOD數據集對比結果 - Occlusion LINEMOD數據集實驗
圖4 Occlusion LINEMOD數據集對比結果
圖5 Occlusion LINEMOD數據集位姿結果 - 未訓練物體的姿態估計
圖6 未參與訓練3D模型位姿結果(紅線代表初始位姿,綠線代表我們優化後的位姿)
4 總結
- 提出了DeepIM框架,僅使用RGB圖像迭代地匹配以估計位姿;能夠得到和基於RGB-D圖像的位姿估計算法相當的精度;
- 未來研究方向:可以使用雙目版本的DeepIM提高位姿精度;爲僅使用RGB圖像得到精確的6D位姿提供了可能,可使用高分辨率高幀率寬視野的相機採集數據;
- 論文源代碼地址:https://github.com/liyi14/mx-DeepIM。
本文中所有圖片均引自改論文。本解讀只講述核心觀點,如需深入瞭解,可閱讀原始論文。如有問題,請隨時交流,如有錯誤,請隨時指正。