由于增強現實/虛擬現實的發(fā)展及其在計算機視覺、自動駕駛和機器人領域的廣泛應用,點云學習最近引起了人們的關注。 深度學習已成功用于解決 2D 視覺問題,然而,由于其處理面臨獨特的挑戰(zhàn),深度學習技術在點云上的使用仍處于起步階段。
推薦:用 NSDT編輯器 快速搭建可編程3D場景
深度學習的早期方法通過將點云預處理為結構化網格格式來克服這一挑戰(zhàn),但代價是計算成本增加或深度信息丟失。 3D點云分割是將點云分類為不同同質區(qū)域的過程,使得同一孤立且有意義的區(qū)域中的點具有相似的屬性。 由于高冗余、采樣密度不均勻以及點云數據缺乏明確的結構,3D 分割是一項具有挑戰(zhàn)性的任務。
將點云分割為前景和背景是處理 3D 點云的基本步驟。 人們可以精確地確定 3D 數據中對象的形狀、大小和其他屬性。 然而,分割 3D 點云中的對象并不是一項簡單的任務。 點云數據通常是嘈雜、稀疏且無組織的。 除此之外,點的采樣密度不均勻,表面形狀可以是任意的,數據沒有統(tǒng)計分布模式。 此外,由于 3D 傳感器的限制,背景與前景糾纏在一起。 此外,很難擁有計算效率高且內存占用低的深度學習模型來執(zhí)行分割。
分割過程有助于分析各種應用中的場景,例如定位和識別對象、分類和特征提取。 3D點云分割可以部署在場景級別(語義分割)、對象級別(實例分割)和零件級別(零件分割)。 語義分割是一種檢測每個像素所屬的對象類別并將同一類的多個對象視為單個實體的技術。
給定一個點云,語義分割的目標是根據點的語義將其分成幾個子集。 當前的文章重點研究基于點的方法下最先進的語義分割技術。 各種基于點的 3D 語義分割技術的分類可以由 4 種范式給出,即 (a) 逐點 MLP、(b) 點卷積、? 基于 RNN 和 (d) 基于圖。
在利用本文介紹的AI模型訓練或推理點云數據之前,最好先看一下點云數據。你可以使用 NSDT 3DConvert 這個在線工具,它支持PCD、XYZ、PLY等多種格式的3D點云的在線預覽和轉換:
https://3dconvert.nsdt.cloud
1、PointNet
卷積架構需要高度規(guī)則的輸入數據格式,以便執(zhí)行權重共享和其他內核優(yōu)化。 由于點云和網格不是常規(guī)格式,因此大多數方法通常將數據轉換為常規(guī) 3D 體素網格或圖像集合,然后再將其輸入深度網絡架構。 然而,這種轉換使得結果數據變得不必要地龐大,并且還引入了可能掩蓋數據自然不變性的量化偽影。
PointNet 直接利用考慮輸入排列不變性的點云。 PointNet 架構包含三個關鍵模塊
- 最大池化層作為對稱函數來聚合來自所有點的信息
- 局部和全局信息組合結構以及兩個對齊輸入點
- 點特征的聯(lián)合對齊網絡
為了找到無序輸入的對稱函數,PointNet通過在變換元素上應用對稱函數來近似在點集上定義的通用函數。 PointNet 通過多層感知器網絡來近似函數,并通過單變量函數和最大池函數的組合來變換函數。 函數的輸出形成一個向量,該向量被視為輸入集的全局簽名,并通過將全局特征與每個點特征連接來饋送到每個點特征。 然后,基于組合點特征提取新的每點特征,因為每點將了解局部信息和全局信息。
構成第三個模塊的聯(lián)合對齊網絡的靈感來自于這樣一個事實:如果點云經歷幾何變換,則點云的語義標簽必須保持不變。 PointNet 通過 T-net 架構預測仿射變換矩陣,并將該變換直接應用于輸入點的坐標。 T-net 由點獨立特征提取、最大池化和全連接層組成。 特征空間中的變換矩陣具有更高的維數。 因此,為了優(yōu)化,將約束特征變換矩陣接近正交矩陣的正則化項添加到softmax訓練損失中。 圖中給出了PointNet的詳細架構和語義分割的輸出。
PointNet架構和語義分割的輸出
2、PointNet++
PointNet 不會捕獲由存在點的度量空間引起的局部結構,從而限制了其識別細粒度模式的能力以及對復雜場景的泛化能力。
PointNet++ 引入了一種分層神經網絡,它將 PointNet 遞歸地應用于輸入點集的嵌套分區(qū)。 通過利用度量空間距離,PointNet++ 能夠學習上下文尺度不斷增加的局部特征。
PointNet++ 通過底層空間的距離度量將一組點劃分為重疊的局部區(qū)域。 與 CNN 類似,它從小鄰域中提取捕獲精細幾何結構的局部特征,這些局部特征被進一步分組為更大的單元并進行處理以產生更高級別的特征。 重復這個過程直到獲得整個點集的特征。
PointNet++的設計解決了兩個問題:如何生成點集的劃分,以及如何通過局部特征學習器抽象點集或局部特征。 PointNet 使用單個最大池操作來聚合整個點集,而 PointNet++ 構建點的分層分組,并沿著層次結構逐步抽象更大的局部區(qū)域。 這種層次結構由多個抽象級別組成,在每個級別上,都會對一組點進行處理和抽象,以生成一個包含更少元素的新集合。
抽象層由三層組成:采樣層、分組層和PointNet層。 采樣層從輸入點中選擇一組點,這定義了局部區(qū)域的質心。 然后,分組層通過查找質心周圍的“相鄰”點來構造局部區(qū)域集。 PointNet 層使用迷你 PointNet 將局部區(qū)域模式編碼為特征向量。 圖中展示了 PointNet++ 所使用的架構細節(jié)及其與 PointNet 的比較。
PointNet++ 語義分割的架構和輸出
3、RandLA-Net
RandLA-Net 引入了一種輕量級神經架構,可以處理大規(guī)模點云,速度比其他架構快 200 倍,因為大多數現有架構都使用昂貴的采樣技術以及計算量大的后處理和預處理方法。
PointNet 計算效率高,但無法捕獲每個點的上下文信息。 RandLA-Net 單次處理大規(guī)模 3D 點云,無需任何預處理/后處理步驟,例如體素化、塊分區(qū)或圖形構建。 RandLA-Net 僅依賴于網絡內的隨機采樣,因此需要更少的內存和計算。 局部特征聚合器通過考慮局部空間關系和點特征來獲得逐漸變大的感受野。 整個網絡包含共享的多層感知器,不依賴于圖構建和核化,因此是高效的。 不同的采樣方法(例如最遠點采樣、逆密度重要性采樣、基于生成器的采樣)的計算效率非常高。 然而,它們可能會導致重要功能的丟失。 因此,RandLA-Net提出了本地聚合模塊。 該模塊并行應用于每個 3D 點,由三個神經單元組成。
- LocSE:在給定點云的該模塊中,所有特征都明確用于編碼三維坐標信息。 它使用 K 最近鄰算法來收集鄰近點,然后執(zhí)行相對點位置編碼的步驟,這有助于網絡學習局部特征。 最后,在點特征增強中,將編碼后的相對點位置與對應的點特征連接起來,得到增強的特征向量。 該向量對局部幾何結構進行編碼。
- Attentive Pooling:注意力池。對于給定的一組局部特征,設計一個共享函數來學習獨特的注意力分數并聚合鄰域點特征集中的使用信息。 共享的多層感知器后面是一個 softmax 函數。 然后將這些學習到的注意力分數相加。
- Dilated Residual Block:由于隨機采樣不斷對輸入點云進行下采樣,因此需要增加每個點的感受野。 使用 Resnet 架構和跳過連接,將多個 LocSE 和 Attentive Pooling Block 連接起來形成 Dilated Residual Block。 該塊負責擴大感受野并擴大有效鄰域。 圖 4 給出了 RandLA-Net 與 PointNet++ 的輸出比較。
RandLA-NET 語義分割輸出與 PointNet++ 的比較
4、PointCNN
PointCNN 能夠利用網格中密集表示的數據的空間局部相關性,并提供從點云進行特征學習的框架。 PointCNN 從輸入點學習 χ 變換,以促進與點相關的輸入特征的加權以及將點排列成規(guī)范順序。 PointCNN 的架構包含兩種設計:
- 分層卷積:在規(guī)則網格中,卷積被遞歸地應用于局部網格塊,這通常會降低網格分辨率,同時增加通道數。 類似地,在點云中,χ-Conv 遞歸地應用于“投影”或“聚合”,將來自鄰域的信息分解為較少的代表點,但每個點都具有更豐富的信息。
- χ-Conv算子:χ-Conv算子在局部區(qū)域進行運算,將關聯(lián)點和鄰域點作為輸入并與它們進行卷積。 將相鄰點轉換為代表點的局部坐標系,然后將這些局部坐標單獨提升并與相關特征組合。
具有兩個 χ-Conv 層的 PointCNN 將輸入點轉換為更少的特征表示,但每個特征表示都具有更豐富的特征。 然而,頂層 χ-Conv 層的訓練樣本數量迅速下降,導致訓練效率低下。 為了解決這個問題,PointCNN 使用更密集的連接,其中更多的代表點保留在 χ-Conv 層中。 此外,為了在保持感受野增長率的同時保持網絡的深度,采用了擴張卷積。 對于分割任務,需要高分辨率逐點輸出,因此使用Conv-DeConv架構并遵循U-Net設計。
5、Recurrent Slice Networks
大多數其他語義分割網絡不會對點云之間所需的依賴關系進行建模。 RSNet 的關鍵組件是輕量級本地依賴模塊。 本地依賴模塊非常高效,并且切片池化/反池化層的時間復雜度為 O(n) w.r.t(輸入點數量)和 O(1) w.r.t(局部上下文分辨率)。
RSNet 將原始點云作為輸入并輸出每個點云的語義標簽。 給定一組無序點和一個候選標簽集,RSNet 的任務是為每個點分配一個語義標簽。 輸入和輸出特征提取塊用于獨立的特征生成。 中間是本地依賴模塊。 輸入特征塊消耗輸入點并產生特征,輸出特征塊將處理后的特征作為輸入并為每個點生成最終預測。 兩個塊都使用一系列多個 1 x 1 卷積層來為每個點生成獨立的特征表示。
局部依賴模塊是新穎的切片池化層、雙向遞歸神經網絡(RNN)層和切片反池化層的組合。 通過首先將無序點投影為有序特征,然后應用傳統(tǒng)的端到端學習算法來解決局部上下文問題。 該投影是通過新穎的切片池層實現的。 在這一層中,輸入是無序點的特征,輸出是聚合特征的有序序列。
接下來,RNN 應用于此序列中的模型依賴關系。 最后,切片反池化層將序列中的特征分配回點。 該圖給出了RSNets的詳細架構。 RSNet 在三個廣泛使用的基準測試中被證明超越了以前最先進的方法,同時需要更少的推理時間和內存。
RSNet架構
6、DGCNN
DGCNN 是一種 EdgeConv,適用于點云上基于 CNN 的高級任務,包括分類和分割。
EdgeConv 作用于網絡每一層動態(tài)計算的圖。 它捕獲局部幾何結構,同時保持排列不變性。 EdgeConv 不是直接從嵌入生成點特征,而是生成描述點與其鄰居之間關系的邊緣特征。 EdgeConv 被設計為對鄰居的順序不變,因此是排列不變的。 由于 EdgeConv 構造局部圖并學習邊緣的嵌入,因此該模型能夠對歐幾里得空間和語義空間中的點進行分組。
DGCNN 不像 PointNet 那樣處理單個點,而是通過構建局部鄰域圖并在連接相鄰點對的邊緣上應用類似卷積的操作來利用局部幾何結構。 邊緣卷積(EdgeConv)具有介于平移不變性和非局部性之間的屬性。
與圖 CNN 不同,DGCNN 的圖不是固定的,而是在網絡的每一層之后動態(tài)更新。 也就是說,一個點的 k 個近鄰集在網絡的層與層之間發(fā)生變化,并且是根據嵌入序列計算出來的。 DGCNN 可以執(zhí)行分類和分割任務。 分類模型以 n 個點作為輸入,為 EdgeConv 層的每個點計算大小為 k 的邊緣特征集,并聚合每個集中的特征以計算相應點的 EdgeConv 響應。
最后一個 EdgeConv 層的輸出特征被全局聚合以形成 1D 全局描述符,用于生成 cc 類的分類分數。 分割模型通過連接每個點的一維全局描述符和所有 EdgeConv 輸出(用作局部描述符)來擴展分類模型。 它輸出 p 個語義標簽的每點分類分數。 該網絡包含兩個塊:
- 點云變換塊:該塊旨在通過應用估計的 3 × 3 矩陣將輸入點集與規(guī)范空間對齊。 為了估計 3 × 3 矩陣,使用連接每個點的坐標及其 k 個相鄰點之間的坐標差的張量。
- EdgeConv塊:該塊將形狀為n×f的張量作為輸入,通過應用具有層神經元數量的多層感知器(MLP)來計算每個點的邊緣特征,并生成形狀為n×an的張量 在相鄰邊緣特征之間進行池化之后。 DGCNN 架構可以輕松地按原樣合并到現有的管道中,用于基于點云的圖形、學習和視覺。
DGCNN架構
7、總結和定量比較
下表展示了對 3 個公開數據集 S3DIS、Semantic3D、ScanNet(v2) 和 Sem 的結果的定量分析。 KITTI使用評價指標OA、mIOU。文章來源:http://www.zghlxwxcb.cn/news/detail-854126.html
原文鏈接:3D點云語義分割綜述 — BimAnt文章來源地址http://www.zghlxwxcb.cn/news/detail-854126.html
到了這里,關于6種最常用的3D點云語義分割AI模型對比的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!