三維點雲深度學習研究綜述

三維點雲深度學習研究綜述

論文:Deep Learning for 3D Point Clouds: A Survey

作者:Yulan Guo

時間:2019-12

引言

動機:Point cloud learning (點雲學習)由於在視覺、自動駕駛、機器人等方面的廣泛應用,近年來受到了廣泛的關注。最近,隨着點雲的深度學習變得更加興旺,人們提出了許多方法來解決這一領域的不同問題。爲了促進未來的研究,本文對點雲深度學習方法的最新進展進行了全面的綜述。

挑戰

  1. 深度學習技術目前已經成爲成功解決各種二維視覺問題的主流技術,點雲的深度學習依然處於初級階段。

  2. 深度神經網絡處理點雲所面臨的獨特挑戰(例如數據集的小規模、高維和三維點雲的非結構化性質)

意義

  1. 第一篇全面涵蓋幾個重要點雲相關任務的深度學習方法的調查論文,包括三維形狀分類、三維目標檢測和跟蹤以及三維點雲分割。
  2. 與現有的綜述不同,特別關注3D點雲的深度學習方法,而不是所有類型的3D數據
  3. 介紹了點雲深度學習的最新進展。因此,它爲讀者提供了最先進的方法
  4. 提供了在幾個公開可用數據集上現有方法進行的綜合比較,並提供了簡要總結和有洞察力的討論

論述的三個主要的任務

  1. 3D shape classification (三維形狀分類)
  2. 3D object detection and tracking (三維對象檢測和追蹤)
  3. 3D point cloud segmentation (三維點雲分割)

三維點雲深度學習方法的分類

在這裏插入圖片描述

2、3D Shape Classification

介紹:這類的方法通常先學習 embedding of each point (每個點的嵌入),然後使用 aggregation method (聚合方法)從 whole point cloud (整個點雲)中 extract a global shape embedding (提取全局形狀嵌入) ,最終由幾個全連接層來實現 classification (分類)。

基於對每個點進行 feature learning (特徵學習)的方式,現有的 3D shape classification methods (三維形狀分類方法)可分爲 projection-based networks (基於投影的網絡)和 point-based networks (基於點的網絡)。在本文中,我們主要關注基於點的網絡,但也包括一些基於投影的網絡以保證完備性。

  1. Projection-based methods :首先將一個 unstructured (非結構化)的點雲投影到一個規則中間的表示中,然後利用成熟的2D或3D卷積來實現形狀分類。
  2. point-based networks:基於點的方法直接作用於原始點雲,而不需要任何體素化或投影。基於點的方法不會引入顯式信息丟失,並且變得越來越流行。

按時間順序概述3D shape classification 的一些里程碑的方法
在這裏插入圖片描述

2.1 Projection-based Networks 基於投影的網絡

基於投影的網絡將3D點雲投影到不同的表示模式(例如,多視圖、體積表示)中,以進行特徵學習和形狀分類。

2.1.1 Multi-view representation 多視角表示

這些方法首先將3D對象投影到多個 views (視圖) 中並提取相應的 view-wise features(視域特徵),然後融合這些特徵以實現準確的對象識別。關鍵挑戰是如何將多個 view-wise features 聚合到一個有識別力的全局表示 global representation 中。

現有的一些方法

  1. MVCNN: 開創性的工作,只是簡單地 max-pools multi-view features(多視圖特徵) into a global descriptor(全局描述符),但是max-pooling 僅保留特定視圖中的最大元素,從而會導致信息丟失。
  2. MHBN: 通過協調雙線性 pooling 來集成局部卷積特徵(local convolutional features),以產生緊湊的全局描述符(global descriptor)。
  3. 首先利用關係網絡(relation network)來發現一組視圖上的相互關係(例如,區域-區域關係和視圖-視圖關係),然後聚集這些視圖以獲得可辨別的 3D object representation。
  4. ……

2.1.2 Volumetric representation 體素表示

  1. 早期的方法通常使用建立在 3D point clouds (3D點雲)的 volumetric representation(體表示:由稱爲體素的離散體組成)上的三維卷積神經網絡(CNN)。
  2. Wu et al. 提出了一種卷積深度 belief-based 的3D ShapeNets,用於從不同形狀的三維形狀中學習點的分佈。雖然已經取得了令人鼓舞的性能,但是這些方法不能很好地擴展到密集的3D數據,因爲計算和內存佔用隨着分辨率的提高而成倍增長。
  3. 爲此,引入了一種層次緊湊的圖結構(如八叉樹 octree )來降低這些方法的計算和存儲開銷。eg:OctNet、Octree-based CNN… 與基於dense input grids的 baseline network 相比,OctNet對高分辨率點雲所需的內存和運行時間要少得多 。
  4. PointGrid的混合網絡,該網絡集成了點和網格表示,以實現高效的點雲處理。

2.2 Point-based Networks 基於點的網絡

根據用於每個點的特徵學習的網絡結構,這類方法可分爲逐點MLP(pointwise MLP)、基於卷積(convolution-based)、基於圖(graph-based)、基於數據索引的網絡(data indexing-based networks)和其他典型網絡。

2.2.1 Pointwise MLP Networks

這類方法使用多層感知器 MLP(Multi-Layer Perceptrons )對各個點進行獨立的建模,接着使用對稱的函數來集成到全局特徵。對於無序的3D點雲數據,這類網絡可以得到置換不變性。然而這樣的方法並未考慮到3D點之間的幾何關係,如下圖3。
在這裏插入圖片描述
作爲先驅工作,PointNet 使用MLP學習Pointwise特徵,接着使用最大池化層來提取全局的形狀特徵。最後的分類結果也使用MLP來得到。[26]也論證了,得到置換不變性的關鍵在於將所有表示(representations)加起來並且使用非線性變化。[26]也設計了基礎的網絡DeepSets來進行多種應用的實現,包括形狀分類。

