3D點雲深度學習


3D點雲深度學習

在自動駕駛中關於三維點雲的深度學習方法應用、三維場景語義理解的方法以及對應的關鍵技術介紹。

1. 數據

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

3D點雲應用深度學習面臨的挑戰。首先在神經網絡上面臨的挑戰:

1)非結構化數據(無網格):點雲是分布在空間中的XYZ點。 沒有結構化的網格來幫助CNN濾波器。
2)不變性排列:點雲本質上是一長串點(nx3矩陣,其中n是點數)。 在幾何上,點的順序不影響它在底層矩陣結構中的表示方式,例如, 相同的點雲可以由兩個完全不同的矩陣表示。 如下圖所示:

 

 圖1

3)點雲數量上的變化:在圖像中,像素的數量是一個給定的常數,取決於相機。 然而,點雲的數量可能會有很大的變化,這取決於各種傳感器。

在點雲數據方面的挑戰:

1)缺少數據:掃描的模型通常被遮擋,部分數據丟失。
2)噪音:所有傳感器都是嘈雜的。 有幾種類型的噪聲,包括點雲擾動和異常值。 這意味着一個點有一定的概率位於它被采樣的地方(擾動)附近的某一半徑范圍內,或者它可能出現在空間的任意位置(異常值)。
3)旋轉:一輛車向左轉,同一輛車向右轉,會有不同的點雲代表同一輛車

Princeton’s Modelnet40 dataset。 它包含約40個對象類別(如飛機,表格,植物等),用三角形網格表示的12311個CAD模型。 數據分為9843個培訓模式和2468個測試模式,如下圖

 

 圖2

在點雲上應用深度學習的直接方法是將數據轉換為體積表示。 例如體素網格。 這樣我們就可以用沒有神經網絡問題的3D濾波器來訓練一個CNN(網格提供了結構,網格的轉換解決了排列問題,體素的數量也是不變的)。 但是,這有一些不利因素。 體積數據可能變得非常大,非常快。 讓我們考慮256×256 = 65536像素的典型圖像大小,現在讓我們添加一個維度256x256x256 = 16777216體素。 這是很大的數據量(盡管GPU一直在發展)。 這也意味着非常緩慢的處理時間。 因此,通常我們需要妥協並采取較低的分辨率(一些方法使用64x64x64),但是它帶來了量化誤差的代價。所以,所需的解決方案是一個直接的深度學習的方法,將是3D點雲應用深度學習的重點。

作者調查了三種最近發表的文章,主要針對對點雲進行深度學習的論文。 正如下圖所示,展示了3D點雲分類准確性出版(准確性,年份和數據類型),它總結了數據集上的最新准確性結果。 以及每種方法正在處理的數據的類型。 可以看到,在2015年,大多數方法都用於多視圖數據(這是一種簡短的說法 - 讓我們拍攝3D模型的幾張照片並使用2D方法處理它們),2016年更多的方法使用了體素表示的點雲學習和2017年的基於點的方法有了大幅度的增長。

 

 圖3

2. 三維點雲深度學習

在深度學習引入前,傳統方法大多使用人工設計的特征[26-29] 以及隨機森林(Random Forest) 等分類器進行點雲的語義理解。近年來,深度學習[30] 在圖像處理、語音識別等領域已有較多成果。

深度學習的成功之處在於其可以利用如前所述的大規模數據集,進行特征的自動學習,避免人工設計特征的局限。卷積神經網絡 (Convolutional Neural Network, CNN) 是深度學習中強有力的特征提取工具,其應用的條件之一是所處理的數據為規則數據。值得注意的是,語音為一維空間上規則排列的信號,圖像為二維空間上柵格排列的像素,視頻為三維空間上的規則數據,均滿足 CNN 應用的條件。受制於原始點雲數據的無序性,直接在點雲上應用卷積神經網絡(Convolutional Neural Network, CNN) 並不現實。針對此問題,眾多學者進行了大量有價值的研究。

 

 圖 4. 三維點雲的四種表示

三維點雲有多種表示方法(如圖1所示),不同的表示對應着不同的處理方法。

比較容易的處理方式為將其投影為二維圖像或者轉換為三維體素 (Voxel),從而將無序的空間點轉變為規則的數據排列;也可以使用原始點作為表示,不做任何變換,該方式的好處為最大可能保留所有原始信息。此外,點雲作為空間無序點集,可以被看作普適意義上的圖數據。點雲還有另外一種表示,稱作網格 (Mesh),其也可以被看作是構建了局部連接關系的點,即為圖。將點雲看作圖數據,可以使用圖領域新興的圖卷積 (Graph Convolution) 技術進行處理。需要提及的是,原始點的表示和圖表示之間並無明確界限(事實上原始點雲和網格 (Mesh) 之間有一定區別,但若從語義理解方法的角度看,可暫時忽略此區別,將Mesh看作是增加了一種連接關系),本文將其划分為兩類,是為了更加詳細地介紹圖卷積的發展背景與脈絡。綜上,本節從四種點雲表示切入,介紹深度學習在三維點雲上的應用,分別為:基於二維投影的方法、基於三維體素的方法、基於原始點的方法和基於圖的方法。

2.1 基於二維投影的方法

CNN 最好的應用領域在於圖像處理,將三維點雲數據投影到二維圖像平面,即可使得 CNN 應用於點雲數據成為可能。

在文獻 [31] 中,作者將原始的三維點雲從不同視角進行投影,得到 12 個視角下的投影圖片,並使用 CNN 對不同視角的圖片分別提取特征,通過池化結合不同視角的信息,進行最終的點雲物體分類。在文獻 [32, 33] 中,作者使用類似的思路對三維場景進行多視角投影,生成一系列 RGB 圖、深度圖及其他屬性圖片,並使用全卷積 (Fully Convolutional Networks, FCN)[34] 進行像素級語義分割,最終通過反向投影得到點雲的語義分割結果。在文獻 [35] 中,作者將單幀 64 線激光雷達數據投影為鳥瞰圖和前視圖,並結合攝像頭采集的 RGB 圖,並列輸入進三個CNN,其中,鳥瞰圖和前視圖編碼了高度、密度、強度等一系列信息,三個網絡的特征相互融合得到物體的三維邊界框。在文獻 [36] 中,作者使用類似於 [31] 的思路,設置多個不同尺度的投影視角,並結合條件隨機場(Conditional Random Field,CRF)[37],進行三維點雲物體的部件分割。在文獻 [38] 中,作者對單幀 64 線激光雷達數據進行球面投影 (Spherical Projection),得到對應的圖像,圖像的像素值編碼為 x 坐標、強度和深度三通道,使用運行效率較高的 SqueezeNet[39] 進行圖像的語義分割,使用 CRF 進行后處理優化,最終將分割結果投影至點雲。在文獻 [40]中,作者將層次分組概念引入到多視角投影中,提出“視角-組別-形狀”由低到高的三個層次,實現更加具有可分度的特征學習。在文獻 [41] 中,作者沿着點雲表面法線方向,將局部點雲投影至切平面,對切平面上的投影圖像使用 FCN 進行語義分割。在文獻 [42] 中,作者使用類似於 [35] 的點雲投影方法,進行三維目標的邊框預測。與 [35] 不同的是, [42] 未使用前視圖,並舍棄了鳥瞰圖中的強度信息。

2.2 基於三維體素的方法

對三維點雲進行二維投影降低了算法處理的難度,但是三維到二維的投影必然帶來幾何結構信息的損失,直接進行三維特征的提取在一些場景下是非常有必要的。

