CVPR2023 I PointVector: 用矢量表示徹底改變點(diǎn)云分析
作者:PCIPG-LC ?| 來(lái)源:計(jì)算機(jī)視覺(jué)工坊
在公眾號(hào)「計(jì)算機(jī)視覺(jué)工坊」后臺(tái),回復(fù)「原論文」可獲取論文pdf和代碼鏈接。
添加微信:dddvisiona,備注:3D點(diǎn)云,拉你入群。文末附行業(yè)細(xì)分群。
在點(diǎn)云分析方面,基于點(diǎn)的方法近年來(lái)迅速發(fā)展。這些方法最近集中在簡(jiǎn)潔的 MLP 結(jié)構(gòu)上,例如 PointNeXt,它已經(jīng)證明了與卷積和 Transformer 結(jié)構(gòu)的競(jìng)爭(zhēng)力。然而,標(biāo)準(zhǔn) MLP 有效提取局部特征的能力有限。為了解決這個(gè)限制,我們提出了一種面向向量的點(diǎn)集抽象,它可以通過(guò)高維向量聚合相鄰特征。為了促進(jìn)網(wǎng)絡(luò)優(yōu)化,我們使用基于 3D 矢量旋轉(zhuǎn)的獨(dú)立角度構(gòu)建從標(biāo)量到矢量的轉(zhuǎn)換。最后,我們開(kāi)發(fā)了一個(gè)遵循 PointNeXt 結(jié)構(gòu)的 PointVector 模型。我們的實(shí)驗(yàn)結(jié)果表明,PointVector 在 S3DIS Area 5 上實(shí)現(xiàn)了最先進(jìn)的性能 72.3% mIOU,在 S3DIS(6 倍交叉驗(yàn)證)上實(shí)現(xiàn)了 78.4% mIOU,而模型參數(shù)僅為 PointNeXt 的 58%。我們希望我們的工作將有助于探索簡(jiǎn)潔有效的特征表示。該代碼即將發(fā)布。
點(diǎn)云分析是各種下游任務(wù)的基石。隨著PointNet和PointNet++的引入,非結(jié)構(gòu)化點(diǎn)云的直接處理已經(jīng)成為一個(gè)熱門話題。許多基于點(diǎn)的網(wǎng)絡(luò)引入了新穎而復(fù)雜的模塊來(lái)提取局部特征,例如,基于注意力的方法探索如圖1(a)所示的注意力機(jī)制消耗較低,基于卷積的方法探索如圖1(c)所示的動(dòng)態(tài)卷積核,基于圖的方法使用圖來(lái)建模點(diǎn)的關(guān)系。這些方法應(yīng)用到PointNet++的特征提取模塊中,帶來(lái)了特征質(zhì)量的提升。然而,它們?cè)诰W(wǎng)絡(luò)結(jié)構(gòu)方面設(shè)計(jì)起來(lái)有些復(fù)雜。PointNeXt 采用了 PointNet++ 的 SetAbstraction (SA) 模塊,并提出了 Inverted Residual MLP (InvResMLP) 模塊。MLP網(wǎng)絡(luò)的簡(jiǎn)單設(shè)計(jì)取得了良好的效果。受這項(xiàng)工作的激勵(lì),我們嘗試進(jìn)一步探索 MLP 結(jié)構(gòu)的潛力。這里也推薦「3D視覺(jué)工坊」新課程《徹底搞懂基于Open3D的點(diǎn)云處理教程》。
我們提出了一種具有相對(duì)特征和位置的新穎的直接向量表示,以更好地指導(dǎo)局部特征聚合。
我們探索了獲得矢量表示的方法,并提出了利用3D空間中的矢量旋轉(zhuǎn)矩陣生成3D矢量的方法。
我們提出的 PointVector 模型在 S3DIS area5 上實(shí)現(xiàn)了 72.3% 的平均交集 (mIOU),在 S3DIS(6 倍交叉驗(yàn)證)上實(shí)現(xiàn)了 78.4% mIOU,僅具有 PointNeXt 的 58% 模型參數(shù)。
基于點(diǎn)的網(wǎng)絡(luò)。與體素化和多視圖方法相比,基于點(diǎn)的方法直接處理點(diǎn)云。PointNet首先提出使用MLP直接處理點(diǎn)云。PointNet++ 隨后引入了層次結(jié)構(gòu)來(lái)改進(jìn)特征提取。隨后的工作重點(diǎn)是細(xì)粒度局部特征提取器的設(shè)計(jì)。基于圖的方法依賴于圖神經(jīng)網(wǎng)絡(luò)并引入點(diǎn)特征和邊緣特征來(lái)建模局部關(guān)系?;诰矸e的方法提出了幾種動(dòng)態(tài)卷積核來(lái)自適應(yīng)聚合鄰域特征。許多類似變壓器的網(wǎng)絡(luò)通過(guò)自注意力提取局部特征。最近,類 MLP 網(wǎng)絡(luò)通過(guò)增強(qiáng)特征,能夠用簡(jiǎn)單的網(wǎng)絡(luò)獲得良好的結(jié)果。PointMLP 提出了一種幾何仿射模塊來(lái)規(guī)范化特征。RepSurf 通過(guò)三角平面擬合表面信息,對(duì)傘面進(jìn)行建模以提供幾何信息。PointNeXt 集成了訓(xùn)練策略和模型縮放。類似 MLP 的架構(gòu)。類似 MLP 的結(jié)構(gòu)最近顯示出能夠以簡(jiǎn)單的架構(gòu)與 Transformer 相媲美。在圖像領(lǐng)域,MLP-Mixer首先使用Spatial MLP和Channel MLP的組合。隨后的工作通過(guò)為空間 MLP 選擇對(duì)象來(lái)降低計(jì)算復(fù)雜性,同時(shí)保持較大的感知場(chǎng)以保持準(zhǔn)確性。由于點(diǎn)云太大,類MLP網(wǎng)絡(luò)一般采用K近鄰采樣或球采樣方法來(lái)確定感知場(chǎng)。點(diǎn)云分析中的MLP結(jié)構(gòu)從PointNet和PointNet++開(kāi)始,使用MLP來(lái)提取特征并通過(guò)對(duì)稱函數(shù)聚合它們。Point-Mixer提出了三種點(diǎn)集算子,PointMLP通過(guò)幾何仿射模塊修改特征分布,PointNeXt 通過(guò)訓(xùn)練策略和模型縮放來(lái)擴(kuò)展PointNet ++模型并提高性能。特征聚合。 PosPool 通過(guò)提供無(wú)參數(shù)的位置自適應(yīng)池操作改進(jìn)了 PointNet++ 中定義的歸約函數(shù)。ASSANet 引入了一種新的各向異性縮減函數(shù)。此外,注意力機(jī)制的引入為約簡(jiǎn)函數(shù)提供了新的動(dòng)態(tài)權(quán)重。向量是有方向的,各向異性聚合函數(shù)自然滿足這個(gè)性質(zhì)。GeoCNN 基于六個(gè)方向上鄰近點(diǎn)和質(zhì)心的向量和角度來(lái)投影特征并對(duì)它們求和。WaveMLP 將圖像塊表示為波,并使用波相位和幅度描述特征聚合。矢量神經(jīng)元構(gòu)建了一個(gè)神經(jīng)元三元組來(lái)重建標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)并通過(guò)矢量變換來(lái)表示特征。以 3DGCN 為代表的基于模板的方法使用相對(duì)位移向量的余弦值來(lái)過(guò)濾來(lái)自更符合內(nèi)核模式的鄰居的聚合特征。局部位移使用局部位移向量通過(guò)組合固定內(nèi)核的權(quán)重來(lái)更新特征。在我們的方法中,通過(guò)修改點(diǎn)特征提取函數(shù)來(lái)生成中間向量表示。矢量方向是根據(jù)特征和位置確定的,以實(shí)現(xiàn)各向異性聚合函數(shù)。
我們提出了一種中間向量表示來(lái)增強(qiáng)點(diǎn)云分析中的局部特征聚合。本節(jié)包括第 3.1 節(jié)中對(duì) PointNet 系列的點(diǎn)集抽象(SA)運(yùn)算符的回顧,第 3.2 節(jié)中介紹的面向向量的點(diǎn)集抽象模塊,以及第 3.3 節(jié)中對(duì)我們從標(biāo)量擴(kuò)展向量的方法的描述,以及3.4節(jié)中PointVector的網(wǎng)絡(luò)結(jié)構(gòu)。
SA 模塊包括用于查詢每個(gè)點(diǎn)的鄰居的分組層(K-NN 或 BallQuery),共享 MLP 以及用于聚合鄰居特征的縮減層。SA模塊有一個(gè)子采樣層,用于對(duì)第一層中的點(diǎn)云進(jìn)行下采樣。我們將表示為階段之后提取的點(diǎn)的特征,表示點(diǎn)的鄰居,表示輸入點(diǎn)的數(shù)量。SA模塊的內(nèi)容可以表述如下:其中是聚合點(diǎn)來(lái)自其鄰居的特征的歸約函數(shù),表示共享的 MLP。分別表示點(diǎn)的輸入特征、點(diǎn)的位置和i點(diǎn)的位置。在局部聚合操作中,經(jīng)典方法將權(quán)重分配給維特征的分量,如下式所示,并對(duì)空間維度上的相鄰特征進(jìn)行求和。我們將維特征的分量視為只有一個(gè)非零值的基向量,并將向量變換定義如下:
其中是標(biāo)量權(quán)重。在方程 3 中,變換改變了向量的一個(gè)值。上面的兩個(gè)方程是等價(jià)的。方程中未改變的零點(diǎn)對(duì)后續(xù)操作沒(méi)有貢獻(xiàn),可以忽略不計(jì)。在物理學(xué)中,運(yùn)動(dòng)的自由度等于運(yùn)動(dòng)導(dǎo)致系統(tǒng)改變的狀態(tài)量的數(shù)量。物理系統(tǒng)中的自由度越大,表明定義其狀態(tài)的參數(shù)的獨(dú)立變化范圍越大。類似地,向量變換的自由度是指向量中可以獨(dú)立變化的值的數(shù)量。所以,我們提到的3D向量意味著向量變換的自由度是3。
正如 3.1 節(jié)中所討論的,特征分量可以表示為向量。矢量變換的自由度更高,可以增加變化并改進(jìn)相鄰元素之間連接的表示。向量具有大小和方向?qū)傩裕诒硎咎卣鞣矫姹葮?biāo)量更具表現(xiàn)力。當(dāng)聚集時(shí),它們由于其方向性而表現(xiàn)出各向異性。因此,我們引入了如圖2所示的中間向量表示。
方程 4 中定義的函數(shù)最簡(jiǎn)單的想法是直接用 MLP 獲得點(diǎn)的維向量。然而,雖然單層 MLP 的表達(dá)能力可能有限,但多層 MLP 可能是資源密集型的。正如 3.1 節(jié)中所討論的,輸入特征被視為向量,我們的目標(biāo)是設(shè)計(jì)一個(gè)具有高自由度的變換。該變換結(jié)合了旋轉(zhuǎn)和縮放,分別由旋轉(zhuǎn)矩陣和可學(xué)習(xí)參數(shù)表示。該方法以較低的資源消耗取得了較好的效果。
其中分別表示繞x軸旋轉(zhuǎn)的旋轉(zhuǎn)矩陣和繞z軸旋轉(zhuǎn)的旋轉(zhuǎn)矩陣,由Linear生成。和的獨(dú)立性有利于網(wǎng)絡(luò)優(yōu)化。因此,我們可以根據(jù)圖4和方程5將特征的每個(gè)標(biāo)量值擴(kuò)展為3D向量。局部區(qū)域的特征聚合受到相鄰點(diǎn)和質(zhì)心之間關(guān)系的影響。PointTransformer、PAConv和 Adaptconv等方法使用相對(duì)位置和特征來(lái)建模這種關(guān)系。我們的方法還使用 MLP 在相對(duì)位置和特征上提取旋轉(zhuǎn)角度。向量的獲取可以表述如下:
其中表示相對(duì)特征和相對(duì)位置的混合特征,表示點(diǎn)j的特征。因此,我們可以使用以上方程從輸入特征和位置獲得中間向量表示。
PointVector-S: C=32, S=0, V=[1,1,1,1]
PointVector-L: C=32, S=[1,1,1,1], V=[2,4,2,2]
PointVector-XL: C=64, S=[1,1,1,1], V=[3,6,3,3]
由于PointNeXt僅使用PointNeXt-S模型進(jìn)行分類,因此我們使用我們的VPSA模塊而不是PointVector-S中的SA模塊進(jìn)行公平比較。分類任務(wù)的詳細(xì)結(jié)構(gòu)將出現(xiàn)在補(bǔ)充材料中。圖5中的VPSA模塊中有一條跳過(guò)連接路徑,它被添加到主路徑上,然后通過(guò)ReLU層。使用這種求和方法的原因是RepSurf指示了如何組合具有不同分布的兩個(gè)特征。對(duì)于分割任務(wù),需要更精細(xì)的局部信息,我們將歸約函數(shù)設(shè)置為sum。對(duì)于有利于聚合全局信息的分類任務(wù),我們選擇原始的約簡(jiǎn)函數(shù),例如max。
我們?cè)谌齻€(gè)標(biāo)準(zhǔn)基準(zhǔn)上評(píng)估我們的模型:用于語(yǔ)義分割的 S3DIS、用于現(xiàn)實(shí)世界對(duì)象分類的 ScanObjectNN 和用于零件分割的 ShapeNetPart。請(qǐng)注意,我們的模型是在 PointNeXt 的基礎(chǔ)上實(shí)現(xiàn)的。由于我們使用PointNeXt提供的訓(xùn)練策略,因此我們參考PointNeXt報(bào)告的指標(biāo)進(jìn)行公平比較。實(shí)驗(yàn)設(shè)置。我們使用 CrossEntropy 損失和標(biāo)簽平滑、AdamW 優(yōu)化器和初始學(xué)習(xí)率 lr=0.002、weight decay=10?4、余弦衰減和batch_size大小 32 來(lái)訓(xùn)練 PointVector。以上是基本設(shè)置對(duì)于所有任務(wù),特定參數(shù)將針對(duì)特定任務(wù)而更改。我們遵循數(shù)據(jù)集的訓(xùn)練、有效和測(cè)試劃分。驗(yàn)證集上的最佳模型將在測(cè)試集上進(jìn)行評(píng)估。對(duì)于S3DIS分割任務(wù),按照先前的方法對(duì)點(diǎn)云進(jìn)行下采樣,體素大小為0.4m。該任務(wù)的初始學(xué)習(xí)率設(shè)置為 0.01。對(duì)于 100 個(gè) epoch,我們使用固定的 24000 個(gè)點(diǎn)作為批次,并將批次大小設(shè)置為 8。在訓(xùn)練過(guò)程中,輸入點(diǎn)是從隨機(jī)點(diǎn)的最近鄰居中選擇的。與 Point Transformer類似,我們使用整個(gè)場(chǎng)景作為輸入來(lái)評(píng)估我們的模型。對(duì)于 ScanObjectNN分類任務(wù),我們將 250 個(gè)時(shí)期的權(quán)重衰減設(shè)置為 0.05。按照Point-BERT,輸入點(diǎn)數(shù)為1024。訓(xùn)練點(diǎn)從點(diǎn)云中隨機(jī)采樣,測(cè)試點(diǎn)在評(píng)估時(shí)均勻采樣。數(shù)據(jù)增強(qiáng)的細(xì)節(jié)與PointNeXt中的相同。對(duì)于 ShapeNetPart 零件分割,我們訓(xùn)練 PointVector-S,批量大小為 32,持續(xù) 300 個(gè)周期。遵循 PointNet++,使用 2048 個(gè)具有法線的隨機(jī)采樣點(diǎn)作為訓(xùn)練和測(cè)試的輸入。對(duì)于投票策略,我們保持與PointNeXt相同,并且僅在部分分割任務(wù)上使用它。為了確保與標(biāo)準(zhǔn)方法的公平比較,我們不使用任何集成方法,例如 SimpleView。我們還提供模型參數(shù) (Params) 和 GFLOP。此外,與 PointNeXt 類似,我們提供吞吐量(每秒實(shí)例數(shù))作為推理速度的指標(biāo)。吞吐量計(jì)算的輸入數(shù)據(jù)與PointNeXt保持一致,以便公平比較。所有方法的吞吐量均使用 128 × 1024(batch_size大小 128,點(diǎn)數(shù) 1024)作為 ScanObjectNN 上的輸入和 64 × 2048 作為 ShapeNetPart 上的輸入來(lái)測(cè)量。在 S3DIS 上,按照使用 16 × 15000 個(gè)點(diǎn)來(lái)測(cè)量吞吐量。我們使用 NVIDIA Tesla V100 32 GB GPU 和 48 核 Intel Xeon @ 2.10 Hz CPU 評(píng)估我們的模型。這里也推薦「3D視覺(jué)工坊」新課程《徹底搞懂基于Open3D的點(diǎn)云處理教程》。
S3DIS(斯坦福大型3D室內(nèi)空間)是一個(gè)具有挑戰(zhàn)性的基準(zhǔn),由6個(gè)大型室內(nèi)區(qū)域、271個(gè)房間和總共13個(gè)語(yǔ)義類別組成。對(duì)于我們?cè)赟3DIS中的模型,SetAbstraction中的鄰居數(shù)量是32,Local Vector模塊中的鄰居數(shù)量是8。PointTransformer也采用了PointNeXt使用的大部分訓(xùn)練策略和數(shù)據(jù)增強(qiáng),所以這是公平的以便我們與它進(jìn)行比較。為了進(jìn)行全面比較,我們分別在表1中報(bào)告了PointVector-L和PointVector-XL在S3DIS上經(jīng)過(guò)6倍交叉驗(yàn)證的實(shí)驗(yàn)結(jié)果,在表2中報(bào)告了S3DIS區(qū)域5的實(shí)驗(yàn)結(jié)果。如表 1 和表 2 所示,我們?cè)趦煞N驗(yàn)證選項(xiàng)上都實(shí)現(xiàn)了最先進(jìn)的性能。表 1 顯示,我們的最大模式 PointVector-XL 在總體精度 (OA)、平均精度 (mAcc) 和 mIOU 方面分別比 PointNeXt-XL 好 1.6%、3.1% 和 3.5%,而參數(shù)僅為 58%。同時(shí),我們的計(jì)算消耗以 GFLOP 計(jì)算僅為 PointNeXt-XL 的 69%。計(jì)算消耗減少,因?yàn)猷従訑?shù)量減少到 8 個(gè)。限制是我們大量使用 GroupConv (groups=channel),它在 PyTorch 中沒(méi)有得到很好的優(yōu)化,并且比標(biāo)準(zhǔn)卷積慢。因此,我們的推理速度比 PointNeXt-XL 低 6 個(gè)實(shí)例/秒。我們的模型在所有尺寸上都顯示出更好的結(jié)果。
ScanObjectNN 包含大約 15000 個(gè)真實(shí)掃描對(duì)象,這些對(duì)象被分為 15 個(gè)類,具有 2902 個(gè)唯一對(duì)象實(shí)例。由于遮擋和噪聲,該數(shù)據(jù)集面臨重大挑戰(zhàn)。與 PointNeXt 一樣,我們選擇 ScanObjectNN 的最難變體 PB T50 RS 并報(bào)告 平均值±標(biāo)準(zhǔn)差 總體精度和平均精度得分。對(duì)于我們?cè)?ScanObjectNN 中的模型,SetAbstraction 中的鄰居數(shù)量為 32。如表 3 所示,我們的 PointVector-S 模型在 OA 中實(shí)現(xiàn)了與 ScanObjectNN 相當(dāng)?shù)男阅?,而?mAcc 中比 PointNeXtS 好 0.4%。這說(shuō)明我們的方法并沒(méi)有更偏向于某些類別,而且相對(duì)穩(wěn)健。與 SA 模塊相比,我們的方法在速度和規(guī)模方面處于劣勢(shì)。由于我們引入了高維向量,因此與標(biāo)準(zhǔn) SA 模塊相比,我們?cè)诳s減之前生成了更多的計(jì)算。由于群卷積運(yùn)算和三角函數(shù),存在速度瓶頸。盡管推理速度比 PointNeXt 慢,但我們?nèi)匀槐绕渌椒ǜ?。我們的方法在分類任?wù)上表現(xiàn)不佳,其中分類任務(wù)的下采樣階段需要最大縮減函數(shù)來(lái)保留顯著的輪廓信息。
ShapeNetPart 是用于零件分割的對(duì)象級(jí)數(shù)據(jù)集。它由16個(gè)不同形狀類別的16880個(gè)模型組成,每個(gè)類別2-6個(gè)零件,總共50個(gè)零件標(biāo)簽。如表 4 所示,我們的 PointVector-S 和 PointVector-S C64 模型都取得了與 PointNeXt 相當(dāng)?shù)慕Y(jié)果。對(duì)于C=160的PointNeXt-S模型,參數(shù)數(shù)量較多,我們沒(méi)有給出相應(yīng)的模型版本。
我們?cè)赟3DIS上進(jìn)行消融實(shí)驗(yàn)來(lái)驗(yàn)證該模塊的有效性,由于PointVector-XL太大,我們對(duì)PointVector-L進(jìn)行了修改。為了使比較公平,我們沒(méi)有改變訓(xùn)練參數(shù)。面向矢量的點(diǎn)集抽象。我們將模塊抽象為兩個(gè)關(guān)鍵操作:sum和GroupConv(groups=Channel),這表明這部分模塊是通道無(wú)關(guān)的,所以我們添加一個(gè)FC來(lái)混合通道信息??紤]到通道信息已經(jīng)使用非GroupConv操作進(jìn)行混合,通道混合Linear將被刪除。卷積和分組卷積部分的卷積核大小為1×k,步幅大小為1。如表5所示,直接使用固定卷積會(huì)帶來(lái)大量參數(shù),并且與不規(guī)則結(jié)構(gòu)的擬合效果非常差。點(diǎn)云。max+FC 顯示出更好的性能,因?yàn)橹庇^地聚合具有更高維度的特征可以保留更多信息。GroupConv 獲得較低的 mIOU,因?yàn)樗鼮榻M中的每個(gè)元素分配獨(dú)立的權(quán)重;然而,求和時(shí)通道的 3D 向量的三個(gè)元素應(yīng)賦予相同的權(quán)重。此外,sum+FC 與 sum+GroupConv 沒(méi)有太大區(qū)別,因?yàn)?GroupConv 和通道混合 Linear 可以組合到 FC 的特定層中。相比之下,sum+GroupConv 的參數(shù)數(shù)量最少,性能最好,所以我們選擇了它。
我們引入了 PointVector,它在 S3DIS 語(yǔ)義分割任務(wù)上取得了最先進(jìn)的結(jié)果。我們的面向向量的點(diǎn)集抽象以更少的參數(shù)改進(jìn)了局部特征聚合?;谛D(zhuǎn)的矢量擴(kuò)展方法彌補(bǔ)了矢量表示和標(biāo)準(zhǔn)特征形式之間的差距。通過(guò)優(yōu)化兩個(gè)獨(dú)立的視角,取得了更好的效果。此外,我們的方法對(duì)各種擾動(dòng)表現(xiàn)出魯棒性。值得注意的是,進(jìn)一步探索向量表示的含義可能會(huì)揭示其他應(yīng)用,即主導(dǎo)鄰居選擇。我們的方法的速度受到分組卷積實(shí)現(xiàn)的限制。未來(lái)工作的一個(gè)有趣的途徑包括探索三個(gè)維度以上的旋轉(zhuǎn)以及將四維旋轉(zhuǎn)分解為平面旋轉(zhuǎn)的組合。此外,分量對(duì)齊后的求和比標(biāo)量投影更符合我們的假設(shè)。