論文閱讀之PointNet


PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation

PointNet是深度學習應用到點雲數據的先驅。在此之前,傳統的機器學習方法大多基於點雲的手工設計的特征,並使用機器學習模型如SVM。深度學習方法將點雲進行體素化形成體素網格並使用3D卷積神經網絡,或者將點雲經過投影生成多視角的圖片,並使用傳統的2D卷積神經網絡。這些方法將點雲數據轉換成中間表示(體素網格、圖片),造成了數據不必要的增大,同時還會損失點雲的幾何信息。

PointNet是一個端到端的網絡,直接處理原始的點雲數據,同時解決了點雲的排列不變性和變換不變性問題,在點雲的分類、部件分割和場景語義分割的任務上取得了與之前相比最好的性能,為這些任務提供了一個統一的架構,同時能夠對點的缺失、點的插入、點的擾動保持一定的魯棒性。

PointNet的兩個關鍵點是shared mlp對稱函數shared mlp單獨處理每個點,並且共享權重,對稱函數能夠保持排列不變性。下面來仔細介紹一些這篇文章。

任務

給定一個3D點雲\(\{P_i | i=1,...,n\}\),每個點\(P_i\)是一個它對應的坐標\(\left(x, y, z\right)\)加上它額外的特征如顏色、法向量等等。為了簡單清晰地陳述問題,我們就將\(P_i\)簡化為他的三維坐標\(\left(x, y, z\right)\)

對於分類任務,網絡要輸出一個點雲的在數據集上的k個類別上的得分。對於部件分割或場景語義分割,網絡要能輸出每個點在m個語義子類別的得分,即輸出為\(n \times m\)

點雲的性質

  • 無序性:點雲中的點不像圖像中的網格一樣規則,其無序性是指無論一個點雲中的點以何種順序排列,對於分類等任務來講,其結果是一樣的。網絡對其\(N!\)排列具有不變性。PointNet通過單獨處理每個點以及使用對稱函數解決了這個問題。
  • 點與點之間的相互作用:點雲中的點來自一個具有距離度量的空間,每個點不是獨立的,臨近的點來自一個有意義的子集。也就是說,點雲具有局部特征。該問題實際上沒有得到解決,PointNet並沒有捕獲點雲的局部特征。
  • 變換不變性:作為一個幾何物體,無論施加什么樣的剛體變換,如平移、旋轉所有的點,都不會改變它的類別,每個點所屬的類別。PointNet通過T-Net解決了這個問題。

網絡結構

PointNet

上圖是該PointNet的網絡結構。藍色框內是用於分類的網絡結構,藍色框內除了最后的mlp,加上黃色框的網絡是用於部件分割或或者語義分割的網絡。網絡中的重點包括T-Netshared mlpmax pool

shared mlp和max pool

shared mlp的意思是多層感知機,這個多層感知機特別的地方在於它的權重是對每個點共享的,自然而然,它的實現使用的是大小為1的卷積核,卷積用的是1D卷積。通過對輸入的點雲的每個點單獨地進行維度提升,最后通過一個max pool進行特征聚合。max pool是一個對稱函數,對稱函數諸如max、min、average等等,其結果對輸入序列的順序保持不變性。而這里之所以用max pool操作是因為通過對比試驗,max pool的效果是最好的。這個max pool的操作也是有些特別的,它實際上是對的得到的\(n \times 1024\)這個特征矩陣的第0維求max,得到一個1024維的向量,這個向量就是點雲的全局特征。

可以看到,前面的shared mlp是對每個點單獨地進行處理,最后max pool操作又能保持排列不變性,因此整個網絡能夠對點雲實現排列不變性。

T-Net

T-Net實際上是一個mini-PointNet,最終的輸出是一個與\(channel^{2}\)維的向量,將其通過reshape操作得到\(channel \times channel\)的矩陣,用這個矩陣對輸入的每個點或者每個特征進行空間變換,能夠保證變換不變性。論文中說的是,通過T-Net,將輸入空間或特征空間對齊到基准空間。補充材料中有給出T-Net的結構,下面是自己畫的一個圖:

通過對特征空間使用T-Net,還需要對最終的損失加上一個正則項:

\[L_{reg}=||I - AA^T||^2_F \]

部件分割網絡

部件分割網絡中,通過將全局特征重復n次,形成一個\(n \times 1024\)的矩陣,並與之前提取的每個點的特征\(n \times 64\)做一個拼接操作形成一個\(n \times 1088\)的矩陣,用包含了局部特征和全局特征的混合特征做分割,效果會更好。因為分割不僅僅需要全局特征,還需要局部特征。而實際在實驗部分,作者得到的最好的結果使用的不是Figure 2的結構,而是下圖的結構:

可以看到,該結構將前面多個階段提取的點的特征與全局特征拼接在一起,並且將該物體所屬類別的one-hot編碼拼接了進去,形成一個\(n \times 3024\)的矩陣。

實驗

本文重點的三個實驗包括在ModelNet40上的分類,在ShapeNet上的部件分割,以及在S3DIS上的場景語義分割。除此之外還有一些消融實驗,如驗證T-Net的作用、PointNet的魯棒性。

分類

至於為什么沒有MVCCN效果好,作者原文中說的是PointNet沒有捕捉到精細的幾何結構。

部件分割

場景語義分割

T-Net消融實驗

魯棒性實驗

其他


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM