2020.09.24-2020.09.26讀 P2GNet:Pose-Guided Point Cloud Generating Networks for 6-DoF Object Pose Esti

Leo-Ma發表於2020-09-26

P2GNet:Pose-Guided Point Cloud Generating Networks for 6-DoF Object Pose Estimation

背景資訊

  1. 輸入RGBD影像
  2. 基於DenseFusion
  3. 最大創新點是將model也訓練在特徵提取網路中,並且用一個點雲生成網路來進行監督學習

方法

整個網路可以由三部分組成:
Point-wise Fusion Network,Point cloud generating network, pose estimation network
在這裡插入圖片描述
canonical pose的理解:我理解的這個正則位姿就是model本身相對於世界座標系的位姿。
在這裡插入圖片描述
這篇文章作圖做的不是很好,有很多會引起歧義,還有圖中重複的地方,不明確的地方特別多。
所以,理解起來比較吃力。

Point-wise Fusion Network

在這裡插入圖片描述

  1. 三種資料來源的資料表示方法
    在這裡插入圖片描述
    三種資料來源,相對於densefusion多了model作為輸入。這三種資料來源表示成:
    (1)RGB提取成deep representation(N sample)
    (2)depth提取成re-projected depth values(N sample)
    (3)model轉換到target進行表示(N sample)

  2. Point-wise Fusion 網路
    (1)逐點(共N個點)融合在這裡存在一個問題:三種資料來源的點對應關係怎麼找?
    densefusion兩種資料來源RGB和depth逐畫素對應就可以找到點的對應,但是model本身是點雲,怎麼跟RGB和depth對應是個困難的問題。如果直接使用沒有對其的model點雲來做,發現效能會下降。
    作者說Point-wise Fusion 網路可以實現這個功能,因為他們提出一個point-fusion block裡面引入了修正的Non-Local block[X.Wang,R.Girshick,A.Gupta,andK.He.Non-localneural networks. In CVPR, 2018. 4 ]
    這裡面的原理或許還需要看一下Non-Local block原理才能知道,這留作後面的任務
    (2)如何生成最後的特徵向量?
    作者說經過這三個分支之後(Point-wise Fusion本身就處理三個分支資料),每個分支輸出的向量維度都是 d e m b d_{emb} demb, 把他們串聯起來,每個點的特徵就會變為 d e m b ∗ 3 d_{emb}*3 demb3維的向量。然後把所有點的特徵(原文the concatenated features)輸入到一個類似PointNet結構的網路中,如圖2a所示那種. 然後再作用一個全域性平均池化,以最終生成一個固定大小的全域性特徵向量。

  3. 點雲生成網路
    good idea: 用點雲生成網路來監督特徵提取和融合過程
    生成目標點雲in target pose來監督point-fusion網路對model點雲內在屬性的提取。
    生成目標點雲in canonical pose來穩定訓練過程以及使編碼特徵包含目標模型的完整3D資訊。
    注意:點雲生成網路生成的點雲只用作訓練監督作用,這些點雲不參與後面的位姿估計。

  4. 位姿估計網路
    這篇文章採用了與densefusion相似的位姿估計網路,位姿估計網路的輸入是Point-wise Fusion 網路生成的feature。
    與densefusion網路存在三點不同:
    (1) 輸入通道數量由二維增加到三維。
    (2)densefusion每個目標物件都要對應一個位姿估計網路,P2GNet改善了這一問題,使得網路更通用。
    (3)把densefusion估計置信分數的網路啟用函式由sigmoid換成了softmax,去掉了置信分數計算的正則項。

學習目標函式

(1)位姿估計損失
與densefusion一樣,
ADD:
在這裡插入圖片描述
ADD-S:
在這裡插入圖片描述
這裡再解釋一下ADD-S的理解:對稱物件上使用ADD,會在神經網路上施加不必要的約束,即迴歸到備選3D旋轉之一,產生訓練不一致的訊號。
final goal:
在這裡插入圖片描述
i是指第i個點的預測,這跟作者上面的描述產生的矛盾:上面“2. Point-wise Fusion 網路” 指出用了一個類似於PointNet的網路最後生成了全域性的特徵向量,我理解的是:作者並沒有很好的描述清楚這裡的步驟,我感覺應該是類似與densefusion中那種,生成全域性特徵向量之後,再把它串聯到每個點的 d e m b ∗ 3 d_{emb}*3 demb3維向量上。

(2)點雲生成損失
在這裡插入圖片描述
這個所謂的chamfer distance(倒角距離),我理解的是跟ADD-S很像的指標,1)原始點雲上的點不動,去用它與生成點雲上的最近點做距離誤差。 2)生成點雲上的點不動,去用它與原始點雲上的最近點做距離誤差。這兩種距離誤差取最大的那一個作為最終的倒角距離。

(3)整體訓練損失

在這裡插入圖片描述

技術實現細節

訓練策略
step1:
聯合訓練pose-guided point cloud generation network和pose estimation network.
step2:
用densefusion中的iterative refinement network進行位姿優化訓練。

實驗結果

LineMOD

在這裡插入圖片描述
文章做了消融實驗,證明他們提出的模組工作有效:

在這裡插入圖片描述

YCB

在這裡插入圖片描述

推理時間效率:
real-time application (∼25 FPS, about 5 objects each frame)

讀後感

1.這篇文章最重要的一個創新就是,將模型點雲作為資料輸入到網路中去。增加了模型3D資訊有助於位姿估計。

2.文章中用的處理逐點匹配的Point-wise Fusion Network原理沒有解釋的很清楚。最終要想實現RGB、depth、model上各個點的對應關係可能確實比較困難,否則直接就用model與depth的對應關係通過ICP算出位姿了。所以作者提出的方法只能說是部分匹配,究竟有匹配度有多少作者也沒做這方面的實驗,因此不得而知,這是可以改進的地方。

3.在輸入資料來源上增加模型空間資訊,是3D位姿估計中一個可以嘗試的方向。

相關文章