CVPR2020:Grid-GCN用於快速和可擴展的點雲學習

CVPR2020:Grid-GCN用於快速和可擴展的點雲學習

Grid-GCN for Fast and Scalable Point Cloud Learning

論文地址:

https://openaccess.thecvf.com/content_CVPR_2020/html/Xu_Grid-GCN_for_Fast_and_Scalable_Point_Cloud_Learning_CVPR_2020_paper.html

代碼地址:https://github.com/xharlie/Grid-GCN

摘要

由於點雲數據的稀疏性和不規則性,直接消耗點的方法已經成爲一種流行的方法。在所有基於點的模型中,圖卷積網絡(GCN)充分保留了數據粒度,充分利用了點之間的相互關係,使得性能顯著提高。然而,基於點的網絡在數據結構(如最遠點採樣(FPS)和鄰居點查詢)上花費了大量的時間,這限制了速度和可擴展性。本文提出了一種快速、可擴展的點雲學習方法gridgcn。gridgcn採用了一種新的數據結構策略:覆蓋感知網格查詢(CAGQ)。通過利用網格空間的效率,CAGQ提高了空間覆蓋率,同時降低了理論時間複雜度。與最遠點採樣(FPS)和球查詢等常用的採樣方法相比,CAGQ的速度提高了50倍。通過網格上下文聚合(GCA)模塊,gridgcn在主要點雲分類和分割基準點上實現了最先進的性能,運行速度比以前的研究快得多。值得注意的是,網格GCN在ScanNet上使用81920個點作爲輸入,其推理速度達到50FPS。

1.介紹

點雲數據在自動駕駛、機器人和無人駕駛飛行器等應用程序中非常流行。目前,激光雷達傳感器每秒可以產生數百萬個點,提供密集的實時世界表示。點雲數據處理採用了多種方法。體積模型是將點雲轉換爲空間量化體素網格並使用體積卷積在網格空間中執行計算的模型家族[28,45,28]。使用網格作爲數據結構方法,體積法將點與網格中的位置關聯起來,三維卷積核從相鄰體素收集信息。雖然網格數據結構是有效的,但需要高體素分辨率來保持數據位置的粒度。由於計算和內存使用量隨着體素分辨率的增加而呈立方形增長,處理大型點雲的成本很高。此外,由於大多數點雲大約90%的體素是空的[51],不處理任何信息可能會消耗大量的計算能力。另一類用於點雲數據處理的模型是基於點的模型。與體積模型相比,基於點的模型能夠有效地進行計算,但卻存在數據結構不完善的問題。例如,PointNet[29]直接消耗點雲而不進行量化,並在網絡的最後階段聚集信息,因此精確的數據位置是完整的,但是計算成本隨着點數的增加而線性增長。後來的研究[30,47,41,37,46]在每一層應用一個下采樣策略,將信息聚集到點羣中心,從而逐層提取較少的代表性點(圖1(a))。最近,圖卷積網絡(GCN)[32,39,21,49]被提出爲網絡層中的每個點組建立一個局部圖,這可以看作是PointNet++體系結構的擴展[30]。然而,這種架構帶來了很高的數據結構成本(例如FPS和k-NN)。劉等[27]表明,三種流行的基於點的模型[23,47,41]的數據結構成本高達總計算成本的88%。在本文中,還通過展示數據結構開銷在可伸縮性方面的趨勢來研究這個問題。
在這裏插入圖片描述
本文介紹了網格GCN,融合了體積模型和基於點的模型的優點,實現了高效的數據結構和高效的計算。如圖1所示,模型由幾個GridConv層組成,用於處理點數據。每一層包括兩個階段:一個是對代表中心進行採樣並查詢相鄰點的數據結構階段;一個是在每個點組上建立局部圖並將信息聚合到中心的卷積階段。爲了實現高效的數據結構,設計了覆蓋感知網格查詢(CAGQ)模塊,該模塊1)加速中心採樣和鄰居查詢,2)爲學習過程提供更完整的點雲覆蓋。數據結構效率通過體素化實現,計算效率僅通過對佔用區域進行計算獲得。將在第4節展示CAGQ出色的速度和空間覆蓋率。爲了利用點關係,還描述了一個新的圖卷積模塊,稱爲網格上下文聚合(GCA)。該模塊執行網格上下文池以提取網格鄰域的上下文特徵,從而在不增加額外開銷的情況下有利於邊緣關係計算。在兩個任務上演示了網格GCN模型:點雲分類和分割。具體而言,在ModelNet40和ModelNet10上執行分類任務[43],達到了最先進的整體準確率93.1%(無投票),同時平均比其模型快5倍。還對ScanNet[8]和S3DIS[1]數據集進行了分割,平均速度比其模型快10倍。值得注意的是,模型通過在20ms內處理一個場景中的81920個點,展示了實時大規模點學習能力。