一種最自然的想法便是 CNN 的延拓,將二維卷積神經網絡拓展一個維度,使其可以處理三維排列的數據;同時,對點雲進行體素化 (Voxelization),將其轉換為空間上規則排布的柵格,使得三維卷積神經網絡(Three Dimension Convolutional Neural Network, 3DCNN) 可以直接應用在這種表示上。文獻 [43, 44] 是較早將 3DCNN 應用於三維點雲處理的工作,他們將原始點雲轉換為體素 (Voxel),並使用 3DCNN 進行點雲物體的特征提取。在文獻 [45] 中,作者深入探討了基於二維投影的方法和基於三維體素的方法的優劣,嘗試尋找這兩種方法精度差異的來源,並針對 3DCNN 提出兩種優化措施:使用完整物體的一部分進行輔助訓練以及使用各向異性的 3D卷積核。在文獻 [46] 中,作者使用三維卷積構建三維全卷積網絡,串聯以三線性插值和條件隨機場,實現室內、室外點雲場景的語義分割。在文獻 [47] 中,作者提出體素特征編碼模塊,使用 PointNet[48]編碼同一體素內的特征,並使用 3DCNN 進行體素間的特征提取。在文獻 [49, 50] 中,作者使用八叉樹數據結構對三維點雲進行編碼,以降低3DCNN 的顯存占用與計算耗時,使得體素的分辨率可以進一步提高,從而可以學習到空間上更加精細的特征。在文獻 [51, 52] 中,作者提出類似的降低 3DCNN 顯存占用的方法,不過省略了使用八叉樹作為中間表示,直接通過哈希表構建了稀疏矩陣的索引關系。這類思路極大提高了 3DCNN 提取特征的能力。在文獻 [53]中,作者將稀疏編碼技術應用於點雲的目標檢測,其整體框架類似於 [47]。由於稀疏編碼的優勢,使得該方法相比 [47] 取得了更好的效果。在文獻 [54] 中,作者將稀疏優化的卷積[51] 用作點雲目標檢測的特征提取網絡,借鑒傳統兩階段目標檢測框架[55],提升了三維目標檢測的性能。

2.3 基於原始點的方法

無論是二維投影還是三位體素,均需要對原始點雲進行一定的轉換,而轉換必然帶來數據信息的損失。在文獻 [48] 中,作者開創性地提出 PointNet,一個用於直接處理原始點雲數據的神經網絡。該方法使用多層感知機進行逐點特征提取,使用池化進行全局特征提取,可用於三維點雲的分類、部件分割、語義分割等多種任務,開辟了基於原始點方法的先河。但是 PointNet 沒有考慮點雲的局部特征,該研究者在隨后發表的 [56] 中,對 PointNet 進行改進,通過設計點雲數據的層次結構以及多尺度特征,實現局部特征與全局特征的融合。點雲局部特征的有效提取是點雲理解中較為本質的問題之一。在文獻 [57] 中,作者根據點雲局部坐標信息學習置換矩陣,對局部點雲的特征進行變換和加權,試圖實現點雲局部排序的一致性。在文獻 [58] 中,作者通過自組織映射從原始點雲中計算得到自組織節點,並將近鄰點的特征匯聚至自組織節點處。在文獻 [59]中,作者將點雲轉換到 Lattice 坐標系下,並定義了在該坐標系下的卷積操作。在文獻 [60] 中,作者沿三個坐標軸對點雲進行空間分塊,使用三組循環神經網絡(RecurrentNeural Network, RNN) 進行塊與塊之間特征的傳遞,構建局部聯系。在文獻 [61] 中,作者使用金字塔池化方法和雙向 RNN 進行局部特征的傳遞。文獻[62] 借鑒 SIFT[63] 特征點的思路,將局部點雲划分為八個區域,解決僅根據離進行近鄰搜索所帶來的問題。類似的思路有 [64],其提出一種逐點的 3D 卷積,對於每個點,將其局部鄰域按照卷積核的排列規則,划分到不同的柵格中,並將 3D卷積核應用於該局部柵格。在文獻 [65] 中,作者通過公式推導提出一種高效的點雲卷積,在不改變計算精度的情況下,大幅降低了模型顯存的需求。在文獻 [66]中,作者定義了一種新的點雲卷積核函數,其不同於規則的固定柵格式卷積,而是通過插值計算每個點處的卷積參數,在使用上更加靈活。基於原始點的方法從 2017 年開始興起,並已經取得了較大的進步,其在語義分割[56, 62]、目標檢測[67-69]、實例分割[70, 71]、點雲匹配[72, 73] 等任務上應用並取得不錯的效果。

2.4 基於圖的方法

現實生活中存在大量的非結構化數據,如交通網絡、社交網絡等,這些數據的節點間存在聯系,可以表示為圖。研究圖數據的學習是近年來學界的熱點。

三維點雲數據可以看作圖數據的一種,圖網絡的很多思想可以被借鑒於點雲數據的特征學習中。圖卷積 (Graph Convolution Network, GCN) 可分為基於譜的圖卷積(Spectralbased GCN) 和基於空間的圖卷積 (Spatial-based GCN)。

基於譜的圖卷積的基本思路是:依據卷積定理,首先根據圖的傅里葉變換將圖數據從空間域變換到譜域,並在譜域上進行卷積,隨后再通過圖的傅里葉反變換將卷積結果轉換到空間域。

早期的圖卷積大多為基於譜的方法,在文獻 [74] 中,作者使用拉普拉斯矩陣 (Laplacian Matrix) 定義圖的傅里葉變換,並定義了圖數據上的卷積操作,構建了圖卷積網絡。在文獻 [75] 中,作者對 [74] 的工作進行了改進,使用切比雪夫多項式代替先前工作中的傅里葉變換,避免了矩陣的特征值分解,同時使得圖卷積操作的感受野變為近鄰的 k 個節點 (K-localized),參數復雜度也由 𝒪(𝑛) 降低為𝒪(𝑘)。在文獻 [76]中,作者對 [75] 提出的多項式進行了進一步的簡化,僅保留 0 階項和 1 階項。[74] 到 [75, 76] 的發展,也伴隨着圖卷積從基於譜的方法到基於空間的方法的轉變。空間方法的本質簡單可理解為在節點域定義節點間的權重,然后對鄰域進行加權求和。在文獻 [77] 中,作者提出使用注意力機制,定義節點之間的權重。在文獻 [78] 中,作者針對鄰域的采樣和特征匯聚的方式進行了探討,提出針對大規模圖數據的處理方法。圖卷積的理論研究影響着三維點雲的深度學習。在文獻 [79] 中,作者使用基於譜的圖卷積進行三維物體模型的語義分割,其提出譜變換網絡以實現更好的參數共享,同時引入了空洞卷積的概念,增加多尺度信息。在文獻 [80] 中,作者使用圖卷積進行點雲局部特征的提取。基於譜的圖卷積由於需要計算特征分解,而不同點雲數據的特征分解不相同,因此增加了基於譜的圖卷積在點雲上應用的難度。近年來不少學者轉向使用基於空間的圖卷積。在文獻 [81] 中,作者結合邊信息進行圖卷積參數的學習。在文獻 [82] 中,作者使用將鄰接的邊特征送進多層感知機進行訓練。文獻 [83] 借鑒 [77] 的思想應用在點雲的語義分割任務上。

3. 三維場景語義理解方法

本節將介紹基於點雲數據的三維場景語義理解方法。

三維場景的語義理解包含多種任務,不同任務的目標和最終結果也各不相同,其中比較重要的任務包括語義分割、目標檢測和實例分割

 

 圖 5. 三維場景語義理解任務圖示

3.1 語義分割

三維點雲語義分割任務是對每個點進行語義類別的預測,其常用的評價指標有整體精度 (Overall Accuracy, OA)、平均類別精度 (meanAccuracy, mAcc)、平均類別交並比 (mean Intersection over Union,mIoU),其定義為:

 

 其中,𝑝𝑖𝑗表示本屬於第 𝑖類的點被預測為第𝑗類的數目。

語義分割的研究重心之一在於其局部特征的提取以及局部特征和全局特征的融合。在文獻 [46, 51, 52] 中,作者使用三維卷積構建三維全卷積網絡,其結構類似於二維語義分割,其中 [51, 52] 對三維卷積進行了稀疏優化。在文獻 [48] 中,作者提出使用池化進行全局特征的提取,並隨后在 [56] 中提出適用於點雲數據的編碼-解碼結構。在文獻 [60, 61] 中,作者對點雲進行分塊從而提取局部特征,並使用 RNN 進行局部特征的傳遞。文獻 [80, 82, 83] 借鑒圖卷積的思想實現局部點雲特征的提取。

3.2 目標檢測

三維點雲目標檢測任務是對場景中的物體(如人、車等)進行識別,並預測其在空間中的三維邊界框,其常用的評價指標有精確率 (Precision)、召回率 (Recall) 和平均精度 (Average Precison, AP)(此處的“平均精度”和語義分割中的“平均類別精度”不是同一指標,由於翻譯為中文,容易混淆。),其定義為:

 

 其中, TP 為正樣本被正確識別為正樣本的數量, FP 為負樣本被錯誤識別為正樣本的數量, FN 為正樣本被錯誤識別為負樣本的數量。

