2020.09.24-2020.09.26讀 P2GNet:Pose-Guided Point Cloud Generating Networks for 6-DoF Object Pose Esti
P2GNet:Pose-Guided Point Cloud Generating Networks for 6-DoF Object Pose Estimation
背景資訊
- 輸入RGBD影像
- 基於DenseFusion
- 最大創新點是將model也訓練在特徵提取網路中,並且用一個點雲生成網路來進行監督學習。
方法
整個網路可以由三部分組成:
Point-wise Fusion Network,Point cloud generating network, pose estimation network
canonical pose的理解:我理解的這個正則位姿就是model本身相對於世界座標系的位姿。
這篇文章作圖做的不是很好,有很多會引起歧義,還有圖中重複的地方,不明確的地方特別多。
所以,理解起來比較吃力。
Point-wise Fusion Network
-
三種資料來源的資料表示方法
三種資料來源,相對於densefusion多了model作為輸入。這三種資料來源表示成:
(1)RGB提取成deep representation(N sample)
(2)depth提取成re-projected depth values(N sample)
(3)model轉換到target進行表示(N sample) -
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 demb∗3維的向量。然後把所有點的特徵(原文the concatenated features)輸入到一個類似PointNet結構的網路中,如圖2a所示那種. 然後再作用一個全域性平均池化,以最終生成一個固定大小的全域性特徵向量。 -
點雲生成網路
good idea: 用點雲生成網路來監督特徵提取和融合過程
生成目標點雲in target pose來監督point-fusion網路對model點雲內在屬性的提取。
生成目標點雲in canonical pose來穩定訓練過程以及使編碼特徵包含目標模型的完整3D資訊。
注意:點雲生成網路生成的點雲只用作訓練監督作用,這些點雲不參與後面的位姿估計。 -
位姿估計網路
這篇文章採用了與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
demb∗3維向量上。
(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位姿估計中一個可以嘗試的方向。
相關文章
- SampleNet: Differentiable Point Cloud SamplingCloud
- Recovering 6d object pose and predicting next-best-view in the crowdObjectView
- 論文學習13“Feature Pyramid Networks for Object Detection”Object
- pose座標變換
- 閱讀筆記-MoFlow: An Invertible Flow Model for Generating Molecular Graphs筆記
- 論文解讀(GAN)《Generative Adversarial Networks》
- 論文閱讀——Deformable Convolutional NetworksORM
- 閱讀翻譯Mathematics for Machine Learning之2.6 Generating Set and BasisMac
- 論文解讀(GIN)《How Powerful are Graph Neural Networks》
- Generating Pods project failedProjectAI
- 論文解讀(DAGNN)《Towards Deeper Graph Neural Networks》GNN
- Delphi 論文閱讀 Delphi: A Cryptographic Inference Service for Neural Networks
- JDK原始碼閱讀-Object類JDK原始碼Object
- RESTORE POINTREST
- JDK原始碼閱讀:Object類閱讀筆記JDK原始碼Object筆記
- DMCP: Differentiable Markov Channel Pruning for Neural Networks 閱讀筆記筆記
- 論文閱讀 TEMPORAL GRAPH NETWORKS FOR DEEP LEARNING ON DYNAMIC GRAPHS
- 論文解讀(LA-GNN)《Local Augmentation for Graph Neural Networks》GNN
- 閱讀論文:《Compositional Attention Networks for Machine Reasoning》Mac
- JavaScript some pointJavaScript
- [論文閱讀筆記] Adversarial Learning on Heterogeneous Information Networks筆記ORM
- 論文閱讀筆記:Fully Convolutional Networks for Semantic Segmentation筆記Segmentation
- 論文閱讀 A Data-Driven Graph Generative Model for Temporal Interaction Networks
- 論文閱讀:《Deep Compositional Question Answering with Neural Module Networks》
- [論文閱讀] Patient subtyping via time-aware LSTM networks
- Cloud + TiDB 技術解讀CloudTiDB
- study critical point and saddle point using Hessian Matrix
- 論文解讀(GraphSMOTE)《GraphSMOTE: Imbalanced Node Classification on Graphs with Graph Neural Networks》
- HashSet新增操作底層判讀(Object型別)Object型別
- 【文獻解讀】Generating Sentences from a Continuous Space,VAE產生連續空間變數變數
- CIAGAN: Conditional Identity Anonymization Generative Adversarial Networks閱讀筆記IDE筆記
- 論文閱讀:《Multimodal Graph Networks for Compositional Generalization in Visual Question Answering》
- [論文閱讀] VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION
- PCL(Point Cloud Library)的第三方庫簡介(boost,eigen,flann,vtk,qhull)Cloud
- ORA - 1461 encountered when generating server alertServer
- Windows Embedded for Point of Service概述Windows
- spring-cloud-square原始碼速讀(spring-cloud-square-okhttp篇)SpringCloud原始碼HTTP
- 《Predict Anchor Links across Social Networks via an Embedding Approach》閱讀筆記ROSAPP筆記