2.相關工作

基於體素的三維學習方法爲了擴展卷積神經網絡模型[12,13]在二維圖像上的成功,Voxnet及其變體[28,43,38,4,6]開始將點雲或深度圖傳輸到佔用網格並應用體積卷積。爲了解決立體增加的內存使用問題,OctNet[31]爲佔用的體素構造了樹結構,以避免在空白空間進行計算。雖然在數據結構方面很有效,但體積法的缺點是計算效率低和數據粒度損失。基於點的點雲學習方法是由[29,30]首次提出的,通過使用池來聚集點特徵來追求置換不變性。爲了更好地捕捉局部特徵,提出了核相關[2,42]和擴展卷積[36]等方法。爲了解決排序的模糊性,PointCNN[23]預測局部點的順序,RSNet[14]從不同的方向依次消耗點。在基於點的方法中,計算量隨着輸入點數的增加而線性增長。然而,數據結構化的成本已經成爲大規模點雲的性能瓶頸。

點數據的數據結構策略大多數基於點的方法[30,23,37,26]使用FPS[10]對均勻分佈的組中心進行抽樣。FPS拾取最大化到選定點的距離的點。如果中心數不是很小,則採用O(N2)計算。近似算法[9]可以是O(NlogN)。隨機點抽樣(RPS)的開銷最小,但對密度不平衡很敏感。CAGQ模塊具有與RPS相同的複雜度,但是一次性執行採樣和鄰居查詢,這甚至比使用Ball Query或k-NN的RPS更快(見表2)。KPConv[36]使用柵格子採樣來拾取被佔用體素中的點。

與CAGQ不同,該策略不能查詢體素鄰域中的點。CAGQ還有一個覆蓋感知採樣(CAS)算法,可以優化中心選擇,從而比FPS獲得更好的覆蓋。或者,SO Net[22]構建了一個自組織映射。KDNet[15]使用kd-tree來劃分空間。PATs[48]使用Gumble子集抽樣來代替FPS。SPG[19]使用聚類方法將點作爲超級點進行分組。這些方法要麼速度慢,要麼需要結構預處理。SPLATNet[33,11]中的晶格投影比體素空間保留了更多的點細節,但速度較慢。像體素網[51,20]這樣的研究通過在每個體素內部使用點網[29]並應用體素卷積,將基於點的方法和體積法相結合。一個並行的高速模型PVCNN[27]使用了類似的方法,但沒有逐步減少每層中的點數。然而,Grid-GCN可以通過CAGQ對大量點進行下采樣,並通過考慮局部圖中的節點關係來聚集信息。

點雲學習的GCN圖卷積網絡已經廣泛應用於點雲學習[41,18,17]。通常爲每個點羣建立局部圖,GCN根據點之間的關係聚集點數據。SpecConv[37]通過使用圖形傅立葉變換來混合點特徵。其研究對中心和節點之間的邊緣特徵進行建模。其中,[47,26,17,41,49]使用幾何關係,而[6,39]則探討節點之間的語義關係。除了這些特徵外,提出的網格上下文聚合模塊考慮覆蓋率,並提取上下文特徵來計算語義關係。
在這裏插入圖片描述
3. Methods

3.1. Method Overview

如圖1所示,Grid-GCN構建在一組GridConv層上。每個GridConv層處理N個點的信息並將映射到M個點。下采樣GridConv(N>M)重複幾次,直到最終特徵表示被學習。此表示法可直接用於任務,如分類或由分段任務中的上採樣GridConv層(N<M)進一步上採樣。GridConv由兩個模塊組成:

1)覆蓋感知網格查詢(CAGQ)模塊,從N個點中抽取M個點組。每個組包括K個節點和一個組中心。在上採樣過程中,CAGQ通過遠程連接直接獲取中心,並且只查詢這些中心的節點點。

2)一個網格上下文聚合(GCA)模塊,爲每個點組構建一個本地圖,並將信息聚合到組中心。M組中心作爲下一層的數據點傳遞。爲了清楚起見,在附錄中列出了所有的符號。

3.2. Coverage-Aware Grid Query (CAGQ)

在圖2d中,π(v(2,1))是紅框內的3X3體素。把π(vi)中的存儲點稱爲上下文點。由於前面建立了點體素索引,CAGQ可以快速檢索出每個vi的上下文點,然後,CAGQ從每個vi的上下文點中選取K個節點,計算出一個組中節點的重心,作爲組中心的位置。整個過程如圖2所示。這裏還有兩個問題需要解決。(1) 如何採樣中心體素Oc⊆Ov。(2) 如何從π(vi)的上下文點中選取K個節點。爲了解決第一個問題,提出了中心體素採樣框架,包括兩種方法:

