Author
Charles R. Qi* Hao Su* @ Stanford 第一個是PHD, 第二個是Professor, 兩人一直在一起做些3D的研究 還有個PointNet++
Abstract
點雲是一種很重要的幾何數據結構,因為它不規則的形式,很多研究都是將它轉換成規則的3D體素或者collections,這樣的話就會造成大量不必要的數據也會產生一些相應的問題。
點雲最接近原始傳感數據,它是坐標的,所以它可以輕易地轉換成其他三種數據格式(mesh,體素,深度圖),也可以由其他格式輕易地轉成點雲
本文設計了一種新型的網絡結構直接作用於點雲數據上,並且很好的利用了點雲數據的隨機排列不變性。PointNet是一個統一的框架可以適用於目標分類,part segmentation, scene semantic parsing.
它的性能比肩於甚至好於當前最好的結果,這個網絡對於輸入擾動和損壞具有很強的健壯性。
Introduction
傳統的卷積結構需要高度規則的數據輸入格式,為了進行共享權重和其他kernel optimizations.
將不規則數據轉換成規則數據會引入一些不必要的數據,同時可能損失數據本身的一些內在不變性
點雲比起meshes網格,避免了組合的不規則性以及復雜性,所以更加學習起來更加簡便
點雲本質上就是一個集合,所以隨機排列都不變,這樣就迫使網絡計算過程中的對稱性,同時還要考慮剛體運動的不變性
網絡基本機構相當簡單在初始階段,對於每個點都是相同且獨立的操作,每個點都是一個三維坐標(x,y,z), 另外的維度會通過計算一些通用或者局部全局的特征被加上
Key to our approach is the use of a single symmetric function, max pooling
網絡學習了一系列優化函數/標准用以選擇有趣或者富含信息的點同時enocde選擇的原因
最終的一個全連接層將集合這些學習到的最優的值到全局的描述子用於整個形狀(classification),或者用於預測每個點的標簽(segmentation)
我們的數據格式易於使用剛體和放射變換,因為每個點的變換都是獨立操作的。
因此我們在PointNet之前增加一個依賴數據的空間轉換網絡用來規范化數據
我們做了理論分析,也做了實驗驗證。理論上證明我們的網絡可以擬合任意連續的函數。
有趣的是,我們的網絡是在學習如何用一個關鍵點集合代表整個輸入點雲,可視化發現找到的是目標的一個skeleton
理論分析提供了一個分析為什么pointNet對輸入點小擾動以及對outliers和missing data的魯棒性
對網絡的設計來源於兩個挑戰:
1. 設計網絡可以適用於無序輸入,數據輸入的順序對網絡結果無影響
- 所以需要一個對稱函數,不care輸入數據的順序, 比如說max, sum
-
h is point embedding
- 任何連續的對稱函數可以由pointNet近似
實驗證明max pooling, 比average pooling以及weighted average pooling效果都更好
2. 使網絡對於輸入的幾何變換更加robust
- 實現方法就是將點雲與canonical space對齊
- mini PointNet: T-Net
Contribution
- 設計一個新型網絡結構用於在3D中處理無序的點集
- 理論和實驗分析了網絡的stability and efficiency
- 提取的3D特征可以有很好的直觀解釋
Related Work
現在幾乎很少有做點雲feature learning的,現存的都是手工設計用於具體任務的
而且沒有直接在點雲上做深度學習的,如果要做深度,都是將點雲事先轉換成其他的表示方法(voxelization-3D CNN, Projection/Rendering-2D CNN, Feature extraction- Fullly Connected),再用現有的深度結構
最先開始的是在體素上的3D CNN, 限制在於:數據稀疏度導致分辨率低,計算3D卷積的cost
Multiview CNNs: render 3D Point cloud or shapes into 2D images then apply 2D conv nets (因為2D conv nets的高性能,這種方法在分類和檢索任務中處於領先地位,但是在場景理解,point分類以及shape補全中不是很好)
Spectral CNNs: 最新的工作用在mesh上的,對於non-isometric物體不友好
Feature-based DNNs: 將3D data轉換到vector,通過提取傳統shape features然后利用全卷積網絡進行分類,局限於representation power of the features extracted.
點雲是個無序集合,
Problem Statement
Deep Learning on Point Sets
Properties of Point sets:
- Unordered
- Interaction among points
- 點都不是孤立的,模型需要capture local structures from nearby points and the combinatorial interactions among local structures
- Invariance under transformations
- 旋轉,平移
Joint Alignment Network
因為希望預測的標簽對點雲的剛體變換保持不變,所以我們希望我們學習到的點的特征表示能夠對這些變換無關
一個自然的解決方法是align all input set to a canonical space before feature extraction(比如說全部平移到坐標系中點)
We predict an affine transformation matrix by a mini-network: T-Net, and directly apply this transformation to the coordinates of input points.
T-Net類似於大網絡,它由基礎模塊組成: 點獨立的feature extraction, max pooling and fully connected layers.
同時可以用於alignment of feature space, 這個要比之前的alignment,也就是spatial transform matrix大很多,一個是64x64,一個是3x3, 所以提高了優化的難度。
因此我們在softmax training loss中增加了一個正則化項,我們約束這個feature transformation matrix盡可能近似於正交矩陣
正交變換不會丟失輸入的信息,我們發現加上了這個正則項后我們的網絡更加stable而且能夠得到更好的結果
Theoretical Analysis
略,其實是看不懂
Result
MVCNN[23] 效果比pointnet好,是因為due to the loss of fine geometry details that can be captured by rendered images.
數據集: ModelNet40
12311 CAD models 40類, 9843 training 2468 testing
在每個object上均勻sample 1024個點作為點雲數據,augment數據(繞up-axis隨機旋轉,每個position加高斯噪聲(0,0.02))
數據集: ShapeNet part data set
16881 16個類, 總共50個part 每個類有2-5個part
mIoU, 計算IoU(交集除以並集) between groudtruth and prediction,
對類比C的所有part計算IoU,然后做平均
vanilla就是沒有加上變換
參考:https://www.leiphone.com/news/201708/ehaRP2W7JpF1jG0P.html
作者問答
Q:輸入的原始三維點雲數據需要做歸一化嗎?
A:和其他網絡的輸入一樣,輸入點雲數據需要做零均值的歸一化,這樣才能保證比較好的實驗性能。
Q:深層神經網絡處理三維離散點雲的難點在哪里?PointNet是如何解決這些難點的?
A:深度神經網絡處理三維離散點雲數據的難點主要在於點雲的無序性和輸入維度變化。在本篇文章中,我使用了深度神經網絡中的常用對稱函數 :Max Pooling 來解決無序性問題,使用共享網絡參數的方式來處理輸入維度的變化,取得了比較好的效果。
Q:是否可以使用RNN/LSTM來處理三維點雲數據?
A:RNN/LSTM可以處理序列數據,可以是時間序列也可以是空間序列。因此從輸入輸出的角度來講,他們可以用來處理三維點雲數據。但是點雲數據是無序的,這種點和點之間的先后輸入順序並沒有規律,因此直接使用RNN/LSTM效果不會太好。
Q:T-Net在網絡結構中起的本質作用是什么?需要預訓練嗎?
A:T-Net 是一個預測特征空間變換矩陣的子網絡,它從輸入數據中學習出與特征空間維度一致的變換矩陣,然后用這個變換矩陣與原始數據向乘,實現對輸入特征空間的變換操作,使得后續的每一個點都與輸入數據中的每一個點都有關系。通過這樣的數據融合,實現對原始點雲數據包含特征的逐級抽象。
Q:PointNet 與 MVCNN 的實驗結果比較中,有些指標稍差,背后的原因是什么?
A:PointNet提取的是每一個獨立的點的特征描述以及全局點雲特征的描述,並沒有考慮到點的局部特征和結構約束,因此與MVCNN相比,在局部特征描述方面能力稍弱。面對這樣的問題,我們基於PointNet已經做了一些改進和提升,新的網絡命名為 PointNet++,已經上傳到Arxiv,歡迎大家閱讀並討論交流。