3D POINT CLOUD CLASSIFICATION USING DEEP LEARNING – RECENT WORKS September 20, 2017點雲分割綜述的翻譯

轉載自:https://blog.csdn.net/u013019296/article/details/79652035

在過去的這些年裏,對二維圖像已經有了大量深入的研究,並且有着長足的發展。它在分類任務上取得了極好的結果主要得益於一下兩個關鍵因素: 

**1.卷積神經網絡。 
2.數據 - 大量圖像數據可用。**

但是對於3D點雲,數據正在迅速增長。大有從2D向3D發展的趨勢,比如在opencv中就已經慢慢包含了3D點雲的處理的相關模塊,在數據方面點雲的獲取也是有多種渠道, 無論是源於CAD模型還是來自LiDAR傳感器或RGBD相機的掃描點雲,無處不在。 另外,大多數系統直接獲取3D點雲而不是拍攝圖像並進行處理。因此,在深度學習大火的年代,應該如何應用這些令人驚歎的深度學習工具,在3D點雲上的處理上達到對二維圖像那樣起到很好的作用呢?

3D點雲應用深度學習面臨的挑戰。首先在神經網絡上面臨的挑戰: 
(1)非結構化數據(無網格):點雲是分佈在空間中的XYZ點。 沒有結構化的網格來幫助CNN濾波器。 
(2)不變性排列:點雲本質上是一長串點(nx3矩陣,其中n是點數)。 在幾何上,點的順序不影響它在底層矩陣結構中的表示方式,例如, 相同的點雲可以由兩個完全不同的矩陣表示。 如下圖所示: 
這裏寫圖片描述 
(3)點雲數量上的變化:在圖像中,像素的數量是一個給定的常數,取決於相機。 然而,點雲的數量可能會有很大的變化,這取決於各種傳感器。 
在點雲數據方面的挑戰: 
(1)缺少數據:掃描的模型通常被遮擋,部分數據丟失。 
(2)噪音:所有傳感器都是嘈雜的。 有幾種類型的噪聲,包括點雲擾動和異常值。 這意味着一個點有一定的概率位於它被採樣的地方(擾動)附近的某一半徑範圍內,或者它可能出現在空間的任意位置(異常值)。 
(3)旋轉:一輛車向左轉,同一輛車向右轉,會有不同的點雲代表同一輛車

Princeton’s Modelnet40 dataset。 它包含約40個對象類別(如飛機,表格,植物等),用三角形網格表示的12311個CAD模型。 數據分爲9843個培訓模式和2468個測試模式,如下圖 
這裏寫圖片描述 
在點雲上應用深度學習的直接方法是將數據轉換爲體積表示。 例如體素網格。 這樣我們就可以用沒有神經網絡問題的3D濾波器來訓練一個CNN(網格提供了結構,網格的轉換解決了排列問題,體素的數量也是不變的)。 但是,這有一些不利因素。 體積數據可能變得非常大,非常快。 讓我們考慮256×256 = 65536像素的典型圖像大小,現在讓我們添加一個維度256x256x256 = 16777216體素。 這是很大的數據量(儘管GPU一直在發展)。 這也意味着非常緩慢的處理時間。 因此,通常我們需要妥協並採取較低的分辨率(一些方法使用64x64x64),但是它帶來了量化誤差的代價。所以,所需的解決方案是一個直接的深度學習的方法,將是3D點雲應用深度學習的重點。