第一,隨機體素採樣(RVS):每個被佔用的體素將具有相同的被拾取概率。在這些中心體素內計算的組中心比RPS在輸入點上拾取的中心分佈更均勻。

第二,覆蓋感知採樣(CAS):每個選定的中心體素最多可以覆蓋λ佔用的體素鄰居。CAS的目標是選擇一組中心體素Oc,使其能夠覆蓋最大的佔用空間。尋找這個問題的最佳解決方案需要迭代所有選擇的組合。
在這裏插入圖片描述
3.3. Grid Context Aggregation

對於CAGQ提供的每個點組,使用一個網格上下文聚合(GCA)模塊從節點點到組中心聚集特徵。首先構造了一個局部圖G(V,E),其中V由CAGQ提供的羣中心和K節點組成。然後將每個節點點連接到組中心。

邊緣注意功能e已經被許多先前的研究所探索[47,6,39]。在這項工作中,設計了一個新的邊緣注意功能,並進行了以下改進,以便更好地融入網絡架構(圖4):

覆蓋權重

以前的研究[47,26,17,41,49]使用中心的χc和節點的χi來模擬邊緣注意作爲幾何關係的函數(圖4b)。但是,公式忽略了前一層中每個節點點的基本貢獻。直觀地說,對於前一層信息較多的節點,應該給予更多的關注。在圖3中演示了這個場景。有鑑於此,引入了覆蓋權重的概念,被定義爲在前一層中聚集到一個節點的點數。這個值在CAGQ中很容易計算,認爲覆蓋權重是計算邊緣注意的一個重要特徵(見表6中的消融研究)。

網格上下文池

語義關係是計算邊緣注意的另一個重要方面。在以往的文獻[6,39]中,語義關係是利用羣中心的特徵fc和節點點的特徵fi來編碼的,這就要求從節點中選擇羣中心。在CAGQ中,由於羣中心被計算爲節點的重心,提出了網格上下文池,通過從所有上下文點集中提取上下文特徵fcxt,充分覆蓋了局部圖的整個網格空間。
在這裏插入圖片描述
4. Analysis of CAGQ

爲了分析CAGQ的好處,在ModelNet40上測試了不同條件下不同採樣/查詢方法的佔用空間覆蓋率和延遲[43]。中心採樣方法包括隨機點採樣(RPS)、最遠點採樣(FPS)、隨機體素採樣(RVS)和覆蓋感知採樣(CAS)。鄰域查詢方法包括Ball查詢、多維數據集查詢和K-最近鄰查詢。條件包括不同的輸入點數、一個點羣中的節點數和點羣的個數,用N、K和M表示。將定性和定量評估結果彙總在表2和圖5中。報告的佔用空間覆蓋率計算爲所有組的節點點佔用的體素數與原始N個點所佔體素數的比值。

4.1. Space Coverage

在圖5a中,RPS採樣的中心集中在點密度較高的區域,使得大部分空間未被覆蓋。在圖5b中,FPS選擇彼此相距較遠的點,主要位於3D形狀的邊緣,這導致了中心之間的間隙。在圖5c中,CAS優化了體素選擇,並覆蓋了75.2%的佔用空間。表2按RPS、FPS、RVS和CA列出了空間覆蓋率的百分比。CAS在所有情況下都是空間覆蓋率最高的(比RPS多30%)。當K值較小時,FPS與RVS相比沒有優勢。有利於CAGQ空間覆蓋的因素可以總結如下:

•RVS不是從N個點採樣中心,而是從佔用空間中採樣中心體素,因此對點密度不平衡更具彈性(圖5)。

•CAS通過貪婪的候選替換進一步優化RVS的結果。每一次更換都保證能得到更好的覆蓋。

•CAGQ在每個佔用的體素中存儲相同數量的點。上下文點分佈更均勻,從上下文點中拾取的K節點點也分佈得更均勻。因此,該策略減少了局部區域密度不平衡造成的覆蓋損失。

4.2. Time complexity

在表1中總結了不同方法的時間複雜度。表2顯示了潛伏期的經驗結果。看到CAS的速度比速度快得多。當輸入點雲較大時,CAS+Cube查詢的性能甚至可以超過RPS+Ball查詢。這是由於較高的鄰域查詢速度。由於具有更好的時間複雜度,RVS+k-NN在所有條件下都處於領先地位,比FPS+k-NN提高了6倍。
在這裏插入圖片描述
5. Experiments