在不同 IoU 閾值條件下,這三者的值也會對應發生變化。平均精度 (AP) 的值,即為設置不同閾值條件, PrecisionRecall 曲線下包含的積分面積。早期使用二維投影進行三維目標檢測的方法居多,在文獻 [35, 42] 中,作者將單幀 64 線激光雷達數據投影為鳥瞰圖,使用二維卷積神經網絡進行預測。隨着三維方法的不斷發展,二維投影的精度優勢逐漸消失。在文獻 [47] 中,作者結合PointNet 和 3DCNN,先使用 PointNet 進行體素特征編碼,再通過 3DCNN 進行邊界框的回歸。在文獻 [53] 中,作者使用前述稀疏編碼的方式對 [47] 進行了優化。在文獻 [67] 中,作者首先使用圖像得到二邊界框,根據成像模型進行投影得到三維視錐,並使用 PointNet 對視錐內的點雲進行三維邊界框的預測。在文獻 [68]中,作者使用一種自底向上的方式直接生成三維邊界框,並在第二階段對邊界框進行優化改善。

3.3 實例分割

三維點雲實例分割任務某種程度上可以理解為語義分割和目標檢測的結合,該任務不僅需要預測每個點的語義類別,還需要區分其屬於哪一個目標。該任務常用的評價指標與目標檢測類似,為平均精度 (Average Precison, AP)。

不同之處在於,目標檢測判斷預測是否正確的閾值為預測邊界框和真實邊界框的交並比,而實例分割使用的是預測點集與真實點集之間的交並比。在文獻 [70] 中,作者為實例分割定義了基於相似度矩陣的損失函數,對實例特征進行監督學習。文獻 [71, 84] 使用基於目標提名的方式進行實例分割。在文獻 [71] 中,作者使用生成模型預先得到實例的提名點;在 [84] 中,作者將圖像特征融合進 3DCNN 進行目標檢測與實例分割。

4. 三維場景語義理解關鍵技術

使用點雲數據進行三維場景語義理解,其關鍵技術主要分為三個方面:局部特征提取算法、特征監督算法、特征融合算法。

4.1 局部特征提取算法

三維點雲在存儲上是無序數據,因此其局部鄰域不像有序數據如圖像、文本等易於索引。

對點雲局部的有效表示及快速索引,是點雲特征提取的基礎。基於有效的局部表示和快速的局部索引,如何構建局部點雲的相關性與聯系,從局部結構中學習高層的語義特征,對基於點雲數據的各項語義理解任務均是基礎且重要的技術。

4.2 特征監督算法

使用深度學習提取特征的質量,除了和特征提取算法相關,還受特征監督算法的影響。有效的特征監督可以引導特征向正確的方向學習進化,不同任務對於特征監督的要求也各不相同。設計合適的特征監督算法,對於場景的語義理解是非常有價值的。

4.3 特征融合算法

原始點雲數據具有很強的幾何特征,但不具有顏色紋理信息。因此僅依靠三維點雲進行語義理解在一些場景下是比較困難的。利用圖像等其他數據,融合多源數據特征、優勢互補,對三維場景語義理解很有價值,不同數據特征融合的位置、方式、程度對最終語義理解的效果也有非常大的影響。

參考文獻

[1] THOMAS H, DESCHAUD J E, MARCOTEGUI B, et al. SemanticClassification of 3D Point Clouds with Multiscale Spherical Neighborhoods[J].ArXiv preprint arXiv:1808.00495, 2018.

[2] LECUN Y, BENGIO Y, HINTON G. Deep learning[J]. Nature,2015, 521(7553): 436-444.

[3] SU H, MAJI S, KALOGERAKIS E, et al. Multi-viewconvolutional neural networks for 3d shape recognition[C]//Proceedings of theIEEE international conference on computer vision. Santiago, Chile: IEEE, 2015:945-953.

[4] BOULCH A, LE SAUX B, AUDEBERT N. Unstructured Point CloudSemantic Labeling Using Deep Segmentation Networks.[J]. 3DOR, 2017, 2: 7.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM