3D 點云是一種不規(guī)則且無序的數(shù)據(jù)類型,傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)難以處理點云數(shù)據(jù)。來自俄勒岡州立大學(xué)機器人技術(shù)與智能系統(tǒng)(CoRIS)研究所的研究者提出了 PointConv,可以高效的對非均勻采樣的 3D 點云數(shù)據(jù)進行卷積操作,該方法在多個數(shù)據(jù)集上實現(xiàn)了優(yōu)秀的性能。如將 CIFAR-10 數(shù)據(jù)轉(zhuǎn)換成點云,使用 PointConv 實現(xiàn)例如 AlexNet 和 VGG 結(jié)構(gòu)的網(wǎng)絡(luò),可以達到與傳統(tǒng) CNN 相似的性能。
一、背景
在機器人、自動駕駛和虛擬/增強現(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ù)上高效進行卷積操作的方法。我們稱這種操作為 PointConv。PointConv 能夠在 3D 點云上構(gòu)建多層深度卷積網(wǎng)絡(luò),其功能與 2D CNN 在柵格圖像上的功能類似。但該結(jié)構(gòu)可實現(xiàn)與 2D 卷積網(wǎng)絡(luò)相同的平移不變性,以及點云中對點順序的置換不變性。在實驗中,PointConv 可以在分類問題上的效果達到當(dāng)前最佳水平,同時,在 3D 點云的語義分割上能夠給出遠超論文提交時的最優(yōu)的分割結(jié)果。為了說明 PointConv 可以實現(xiàn)真正的卷積操作,我們還在圖像分類數(shù)據(jù)庫 CIFAR-10 上進行了測試。實驗表明,PointConv 能夠達到類似于傳統(tǒng) CNN 的分類精度。
該研究的主要貢獻包括:
提出密度重加權(quán)卷積操作 PointConv,它能夠完全近似任意一組 3D 點集上的 3D 連續(xù)卷積。
通過改變求和順序,提出了 PointConv 的高效實現(xiàn)。
將 PointConv 擴展到反卷積(PointDeconv),以獲得更好的分割結(jié)果。
二、PointConv
兩個連續(xù)函數(shù) f(x) 和 g(x) 關(guān)于一個 d 維向量 x 的卷積操作可以用下式表示:
由于圖像一般以固定的網(wǎng)格狀的矩陣形式存儲,因此在圖像上,卷積核通常在 3x3,5x5 的固定網(wǎng)格上實現(xiàn)。在 CNN 中,不同的鄰域采用同一個卷積核進行卷積,從而實現(xiàn)平移不變性。由此可見,圖像上的卷積操作是連續(xù)卷積操作的一種特殊的離散化表示。
3D 點云數(shù)據(jù)的表達方式與圖像完全不同。如圖 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 點云可能來自于一個不均勻采樣的傳感器,為了補償不均勻采樣,我們提出使用逆密度對學(xué)到的權(quá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ù)同樣可以用一個多層感知機近似。
圖 3 展示了在一個由 K 個 3D 點組成的鄰域上進行 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 之后,可以利用下式進行卷積,以得到輸出特征 F_out:
PointConv 通過學(xué)習(xí)連續(xù)的卷積核函數(shù),適應(yīng)了 3D 點云的不規(guī)則的特性,實現(xiàn)了置換不變性,使得卷積操作由傳統(tǒng)的圖像擴展到了 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,這也是本文最重要的貢獻。
具體的證明可以參考原論文。根據(jù) Lemma 1 重新實現(xiàn) PointConv,可實現(xiàn)完全相同的卷積操作,但大大減少內(nèi)存消耗。采用 1 中相同的配置,單層卷積操作的內(nèi)存占用將由 8G 縮小為 0.1G 左右,變?yōu)樵瓉淼?1/64. 圖 5 展示了高效的 PointConv 卷積操作。
四、反卷積操作
在分割任務(wù)中,將信息從粗糙層傳遞到精細層的能力非常重要。由于 PointConv 可以實現(xiàn)標(biāo)準(zhǔn)卷積操作,因此將 PointConv 擴展為 PointDeconv 是很順理成章的。PointDeconv 由兩部分組成:插值和 PointConv。首先,使用一個線性插值算法來得到精細層的特征的初始值,再在精細層上進行一個 PointConv 進行優(yōu)化特征,從而獲得較高精度的特征值。圖 4 展示了反卷積操作的具體流程。
五、實驗
為了說明 PointConv 的有效性,我們在常用的 3D 點云數(shù)據(jù)庫上進行了測試,包括 ModelNet40,ShapeNet 和 ScanNet. 同時,為了說明 PointConv 是可以和圖像 CNN 進行等價,我們在 CIFAR10 上進行了測試。這里我們重點介紹在 ScanNet 上的測試結(jié)果,更多實驗結(jié)果請參考論文原文。如表 3 所示,僅使用 4 層 PointConv 網(wǎng)絡(luò),即可在場景的的語義分割測試中達到遠好于其他算法的效果,達到了當(dāng)前最優(yōu)水平。圖 7 給出了室內(nèi)場景語義分割的一些可視化結(jié)果。
為了說明 PointConv 可以等價于圖像上的 CNN,我們在 CIFAR10 上進行了測試。首先,將 CIFAR10 的圖像像素轉(zhuǎn)變?yōu)榫W(wǎng)格狀排列的點云,再使用 PointConv 進行分類。表格 4 給出了 PointConv 與其他 3D 點云算法和圖像 CNN 的分類精度對比。可以看到,5 層的 PointConv 可以達到和 AlexNet(5 層 CNN)相似的精度,同時,PointConv(VGG) 也可以達到和 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)濾波器擴展為一個名為 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ī)模顯著擴大,性能顯著提高。學(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ò)。