在多個數據集上評估網格GCN:ModelNet10和ModelNet40[43]用於對象分類,ScanNet[8]和S3DIS[1]用於語義分割。根據PVCNN[27]的約定,報告了每一個精度級別的延遲和性能。從發表的論文或作者那裏收集其模型的結果。所有的延遲結果都在相應的批大小和輸入點數下報告。所有的實驗都是在一個RTX 2080 GPU上進行的。

5.1. 3D Object Classification

數據集和設置

對ModelNet10和ModelNet40數據集執行分類任務[43]。ModelNet10由10個對象類組成,訓練3991個,測試對象908個。ModelNet40包括40個不同的類,有9843個訓練對象和2468個測試對象。按照PointNet[29]的約定準備數據,使用1024個點和3個空間位置通道作爲輸入。一些研究使用標準[30,16]、八叉樹[40]或kd樹作爲輸入,而[26,25]則使用投票進行評估。

評估

爲了比較具有不同精度和速度水平的不同模型,使用4種不同的設置來訓練網格GCN,以平衡性能和速度(詳情見第5.3節)。變量是指第一層的特徵通道數量和組中節點的數量(見表6)。結果見表3。不經表決報告結果。對於所有四種設置,網格GCN模型不僅在ModelNet10和ModelNet40數據集上實現了最先進的性能,而且具有最佳的速度精度權衡。雖然Grid-GCN使用CAGQ模塊進行數據結構,但延遲與PointNet相似,沒有數據結構步驟,但其精度明顯高於PointNet。
在這裏插入圖片描述
5.2. 3D Scene Segmentation

數據集和設置

在兩個大規模點雲分割數據集上評估網格GCN:ScanNet[8]和Stanford
3D大尺度室內空間(S3DIS)[1]。ScanNet由1513個掃描的室內場景組成,每個體素被標註在21個類別中。按照[8]中的實驗設置,使用1201個場景進行訓練,312個場景用於測試。按照PointNet++[30]中的例程和評估協議,在訓練期間採樣8192個點,每個點採樣3個空間通道。S3DIS包含6個大型室內區域,共有271間客房。每個點都被標記爲13個類別中的一個。由於5區是唯一沒有與其區域重疊的區域,按照[35,23,27]在1-4和6區進行訓練,並在5區進行測試。在每個分段中,抽取4096個點進行訓練,採用[23]中的評價方法。

評估

報告了ScanNet的整體體素標記精度(OA)和運行時延遲[8]。訓練了兩個版本的網格GCN模型,一個是使用1×K節點點的完整模型,另一個是使用0.5×K節點點的緊湊模型。結果見表4。由於分段任務通常使用比分類模型更多的輸入點,因此在數據結構方面的優勢變得突出。在批量輸入相同數量(32768個)的情況下,網格GCN輸出速度PointNet++4.5×同時保持相同的精度水平。與PointCNN[23]和A-CNN[16]等更復雜的模型相比,Grid-GCN分別快25倍和12倍,同時達到了最先進的精度。值得注意的是,gridgcn可以以最先進的性能以50到133
FPS的速度運行,這是實時應用所需要的。一個流行的模型MinkowskiNet[5]沒有報告整體的準確性,因此沒有把放在表中。但github示例顯示Scannet上的延遲爲103ms。

在表5中顯示了S3DIS的定量結果,圖6顯示了可視化結果。精簡版GridGCN通常比其具有數據結構的模型快4到14倍。值得注意的是,即使與完全沒有數據結構的PointNet相比,仍然快了1.6倍,同時在mIOU上獲得了12%的性能增益。對於完整模型,仍然是最快的,並且比PVCNN++[27]實現了2倍的加速,這是一項專注於提高速度的最新研究。
在這裏插入圖片描述
消融研究

在ModelNet10和ModelNet40上的實驗[43],完整模型有3個GridConv層。如表6所示,對GridConv層的輸出特徵通道數、第一個GridConv層中的節點數K以及是否使用網格上下文池和覆蓋權重進行了縮減。一方面,減少Grid-GCNfull的信道數可以使Grid-GCN3的速度提高37%。另一方面,減少K並從Grid-GCN3中刪除網格上下文池並不會給Grid-GCN2帶來太多的速度優勢,但會降低準確性。還通過逐步增加ScanNet上的輸入點數量來測試模型的可伸縮性[8]。將模型與PointNet++[30]進行比較,後者是最有效的基於點的方法之一。將結果報告在表7中。在2048點的設置下,兩個模型的延遲是相似的。然而,當輸入點從4096增加到81920時,Grid-GCN在PointNet++上實現了11倍的加速,顯示了模型在處理大規模點雲方面的優勢。
在這裏插入圖片描述
在這裏插入圖片描述

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