由於特徵是針對PointNet[5]中的每個點獨立學習的,因此各個點之間的局部結構信息無法得到。[27]提出了一種分層次的網絡PointNet++,從各個點之間的鄰居來獲取細粒度的幾何特徵。(PointNet++的核心,其abstraction level 由採樣層(the sampling layer)、分組層(the grouping layer)和PointNet層三層組成。PointNet++通過堆疊多個abstraction level,可以從局部幾何結構中學習特徵,並逐層抽象局部特徵。)

因爲PointNet的簡單和有效性,許多工作都基於PointNet開展。(這裏介紹了一些網絡)

2.2.2 Convolution-based Networks 基於卷積的網絡

與2D卷積相比,由於點雲的不規則性,3D點雲的卷積核更難設置。根據卷積核的不同,目前的3D卷積網絡可以被分爲連續卷積網絡(continuous convolution networks )和離散卷積網絡(discrete convolution networks),如下圖所示。

在這裏插入圖片描述

3D Continuous Convolution Networks. 3D連續卷積網絡

這類方法在連續的空間中定義卷積核,其中鄰居點的權重與它和中心點的空間分佈有關。

3D卷積可以解釋爲給定子集上的加權和。MLP是學習權重的一種簡單方法。作爲RS-CNN[35]的核心層,RS-Conv將某個點周圍的局部子集作爲其輸入,使用MLP的方法來進行卷積,學習低維關係到高維關係的映射。

一些方法還使用現有算法來執行卷積。在PointConv[38]中,卷積被定義爲對重要性採樣的連續3D卷積的蒙特卡洛估計。卷積核由加權函數(由MLP層學到)和密度函數(由核密度估計和MLP層學到)組成。爲了提升內存和計算效率,3D卷積被簡化成兩部分:矩陣乘法和2D卷積,在相同的參數設置下,內存消耗可減小64倍。

3D Discrete Convolution Networks. 3D離散卷積網絡

這類方法在標準的網格上定義卷積核,其中的鄰居點的權重是其關於中心點的補償(offset)。

[49]將非歸一化的點雲變換至歸一化的網格,接着在各個網格上定義卷積核。與2D卷積不同(在各個像素上分配權重),所提的3D卷積核在網格內的所有點賦予相同的權重。對於給定點,鄰域內所有點(在相同網格上)的平均特徵通過之前的層來計算得到。接着,所有網格的平均特徵通過加權和產生當前層的輸出。

2.2.3 Graph-based Networks 基於圖的網絡

基於圖的網絡將點雲中的每個點視爲圖的一個頂點,並基於每個點的鄰域來生成圖的有向邊。然後在空間域或譜域中執行特徵學習[58]。典型的基於圖的網絡如圖5所示。

在這裏插入圖片描述

Graph-based Methods in Spatial Domain 空間域中的基於圖的方法 .

這類方法在空間域中定義卷積和池化操作。卷積通過在空間鄰域內的MLP實現,池化操作通過集成信息產生新的較粗的圖。各個頂點的特徵由座標、激光強度、顏色來確定,各個邊的特徵由兩個連接點的幾何屬性確定。

作爲先驅工作,[58]將各個點視爲圖的頂點,利用有向邊將頂點與其鄰域內的點相連,接着使用Edge-Condition Convolution(使用生成filter的網絡得到,MLP等)。最大池化用來集成鄰域信息,圖的粗化使用VoxelGrid[59]算法得到。首先通過卷積和池化的相互交錯,再跟着爲全局平均池化和全連接層來產生分類score。

Graph-based Methods in Spectral Domain 譜域中的基於圖的方法.

這些方法將卷積定義爲譜的濾波,將其實現爲圖上的信號與圖的拉普拉斯矩陣的特徵向量的乘法。

2.2.4 Data Indexing-based Networks 基於索引數據的網絡

這些網絡基於不同的數據索引結構(例如,八叉樹和kd-樹)來構建。在這些方法中,點特徵是沿着樹從葉節點到根節點分層學習得到的。

2.2.5 Other Networks

除了上述方法外,還提出了許多其他方案

表1:在ModelNet10/40基準上比較3D Shape Classification 結果,只關注基於點的網絡(pointbased networks ),“#params”指的是相應模型的參數個數。“OA”表示 overall accuracy ,“MACC”表示表中的平均精度(mean accuracy )。符號‘-’表示結果不可用。
在這裏插入圖片描述

3、3D Object Detection and tracking

3.1 3D Object Detection 物體檢測

與普通2D中目標檢測方法類似,3D中的目標檢測也可以分爲兩類:基於候選區域的方法和直接映射方法。

3.1.1 Region Proposal-based Methods 基於候選區域

首先產生一些可能包含物體的區域(Proposals),接着對各個區域提取特徵,來決定各個候選區域的物體類別。

根據不同的產生候選區域的方法,這些方法可進一步分爲三類:基於多視角的方法(multi-view based);基於分割的方法(segmentation-based)以及基於錐體的方法(frustum-based methods)。

Multi-view Methods 多視角的方法

這類方法從不同的視角圖像(雷達前景圖(LiDAR front view),鳥瞰圖(bird’s eye view (BEV) ),圖像(image)等)中融合各個候選框的特徵,來產生3D rotated boxes,如圖7(A)所示。這些方法的計算成本通常很高。

在[4]中,Chen等人從鳥瞰圖BEV中產生一組準確的3D候選框,並且將其投影到其它視角中(雷達前景圖,RGB圖像),接着將各個區域的特徵組合到一起,來預測有方向的3D bounding boxes。儘管這種方法在0.25IOU, 300個候選框設置時達到了99.1%的recall,但是速度非常慢。
在這裏插入圖片描述

