2021年1月11日 星期一

Pointnet 簡介

Pointnet [1] 是處理點雲(point cloud)分類或分割的一種深度學習模型。本篇文章將會介紹點雲資料的特性,以及簡介 Pointnet。

Point Cloud 的特性

Point cloud 可以用個 \( N \times 3 \) 的矩陣表示,代表在空間中的 N 的點。Point cloud 有幾點特性:
  • 沒有順序:Point cloud 是一堆點的集合,因此沒有順序。
  • 點與點之間存在空間關係:例如說構成一個物體的表面。
  • 不會隨著旋轉、平移改變結果

Pointnet 模型就是針對以上三點設計的。

Pointnet 架構

以下為 Pointnet [1] 論文中的架構圖:
Pointnet 架構

模型的輸入是 \( N \times 3 \) 的矩陣,首先利用 T-Net 來確保 point cloud 在空間中的不變性,實驗顯示 T-Net 將分類正確率從 87.1% 提升至 89.2%。
 
第二步是透過一系列的 MLP 至一個 \( N \times 1024 \) 的 feature map,其中 MLP 是透過 \( 1 \times 1 \) convolution (像是 conv1d(3, 64, 1))來實作的。

第三步是利用一個 max pooling 產生 1024 維的 global feature,使用 max pooling 的原因是因為利用最大值可以解決 point cloud 中的順序問題(論文中有證明)。最後如果是要分類的話,加上數個 linear layer 就完成了,而如果要解決分割問題的話,將會把 global feature 跟每個點的 feature map 合併起來,再估計出每個點對於每個分類的機率為多少,進而分割整個 point cloud。
 

其他討論

  • 在沒有 T-net 之下,Max pooling 效果比 Average pooling 好(87.1% vs. 83.8%)。
  • Benchmark 為 ModelNet 40。


沒有留言:

張貼留言