PointCNN: Convolution On X-Transformed Points
(一)論文地址:
https://arxiv.org/abs/1801.07791
(二)核心思想:
2D 圖像中 CNN 的成功之處在於,利用圖像網格中密集表示的數據(指像素)來表達空間局部相關性,但是對於在空間上無序並且密度不均勻的 3D 點雲數據,直接使用 3D 卷積會導致形狀信息的丟失和點排序的偏差;
爲了解決這個問題,有的文章使用體素化(Minecraft 風格)來使數據對齊:
有的使用對稱操作(如 PointNet):
而作者提出了一種新的策略,即 X -transformation,來實現與點相關聯的輸入特徵的加權,並且將點排列成潛在的規範順序;
(三)3D 卷積的不足:
空間局部相關是各種類型數據的普遍特性,與數據表示無關;
如圖,對於在規範域內的數據(如圖像 ),CNN 能夠很好地學習到這些數據的局部相關性;
但是對於無序的、不平整的點雲數據,卷積算子卻不適合利用數據中的空間局部相關性;
例如圖 ,假設它們都有相同的 維特徵 ,使用相同的卷積核 得到的結果如下:
其中 兩個是顯然不同的點集,但是由於點集的無序性,它們得到的結果卻可能相同;
同樣 兩個是相同的點集,得到的結果卻不同;
這就說明卷積無法直接從無序的點集中,獲取到點雲的空間特徵,也無法適應點集的排列;
(四)X-transformation:
爲了解決卷積存在的不足,作者提出了可以使用一個 大小的 X-transformation 空間變換矩陣,目的是利用它同時對輸入特徵進行加權和排序,然後對變換後的特徵進行典型卷積,作者稱這個過程爲 X-Conv;
使用 X-Conv 再處理上述點雲特徵得到的結果爲:
作者解釋說:
- 因爲 和 是從不同形狀的不同點中學習得到的,所以對輸入的不同特徵有不同權重,因此使得 ;
- 因爲 和 訓練時是要求它們滿足 ,其中 是將
轉換成 的置換矩陣,所以可以大致實現 ;
由上述分析可以得知,在理想情況下,變換矩陣 是能夠把點雲的形狀考慮在內的,並且具有排序不變性;但是實際情況是作者發現, 變換矩陣和預想差的很遠,尤其是在排序方面,但依然能夠大幅改善卷積在處理點雲方面的不足;
(五)PointCNN 的網絡結構:
5.1 Hierarchical Convolution:
層級卷積是 CNN 提取特徵的關鍵,因此作者在 PointCNN 中也採用了這種層級結構:
假設 X-Conv 的輸入爲:
其中 是點集, 是點集對應的特徵;
那麼 X-Conv 的目標映射就是得到:
其中 是代表點的點集, 是代表點對應的特徵;
通常要滿足:
來得到聚合的高維特徵;
而選取的代表點應該能夠有效地表達信息“投影”或“聚合”,在分類任務中作者使用了隨機下采樣,而在分割任務中作者使用了最遠點採樣;
5.2 X-Conv 操作:
(也是中國人寫的,,,爲啥這麼彆扭呢)
這裏再寫一遍:
1: 得到點 相對於 的相對座標;
2:使用多層感知機(MLP)將每個點分別提升到 維空間;
3:將 和 拼接起來得到一個 大小的 ;
4:將 作爲輸入,使用多層感知機(MLP)訓練或預測變換矩陣 ;
5:應用 變換矩陣加權並置換 ;
6:將 做卷積操作;
也可以簡單地寫作:
其中:
- 是選取的代表點集;
- 是 中每個點的 個鄰近點;
5.3 網絡結構:
a 是一個簡單的 X-Conv 搭建的兩層網絡,最後只剩下一個特徵點用於分類的預測;
b 是改進的結構,由於 a 中選取特徵點時會隨即丟棄一些點,因此作者提出了一個更緊密的網絡;
c 是用於分割任務的網絡;
(六)實驗結果: