3D 點云是一種不規(guī)則且無序的數(shù)據(jù)類型,,傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)難以處理點云數(shù)據(jù),。來自俄勒岡州立大學(xué)機(jī)器人技術(shù)與智能系統(tǒng)(CoRIS)研究所的研究者提出了 PointConv,可以高效的對非均勻采樣的 3D 點云數(shù)據(jù)進(jìn)行卷積操作,,該方法在多個數(shù)據(jù)集上實現(xiàn)了優(yōu)秀的性能,。如將 CIFAR-10 數(shù)據(jù)轉(zhuǎn)換成點云,,使用 PointConv 實現(xiàn)例如 AlexNet 和 VGG 結(jié)構(gòu)的網(wǎng)絡(luò),,可以達(dá)到與傳統(tǒng) CNN 相似的性能。
一,、背景
在機(jī)器人,、自動駕駛和虛擬/增強(qiáng)現(xiàn)實應(yīng)用中,直接獲取 3D 數(shù)據(jù)的傳感器日趨普遍。由于深度信息可以消除 2D 圖像中的大量分割不確定性(segmentation ambiguity),,并提供重要的幾何信息,,因此具備直接處理 3D 數(shù)據(jù)的能力在這些應(yīng)用中非常寶貴。但 3D 數(shù)據(jù)通常以點云的形式出現(xiàn),。點云通常由一組無排列順序的 3D 點表示,,每個點上具有或不具有附加特征(例如 RGB 信息)。由于點云的無序特性,,并且其排列方式不同于 2D 圖像中的常規(guī)網(wǎng)格狀像素點,,傳統(tǒng)的 CNN 很難處理這種無序輸入。
本文提出了一種可以在非均勻采樣的 3D 點云數(shù)據(jù)上高效進(jìn)行卷積操作的方法,。我們稱這種操作為 PointConv,。PointConv 能夠在 3D 點云上構(gòu)建多層深度卷積網(wǎng)絡(luò),其功能與 2D CNN 在柵格圖像上的功能類似,。但該結(jié)構(gòu)可實現(xiàn)與 2D 卷積網(wǎng)絡(luò)相同的平移不變性,,以及點云中對點順序的置換不變性。在實驗中,,PointConv 可以在分類問題上的效果達(dá)到當(dāng)前最佳水平,,同時,在 3D 點云的語義分割上能夠給出遠(yuǎn)超論文提交時的最優(yōu)的分割結(jié)果,。為了說明 PointConv 可以實現(xiàn)真正的卷積操作,,我們還在圖像分類數(shù)據(jù)庫 CIFAR-10 上進(jìn)行了測試。實驗表明,,PointConv 能夠達(dá)到類似于傳統(tǒng) CNN 的分類精度,。
該研究的主要貢獻(xiàn)包括:
提出密度重加權(quán)卷積操作 PointConv,它能夠完全近似任意一組 3D 點集上的 3D 連續(xù)卷積,。
通過改變求和順序,,提出了 PointConv 的高效實現(xiàn)。
將 PointConv 擴(kuò)展到反卷積(PointDeconv),,以獲得更好的分割結(jié)果,。
二、PointConv
兩個連續(xù)函數(shù) f(x) 和 g(x) 關(guān)于一個 d 維向量 x 的卷積操作可以用下式表示:
由于圖像一般以固定的網(wǎng)格狀的矩陣形式存儲,,因此在圖像上,,卷積核通常在 3x3,5x5 的固定網(wǎng)格上實現(xiàn),。在 CNN 中,,不同的鄰域采用同一個卷積核進(jìn)行卷積,從而實現(xiàn)平移不變性,。由此可見,,圖像上的卷積操作是連續(xù)卷積操作的一種特殊的離散化表示,。
3D 點云數(shù)據(jù)的表達(dá)方式與圖像完全不同。如圖 1 所示,,不同于圖像,,3D 點云通常由一些 3D 點組成。3D 點之間沒有前后順序之分,,因此,,在 3D 點云上的卷積操作應(yīng)具有排列不變性,即改變 3D 點集中點順序不應(yīng)影響卷積結(jié)果,。此外,,點云上的卷積操作應(yīng)適應(yīng)于不同形狀的鄰域。
為滿足這些要求,,在 3D 空間中,,可以把連續(xù)卷積算子的權(quán)重看作關(guān)于一個 3D 參考點的局部坐標(biāo)的連續(xù)函數(shù)。如下式所示:
其中,,W 和 F 均為連續(xù)函數(shù),,(x, y, z) 是 3D 參考點的坐標(biāo),(δx,δy,δz) 表示鄰域 G 中的 3D 點的相對坐標(biāo),。(2) 式可以離散化到一個離散的 3D 點云上,。同時,考慮到 3D 點云可能來自于一個不均勻采樣的傳感器,,為了補(bǔ)償不均勻采樣,,我們提出使用逆密度對學(xué)到的權(quán)重進(jìn)行加權(quán)。PointConv 可以由下式表示,,
其中,,S 表示逆密度系數(shù)函數(shù)。連續(xù)函數(shù) W 可以用多層感知器(MLP)近似,。函數(shù) W 的輸入是以 (x, y, z) 為中心的 3D 鄰域內(nèi)的 3D 點的相對坐標(biāo),,輸出是每個點對應(yīng)的特征 F 的權(quán)重。S 是一個關(guān)于密度的函數(shù),,輸入是每個點的密度,,輸出是每個點對應(yīng)的逆密度系數(shù)。這個非線性的函數(shù)同樣可以用一個多層感知機(jī)近似,。
圖 3 展示了在一個由 K 個 3D 點組成的鄰域上進(jìn)行 PointConv 的流程,。圖中,C_in 和 C_out 表示輸入和輸出的特征的維度,,k, c_in, c_out 表示索引,。對于 PointConv 來說,輸入由三部分組成:3D 點的相對坐標(biāo) P_local,,密度 Density 和特征 F_in,。3D 點的相對坐標(biāo) P_local 經(jīng)過連續(xù)函數(shù) MLP1 之后可以得到對應(yīng)的每一個點的特征的權(quán)重 W,;而密度 Density 經(jīng)過 MLP2 之后得到逆密度系數(shù) S;在得到權(quán)重 W, 逆密度系數(shù) S 以及輸入的特征 F 之后,,可以利用下式進(jìn)行卷積,以得到輸出特征 F_out:
PointConv 通過學(xué)習(xí)連續(xù)的卷積核函數(shù),,適應(yīng)了 3D 點云的不規(guī)則的特性,,實現(xiàn)了置換不變性,使得卷積操作由傳統(tǒng)的圖像擴(kuò)展到了 3D 點云領(lǐng)域,。
三,、高效 PointConv
最初版本的 PointConv 實現(xiàn)起來內(nèi)存消耗大、效率低,。為了解決這些問題,,我們提出了一種新型重構(gòu)方法,將 PointConv 簡化為兩個標(biāo)準(zhǔn)操作:矩陣乘法和 2D 卷積,。這個新技巧不僅利用了 GPU 的并行計算優(yōu)勢,,還可以通過主流深度學(xué)習(xí)框架輕松實現(xiàn)。由于逆密度尺度沒有這樣的內(nèi)存問題,,所以下面的討論主要集中在權(quán)重函數(shù) W 上,。
1. 內(nèi)存問題的產(chǎn)生
具體來說,令 B 為訓(xùn)練階段的 mini-batch 大小,,N 為點云中的點數(shù),,K 為每個局部區(qū)域的點數(shù),C_in 為輸入通道數(shù),,C_out 為輸出通道數(shù),。對于點云,每個局部區(qū)域共享相同的權(quán)重函數(shù),,這些可以通過 MLP 學(xué)習(xí)得到,。但不同點處的權(quán)重函數(shù)計算出的權(quán)重是不同的。由 MLP 生成的權(quán)重參數(shù)張量的尺寸為 B×N×K×(C_in×C_out),。假設(shè) B = 32,,N = 512,K = 32,,C_in = 64,,C_out = 64,并且權(quán)重參數(shù)以單精度存儲,,一層網(wǎng)絡(luò)則需要 8GB 的內(nèi)存,。如此高的內(nèi)存消耗將使網(wǎng)絡(luò)很難訓(xùn)練。[31] 使用非常小的網(wǎng)絡(luò)和少數(shù)的濾波器,,這顯著降低了其性能,。
2. 高效的 PointConv
為了解決前面提到的內(nèi)存問題,,我們提出了一個基于 Lemma 1 的內(nèi)存高效版 PointConv,這也是本文最重要的貢獻(xiàn),。
具體的證明可以參考原論文,。根據(jù) Lemma 1 重新實現(xiàn) PointConv,可實現(xiàn)完全相同的卷積操作,,但大大減少內(nèi)存消耗,。采用 1 中相同的配置,單層卷積操作的內(nèi)存占用將由 8G 縮小為 0.1G 左右,,變?yōu)樵瓉淼?1/64. 圖 5 展示了高效的 PointConv 卷積操作,。
四、反卷積操作
在分割任務(wù)中,,將信息從粗糙層傳遞到精細(xì)層的能力非常重要,。由于 PointConv 可以實現(xiàn)標(biāo)準(zhǔn)卷積操作,因此將 PointConv 擴(kuò)展為 PointDeconv 是很順理成章的,。PointDeconv 由兩部分組成:插值和 PointConv,。首先,使用一個線性插值算法來得到精細(xì)層的特征的初始值,,再在精細(xì)層上進(jìn)行一個 PointConv 進(jìn)行優(yōu)化特征,,從而獲得較高精度的特征值。圖 4 展示了反卷積操作的具體流程,。
五,、實驗
為了說明 PointConv 的有效性,我們在常用的 3D 點云數(shù)據(jù)庫上進(jìn)行了測試,,包括 ModelNet40,,ShapeNet 和 ScanNet. 同時,為了說明 PointConv 是可以和圖像 CNN 進(jìn)行等價,,我們在 CIFAR10 上進(jìn)行了測試,。這里我們重點介紹在 ScanNet 上的測試結(jié)果,更多實驗結(jié)果請參考論文原文,。如表 3 所示,,僅使用 4 層 PointConv 網(wǎng)絡(luò),即可在場景的的語義分割測試中達(dá)到遠(yuǎn)好于其他算法的效果,,達(dá)到了當(dāng)前最優(yōu)水平,。圖 7 給出了室內(nèi)場景語義分割的一些可視化結(jié)果。
為了說明 PointConv 可以等價于圖像上的 CNN,,我們在 CIFAR10 上進(jìn)行了測試,。首先,將 CIFAR10 的圖像像素轉(zhuǎn)變?yōu)榫W(wǎng)格狀排列的點云,再使用 PointConv 進(jìn)行分類,。表格 4 給出了 PointConv 與其他 3D 點云算法和圖像 CNN 的分類精度對比,。可以看到,,5 層的 PointConv 可以達(dá)到和 AlexNet(5 層 CNN)相似的精度,,同時,PointConv(VGG) 也可以達(dá)到和 VGG 相似的分類精度,。與此同時,,其他的 3D 點云算法,如 PointCNN 等,,則僅能取得 80% 左右的分類精度。這項實驗說明了 PointConv 可以取得與圖像 CNN 同等水平的學(xué)習(xí)效果,。
論文:PointConv: Deep Convolutional Networks on 3D Point Clouds
論文地址:https://arxiv.org/pdf/1811.07246.pdf
代碼地址:https://github.com/DylanWusee/pointconv
摘要:與使用常規(guī)密集網(wǎng)格表示的圖像不同,,3D 點云是不規(guī)則且無序的,因此對它們執(zhí)行卷積存在困難,。在本文中,,我們將動態(tài)濾波器擴(kuò)展為一個名為 PointConv 的新型卷積操作。PointConv 可以在點云上構(gòu)建深度卷積網(wǎng)絡(luò),。我們將卷積核看作 3D 點局部坐標(biāo)的非線性函數(shù),,該函數(shù)由權(quán)重和密度函數(shù)組成。對于給定點,,利用多層感知器網(wǎng)絡(luò)學(xué)習(xí)權(quán)重函數(shù),,通過核密度估計學(xué)習(xí)密度函數(shù)。為了高效地計算權(quán)重函數(shù),,我們提出了一種新型計算方法,,使網(wǎng)絡(luò)規(guī)模顯著擴(kuò)大,性能顯著提高,。學(xué)習(xí)到的卷積核可用于計算 3D 空間中任何點集上的平移不變卷積和置換不變卷積,。此外,PointConv 還可以用作反卷積算子,,將從子采樣點云中提取的特征傳遞回原始分辨率,。在 ModelNet40、ShapeNet 和 ScanNet 上的實驗表明,,基于 PointConv 構(gòu)建的深度卷積神經(jīng)網(wǎng)絡(luò)在 3D 點云上執(zhí)行操作時能夠在具有挑戰(zhàn)性的語義分割基準(zhǔn)上實現(xiàn)當(dāng)前最優(yōu)結(jié)果,。此外,將 CIFAR-10 轉(zhuǎn)換為點云的實驗表明,,基于 PointConv 構(gòu)建的網(wǎng)絡(luò)性能堪比在類似結(jié)構(gòu)的 2D 圖像中執(zhí)行操作的卷積網(wǎng)絡(luò),。