後續的基於多視角的3D物體檢測方法主要從以下兩個方面來提升。

  • (1)提出了很多方法來有效的融合不同模態之間的信息
    • 爲了針對小物體產生有較高recall的候選框,[97]提出了一種多模態的基於融合的區域生成網絡( a multi-modal fusion-based region proposal network)。首先使用裁剪和大小調整操作從BEV視圖和image視圖中提取大小相等的特徵,然後使用 mean pooling 對這些特徵進行融合。具體而言,他們對BEV(鳥瞰視角)空間中的每個點提取最近的對應點的圖image 特徵,接着通過將image特徵投影至BEV空間的方法,使用雙線性插值得到稠密的BEV的特徵圖。實驗結果證明稠密的BEV特徵圖比起離散的image特徵圖和稀疏的LiDAR(雷達激光)特徵圖更加適合3D物體檢測。
    • [99]提出了多任務,多感知器的3D物體檢測網絡來進行端到端的訓練。具體而言,利用多種任務(2D物體檢測,背景估計 ground estimation,深度補償 depth completion ),幫助網絡學習到更好的特徵表示。學習到的跨模態的表示,可進一步用來產生更準確的物體檢測結果。實驗證明這類方法在2D,3D,BEV detection 任務上有着非常好的提升,在TOR4D基準[100, 101]上超越了之前的SOTA。
  • (2)**其它的一些方法致力於提取輸入數據更魯棒的表示 representations **
    • [102]通過引入空間Channel注意力機制模塊(Spatial Channel Attention (SCA) Module),探索了多尺度的環境信息,該模塊可捕獲全局的以及多尺度的場景環境,加強了有用的特徵。同樣的,他們還提出了一種 Extension Spatial Unsample (ESU) 模塊,通過組合多尺度的低層特徵來獲得具有豐富空間信息的高層特徵,從而生成更可靠的3D物體候選框 (proposals) 。儘管達到了更好的檢測效果,但上述所提的多視角方法都需要較長的運行時間,因爲他們對每個候選框都進行了特徵的池化。因此,[103]使用了 預ROI池化卷積(pre-ROI pooling convolution)來提高[4]的效率。具體而言,他們將大部分的卷積操作移動到 RoI pooling 模塊之前。因此,對於所有的物體候選框,ROI卷積只使用一次。實驗結果顯示這類方法可達到11.1fps, 速度達到了MV3D[4]的5倍。
Segmentation-based Methods 基於分割的方法

這些方法首先利用現有的語義分割技術去除大多數背景點,然後在前景點上生成大量高質量的候選框,以節省計算量,如圖7(B)所示。
在這裏插入圖片描述

與剛剛的多視角Multi-view的方法[4],[97],[103]相比,這類方法達到了更好的物體recall,並且更適合一些目標高度遮擋和擁擠的複雜場景。

[104]中,Yang et al使用了2D的分割網絡來預測前景(foreground pixels)的像素並將其投影至點雲中,以此來剔除掉多數的背景點。接着在這些前景點中生成候選框,並且設計了一種新的標準稱之爲PointsIoU來減少候選框的冗餘性和模糊性。

跟着[104]的腳步,[105]提出了PointRCNN的框架。具體而言,他們直接對3D點雲進行分割,然後得到前景點,並且將語義特徵和局部空間特徵融合從而得到高質量的3D boxes。

[106] following [105]中的RPN,提出了一種利用圖卷積網絡來進行3D物體檢測。具體而言,利用圖卷積,引入了兩個模塊來改進refine物體的候選框。第一個模塊R-GCN利用一個候選框中的所有點,得到每個候選框的特徵集成。第二個模塊C-GCN將所有候選框中的每一幀信息融合起來,利用環境來回歸準確的物體boxes。

[107]將點雲投影至基於圖像 image-based 的分割網絡的輸出,並將語義預測值附加到這些點上。

[109]得到了顯著的性能提升,通過將塗色的點送入至一些檢測器中[105, 108]。

[110]將每個點與spherical anchor相關聯,每個點的語義值用來移除多餘的anchors。這樣的方法得到了更好的recall以及有着更小的計算消耗。與此同時,文中提出了PointsPool層,對候選框中的內部點學習相容的特徵(compact features),並且引入了並行的IoU來提高位置的準確度的檢測性能。

實驗結果證實這樣的方法在KITTI數據集[10]上較難的集合(car class)的性能比[99, 105, 111]的性能優越很多,並達到了12.5fps。

Frustum-based Methods 基於椎體的方法

這類方法首先利用現有的2D物體檢測子,產生2D的候選矩形框,接着對每個2D的候選框提取3D的錐體候選框,如下圖所示。儘管這類方法可以有效地給出3D物體的座標,但step-by-step步進式的pipeline流水線使得它們的性能受到2D圖像檢測子的限制。
在這裏插入圖片描述

F-PointNets[112]爲此類detection方向的先驅工作。它在每個2D區域上產生一個錐形的候選框(frustum proposal),並且應用PointNet[5] ( 或PointNet++[27] ) 來學習各個3D錐體的點雲特徵,從而進行3D box的估計。

在隨後的工作中,[113]提出了Point-SENet模塊,來預測一系列的縮放因子,從而被用來突出有用特徵和抑制無用特徵。同時他們也將PointSIFT[114]模塊集成至網絡中,來獲取點雲的方向信息,其可以得到對形狀尺度的強魯棒性。該方法在[10], [115]的數據集上,與F-PointNets[112]相比得到了顯著的提高。

方法[116]利用了2D image 區域和對應的錐體點來回歸3D boxes。爲了融合image 特徵和點雲的全局特徵,他們提出了全局的融合網絡來直接回歸box的角座標。他們也提出了稠密的網絡網絡來預測各個點對於各個角的補償(offsets)。

[117]第一次從2D圖像中估計2D的bounding boxes和3D物體姿態,提取多個幾何上可行的對象候選。這些3D候選對象被送入至box 迴歸網絡來預測準確的3D物體boxes。

