Deep Learning for 3D Point Clouds: A Survey

爲了促進未來的idea生成和鑑別,此處對該篇[Submitted on 27 Dec 2019 (v1), last revised 23 Jun 2020 (this version, v2)]Deep Learning for 3D Point Clouds: A Survey做一個了結。

1. INTRODUCTION

隨着各種3D採集技術的快速發展,3D傳感器的可用性和價格越來越便宜,包括各種類型3D掃描儀,LiDARSRGB-D相機。這些3D採集設備可以提供豐富的幾何,形狀和比例信息。通過2D圖像的補充,3D數據提供了更好的瞭解機器周圍環境的機會。3D數據在不同的領域有着廣泛的應用,包括自動駕駛,機器人技術,遙感和醫療。


3D數據由很多格式的表示方式,例如RGB-Dpoint cloudmeshvolumetric grids。其中點雲在不進行任何離散化的情況下保留了原始的幾何信息。因此它是許多場景理解相關應用(autopilot,rebotics)的首選表示。幾年來深度學習很吊,但是他在三維點雲的深入學習方面依然由一些重大挑戰,如數據集規模小,三維點雲的高維性非結構化的性質\(\color{green}{本文主要分析用於處理電文的深度學習方法}\)


最近也公佈了很多公開可用的數據集,如ModelNetScanObjectNNShapeNetPartNetS3DISScanNetSemantic3DApolloCar3DKITTI Vision。上面數據集也推動了3D點雲的深度學習研究,提出了越來越多的方法來解決換個點雲處理的相關問題,包括3D shape classification3D Object detection and tracking3D point cloud segmentation3D point cloud registration6-DOF pose estimation3D reconstruction。改論文是第一篇專門關注點雲理解的深度學習方法論文。現有3D點雲的深度學習方法如圖1所示。和現有文獻相比本文主要貢獻如下:

  1. 據我們所知,這是第一篇綜述論文,全面介紹了幾個重要點雲理解任務的深度學習方法,包括3D形狀分類、3D對象檢測和跟蹤以及3D點雲分割。
  2. 和現有關注點在3D數據類型表示方面的論文不同,本文主要關注3D點雲的深度學習方法。
  3. 本文介紹了點雲深度學習最新的進展,因此他爲讀者提供了最先進的方法。
  4. 提供了幾種公開數據集上現有方法的綜合比較,並提供簡要總結和深入討論。

本文結構如下:第二節介紹各個項目數據集和評估指標任務,第三節回顧三維形狀分類方法,第四節概述現有三維目標檢測和跟蹤方法,第五節對點雲分割方法進行了綜述,包括語義分割、實例分割和部件分割。最後第六節對全文進行總結。
image

2. 背景

2.1 數據集

image

爲了評估深度學習算法,我們收集了很多數據集並在不同的3D點雲應用中評估性能。上表1,列出了一些用於3D形狀分類、3D對象檢測和跟蹤以及3D點雲分割的典型數據集。特別是還總結了這些數據的屬性。


分類數據集的特點。

對於3D形狀分類,這裏由兩種數據集,合成數據真實世界數據集。合成數據集中的對象是完整的,沒有任何的遮擋和背景。相比之下,真實世界數據集中的對象在不同級別被遮擋,一些對象收到背景噪聲的污染。


物體檢測和追蹤數據集特點

對於3D物體檢測和追蹤,這裏也有兩種數據。室內場景和室外城市場景。室內數據集中的點雲要麼從密集深度貼圖轉換,要麼從三維網格採樣。室外城市數據集設計用於自動駕駛,其中對象在空間上很好分離,並且這些點雲很稀疏。


3D點雲分割

對於3D點雲分割,這些數據集由不同類型的傳感器獲取,包括移動激光掃描儀、航空激光掃描儀、靜態地面激光掃描儀、RGBD相機和其他3D掃描儀。這些數據集可用於開發解決各種挑戰的算法,包含干擾物形狀不完整類別不均衡

2.2 評估指標

