背景
該論文發表於2018年CVPR,解決的問題是:給定單幅RGB圖像,估計圖像中包含目標物體的6DoF位姿;6DoF位姿包括了3維位置和3維空間朝向;傳統方法包括以下兩種:基於RGB圖像的方法,或者使用edge特徵,但對複雜背景敏感,或者使用feature points,但無法處理弱紋理或者無紋理情況;基於RGB-D的方法,依賴傳感器,本身有一定限制。近年來深度學習的方法,可以給6DoF位姿估計,帶來極大的效果提升。
算法概述
該論文設計了一個端到端可訓練的網絡,實時預測物體的6DoF位姿;受到2D物體檢測算法YOLO的啓發設計CNN網絡,預測物體3D包圍盒頂點的2D投影點;YOLO只預測出2D包圍盒,而該論文預測更多的2D投影點;之後給定這些2D投影點對應的3D點,可以通過PnP算法估計物體的6DoF位姿。
算法框架
首先將每個物體的3D模型用9個控制點表示,分別是外切包圍盒的8個頂點以及3D模型的重心,這樣訓練時只需要知道物體的3D包圍盒,而不需要確切的網格模型以及附帶的紋理圖;算法輸入爲一個單幅完整的彩色圖像,如圖1(b);使用圖1(a)的卷積網絡將圖像劃分成SxS的Cell,如圖1;網絡的輸出結果圖1(d)用SxSxD的張量表示,如圖1(e),D的維度爲(9x2+C+1),分別包含了9個2D投影點座標,C個類別概率,以及一個置信值。如果某一個Cell的置信值較低,則刪除該Cell。
置信函數設計:
依據圖像空間的2D歐氏距離,計算預測的2D投影點和真值點的平均偏差。
令代表估計的2D位置和真值位置之間的歐氏距離,則置信函數和的關係如下圖所示,距離越大置信越低。
訓練過程
訓練時,置信值根據預測的2D投影點和真值2D投影點之間的,依據公式(1)在線計算;依據網格cell的左上頂點計算offsets。對於重心,offset設置爲[0,1],對於頂點,預測的設置爲:,,這裏選擇1D的sigmoid函數;這樣設置保證了網絡首先選擇近似的cell位置,其後再估計8個頂點位置。最終,整個網絡的損失函數設置爲如下:
其中, 分別是座標損失,置信損失,使用均方差算法,是分類損失,使用交叉熵。對於權重,如果包含物體,設置爲5.0,不包含物體設置爲0.1;對於每個cell,最多允許包含5個物體。
實現細節
- 在ImageNet的分類任務數據集上訓練初始網絡初始化參數;
- 對包含物體的cell設置λ_conf爲5,不包含物體的cell設置λ_conf爲0.1;
- 設置置信函數的銳度α爲2,距離閾值爲30pixels;
- 訓練集圖像隨機按照像素大小的20%進行尺度放縮和平移;
實驗
數據集
- LineMod,這是在雜亂環境中估計無紋理物體6DoF姿態的Benchmark;每一個RGB圖像中的物體都賦予了一個真值的旋轉、平移以及ID,也提供了完整的3D網格;
- OCCULUSION,這是進行多物體檢測和姿態估計的數據集,對LineMod數據集的子集進行了額外的標註;
評價度量
- 2D重投影誤差:將物體3D模型點根據估計位姿,以及真值位姿,分別投影到2D圖像;如果所有點的平均偏差在5個pixel以內,則認爲位姿估計正確;
- 平均模型點的3D距離(ADD):將估計位姿下的3D模型點和真值位姿下的3D模型點,計算平均距離偏差,如果偏差小於物體直徑的10%,則認爲位姿估計正確;
- IOU(Intersection over union,並交比)評分:計算3D模型根據估計位姿,以真值位姿,分別投影到2D圖像區域的並交比,如果重疊大於0.5,則認爲位姿正確;
結果
和已有算法在三種度量上均得到了精度和速度的提升,具體定量比較結果見論文。這裏只給出定性結果,如下圖所示,一至四列分別給出了雜亂背景,遮擋以及朝向模糊情況下的結果。最後一列給出了由於運動模糊、極度遮擋和鏡面反射情況下的失敗情況。
總結
- 提出了一種新的CNN框架,快速準確地預測6DoF位姿,自然地將2D物體檢測框架擴展到3D物體檢測;
- 提出的算法不需要後處理,而現存的基於CNN的6D物體檢測算法都需要後處理以優化位姿;
- 算法實時,在Titan X GPU上能夠達到50-94fps,根據圖像分辨率而定;
聲明:本文中所有圖片均引自改論文。本解讀只講述核心觀點,如需深入瞭解,可閱讀原始論文。如有問題,請隨時交流,如有錯誤,請隨時指正。