[111]對於各個2D區域,在錐體軸上產生一系列的錐體,並使用PointNet來對各個錐體提取特徵。錐體層次的特徵用來產生2D特徵圖,再被送入至FCN 全連接網絡來估計3D box。該方法在基於2D圖像的方法中達到了state-of-the-art的性能,並且在KITTI積分榜上排在很靠前的位置。

[118]首先在鳥瞰圖BEV上得到初步的檢測結果,接着基於鳥瞰圖的預測結果,提取小部分點的子集,再應用局部的微調網絡來學習局部特徵,預測高精度的3D bounding boxes。

其他

……

3.1.2 Single Shot Methods 直接映射

這類方法使用單階段的網絡,直接預測類別概率和迴歸物體的3D bounding boxes。這類方法不需要產生區域候選框和後處理。結果是,這類方法有着很快的速度,很適合實時的應用。根據輸入數據的形式,single shot方法可分爲兩類:基於鳥瞰圖的方法基於點雲的方法

BEV-based Methods 基於鳥瞰圖的方法

這類方法將BEV表示作爲輸入。

[100]將場景的點雲離散化,使用FCN來預測物體的位置和航向角。該方法超越了大多數single shot 方法([125],[126],[127])並且達到了28.6fps。之後,[128]利用HP map(High-Definition 高清)提供的幾何和語義先驗信息,提高了[100]的魯棒性和檢測性能。

Point Cloud-based Methods. 基於點雲的方法

這類方法將點雲轉換至一般的表示(例如2D map),接着使用CNN來預測對象的類別和3D boxes

[125]提出了使用FCN進行 3D object detection 。他們將點雲轉換至2D point map,使用2D FCN來預測bounding boxes和物體的置信度。

之後,[126]將點雲離散化至4D的張量,其維度分別爲:長度,寬度,高度和channel,接着將2D FCN的方法延伸至3D來進行3D的物體檢測(object detection)。與[125]相比,基於FCN的3D方法達到了大於20%準確率的收益,但是由於3D卷積核數據的稀疏性,消耗了更多的計算資源。

爲了解決體素 voxels 稀疏性的問題,[127]利用了feature-centric voting scheme(特徵爲中心投票機制),爲每個非空的體素生成一組的votes,最後通過將votes相加的方式得到卷積的結果。它的計算複雜度與被佔據的體素數量成正比。

[130]通過堆疊多個稀疏3D CNN,構建了3D的backbone網絡。這樣的設計節約了內存並且加速了計算。這個3Dbackbone網絡提取了豐富的物體檢測的3D特徵,並且並未引入計算量的負擔。

[108]提出了基於體素的端到端的可訓練框架VoxelNet。他們將點雲分割成等間距的體素,將每個體素的特徵編碼成4D的張量。然後使用RPN(region proposal
network)網絡來產生檢測結果(detection results)。儘管該方法效果很好,但由於體素的稀疏性和3D卷積操作,該方法運行速度很慢。之後,[120]使用了稀疏的卷積網絡[134]來提高[108]的推斷效率。

[131]通過將圖像和點雲特徵在早期融合的方式,擴展了VoxelNet的工作。具體而言,他們將[108]產生的非空體素投影至圖像,使用預訓練的網絡對各個投影的體素提取圖像特徵。這些圖像特徵與體素特徵相級聯,來預測準確的3D boxes。這類方法利用了多模態的信息,來減少false postivies and negatives。

[109]提出了3D物體檢測子稱爲PointPillars。該方法利用了PointNet來學習點雲的特徵,將這些學到的特徵編碼僞圖像(pesudo images)。然後使用2D的物體檢測流水線(pipeline)來預測3D bounding boxes(邊界框)。PointPillars在Average Precision(平均精度 AP)的指標上,超越了大多數的融合方法(MV3D[4], RoarNet[117], AVOD[97])。並且,PointPillars在3D和BEV KITTI benchmarks上達到了62fps。

Other Methods

[132]提出了一種有效的3D目標檢測子稱之爲LaserNet。該方法在各個點上預測bounding boxes的概率分佈,然後結合各個點的分佈來產生最後的3D object boxes。接着,點雲的dense range view representation (密集視圖(RV)表示)作爲輸入,使用 fast mean-shift algorithm來降低逐點預測產生的噪聲。LaserNet在0到50米的範圍內實現了最先進的性能,其運行時間明顯低於現有的方法。

[133]擴展LaserNet以利用RGB圖像提供的密集紋理(例如,50到70米)。具體來說,通過將3D點雲投影至2D圖像使得LiDAR點和image點關聯,並利用這種關聯將RGB信息融合到3D點中。他們還將3D語義分割作爲輔助任務以learn better representations。該方法在保持LaserNet的高效率的同時,在長距離(例如50到70米)目標檢測和語義分割方面都取得了顯著的改進。

3.2 3D Object Tracking 3D物體跟蹤

給定一個物體在第一幀時的位置,目標跟蹤的任務是估計它在之後幀的狀態。由於3D物體跟蹤可以使用點雲中豐富的幾何信息,人們期待用它來克服在2D圖像上追蹤任務的困難,包括遮擋,光照以及尺度的變化。

Siamese network……

3.3 3D Scene Flow Estimation

類似於2D視覺中的光流估計,已經有幾種方法開始從點雲序列中學習有用的信息(如三維場景流、空間臨時信息)。

[142]提出了FlowNet3D,在一系列連續點雲中直接學習場景流(scene flows)。FlowNet3D通過flow embedding layer, 學習point-level的特徵和運動特徵(motion features)。然而FlowNet3D存在兩個問題。第一,一些預測的運動向量(motion vectors)與真實值差別非常大;第二,很難將FlowNet應用至非靜態的場景,尤其是有着可形變物體的場景。

