利滿雯,趙艷明,李紹彬,馮燕
(中國傳媒大學 信息與通信工程學院,北京 100024)
隨著三維傳感技術如LiDAR 等高精度傳感器的快速發展,物體的三維數據越來越容易獲取且應用廣泛。其中,點云作為一種常見的三維模型數據,具有非常強的空間表達能力,不僅能夠完美保留原始三維空間的幾何結構,而且能夠很好地刻畫物體表面特征以及其他深度信息,比如坐標、向量等。但是,點云的空間分布不均及數據雜亂無序等特點給點云數據處理和應用帶來了一定的挑戰。
點云作為最能表現物體三維特征的數據,在自動駕駛、三維重建、汽車焊裝、礦區沉陷監測、建筑改造等方面得到廣泛應用。點云研究前景巨大,點云分類是其中的研究熱點之一。點云分類是指將點云劃分到不同屬性的點云集合中,并為其分配語義標簽。點云分類對點云分割及配準等有極大的幫助。
目前,點云分類主要采用先對點云數據進行特征提取,再利用特征進行點云分類的基本思路。點云分類方法分為兩大類,即傳統的基于人工標記的點云提取特征描述符和基于深度學習的點云分類方法。
傳統方法實現點云分類主要是基于人工標記點云提取特征描述子,隨后選擇合適的分類器給點云分配標簽,其中常見的分類器有支持向量機、隨機森林、AdaBoost 以及馬爾可夫隨機場等。傳統方法由于沒有考慮到點云之間的相關性,或者沒有聯系上下文信息而導致分類效率不高,且還會引入噪聲等干擾,從而降低點云分類的準確率。2012 年以來,深度學習在計算機視覺領域得到了廣泛的關注。近幾年,深度學習也被應用到點云處理任務,使點云分類的準確率和魯棒性都得到了很大的提升。2017 年,斯坦福大學的QI 等人提出了PointNet網絡模型[1],通過仔細研究點云的結構和特點,提出了基于深度學習實現的面向原始點云的端到端網絡。PointNet 不僅在點云分類方面得到應用,在點云分割等領域也實現了很大突破。后續很多團隊在PointNet 基礎上進行了各種嘗試,使點云分類的準確率得到進一步的提升。
目前已有一些對點云研究方向進行總結的綜述性文章[2-5]。本文在前人工作的基礎上進行完善和總結,既分析了傳統的點云分類方法,也梳理了現有的基于深度學習實現點云分類的網絡,對經典的、前沿的點云分類方法進行了闡述,對點云分類技術未來的發展做出了展望。
點云數據具有非結構化、置換不變性、無序性以及相關性等特征。ModelNet 是一個混合模型,總共有662 種目標分類,127 915 個CAD,其中包含了ModelNet10,ModelNet40 以及Aligned40 三個子集。最常用的數據集是ModelNet40,它是一個擁有40 個類別的CAD 點云模型。ScanObjectNN 這個模型包含用CAD 數據創建的室內場景。Sydney Urban Objects 為悉尼城市目標數據集,主要是通過掃描常見的城市道路對象(包括車輛、行人、樹木等)獲得的模型。
為了評價各類方法的效果,并使不同研究者之間能夠進行性能比較,需要有統一的評價標準。對于點云分類,一般采用的指標有準確率、召回率、精確率、基于召回率與精確率的調和平均等。本文選取總體精度(Overall Accuracy)和平均精度(Mean Accuracy)來分析對比不同的點云分類方法。
傳統的點云分類基本思路主要分兩步,首先人工對點云進行標記,獲得點云特征描述符,之后將特征描述符輸入分類器進行分類,實現效果主要取決于分類器算法的性能。常見的分類器有支持向量機、隨機森林、AdaBoost 以及馬爾可夫隨機場等。
楊娜等人[6]基于支持向量機提出了一種面向對象的城區機載LiDAR 點云分類算法,并對初始分類結果進行三維拓撲分析優化。
考慮到點云分類算法在提取依賴鄰域結構的特征參數時,面臨鄰域尺度選擇難、數據維度高、計算復雜等問題,段廣明等人[7]提出了基于隨機森林的機載LiDAR 點云分類算法。隨機森林將每個輸入樣本都輸入到決策樹進行分類,集成所有分類投票結果,將投票次數最多的類別指定為最終輸出。
周夢蝶等人[8]提出的基于AdaBoost 實現的多分類模型,可以自動為點云分配權重,適用于多類別點云分類。AdaBoost 利用迭代算法,對同一個訓練集訓練不同的分類器,然后將這些分類器集合起來從而構成一個更強的分類器,分類精度較高但訓練耗時。
傳統的點云分類方法需要利用各種機器學習的分類器對人工標記點云提取的特征描述符進行分類,通常會因無法充分聯系上下文信息而忽略點云數據之間的相關性,分類過程中容易產生噪聲,模型泛化能力較差,在真實場景中的應用受到限制,點云分類效率和精度均不高。
近幾年,越來越多的研究人員將深度學習應用于點云分類,分類效率和精度較傳統的點云分類算法有了很大提升。基于深度學習實現點云分類的方法可分成兩大類,即基于結構化點云的分類方法和基于原始點云的分類方法。
由于點云數據是一種不規則的數據,在空間上和數量上可以任意分布,之前的研究者會先把點云轉換成規則數據再進行處理任務[9-20],比如將點云轉換成柵格使其均勻分布,然后用3D-CNN 來處理柵格數據。對點云做結構化處理的缺點是計算復雜度高,且會帶來量化噪聲,從而導致點云分類準確率和效率不高。
由于原始點云具有無序性、稀疏性以及置換不變性等特點,直接對原始點云處理,可以降低計算復雜度,同時充分考慮點云數據的特性。本文將對基于原始點云的分類方法進行詳細綜述,將從以下4 個角度對該類方法進行分析:基于感知機和特征池化的點云分類方法,基于卷積神經網絡的點云分類方法,基于圖卷積的點云分類方法以及基于注意力機制的點云分類方法。
2.2.1 基于感知機和特征池化的點云分類方法
QI 等人[1]提出了PointNet 網絡,這是第一個直接處理無序點云數據的深度神經網絡。PointNet利用多層感知機將點云的坐標空間升到高維特征空間,再根據點云的無序性和置換不變性,利用全局池化將信息聚合,獲得具有代表性的特征向量。PointNet 過分關注點云的全局特征,獲取局部特征能力較差。QI 等人[21]提出了PointNet++,這是一個分層網絡結構。PointNet++的抽象層由采樣、分組以及PointNet 嵌套而成。PointNet++ 可以更好地獲取點云的局部特征。后續的研究人員基于PointNet++提出了多種點云分類網絡,比如Momenet[22]、SO-Net[23]以 及PointWeb[24]等。受2D形狀描述符SIFT 的啟發,JIANG 等人[25]設計了一個名為PointSIFT 的模塊。PointSIFT 可以對不同方向的信息進行編碼并適應形狀尺度。PointSIFT 可以集成到基于PointNet 的架構中,從而提高網絡分類性能。
通過3D 傳感器獲取原始點云數據,不可避免地會產生異常值或者噪聲,這會在一定程度上影響模型分類效果。針對這個問題,YAN 等人[26]提出了PointASNL,它可以有效處理帶有噪聲的點云。PointASNL 的關鍵組件采用了自適應(AS)模塊,通過對來自FPS 的初始采樣點重新加權,從而實現了自適應調整。PointASNL 在所有數據集上實現了分類和分割任務的魯棒性。
2020 年,WANG 等 人[27]提 出 了SoftpoolNet。SoftpoolNet 可以基于激活提取特征。與PointNet 相似的是,SoftpoolNet 也是利用感知機來獲得特征矩陣。不同的是,SoftpoolNet 利用軟池化來聚合特征,最終實現了較高的準確率。
隨著研究的深入和點云數據規模增長,點云分類任務的計算需求也在增長,一種可能的解決方案是首先對點云進行采樣。據此,LANG I 等人[28]提出了一種新的點云采樣方法,即SampleNet。SampleNet 采樣方法是可微的,采樣點近似為主要輸入點云的混合。SampleNet與PointNet等網絡結合,可以提升分類性能。
2.2.2 基于卷積神經網絡的點云分類方法
卷積神經網絡(Convolutional Neural Networks,CNN)是目前流行的深度學習網絡之一,在檢測、分割及物體識別等領域得到廣泛應用。目前,卷積神經網絡已經被應用于點云分類任務處理,并且取得了不錯的效果。KCNet[29]是一種類似CNN 的方法,可以從點云中提取局部信息。KCNet 可以利用卷積衡量輸入點云數據之間的相似性,使提取的局部點云特征更加具有代表性,從而提高點云分類準確率。傳統的CNN 雖然可以利用空間局部相關性,但將其直接應用于不規則點云處理,不但會丟失點云形狀信息,還會受到點云順序變化的影響。為了解決這個問題,LI 等人[30]提出了X-transformation 并且結合傳統的卷積運算,實現了PointCNN。PointCNN中的X-Conv 結構在提取局部特征時比PointNet使用的最大池化表現更好。XU 等人[31]提出了SpiderCNN。SpiderCNN 由稱為SpiderConv 的單元組成,可以有效提取點云的幾何特征。SpiderCNN繼承了經典CNN 的多尺度層次結構,同時濾波器被設計為捕獲局部信息的簡單階躍函數和泰勒多項式的乘積。SpiderCNN 在標準測試集中的測試達到了92.4%的準確率。TATARCHENKO M 等人[32]提出了一種基于切線的卷積方法,即TangentConv。TangentConv 直接對點云表面幾何進行操作,可以應用于具有挑戰性的室內和室外3D 環境的真實世界數據集。蒙特卡洛卷積(MCCNN)[33]的亮點在于可以對抗點云非均勻的分布特性,將密度引入到卷積計算中,實現性能提升。
PointNet++[21]中有multiscale 的操作,對于信息量不多的局部點云會造成信息冗余,另外計算復雜度比較高。KOMARIICHEV A 等人[34]提出了環形卷積(A-CNN)。這種新的卷積算子可以通過在計算中指定環形結構和方向,更好地捕獲每個點的局部幾何特征。Geo-CNN[35]為了更好地學習局部幾何結構,以某個中心點作坐標系,把鄰域點投影到坐標系上以向量表示,在坐標系上利用權重進行學習。KPConv[36]的卷積權重位于歐幾里得空間中,比固定網格卷積具有更大的靈活性,對于不同密度點云的分類工作很有效果。RS-CNN[37]將規則網絡CNN 擴展到不規則網絡中,以進行點云分類任務。RS-CNN 的關鍵在于從點之間的幾何拓撲約束關系學習,可以用于開發分層架構,實現點云的上下文形狀感知。
FPConv[38]通過自動學習權重實現局部展平,以將周圍的點投影到2D 網格上,再進行有效的特征學習。FPConv 可以輕松集成到各種網絡架構中。PointConv[39]將卷積核視為由權重和密度函數組成的3D 點云局部坐標的非線性函數。PointConv中的權重函數通過多層感知機網絡學習,密度函數通過核密度估計來學習。建立在PointConv 上的卷積神經網絡在點云分類工作中達到了先進水平。ConvPoint[40]將CNN 泛化,以便通過連續卷積代替離散卷積來處理點云。ConvPoint 不僅靈活而且在分類、分割工作中都實現了較好的效果。
于2021 年提出的PAConv[41],即位置自適應卷積,是一種用于3D 點云處理的通用卷積操作。PAConv 的關鍵是通過動態組裝存儲在weight bank中的基本權重矩陣來構造卷積核。這些權重矩陣的系數通過ScoreNet 從點位置進行自適應學習得到。將PAConv 集成到PointNet 網絡中,可以實現較好的點云分類效果。
2.2.3 基于圖卷積的點云分類方法
近年來,深度學習在圖神經網絡(Graph Neural Network,GNN)領域得到廣泛應用。基于深度學習實現的圖神經網絡可以處理非結構化數據,在點云分類、點云分割方面取得了突破。SCHLICHTKRULL M 等人[42]提出了圖卷積神經網絡(Graph Convolution Network,GCN),通過提取圖數據特征進行分類。現有的深度學習方法通常忽略了整個文本結構的相關性,為解決這個問題,CHEN 等人[43]提出了半監督的循環圖卷積網絡(Rerrent Graph Convolution Network,RGCN)。 基于GCN 的半監督圖分析方法已取得成功,ZHANG等人[44]將基于鄰域假設的局部分析方法應用于GCN,提出了局部密度定義,稱為LDGCN。LDGCN算法以平衡法和不平衡法處理輸入數據,優化后的輸入數據包含詳細的局部點云信息,在點云分類任務可以取得更好的性能。為了消耗更少的內存以及更好地獲取點云局部特征,LIANG 等人[45]提出了分層深度圖卷積網絡(Hierarchical Depthwise Graph Convolution Network,HDGCN)。HDGCN 由 一 系列DGConv 塊使用分層結構構建,DGConv 塊可以實現逐點卷積提取局部特征,整個網絡可以提取點云的局部和全局特征。
大多數網絡依靠旋轉進行點云數據增強,但未考慮到點云的旋轉不變性。為了解決這個問題,CHEN 等人[46]提出了深度層次聚類網絡ClusterNet。ClusterNet 采用層次聚類來探索和利用嵌入在層次結構樹中的點云幾何結構,從根本上提高了旋轉變換的魯棒性。
Grid-GCN[47]可用于快速和可擴展的點云學習,包含感知網格查詢(Coverage-Aware Grid Query,CAGQ)。CAGQ 提高了空間覆蓋率,降低了理論實踐復雜度,與FPS 和Ball Query 相比實現了高達50 倍的加速。
為了實現3D 場景下對具有旋轉不變性的點云進行特征提取,LEI 等人[48]提出了球形卷積操作,用于點云的有效圖卷積。為了提高計算效率,使用快速傅里葉變換(Fast Fourier Transform,FFT)來計算球形卷積。球形卷積可以保持平移不變性和旋轉不變性,有利于保證局部結構之間的權重共享和幾何特征學習。但同時由于球形卷積使用了FFT,在轉換過程中會丟失一部分信息。
2021 年,ZHOU 等人[49]提出了位置自適應圖卷積AdaptConv。AdaptConv 可以根據動態學習到的特征對點云特征進行自適應調整,提高了圖卷積的靈活性,可以有效地捕獲來自不同語義部分的點云的各種關系。
2.2.4 基于注意力機制的點云分類方法
自注意力機制網絡廣泛應用于自然語言處理,在圖像分類等分析任務中也得到了發展。注意力機制的原理是使系統關注主要信息,忽略次要信息。近年來,研究人員將注意力機制應用于點云分析任務,通過注意力機制來增強點云之間的聯系,從而更好地進行點云分析任務。
GAPNet[50]在堆疊的多層感知機層中嵌入圖注意力機制,來學習點云的局部幾何特征。GACNet[51]是一種能在點云上端到端地進行分割和分類的深度網絡。GACNet 通過建立每個點與周圍點的圖結構,并引入注意力機制計算中心點與每一個鄰接點的邊緣權重,使網絡在點云分類任務中取得更好的效果。
目前,大部分網絡沒有充分考慮點云的空間分布,限制了感知細粒度的能力。為了解決這個問題,CHEN 等人[52]提出了LSANet。LSANet 可以根據局部區域的空間關系生成空間分布權重(Spatial Distribution Weight,SDW),以進行空間獨立操作。XUE 等人[53]提出了DANet,利用發散激活的方法,從差異角度進行點云分類。在DANet 中,XUE 等人還設計了分層發散激活(HAD)和差異發散激活(DDA),以端到端的方式融合有區別的特征,從而提高點云分類性能。
YUAN 等 人[54]提 出 了 迭 代transformer 網 絡(IT-Net)。IT-Net 可以通過一系列迭代的方式預測3D 剛性變換,來規范部分點云的姿態。IT-Net在點云分類任務上的性能優于3D transformer。
CUEVAS V H 等人[55]提出了創新的雙頭注意力層。這個注意力層可以結合點云表面的和潛在的特征,將3D 場景分割成有意義的子集。其中,每個頭部注意力層使用點云幾何或潛在特征來結合局部或者全局信息,并使用這些信息來更好地學習點云局部關系。
CpT[56]是對現有基于注意力機制對點云進行處理的卷積神經網絡的改進transformer。CpT 通過卷積投影,創建基于注意力機制的點集embedding,來實現局部點集鄰域的動態處理。點集embedding 對輸入點云的排列具有魯棒性。
YU 等人[57]提出的Point-BERT 是一種transformer的新范式,將雙向編碼器表征量(Bidirectional Encoder Representations from Transformers,BERT)的概念推廣到3D 點云領域。受BERT 的啟發,YU 等人設計了一個掩蔽點建模(Masking Point Modeling,MPM)任務來訓練點云transformer。MPM 首先將一個點云劃分為幾個局部點云patch,再隨機屏蔽一些輸入點云patch,并將它們輸入到主干transformer 中。BERT 式預訓練策略可以提高標準點云transformer的性能。
本節匯總了基于深度學習的點云分類網絡在ModelNet40 數據集上的性能,如表1 所示。在常見的三維數據集中,ModelNet40 應用最廣泛。表1 還總結了部分網絡在ScanObjectNN 這個數據集上的性能。
從表1 分析可知,部分網絡在ModelNet40 數據集上的性能要優于在ScanObjectNN數據集上的性能。ScanObjectNN 數據集是掃描真實室內場景所獲得的點云數據集,存在噪聲等干擾,會影響分類精度。

