CVPR2020:Grid-GCN用于快速和可扩展的点云学习
CVPR2020:Grid-GCN用于快速和可擴展的點云學(xué)習(xí)
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
摘要
由于點云數(shù)據(jù)的稀疏性和不規(guī)則性,直接消耗點的方法已經(jīng)成為一種流行的方法。在所有基于點的模型中,圖卷積網(wǎng)絡(luò)(GCN)充分保留了數(shù)據(jù)粒度,充分利用了點之間的相互關(guān)系,使得性能顯著提高。然而,基于點的網(wǎng)絡(luò)在數(shù)據(jù)結(jié)構(gòu)(如最遠點采樣(FPS)和鄰居點查詢)上花費了大量的時間,這限制了速度和可擴展性。本文提出了一種快速、可擴展的點云學(xué)習(xí)方法gridgcn。gridgcn采用了一種新的數(shù)據(jù)結(jié)構(gòu)策略:覆蓋感知網(wǎng)格查詢(CAGQ)。通過利用網(wǎng)格空間的效率,CAGQ提高了空間覆蓋率,同時降低了理論時間復(fù)雜度。與最遠點采樣(FPS)和球查詢等常用的采樣方法相比,CAGQ的速度提高了50倍。通過網(wǎng)格上下文聚合(GCA)模塊,gridgcn在主要點云分類和分割基準(zhǔn)點上實現(xiàn)了最先進的性能,運行速度比以前的研究快得多。值得注意的是,網(wǎng)格GCN在ScanNet上使用81920個點作為輸入,其推理速度達到50FPS。
1.介紹
點云數(shù)據(jù)在自動駕駛、機器人和無人駕駛飛行器等應(yīng)用程序中非常流行。目前,激光雷達傳感器每秒可以產(chǎn)生數(shù)百萬個點,提供密集的實時世界表示。點云數(shù)據(jù)處理采用了多種方法。體積模型是將點云轉(zhuǎn)換為空間量化體素網(wǎng)格并使用體積卷積在網(wǎng)格空間中執(zhí)行計算的模型家族[28,45,28]。使用網(wǎng)格作為數(shù)據(jù)結(jié)構(gòu)方法,體積法將點與網(wǎng)格中的位置關(guān)聯(lián)起來,三維卷積核從相鄰體素收集信息。雖然網(wǎng)格數(shù)據(jù)結(jié)構(gòu)是有效的,但需要高體素分辨率來保持數(shù)據(jù)位置的粒度。由于計算和內(nèi)存使用量隨著體素分辨率的增加而呈立方形增長,處理大型點云的成本很高。此外,由于大多數(shù)點云大約90%的體素是空的[51],不處理任何信息可能會消耗大量的計算能力。另一類用于點云數(shù)據(jù)處理的模型是基于點的模型。與體積模型相比,基于點的模型能夠有效地進行計算,但卻存在數(shù)據(jù)結(jié)構(gòu)不完善的問題。例如,PointNet[29]直接消耗點云而不進行量化,并在網(wǎng)絡(luò)的最后階段聚集信息,因此精確的數(shù)據(jù)位置是完整的,但是計算成本隨著點數(shù)的增加而線性增長。后來的研究[30,47,41,37,46]在每一層應(yīng)用一個下采樣策略,將信息聚集到點群中心,從而逐層提取較少的代表性點(圖1(a))。最近,圖卷積網(wǎng)絡(luò)(GCN)[32,39,21,49]被提出為網(wǎng)絡(luò)層中的每個點組建立一個局部圖,這可以看作是PointNet++體系結(jié)構(gòu)的擴展[30]。然而,這種架構(gòu)帶來了很高的數(shù)據(jù)結(jié)構(gòu)成本(例如FPS和k-NN)。劉等[27]表明,三種流行的基于點的模型[23,47,41]的數(shù)據(jù)結(jié)構(gòu)成本高達總計算成本的88%。在本文中,還通過展示數(shù)據(jù)結(jié)構(gòu)開銷在可伸縮性方面的趨勢來研究這個問題。
本文介紹了網(wǎng)格GCN,融合了體積模型和基于點的模型的優(yōu)點,實現(xiàn)了高效的數(shù)據(jù)結(jié)構(gòu)和高效的計算。如圖1所示,模型由幾個GridConv層組成,用于處理點數(shù)據(jù)。每一層包括兩個階段:一個是對代表中心進行采樣并查詢相鄰點的數(shù)據(jù)結(jié)構(gòu)階段;一個是在每個點組上建立局部圖并將信息聚合到中心的卷積階段。為了實現(xiàn)高效的數(shù)據(jù)結(jié)構(gòu),設(shè)計了覆蓋感知網(wǎng)格查詢(CAGQ)模塊,該模塊1)加速中心采樣和鄰居查詢,2)為學(xué)習(xí)過程提供更完整的點云覆蓋。數(shù)據(jù)結(jié)構(gòu)效率通過體素化實現(xiàn),計算效率僅通過對占用區(qū)域進行計算獲得。將在第4節(jié)展示CAGQ出色的速度和空間覆蓋率。為了利用點關(guān)系,還描述了一個新的圖卷積模塊,稱為網(wǎng)格上下文聚合(GCA)。該模塊執(zhí)行網(wǎng)格上下文池以提取網(wǎng)格鄰域的上下文特征,從而在不增加額外開銷的情況下有利于邊緣關(guān)系計算。在兩個任務(wù)上演示了網(wǎng)格GCN模型:點云分類和分割。具體而言,在ModelNet40和ModelNet10上執(zhí)行分類任務(wù)[43],達到了最先進的整體準(zhǔn)確率93.1%(無投票),同時平均比其模型快5倍。還對ScanNet[8]和S3DIS[1]數(shù)據(jù)集進行了分割,平均速度比其模型快10倍。值得注意的是,模型通過在20ms內(nèi)處理一個場景中的81920個點,展示了實時大規(guī)模點學(xué)習(xí)能力。
2.相關(guān)工作
基于體素的三維學(xué)習(xí)方法為了擴展卷積神經(jīng)網(wǎng)絡(luò)模型[12,13]在二維圖像上的成功,Voxnet及其變體[28,43,38,4,6]開始將點云或深度圖傳輸?shù)秸加镁W(wǎng)格并應(yīng)用體積卷積。為了解決立體增加的內(nèi)存使用問題,OctNet[31]為占用的體素構(gòu)造了樹結(jié)構(gòu),以避免在空白空間進行計算。雖然在數(shù)據(jù)結(jié)構(gòu)方面很有效,但體積法的缺點是計算效率低和數(shù)據(jù)粒度損失。基于點的點云學(xué)習(xí)方法是由[29,30]首次提出的,通過使用池來聚集點特征來追求置換不變性。為了更好地捕捉局部特征,提出了核相關(guān)[2,42]和擴展卷積[36]等方法。為了解決排序的模糊性,PointCNN[23]預(yù)測局部點的順序,RSNet[14]從不同的方向依次消耗點。在基于點的方法中,計算量隨著輸入點數(shù)的增加而線性增長。然而,數(shù)據(jù)結(jié)構(gòu)化的成本已經(jīng)成為大規(guī)模點云的性能瓶頸。
點數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)策略大多數(shù)基于點的方法[30,23,37,26]使用FPS[10]對均勻分布的組中心進行抽樣。FPS拾取最大化到選定點的距離的點。如果中心數(shù)不是很小,則采用O(N2)計算。近似算法[9]可以是O(NlogN)。隨機點抽樣(RPS)的開銷最小,但對密度不平衡很敏感。CAGQ模塊具有與RPS相同的復(fù)雜度,但是一次性執(zhí)行采樣和鄰居查詢,這甚至比使用Ball Query或k-NN的RPS更快(見表2)。KPConv[36]使用柵格子采樣來拾取被占用體素中的點。
與CAGQ不同,該策略不能查詢體素鄰域中的點。CAGQ還有一個覆蓋感知采樣(CAS)算法,可以優(yōu)化中心選擇,從而比FPS獲得更好的覆蓋。或者,SO Net[22]構(gòu)建了一個自組織映射。KDNet[15]使用kd-tree來劃分空間。PATs[48]使用Gumble子集抽樣來代替FPS。SPG[19]使用聚類方法將點作為超級點進行分組。這些方法要么速度慢,要么需要結(jié)構(gòu)預(yù)處理。SPLATNet[33,11]中的晶格投影比體素空間保留了更多的點細節(jié),但速度較慢。像體素網(wǎng)[51,20]這樣的研究通過在每個體素內(nèi)部使用點網(wǎng)[29]并應(yīng)用體素卷積,將基于點的方法和體積法相結(jié)合。一個并行的高速模型PVCNN[27]使用了類似的方法,但沒有逐步減少每層中的點數(shù)。然而,Grid-GCN可以通過CAGQ對大量點進行下采樣,并通過考慮局部圖中的節(jié)點關(guān)系來聚集信息。
點云學(xué)習(xí)的GCN圖卷積網(wǎng)絡(luò)已經(jīng)廣泛應(yīng)用于點云學(xué)習(xí)[41,18,17]。通常為每個點群建立局部圖,GCN根據(jù)點之間的關(guān)系聚集點數(shù)據(jù)。SpecConv[37]通過使用圖形傅立葉變換來混合點特征。其研究對中心和節(jié)點之間的邊緣特征進行建模。其中,[47,26,17,41,49]使用幾何關(guān)系,而[6,39]則探討節(jié)點之間的語義關(guān)系。除了這些特征外,提出的網(wǎng)格上下文聚合模塊考慮覆蓋率,并提取上下文特征來計算語義關(guān)系。
3. Methods
3.1. Method Overview
如圖1所示,Grid-GCN構(gòu)建在一組GridConv層上。每個GridConv層處理N個點的信息并將映射到M個點。下采樣GridConv(N>M)重復(fù)幾次,直到最終特征表示被學(xué)習(xí)。此表示法可直接用于任務(wù),如分類或由分段任務(wù)中的上采樣GridConv層(N<M)進一步上采樣。GridConv由兩個模塊組成:
1)覆蓋感知網(wǎng)格查詢(CAGQ)模塊,從N個點中抽取M個點組。每個組包括K個節(jié)點和一個組中心。在上采樣過程中,CAGQ通過遠程連接直接獲取中心,并且只查詢這些中心的節(jié)點點。
2)一個網(wǎng)格上下文聚合(GCA)模塊,為每個點組構(gòu)建一個本地圖,并將信息聚合到組中心。M組中心作為下一層的數(shù)據(jù)點傳遞。為了清楚起見,在附錄中列出了所有的符號。
3.2. Coverage-Aware Grid Query (CAGQ)
在圖2d中,π(v(2,1))是紅框內(nèi)的3X3體素。把π(vi)中的存儲點稱為上下文點。由于前面建立了點體素索引,CAGQ可以快速檢索出每個vi的上下文點,然后,CAGQ從每個vi的上下文點中選取K個節(jié)點,計算出一個組中節(jié)點的重心,作為組中心的位置。整個過程如圖2所示。這里還有兩個問題需要解決。(1) 如何采樣中心體素Oc?Ov。(2) 如何從π(vi)的上下文點中選取K個節(jié)點。為了解決第一個問題,提出了中心體素采樣框架,包括兩種方法:
第一,隨機體素采樣(RVS):每個被占用的體素將具有相同的被拾取概率。在這些中心體素內(nèi)計算的組中心比RPS在輸入點上拾取的中心分布更均勻。
第二,覆蓋感知采樣(CAS):每個選定的中心體素最多可以覆蓋λ占用的體素鄰居。CAS的目標(biāo)是選擇一組中心體素Oc,使其能夠覆蓋最大的占用空間。尋找這個問題的最佳解決方案需要迭代所有選擇的組合。
3.3. Grid Context Aggregation
對于CAGQ提供的每個點組,使用一個網(wǎng)格上下文聚合(GCA)模塊從節(jié)點點到組中心聚集特征。首先構(gòu)造了一個局部圖G(V,E),其中V由CAGQ提供的群中心和K節(jié)點組成。然后將每個節(jié)點點連接到組中心。
邊緣注意功能e已經(jīng)被許多先前的研究所探索[47,6,39]。在這項工作中,設(shè)計了一個新的邊緣注意功能,并進行了以下改進,以便更好地融入網(wǎng)絡(luò)架構(gòu)(圖4):
覆蓋權(quán)重
以前的研究[47,26,17,41,49]使用中心的χc和節(jié)點的χi來模擬邊緣注意作為幾何關(guān)系的函數(shù)(圖4b)。但是,公式忽略了前一層中每個節(jié)點點的基本貢獻。直觀地說,對于前一層信息較多的節(jié)點,應(yīng)該給予更多的關(guān)注。在圖3中演示了這個場景。有鑒于此,引入了覆蓋權(quán)重的概念,被定義為在前一層中聚集到一個節(jié)點的點數(shù)。這個值在CAGQ中很容易計算,認為覆蓋權(quán)重是計算邊緣注意的一個重要特征(見表6中的消融研究)。
網(wǎng)格上下文池
語義關(guān)系是計算邊緣注意的另一個重要方面。在以往的文獻[6,39]中,語義關(guān)系是利用群中心的特征fc和節(jié)點點的特征fi來編碼的,這就要求從節(jié)點中選擇群中心。在CAGQ中,由于群中心被計算為節(jié)點的重心,提出了網(wǎng)格上下文池,通過從所有上下文點集中提取上下文特征fcxt,充分覆蓋了局部圖的整個網(wǎng)格空間。
4. Analysis of CAGQ
為了分析CAGQ的好處,在ModelNet40上測試了不同條件下不同采樣/查詢方法的占用空間覆蓋率和延遲[43]。中心采樣方法包括隨機點采樣(RPS)、最遠點采樣(FPS)、隨機體素采樣(RVS)和覆蓋感知采樣(CAS)。鄰域查詢方法包括Ball查詢、多維數(shù)據(jù)集查詢和K-最近鄰查詢。條件包括不同的輸入點數(shù)、一個點群中的節(jié)點數(shù)和點群的個數(shù),用N、K和M表示。將定性和定量評估結(jié)果匯總在表2和圖5中。報告的占用空間覆蓋率計算為所有組的節(jié)點點占用的體素數(shù)與原始N個點所占體素數(shù)的比值。
4.1. Space Coverage
在圖5a中,RPS采樣的中心集中在點密度較高的區(qū)域,使得大部分空間未被覆蓋。在圖5b中,FPS選擇彼此相距較遠的點,主要位于3D形狀的邊緣,這導(dǎo)致了中心之間的間隙。在圖5c中,CAS優(yōu)化了體素選擇,并覆蓋了75.2%的占用空間。表2按RPS、FPS、RVS和CA列出了空間覆蓋率的百分比。CAS在所有情況下都是空間覆蓋率最高的(比RPS多30%)。當(dāng)K值較小時,FPS與RVS相比沒有優(yōu)勢。有利于CAGQ空間覆蓋的因素可以總結(jié)如下:
?RVS不是從N個點采樣中心,而是從占用空間中采樣中心體素,因此對點密度不平衡更具彈性(圖5)。
?CAS通過貪婪的候選替換進一步優(yōu)化RVS的結(jié)果。每一次更換都保證能得到更好的覆蓋。
?CAGQ在每個占用的體素中存儲相同數(shù)量的點。上下文點分布更均勻,從上下文點中拾取的K節(jié)點點也分布得更均勻。因此,該策略減少了局部區(qū)域密度不平衡造成的覆蓋損失。
4.2. Time complexity
在表1中總結(jié)了不同方法的時間復(fù)雜度。表2顯示了潛伏期的經(jīng)驗結(jié)果。看到CAS的速度比速度快得多。當(dāng)輸入點云較大時,CAS+Cube查詢的性能甚至可以超過RPS+Ball查詢。這是由于較高的鄰域查詢速度。由于具有更好的時間復(fù)雜度,RVS+k-NN在所有條件下都處于領(lǐng)先地位,比FPS+k-NN提高了6倍。
5. Experiments
在多個數(shù)據(jù)集上評估網(wǎng)格GCN:ModelNet10和ModelNet40[43]用于對象分類,ScanNet[8]和S3DIS[1]用于語義分割。根據(jù)PVCNN[27]的約定,報告了每一個精度級別的延遲和性能。從發(fā)表的論文或作者那里收集其模型的結(jié)果。所有的延遲結(jié)果都在相應(yīng)的批大小和輸入點數(shù)下報告。所有的實驗都是在一個RTX 2080 GPU上進行的。
5.1. 3D Object Classi?cation
數(shù)據(jù)集和設(shè)置
對ModelNet10和ModelNet40數(shù)據(jù)集執(zhí)行分類任務(wù)[43]。ModelNet10由10個對象類組成,訓(xùn)練3991個,測試對象908個。ModelNet40包括40個不同的類,有9843個訓(xùn)練對象和2468個測試對象。按照PointNet[29]的約定準(zhǔn)備數(shù)據(jù),使用1024個點和3個空間位置通道作為輸入。一些研究使用標(biāo)準(zhǔn)[30,16]、八叉樹[40]或kd樹作為輸入,而[26,25]則使用投票進行評估。
評估
為了比較具有不同精度和速度水平的不同模型,使用4種不同的設(shè)置來訓(xùn)練網(wǎng)格GCN,以平衡性能和速度(詳情見第5.3節(jié))。變量是指第一層的特征通道數(shù)量和組中節(jié)點的數(shù)量(見表6)。結(jié)果見表3。不經(jīng)表決報告結(jié)果。對于所有四種設(shè)置,網(wǎng)格GCN模型不僅在ModelNet10和ModelNet40數(shù)據(jù)集上實現(xiàn)了最先進的性能,而且具有最佳的速度精度權(quán)衡。雖然Grid-GCN使用CAGQ模塊進行數(shù)據(jù)結(jié)構(gòu),但延遲與PointNet相似,沒有數(shù)據(jù)結(jié)構(gòu)步驟,但其精度明顯高于PointNet。
5.2. 3D Scene Segmentation
數(shù)據(jù)集和設(shè)置
在兩個大規(guī)模點云分割數(shù)據(jù)集上評估網(wǎng)格GCN:ScanNet[8]和Stanford
3D大尺度室內(nèi)空間(S3DIS)[1]。ScanNet由1513個掃描的室內(nèi)場景組成,每個體素被標(biāo)注在21個類別中。按照[8]中的實驗設(shè)置,使用1201個場景進行訓(xùn)練,312個場景用于測試。按照PointNet++[30]中的例程和評估協(xié)議,在訓(xùn)練期間采樣8192個點,每個點采樣3個空間通道。S3DIS包含6個大型室內(nèi)區(qū)域,共有271間客房。每個點都被標(biāo)記為13個類別中的一個。由于5區(qū)是唯一沒有與其區(qū)域重疊的區(qū)域,按照[35,23,27]在1-4和6區(qū)進行訓(xùn)練,并在5區(qū)進行測試。在每個分段中,抽取4096個點進行訓(xùn)練,采用[23]中的評價方法。
評估
報告了ScanNet的整體體素標(biāo)記精度(OA)和運行時延遲[8]。訓(xùn)練了兩個版本的網(wǎng)格GCN模型,一個是使用1×K節(jié)點點的完整模型,另一個是使用0.5×K節(jié)點點的緊湊模型。結(jié)果見表4。由于分段任務(wù)通常使用比分類模型更多的輸入點,因此在數(shù)據(jù)結(jié)構(gòu)方面的優(yōu)勢變得突出。在批量輸入相同數(shù)量(32768個)的情況下,網(wǎng)格GCN輸出速度PointNet++4.5×同時保持相同的精度水平。與PointCNN[23]和A-CNN[16]等更復(fù)雜的模型相比,Grid-GCN分別快25倍和12倍,同時達到了最先進的精度。值得注意的是,gridgcn可以以最先進的性能以50到133
FPS的速度運行,這是實時應(yīng)用所需要的。一個流行的模型MinkowskiNet[5]沒有報告整體的準(zhǔn)確性,因此沒有把放在表中。但github示例顯示Scannet上的延遲為103ms。
在表5中顯示了S3DIS的定量結(jié)果,圖6顯示了可視化結(jié)果。精簡版GridGCN通常比其具有數(shù)據(jù)結(jié)構(gòu)的模型快4到14倍。值得注意的是,即使與完全沒有數(shù)據(jù)結(jié)構(gòu)的PointNet相比,仍然快了1.6倍,同時在mIOU上獲得了12%的性能增益。對于完整模型,仍然是最快的,并且比PVCNN++[27]實現(xiàn)了2倍的加速,這是一項專注于提高速度的最新研究。
消融研究
在ModelNet10和ModelNet40上的實驗[43],完整模型有3個GridConv層。如表6所示,對GridConv層的輸出特征通道數(shù)、第一個GridConv層中的節(jié)點數(shù)K以及是否使用網(wǎng)格上下文池和覆蓋權(quán)重進行了縮減。一方面,減少Grid-GCNfull的信道數(shù)可以使Grid-GCN3的速度提高37%。另一方面,減少K并從Grid-GCN3中刪除網(wǎng)格上下文池并不會給Grid-GCN2帶來太多的速度優(yōu)勢,但會降低準(zhǔn)確性。還通過逐步增加ScanNet上的輸入點數(shù)量來測試模型的可伸縮性[8]。將模型與PointNet++[30]進行比較,后者是最有效的基于點的方法之一。將結(jié)果報告在表7中。在2048點的設(shè)置下,兩個模型的延遲是相似的。然而,當(dāng)輸入點從4096增加到81920時,Grid-GCN在PointNet++上實現(xiàn)了11倍的加速,顯示了模型在處理大規(guī)模點云方面的優(yōu)勢。
總結(jié)
以上是生活随笔為你收集整理的CVPR2020:Grid-GCN用于快速和可扩展的点云学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自动编码器的评级预测
- 下一篇: 推荐系统的个性化排名