爲了解決該問題,[143]引入了餘弦距離的損失函數來最小化預測值與真實值之間的夾角。同時,他們提出了point-to-plane的距離損失函數,來提高剛性的和動態的場景的準確率。實驗結果顯示這兩種損失函數將FlowNet3D的準確率從57.85%提升至63.43%,並且加速和穩定了訓練過程。

[144]提出了HPLFlowNet(Hierarchical Permutohedral Lattice FlowNet ),從大規模的點雲中直接估計場景流。文中提出了一些bilateral convolutional layers來存儲結構信息,同時降低計算消耗。

爲了有效地處理序列點雲,[145]提出了PointRNN, PointGRU和PointLSTM,以及一個sequence-to-sequence model 來追蹤移動點(moving points)。PointRNN, PointGRU和PointLSTM能夠捕捉空間-時間信息,並且建模動態的點雲。

類似地,[146]提出了MeteorNet來直接從動態點雲中學習表示。該方法試圖從時間和空間上的鄰近點學習總體特徵。

[147]提出了兩個自監督的損失函數,在大量無標籤的數據集上訓練網絡。他們的主要思想是:一種魯棒的場景流估計方法應該在向前預測和向後預測時均有效。由於場景流標註不可用,預測得到的轉換後的點的最近點,被當做是假想的真實值。然而,真正的真實值可能與它不同。爲了避免這個問題,他們在相反的方向計算場景流,並且提出了cycle consistency loss。實驗結果顯示這種自監督的方法超過了現有自監督學習方法中的SOTA(state-of-the-art)性能。

3.4 Summary

KITTI基準是自動駕駛領域中最有影響力的,並且在學術和工業領域有着廣泛的應用。表2和表3展示了不同方法在KITTI test 3D and BEV benchmark上的結果。
在這裏插入圖片描述
在這裏插入圖片描述
可以觀察到:

  • Region proposal-based methods 是最常見的方法,在KITTI test 3D, BEV上的性能均超出了single shot methods。
  • 現有的3D目標檢測子(3D object detectors)有兩個限制。第一,長範圍的檢測能力較弱。第二,如何充分利用圖像中的紋理信息(texture information)仍然是個公開的問題。
  • 多任務學習( Multi-task learning)是在3D目標檢測中未來的方向。例如,[99]通過合併多種任務,學習跨模態的表示來得到SOTA的檢測效果。
  • 3D物體跟蹤( 3D object tracking)和場景流估計(scene flow estimation)是較新的研究方向,自2019年來受到越來越多的關注。

4、3D Point Cloud Segmentation

3D點雲分割既需要了解全局的幾何結構,又需要了解每個點的細粒度細節。根據分割的粒度,3D點雲分割方法可分爲以下三類:語義分割(場景級 scene level))、實例分割(物體級 object level)和 part segmentation(part level)。

4.1 3D Semantic Segmentation 3D 語義分割

給定一個點雲,語義分割的目標是,根據語義信息,將各個點分成一定的子集。與3D shape classification(第2節)的分類類似,語義分割可分爲兩種方法:基於投影的方法和基於點的方法。

4.1.1 Projection-based Networks 基於投影的網絡

Intermediate regular representations(中間正則表示)可被分成以下幾種:多視角(multi-view)表示[148], [149]、球狀(spherical)表示[150], [151], [152]、體素(volumetric)表示[153], [154], [155]、超多面體晶格(permutohedral lattice )表示[156], [157]以及混合(hybrid)表示[158], [159]。具體可見下圖。
在這裏插入圖片描述

4.1.1.1 多視角表示 Multi-view Representation

[148]首先將3D點雲從多個虛擬的相機視角投影至2D平面上,接着,使用 multi-stream FCN 對合成圖像進行像素級分數預測。最終,通過融合不同視圖上的重投影分數(re-projected scores )來獲得每個點的最終語義標籤。

相似地,[149]首先利用多個相機位置,得到點雲的一些RGB和深度圖快照。接着使用2D segmentation networks ,對這些快照進行像素級的標註label,使用殘差校正(residual correction)進一步融合從RGB和深度圖像預測的分數。

基於點雲是從局部歐式曲面上採樣得到的假設, [161]引入了tangent convolutions進行稠密的點雲分割。該方法首先將各個點周圍的局部曲面投影至虛擬的切平面。Tangent convolutions在曲面上直接進行。該方法具有很強的可擴展性,能夠處理幾百萬個點的大規模點雲。

總的來說,多視角分割方法的性能對視角的選擇(viewpoint selection)和遮擋(occlusions)非常敏感。同時,這類方法並未能完全利用潛在的幾何和結構信息,因爲投影操作不可避免地引入了信息損失。

4.1.1.2 球狀表示 Spherical Representation

爲了得到更快更準確的3D點雲分割,[150]提出了基於SqueezeNet和條件隨機場(Conditional Random Field (CRF))的端到端的網絡。

爲了進一步提升分割準確率,引入了SqueezeSegV2[151],通過使用無監督的domain adaptationpipeline 解決domain shift 問題。

[152]提出了RangeNet++,針對LiDAR點雲進行實時語義分割。首先將2D深度圖像的語義標籤轉移至3D點雲上,然後使用基於KNN的後處理步驟來減緩離散化誤差和推理輸出模糊的問題。

與單一的視角映射相比,球映射保持了更多的信息,並且更適合激光雷達(LiDAR)點雲的標註。然而,這樣的中間表示不可避免地引入了一些問題,比如離散化誤差和遮擋問題。

4.1.1.3 體素表示 Volumetric Representation

[163]首先將點雲分成一系列佔有的體素(occupancy voxels)。接着將這些中間數據送入至fully-3D CNN中進行體素級別的segmentation。最後,爲一格體素(a voxel)內的所有點分配與該體素相同的語義標籤label。該方法的性能極其受限於體素粒度(granularity of the voxels )和點雲分割引起的邊界僞影(boundary artifacts)。