表1 基于深度學習實現的點云分類網絡性能對比

續表1
總體來看,直接對原始點云進行處理的分類網絡性能要優于對結構化點云進行處理的分類網絡。點云是無序的非結構化數據,將點云結構化后再進行特征提取,會造成信息的丟失,從而導致點云分類性能下降。而對原始點云數據進行處理,可以最大程度地保留點云的信息。對表1 分析可知,基于卷積神經網絡的點云分類方法和基于圖卷積的點云分類方法雖然計算復雜度較高、存儲開銷較大,但具有較高的點云分類準確率。
本文將點云分類方法分成傳統的基于人工標記點云提取特征描述符的方法和基于深度學習的點云分類方法兩類。近幾年,深度學習在點云處理中得到廣泛應用。基于深度學習的點云分類方法根據處理點云的數據格式可以分為兩類,即處理結構化點云數據的方法和處理原始點云數據的方法。處理結構化點云數據在點云體素化過程中會損失大量的深度信息。直接處理原始的點云數據,在卷積過程中雖然需要較高的成本,但可以有效提升分類精度。
大部分基于深度學習的點云分類方法在ModelNet40 數據集上表現優越,但在ScanObjectNN數據集和Sydney urban Object 數據集上,分類準確率不高。因為ModelNet40 是一種理想的數據集,而ScanObjectNN 和Sydney urban Object 是通過掃描真實場景所獲得的數據集,點云數據存在噪聲干擾。在未來的點云分類任務研究中,研究人員要考慮在真實場景中網絡的分類效果,提高含噪聲點云分類網絡的性能。