針對不同的點雲任務,提出了不同的評估指標來測試這些方法。對於3D形狀分類Overall Accuracy(OA) and mean class accuracy是最常用的性能標準。


對於三維目標檢測,平均精度(AP)是最常用的標準。他的計算方式是precision-recall曲線的面積。PrecisionSuccess通常用於3D單目標追蹤的整體性能。 平均多目標跟蹤準確率和平均多目標追蹤精確率是評估三位多目標跟蹤最常用的標準。對於3D點雲分割OA、並集平均交點(mIoU)和平均類精度(mAcc)是最常用的性能評估標準。特別是mAP也用於3D點雲的實例分割。

3. 3D形狀分類

對於這一類任務下學習每個點的編碼方法,然後用聚合函數從整個點雲中提取全局特徵編碼方法,最後通過講全局編碼信息輸入到幾個全連接層以實現分類\(\color{green}{針對點的處理方式}\)。根據神經網絡輸入的數據類型不同,現有的三維形狀分類方法可分爲基於多視圖,基於體積和基於點雲的方法。下圖介紹了幾種里程碑式的方法。

image

其中PointNet解析在這裏
其中DGCNN解析在這裏

  1. 基於多視圖的方法是將非結構、無序化的點雲數據投影爲二維圖像
  2. 基於體積的方法將點雲轉化爲三維體積表示方法。然後利用現有的二維或三維卷積對形狀進行分類。
  3. 基於點雲的方法直接處理原始點雲,無序任何體素化或投影,這種數據結構可以保留最多的原始信息,也是我認爲的最好的處理方法。

基於點的方法不會引入噪聲以及造成信息丟失,所以越來越受歡迎。因此本論文也主要關注基於點的方法,至於體素化和多視圖也會因爲完整性而略有涉獵。

image

MVCNN一項2015年開創性的工作來自ICCV,它只是將多視圖的特徵做一個MaxPooling到全局描述特徵,然而Max-pooling僅僅在指定視角中保留了最大值所以會造成信息損失。


image

MHBN一項2018年的補充性工作來自CVPR,它提出MVCNN將視圖通過max-pooling特徵合併爲全局特徵,作爲對3D對象的表示。但是對於每個神經節點,max-pooling操作只保留了針對某個視角的最大特徵值,而忽略了出最大值的所有因素,因此造成了視覺信息的丟失。\(\color{red}{當前的直接對於點雲進行處理的任務,是否也有這種誤區?}\),本文對max-pooling是否可以改爲sum-pooling以解決上述問題做出解釋,結論是效果會更差。
對於上述maxsum的限制,本文提出一種利用patch級別的特徵去替代view級別的特徵(意思是將一個view分爲多個patch,patch越多,上面max帶來的loss越小。)
image

如上圖所示,通過patch化之後,它具有以下優點。

  1. 看圖C,它可以在兩個完全不同的view中獲取到相關patch對,以做到聚類效果。
  2. 即使在兩個對應的view中,他也只計算由相關patch組成的對,而將不相關的patch解耦。

本文提出一個名爲bilinear pooling的方法,去對patch的相似性進行打分,降低了每個patch要和所有patch對比的高額雜度。


3.1 基於多視角的方法

View-gcn一項2020年CVPR,這一篇文章,屬於找多視圖之間的關係,建立起來多視圖之間的關係從而更好地還原點雲本身信息的一個操作。其中包含了圖網絡的一些思想應用。

image
在不同的視角看物體,得到的信息也是不同的。例如上圖,不同視角中的椅子有很明顯的區別,而茶杯基本沒有區別。所以不同圖像的聯繫可能隱藏了3D物體的潛在信息,這個聯繫會給3D物體的形狀識別帶了有價值的信息。因此本文的主要工作就是設計一個GCN在聚合多視圖特徵的時候自動調查view之間的關係。

之前有人將multi-view視爲一個序列,並通過RNN去探索多視圖特徵,但是一維的順序可以很好的模擬相機順序位於圍繞對象上的位置,但是對於更一般的情況,它會忽略多個view的3D幾何圖形。