之後,[164]提出SEGCloud來得到更細粒度和全局一致(global consistent)的語義分割。該方法引入了確定性的三線性插值,將由3D-FCNN產生的粗糙的體素預測映射回點雲中,接着使用Fully Connected CRF,確保推測出的點雲有着空間上的一致性。

[153]引入了一種基於核的變分自編碼器結構,對每個體素內部的局部幾何結構進行編碼。這裏摒棄了binary occupancy representations, 使用RBF得到連續的表示,並捕獲到每個體素中點的分佈。再使用VAE將各個體素中的點分佈映射至緊湊的隱空間,最後使用CNN得到魯棒的特徵表示。

良好的可擴展性是體素表示中的優點之一。具體而言,基於體素的網絡(volumetric-based networks)可以在不同空間大小的點雲中自由訓練和測試。在Fully-Convolutional Point Network(FCPN)中,首先從點雲中提取出來不同級別的幾何相關性,再使用3D卷積和加權的average pooling 來提取特徵、合併依賴關係。該方法可處理大規模的點雲,並且在推斷時有着良好的尺度擴展性質(scalability)。

[166]提出了ScanComplete來實現3D補全,以及對各個體素進行語義標註。該方法利用了全卷積網絡(fully-convolutional neural networks)的尺度擴展性(scalability),在訓練和測試階段可以適應不同大小的輸入數據。使用從粗到細的策略來提高預測結果的分辨率。

很自然地,體素表示是稀疏的,其中非零元素的數量僅僅佔很小一部分。因此,在空間上稀疏的數據使用稠密的卷積網絡是比較無效的。爲此,[155]提出了子流形的稀疏卷積網絡( submanifold sparse convolutional networks)。該方法通過限制卷積的輸出只能與被佔據的體素有關,從而顯著降低了內存和計算成本。同時,該稀疏卷積還可以控制提取出的特徵的稀疏性。該子流形稀疏卷積很適合處理高維度且空間較稀疏的數據。

更進一步,[167]提出了一種用於三維視頻感知的4D時空卷積神經網絡(4D spatio-temporal convolutional neural network)“Minkowski Net”。

綜上所述,體素表示很自然地保留了3D點雲的鄰域結構。其規範的數據形式還允許直接應用標準3D卷積。這些因素導致了該領域性能的穩步提高。然而,體素化的過程內在地引入了離散化的僞影和信息損失。通常,高分辨率會導致較高的內存和計算消耗,低分辨率引入了信息的損失。在實際中如何選擇合適的網格分辨(grid resolution)率是non-trivial(不平凡的)的。

4.1.1.4 超多面體晶格表示 Permutohedral Lattice Representation

[156]提出了基於雙邊卷積層(Bilateral convolution layers -BCLs)的稀疏晶格網絡(Sparse Lattice Networks -SPLATNet)。該方法首先將原始點雲插入至超多面體稀疏晶格(permutohedral sparse lattice),再使用BCL對佔據的部分進行卷積。得到的輸出再重新插回原始點雲。此外,該方法還允許靈活地聯合處理多視圖圖像和點雲。

更進一步,[157]提出了LatticeNet來實現有效的處理大規模點雲。還引入了與數據相關的插值模塊 DeformsSlice,將格點要素(lattice feature)反投影到點雲中

4.1.1.5 混合表示 Hybrid Representation

爲了進一步利用所有可用信息,許多方法試圖學習多模態特徵(multi-modal features )。

[158]提出了joint 3D-mult-view網絡,來組合RGB 特徵和幾何特徵。一個3D CNN stream 和一些2D CNN stream用來提取特徵,另一個可微分的back-projection layer用來合併3D和2D特徵。

更進一步,[168]提出了unified point-based network來學習2D紋理信息,3D結構和全局特徵。該方法直接應用基於點的網絡(point-based networks)來提取局部幾何特徵和環境信息。

[159]提出了Multiview PointNet(MVPNet)來集成2D多視角特徵和空間幾何特徵。

4.1.2 Point-based Networks 基於點的網絡

基於點的網絡直接在點雲上進行操作。然而,點雲通常是無序且無結構的,使得直接應用標準的CNN不現實。爲此,先驅的工作PointNet[5]用來對每個點進行特徵學習,使用的是標準的MLP和全局特徵。基於PointNet,一系列基於點的網絡被提出。總體而言,這類方法可大致分爲以下幾類:基於各個點的MLP方法(pointwise MLP method),基於點卷積的方法(point convolution methods),基於RNN的方法(RNN-based methods)和基於圖的方法(graph-based methods)。

4.1.2.1 Pointwise MLP Methods

這類方法通常利用共享的MLP作爲網絡中的基本單元。然而,由共享MLP提取出的各個點上的特徵,並不能獲取到點雲中的局部幾何關係( local geometry),以及點與點之間的關係(mutual interactions)[5]。爲了獲取各個點周圍更廣泛的信息,以及學習到更豐富的局部結構(local structures),有很多方法被提出,包括基於鄰近點特徵池化的方法(methods based on neighboring feature pooling),基於注意力機制的集成(attention-based aggregation)以及局部-全局的特徵級聯( local-global feature concatenation)。

Neighboring feature pooling

爲了獲取局部的幾何形式,這類方法通過將局部鄰域點集成的方式,對各個點學習特徵。具體而言,PointNet++[27]將點分層次,逐步地分成一些組,如下圖所示。多尺度的grouping和多分辨率的grouping來克服點雲多樣性造成的問題。

在這裏插入圖片描述

之後,[114]提出了PointSIFT模塊來實現方向的編碼和scale awareness。該模塊通過使用3階段的有向的卷積操作,將8個空間方向的信息堆疊並且編碼,將多尺度的特徵提取並級聯來實現對不同尺度的適應性。

與PointNet++中使用GROUPING的方法不同,[169]利用K-Means聚類和KNN的方法在世界空間和特徵空間定義兩種鄰域。基於這樣的假設:來自於同一類的點在特徵空間中應當接近,該論文提出了pairwise distance loss and a centroid loss來對特徵學習進行正則。

爲了建模點與點之間的相互關係,[31]提出了PointWeb來尋找局部區域內所有點對之間的關係。[170]提出了置換不變性的卷積稱之爲Shellconv。[95]提出了有效、輕量的網絡稱爲RandLA-Net實現大規模的點雲處理。該方法利用隨機樣本採樣,在內存和計算方面提升很多。提出的局部特徵集成用來獲取和保持幾何特徵。

Attention-based aggregation

爲了進一步提升分割的準確率,[90]針對點雲分割,提出了基於注意力的機制。

[29]提出了組隨機注意力機制(group shuffle attention)來建模點之間的關係,並且提出了具有置換不變性、task-agnostic以及可微分的Gumbel Subset Sampling(GSS) ,來替代被廣泛應用的Furthest Point Sampling(FPS)最遠點抽樣方法。該方法對離羣點不敏感,並且可以選擇具有代表性的點的子集。

爲了更好地獲取點雲的空間分佈,[171]提出了Local Spatial Aware(LSA)層來學習空間感知權重。

與CRF類似,[172]提出了Attention-based Score Refinement(ASR)模塊對分割的結果進行後處理。初始分割結果通過pooling的方式進行修正。該模塊很容易被集成至其他的深度網絡中來提升分割效果。

Local-global concatenation

[85]提出了置換不變性的PS2-Net,將點雲的局部結構(local structures)和全局信息(global context)合併。重複疊加Edgeconv[60]與NetVLAD[173],以獲取局部信息和場景級別的全局特徵(scene-level global features)。

4.1.2.2 Point Convolution Methods 點卷積法

這類方法通常試圖提出在點雲上進行更有效的卷積操作。

[49]提出了一種逐點卷積算子,其中鄰域點被合併至kernel cell,然後與核權重進行卷積。

[174]提出了稱之爲PCCN的網絡,該網絡基於參數化的連續卷積層。該層的核函數由MLP參數化,橫跨連續向量空間。

[42]提出了Kernel Point Fully Convolutional Network(KP-FCNN),基於Kernel Point Convolution(KPConv)。具體而言,KPConv的卷積權重由歐式空間的距離決定,卷積核的點數(number of kernel points)也並不固定。卷積核點(kernel points)的位置由一個最優化問題確定。

在[175]中,作者提供了豐富的消融實驗(ablation experiments)和可視化結果展示了集成方法中,感受野的重要性。同時他們提出了Dilated Point Convolution(DPC)操作,來集成鄰近點的特徵,進而取代KNN(K nearest neighbours)的方法。該方法在提升感受野(the receptive field)上非常有效,並且可以容易地集成至 aggregation-based networks。

4.1.2.3 RNN-based Methods

爲了從點雲中獲取固有的上下文特徵(context features ),RNN也被用來進行點雲的語義分割。

基於PointNet[5], [180]首先將一大塊點雲轉換成多尺度的塊和網格塊來獲取輸入級別的環境。接着,使用PointNet對各個塊提取特徵並送入Consolidation Units 或Recurrent Consolidation Units來獲取輸出級別的環境信息。實驗結果顯示,這樣處理空間環境信息的方法在提高分割性能時是很重要的。

[179]提出了一種輕量的模塊,利用了slice pooling layer將無序的點雲特徵轉換成有序的特徵向量。

[181]提出了Pointwise Pyramid Pooling (3P)模塊來獲取從粗到細的局部特徵,並利用雙向的RNN來實現端到端學習。然而這類方法損失了豐富的幾何特徵和密度分佈[189]。

[189]提出了Dynamic Aggregation Network(DAR-Net)來同時考慮全局場景複雜度和局部幾何特徵。

[190]提出了3DCNN-DQN-RNN。該網絡首先使用3DCNN學習空間分佈和顏色特徵,使用DQN進一步定位類別物體。最後級聯的特徵向量送入RNN中獲取最後的分割結果。

4.1.2.4 Graph-based Methods 基於圖的方法

爲了獲取3D點雲中潛在的形狀和幾何結構,一些方法使用了圖神經網絡(graph networks)。

[182]將點雲看做是一些相連的簡單形狀和超點(Superpoint)的集合,並且使用屬性有向圖(attributed directed graph)(即超點圖 superpoint graph )獲取結構和環境信息。接着,將大規模的點雲分割問題分成三個子問題,即,geometrically homogeneous partition(幾何均勻劃分), superpoint embedding(超點嵌入) and contextual segmentation(上下文分割).

爲了進一步提升,[183]提出了有監督的框架,來 oversegment a point cloud into pure superpoints(將點雲過度分割爲純超點)。

爲了更好地獲取高維空間中的局部幾何關係,[191]提出了基於Graph Embedding Module(GEM) 和 Pyramid Attention Network(PAN)的網絡PyramNet。GEM模塊將點雲表述爲有向無環圖,並且在構建相似度矩陣時,利用協方差矩陣代替歐式距離。在PAN模塊中,使用4個不同尺寸的卷積核來提取特徵。

在[184]中,提出Graph Attention Convolution 用來從局部相鄰集合中有選擇性地學習相關特徵。

4.2 Instance Segmentation 實例分割

與語義分割 semantic segmentation 相比,實例分割更具有挑戰性因爲它需要更準確和更小的細粒度,具體而言,他不僅需要將有着不同語義的點分辨出來,還需要將有着相同語義的實例 (instance )分出來。總體而言,目前的方法可分爲兩個方向:基於候選框的方法(proposal-based)以及不需要候選框的方法(proposal-free)。一些里程碑式的方法具體見下圖。

(按時間順序概述了典型的三維點雲實例分割方法)

在這裏插入圖片描述

4.2.1 Proposal-based Methods 基於候選框

這類方法將實例分割問題分成兩個子任務:3D物體檢測(3D object detection )和實例mask的預測(instance mask prediction)。

[192]提出了3D fully-convolutional Semantic Instance Segmentation (3D-SIS) network,來實現在RGB-D數據上的語義實例分割。該網絡從顏色和幾何中學習特徵。與3D object detection 類似,3D Region Proposal Network(3D-RPN)和 3D ROI layer用來預測bounding box的位置,物體類別和instance mask。

根據合成分析策略,[193]提出了Generative Shape Proposal Network(GSPN)來產生3D候選框。這些候選框再通過R-PointNet修正。最終的標籤通過預測各個點的二進制mask來得到。與直接從點雲數據迴歸三維邊界框不同,該方法通過加強幾何理解,去除了大量無用的候選框。

通過將2D全景分割( 2D panoptic segmentation)擴展到3D映射,[194]爲實現大規模三維重建(3D reconstruction)、語義標註(semantic labeling)和instance segmentation,提出了一種在線三維映射系統(oneline volumetirc 3D mapping system)。該方法首先利用2D語義和實例分割網絡來獲得像素級的全景標籤(panoptic labels ),然後將這些標籤整合到 volumtric map 上。進一步使用全連接的CRF來實現準確的分割,該語義映射系統能夠實現高質量的語義映射( semantic mapping)和具有判別性的目標檢測(object recognition)。

[195]提出了單階段的,不需要anchor的端到端可訓練網絡—3D-BoNet,來實現點雲上的 instance segmentation。該方法對所有可能的instance 直接回歸大致的3D bounding boxes,接着利用點級別的二分類器(binary classifier)來獲取實例標籤。特別地,該 bounding box generation task是被當做是最優分配問題。同時,使用了multi-criteria 損失函數來正則化生成的bounding boxes。該方法不需要任何的後處理操作,並且有很高的計算效率。

[196]提出了針對大規模戶外LiDAR點雲進行instance segmentation的網絡。該方法使用self-attention blocks,在點雲的鳥瞰圖上學習特徵表示(feature representation),根據預測的水平中心和高度限制獲得最終實例標籤(instance labels)。

總的來說,基於候選框的方法較爲直觀,並且實例分割的結果通常較好。然而該方法需要多階段的訓練並且需要對多餘候選框進行裁剪。因此通常都需要更多的時間和計算資源。

4.2.2 Proposal-free Methods 不需要候選框

不需要候選框的方法[197-202]並沒有目標檢測的模塊( object detection module)。作爲替代的是,他們通常將instance segmentation 認爲是semantic segmentation (語義分割)後的聚類步驟。具體而言,需要現有的方法都基於這樣的假設:屬於同一實例的點應當有着相似的特徵。因此這類方法通常聚焦於判別式的特徵學習(discriminative feature learning)和點雲聚類(point grouping)。

……

總體而言,不需要候選框的方法不需要耗費資源的區域生成步驟。然而,因爲該方法不檢測物體的邊界,導致該方法的準確率較低。

4.3 Part Segmentation

零件分割(part segmentation of 3D shapes)的主要困難來自於兩方面。第一,有相同語義標籤( semantic label)的部件(shape parts)有着較大的幾何變化和不確定性;第二,該方法需要對噪聲和採樣具有魯棒性。

[208]提出了VoxSegNet,在3D體素數據上來實現細粒度的零件分割。

[209]將FCN與surface-based CRF組合,實現端到端的3D 零件分割。他們首先從不同的視角產生圖像來實現optimal surface coverage,並將這些圖片送入至2D網絡產生置信圖。接着,使用surface-based CRF 將置信圖集成起來,用來對整個場景打標籤。

[210]引入了Synchronized Spectral CNN(SyncSpecCNN),在不規則非同構形狀圖上實現卷積。

[211]通過引入Shape Fully Convolutional Networks(SFCN),在3D網格上實現了形狀分割,並且將三種低層次的幾何特徵作爲輸入。接着利用基於投票的多標籤graph cut來修正分割結果。

[212]提出了弱監督的CoSegNet進行3D形狀分割。該網絡將一些未分割的3D點雲形狀作爲輸入,接着通過最小化group consistency loss,產生形狀零件的標籤。與CRF類似,預訓練的part-refinement網絡用來修正並且去噪。

[213]提出了Branched Auto-encoder network(BAE-NET)用來unsupervised ,one-shot和weakly supervised 3D shape co-segmentation。

4.4 Summary

下表展示了已有方法在公開數據集上的結果,包括:S3DIS[176], Semantic3D[9], ScanNet[102]和SemanticKITTI[177].
在這裏插入圖片描述

接下來這些問題需要進一步的探索。

  • Point-based networks 是最常見的方法。然而,點的表示通常沒有明確的鄰域信息,現有的大多數基於點的方法不得不求助於昂貴的鄰域搜索機制(KNN, ball query)。這自然地限制了這類方法的有效性,因爲鄰域查找方法需要很高的計算資源和內存。
  • 在 point cloud segmentation 中,從不平衡的數據中學習仍然是具有挑戰性的問題。儘管許多方法[42], [170], [182]達到了不錯的結果,但性能在較小類別的數據上仍然較差。
  • 大多數的方法[5], [27], [52], [170], [171]在較少點的點雲上進行(4096)。實際上,從深度sensor上得到的點雲是非常稠密的。因此需要尋求處理大規模點雲的有效分割方法。
  • 一些工作[145], [146], [167]開始在動態點雲中學習空間-時間的信息,期望時空信息能夠幫助提高後續任務(如3D對象識別[3D object recognition]、分割[segmentation]和補全[completion])的性能。

5、CONCLUSION

本文章提出了當前針對3D understanding的一些SOTA方法,包括3D shape classification ,3D object detection & tracking以及3D scene and object segmentation。對這些方法進行了全面的分類和性能比較。文中還介紹了各種方法的優缺點,並指出了可能的研究方向。

參考:

1

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