作者調查了三種最近發表的文章,主要針對對點雲進行深度學習的論文。 正如下圖所示,展示了3D點雲分類準確性出版(準確性,年份和數據類型),它總結了數據集上的最新準確性結果。 以及每種方法正在處理的數據的類型。 可以看到,在2015年,大多數方法都用於多視圖數據(這是一種簡短的說法 - 讓我們拍攝3D模型的幾張照片並使用2D方法處理它們),2016年更多的方法使用了體素表示的點雲學習和2017年的基於點的方法有了大幅度的增長。 
這裏寫圖片描述 
PointNet(CVPR2017) 
開拓者! 來自斯坦福大學,他們的工作引起了很多關注。他們做了一些令人驚訝的簡單的事情,並證明了爲什麼它運作良好,他們分別在每個點上訓練了一個MLP(在點之間分享權重)。每個點被“投影”到一個1024維空間。然後,他們用點對稱函數(max-pool)解決了點雲順序問題。這爲每個點雲提供了一個1 x 1024的全局特徵,這些特徵點被送入非線性分類器。利用他們稱爲T-net的“迷你網絡”解決了旋轉問題。它學習了點(3 x 3)和中級特徵(64 x 64)上的變換矩陣。稱之爲“迷你”有點讓人誤解,因爲它實際上與主網絡的大小有關。另外,由於參數數量的大量增加,引入了一個損失項來約束64×64矩陣接近正交。也使用類似的網絡進行零件分割。也做了場景語義分割。做得好!我強烈推薦閱讀(或者您也可以觀看演示視頻)。本文對ModelNet40數據集的準確率高達89.2%。下圖是pointNet點雲分類的框架 
這裏寫圖片描述 
引用: Charles R. Qi, Hao Su, Kaichun Mo, and Leonidas J. Guibas. Pointnet: Deep learning on point sets for 3d classication and segmentation. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), July 2017.

The code is available on GitHub: PointNet code

Pointnet ++(NIPS 2017) 
在PointNet之後不久,引入了Pointnet ++。它本質上是PointNet的分層版本。每個圖層都有三個子階段:採樣,分組和PointNeting。在第一階段,選擇質心,在第二階段,把他們周圍的鄰近點(在給定的半徑內)創建多個子點雲。然後他們將它們給到一個PointNet網絡,並獲得這些子點雲的更高維表示。然後,他們重複這個過程(樣本質心,找到他們的鄰居和Pointnet的更高階的表示,以獲得更高維表示)。使用這些網絡層中的3個。還測試了不同層級的一些不同聚合方法,以克服採樣密度的差異(對於大多數傳感器來說這是一個大問題,當物體接近時密集樣本,遠處時稀疏)。他們在原型PointNet上進行了改進,在ModelNet40上的準確率達到了90.7%。下面是Pointnet++ 架構。 
這裏寫圖片描述 
引用: Charles R Qi, Li Yi, Hao Su, and Leonidas J Guibas. Pointnet++: Deep hierarchical feature learning on point sets in a metric space. arXiv preprint arXiv:1706.02413, 2017.

Kd-Network(ICCV 2017) 
本文使用着名的Kd樹在點雲中創建一定的順序結構的點雲。一旦點雲被結構化,他們就會學習樹中每個節點的權重(代表沿特定軸的細分)。每個座標軸在單個樹層級上共享權重如下圖中的所有綠色都具有共享權重,因爲它們將數據沿x維度細分。測試了隨機和確定性的空間細分,並說明了隨機版本效果最好。但同時也說出了一些缺點。對旋轉(因爲它改變樹結構)和噪聲(如果它改變樹結構)敏感。對於每個輸入點雲數據,都需要上採樣,下采樣或訓練一個新模型。

在Modelnet40上報告了1024點(深度10樹)的90.6%準確度數據集和〜32K點(深度15樹)的91.8%。做到了部分點雲分割,形狀檢索,並可以在後期工作中嘗試其他的樹形結構。 
這裏寫圖片描述 
引用: Roman Klokov and Victor Lempitsky. Escape from cells: Deep kd-networks for the recognition of 3d point cloud models. arXiv preprint arXiv:1704.01222, 2017.

總結:Pointnet和Pointnet ++使用對稱函數來解決順序問題,而kd-Network使用Kd-tree。 Kd樹也解決了結構問題,而在PointNets MLP每個點分別訓練。 
這裏寫圖片描述 
該文章翻譯http://www.itzikbs.com/3d-point-cloud-classification-using-deep-learning,有問題請指出,這樣做筆記的記錄,讓我對文章理解更加深刻,

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章