主要挑戰:如何聚合多視圖特徵爲一個全局的3D形狀描述。
傳統方法:通過最大池化來聚合多視圖特徵,該方法是置換不變的,但忽略了viewview之間的關係。
本文目的:通過view-Graph來表示物體的3D形狀,每一個view對應graph中的一個節點。節點間的邊由攝像機座標的k近鄰確定。在此基礎上設計了一種圖卷積神經網絡view-GCN用於聚合多視圖特徵以學習全局形狀描述子。

image

上圖由三個部分組成。首先,通過主幹網絡從一個三維圖像獲得多個view,並在其中提取特徵,使用multi-view特徵表示節點,構建view-graph。其次我們設計GCN來分層聚合view-graph的多視圖特徵,以生成一個全局性狀描述符。最後使用全局形狀描述符進行形狀識別。


3.2 基於體素的方法

此類方法通常將點雲體素化爲3D grids,然後利用3D-CNN去提取特徵進行分類。

Maturana這些人引入了一種稱爲VoxNet的體積佔用網絡,以實現魯棒的3D對象識別。Wu使用基於3D shape的深度卷積網絡去學習3D shape的點的分佈,但是因爲運算量立方式增長,所以無法運用到密集的三維數據上。


爲此引入了層次結構和緊湊結構(如八叉樹),以降低這些方法的計算難度,節省內存成本。OctNet一篇2017的CVPR,首次使用混合網格八叉樹結構分層劃分點雲,該結構表示場景中沿規則網格具有多個淺八叉樹的場景。採用a bit string的表示方法對八叉樹進行高效的編碼,並通過簡單的算法對每個voxel的特徵向量進行索引。wang提出了一種基於八叉樹的CNN三維形狀分類方法,提高了效率和減少內存消耗。


3.3 基於點雲的方法

根據每個點的特徵進行學習的網絡結構,這類方法可以被分爲逐點MLP、基於卷積、基於圖、基於層次數據結構的方法和其他經典方法。

3.3.1 逐點法

此種方法使用多個共享參數的MLP對每個點進行獨立編碼,然後使用對稱函數將其聚合爲全局特徵。如下圖所示:

因爲點雲的不規則性,所以2D的操作方法無法直接推廣到3D上,作爲一項開創性的工作PointNet直接將點雲作爲輸入,然後過一遍共享參數的MLP,然後使用聚合函數實現置換不變性並聚合出整體特徵。DeepSet是總結所有表示和應用非線性變換實現置換不變性的一篇論文。因爲PointNet中是講每個點的特徵獨立學習的,所以無法捕獲點之間的局部結構信息,因此後來提出了一種分層的網絡PointNet++,用於從每個帶你的鄰域捕獲精細的幾何結構。PointNet從局部幾何中學習特徵,並逐層抽象局部特徵。
image


因爲它簡單和強大的能力,許多網絡都是基於PointNet開發的,Mo-Net(2018,ICCVW)
image
這個Mo-Net應該是受到DGCNN中那個KNN操作的啓發,然後水出來的一篇文章,就是利用knn獲取到了多一點的信息,我這邊也沒仔細看,有不同的可以補充一下。

PointWeb(19年的一篇CVPR)本文提出從點雲局部鄰域中提取上下文特徵的新方法,我們在局部鄰域緊密的鏈接每個點和其他點,目的是該區域的每個點的特徵可以更好地表示該區域。提出了一個新穎的特徵調整模塊,即自適應特徵調整模塊,用於發現點之間的相互作用。對
PointWeb和DGCNN的對比:DGCNN是講挑選的中心點的特徵及其鄰域之間的\(k\)個特徵連接起來,形成多幾個輸入維度的特徵差,然後去MLPmax-poolingPointWeb認爲DGCNN還是隻對挑選出的中心點的特徵考慮關係,並且區域信息的合併依然是有限的,區域的聚合操作也通過簡單的最大池來實現(詬病的最大池應該和這個MHBN是一樣的,無法獲取到除max feature之外的信息,所以取patch去做)。

這邊具體值得讀一讀的文章有:PointNetDGCNNView-GCN

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