PointNet
- 一、動機和貢獻
- 二、點雲特性
- 三、PointNet網絡結構
-
- 分類網絡
- 分割網絡
一、動機和貢獻
- 動機:大多數研究人員選擇将不規則的點雲資料轉換成規則的3D體素網格或特征投影,導緻大量的點雲資訊缺失。
- 貢獻:設計了一種直接消耗點雲的新型神經網絡PointNet,考慮點雲的無序性、點間關系、排列不變性;訓練PointNet網絡用來執行三維形狀分類、形狀部分分割和場景語義分析任務,提供了統一的體系結構。
二、點雲特性
-
無序
點雲資料是一個集合,對資料的順序是不敏感的。這就意味這處理點雲資料的模型需要對資料的不同排列保持不變性。目前文獻中使用的方法包括将無序的資料重排序、用資料的所有排列進行資料增強然後使用RNN模型、用對稱函數來保證排列不變性。由于第三種方式的簡潔性且容易在模型中實作,論文作者選擇使用第三種方式,既使用maxpooling這個對稱函數來提取點雲資料的特征。
-
點與點之間的空間關系
一個物體通常由特定空間内的一定數量的點雲構成,也就是說這些點雲之間存在空間關系。為了能有效利用這種空間關系,論文作者提出了将局部特征和全局特征進行拼接的方式來聚合資訊。
-
不變性
點雲資料所代表的目标對某些空間轉換應該具有不變性,如旋轉和平移。作者提出了在進行特征提取之前,先對點雲資料進行對齊的方式來保證不變性。對齊操作是通過訓練一個小型的網絡T-Net來得到轉換矩陣,并将之和輸入點雲資料相乘來實作。
三、PointNet網絡結構

分類網絡
以n個點作為輸入,三層通道表示(x,y,z)三維坐标,先後經過輸入點雲變換、MLP點雲處理、點雲特征變換、MLP特征處理、全局最大池化、MLP(Dropout層),最終輸出k類分數向量。(Batchnorm用于所有帶有ReLU的層;MLP實際為卷積層)
具體的網絡子子產品:
-
輸入點雲對齊(變換):T−Net是一個微型的PointNet網絡,接收原始點雲資料,生成一個3×3尺寸的仿射變換矩陣,來對點雲的旋轉、平移等變化進行規範化處理;
(1)T−Net第一步:獲得高維特征
(n,3)–>conv(1,1,64)–>(n,64)–>conv(1,1,128)–>(n,128)–>conv(1,1,1024)–>(n,1024)–>max-pool(n,1)–>(1,1024)–>fc(512,1024)–>(1,512)->fc(256,512)–>(1,256)
(2)T−Net第二步:獲得點雲旋轉矩陣
assert K=3;
weights=(256,3K);biases=(1,KK);
biases=biases + [1,0,0,0,1,0,0,0,1];
transform=(1,256)×(256,KK)+biases=(1,KK)–>reshape(K,K)=(3,3)
(3)矩陣乘法:(n,3)點雲與(3,3)變換矩陣相乘,輸出(n,3)特征;
-
MLP點雲特征提取
(n,3)–>conv(1,1,64)–>(n,64)–>conv(1,1,64)–>(n,64)
-
點雲特征對齊:T−Net類似于輸入點雲變換,生成一個64×64尺寸的仿射變換矩陣;
(1)T−Net第一步:獲得高維特征
(n,64)–>conv(1,1,64)–>(n,64)–>conv(1,1,128)–>(n,128)–>conv(1,1,1024)–>(n,1024)–>max-pool(n,1)–>(1,1024)–>fc(512,1024)–>(1,512)->fc(256,512)–>(1,256)
(2)T−Net第二步:獲得點雲旋轉矩陣
assert K=64;
weights=(256,3K);biases=(1,KK);
biases=biases + [1,0,0,0,1,0,0,0,1];
transform=(1,256)×(256,KK)+biases=(1,KK)–>reshape(K,K)=(64,64)
(3)矩陣乘法:(n,64)特征與(64,64)變換矩陣相乘,輸出(n,64)特征;
-
MLP點雲特征提取
(n,64)–>conv(1,1,64)–>(n,64)–>conv(1,1,128)–>(n,128)–>conv(1,1,1024)–>(n,1024)
-
全局最大池化
對于(n,1024)尺寸特征矩陣,每個特征通道執行全局最大池化,n個特征輸出一個最大特征,共輸出(1,1024)尺寸特征向量;
(n,1024)–>max-pool(n,1)–>(1,1024)
-
MLP(含Dropout層)
對于(1,1024)尺寸特征向量,通過三層感覺機得到1024–>512–>256–>k,輸出k類分類向量;
(1,1024)–>fc(512,1024)–>(1,512)–>dropout(keep_prob=0.7)–>(1,512)–>fc(256,512)–>(1,256)–>dropout(keep_prob=0.7)–>(1,256)->fc(k,256)–>(1,k)
分割網絡
分割網絡是分類網絡的擴充,它連接配接全局和局部特征,并輸出m類分數向量。
-
局部特征(n,64)與池化後的全局特征拼接(1,1024)
對于n個點的每個點特征(1,64),将全局特征(1,1024)拼接在後面,構成拼接特征(1,1088),n個點共有(n,1088);
-
MLP特征處理
(n,1088)–>conv(1,1,512)–>(n,512)–>conv(1,1,256)–>(n,256)–>conv(1,1,128)–>(n,128)–>conv(1,1,128)–>(n,128)–>conv(1,1,m)–>(n,m)
由于點雲的分割問題可以看做是對于每一個點的分類問題,需要對每一個點的分類進行預測。在通過對全局+局部特征學習後,最後将每一個點分類到50類(m=50)中,并輸出n*50的輸出。