《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > CVPR 2019 | PointConv:在點云上高效實現(xiàn)卷積操作

CVPR 2019 | PointConv:在點云上高效實現(xiàn)卷積操作

2019-04-21

3D 點云是一種不規(guī)則且無序的數(shù)據(jù)類型,傳統(tǒng)的卷積神經(jīng)網(wǎng)絡難以處理點云數(shù)據(jù)。來自俄勒岡州立大學機器人技術與智能系統(tǒng)(CoRIS)研究所的研究者提出了 PointConv,可以高效的對非均勻采樣的 3D 點云數(shù)據(jù)進行卷積操作,該方法在多個數(shù)據(jù)集上實現(xiàn)了優(yōu)秀的性能。如將 CIFAR-10 數(shù)據(jù)轉(zhuǎn)換成點云,使用 PointConv 實現(xiàn)例如 AlexNet 和 VGG 結構的網(wǎng)絡,可以達到與傳統(tǒng) CNN 相似的性能。


一、背景


在機器人、自動駕駛和虛擬/增強現(xiàn)實應用中,直接獲取 3D 數(shù)據(jù)的傳感器日趨普遍。由于深度信息可以消除 2D 圖像中的大量分割不確定性(segmentation ambiguity),并提供重要的幾何信息,因此具備直接處理 3D 數(shù)據(jù)的能力在這些應用中非常寶貴。但 3D 數(shù)據(jù)通常以點云的形式出現(xiàn)。點云通常由一組無排列順序的 3D 點表示,每個點上具有或不具有附加特征(例如 RGB 信息)。由于點云的無序特性,并且其排列方式不同于 2D 圖像中的常規(guī)網(wǎng)格狀像素點,傳統(tǒng)的 CNN 很難處理這種無序輸入。


本文提出了一種可以在非均勻采樣的 3D 點云數(shù)據(jù)上高效進行卷積操作的方法。我們稱這種操作為 PointConv。PointConv 能夠在 3D 點云上構建多層深度卷積網(wǎng)絡,其功能與 2D CNN 在柵格圖像上的功能類似。但該結構可實現(xiàn)與 2D 卷積網(wǎng)絡相同的平移不變性,以及點云中對點順序的置換不變性。在實驗中,PointConv 可以在分類問題上的效果達到當前最佳水平,同時,在 3D 點云的語義分割上能夠給出遠超論文提交時的最優(yōu)的分割結果。為了說明 PointConv 可以實現(xiàn)真正的卷積操作,我們還在圖像分類數(shù)據(jù)庫 CIFAR-10 上進行了測試。實驗表明,PointConv 能夠達到類似于傳統(tǒng) CNN 的分類精度。


該研究的主要貢獻包括:


提出密度重加權卷積操作 PointConv,它能夠完全近似任意一組 3D 點集上的 3D 連續(xù)卷積。

通過改變求和順序,提出了 PointConv 的高效實現(xiàn)。

將 PointConv 擴展到反卷積(PointDeconv),以獲得更好的分割結果。

 

二、PointConv


兩個連續(xù)函數(shù) f(x) 和 g(x) 關于一個 d 維向量 x 的卷積操作可以用下式表示:

 

微信圖片_20190421151859.png


由于圖像一般以固定的網(wǎng)格狀的矩陣形式存儲,因此在圖像上,卷積核通常在 3x3,5x5 的固定網(wǎng)格上實現(xiàn)。在 CNN 中,不同的鄰域采用同一個卷積核進行卷積,從而實現(xiàn)平移不變性。由此可見,圖像上的卷積操作是連續(xù)卷積操作的一種特殊的離散化表示。


3D 點云數(shù)據(jù)的表達方式與圖像完全不同。如圖 1 所示,不同于圖像,3D 點云通常由一些 3D 點組成。3D 點之間沒有前后順序之分,因此,在 3D 點云上的卷積操作應具有排列不變性,即改變 3D 點集中點順序不應影響卷積結果。此外,點云上的卷積操作應適應于不同形狀的鄰域。

 

微信圖片_20190421152010.jpg


為滿足這些要求,在 3D 空間中,可以把連續(xù)卷積算子的權重看作關于一個 3D 參考點的局部坐標的連續(xù)函數(shù)。如下式所示:

 

微信圖片_20190421152031.png


其中,W 和 F 均為連續(xù)函數(shù),(x, y, z) 是 3D 參考點的坐標,(δx,δy,δz) 表示鄰域 G 中的 3D 點的相對坐標。(2) 式可以離散化到一個離散的 3D 點云上。同時,考慮到 3D 點云可能來自于一個不均勻采樣的傳感器,為了補償不均勻采樣,我們提出使用逆密度對學到的權重進行加權。PointConv 可以由下式表示,

 

微信圖片_20190421152053.jpg


其中,S 表示逆密度系數(shù)函數(shù)。連續(xù)函數(shù) W 可以用多層感知器(MLP)近似。函數(shù) W 的輸入是以 (x, y, z) 為中心的 3D 鄰域內(nèi)的 3D 點的相對坐標,輸出是每個點對應的特征 F 的權重。S 是一個關于密度的函數(shù),輸入是每個點的密度,輸出是每個點對應的逆密度系數(shù)。這個非線性的函數(shù)同樣可以用一個多層感知機近似。

微信圖片_20190421152117.jpg


圖 3 展示了在一個由 K 個 3D 點組成的鄰域上進行 PointConv 的流程。圖中,C_in 和 C_out 表示輸入和輸出的特征的維度,k, c_in, c_out 表示索引。對于 PointConv 來說,輸入由三部分組成:3D 點的相對坐標 P_local,密度 Density 和特征 F_in。3D 點的相對坐標 P_local 經(jīng)過連續(xù)函數(shù) MLP1 之后可以得到對應的每一個點的特征的權重 W;而密度 Density 經(jīng)過 MLP2 之后得到逆密度系數(shù) S;在得到權重 W, 逆密度系數(shù) S 以及輸入的特征 F 之后,可以利用下式進行卷積,以得到輸出特征 F_out:

 

微信圖片_20190421152145.png


PointConv 通過學習連續(xù)的卷積核函數(shù),適應了 3D 點云的不規(guī)則的特性,實現(xiàn)了置換不變性,使得卷積操作由傳統(tǒng)的圖像擴展到了 3D 點云領域。


三、高效 PointConv


最初版本的 PointConv 實現(xiàn)起來內(nèi)存消耗大、效率低。為了解決這些問題,我們提出了一種新型重構方法,將 PointConv 簡化為兩個標準操作:矩陣乘法和 2D 卷積。這個新技巧不僅利用了 GPU 的并行計算優(yōu)勢,還可以通過主流深度學習框架輕松實現(xiàn)。由于逆密度尺度沒有這樣的內(nèi)存問題,所以下面的討論主要集中在權重函數(shù) W 上。


1. 內(nèi)存問題的產(chǎn)生


具體來說,令 B 為訓練階段的 mini-batch 大小,N 為點云中的點數(shù),K 為每個局部區(qū)域的點數(shù),C_in 為輸入通道數(shù),C_out 為輸出通道數(shù)。對于點云,每個局部區(qū)域共享相同的權重函數(shù),這些可以通過 MLP 學習得到。但不同點處的權重函數(shù)計算出的權重是不同的。由 MLP 生成的權重參數(shù)張量的尺寸為 B×N×K×(C_in×C_out)。假設 B = 32,N = 512,K = 32,C_in = 64,C_out = 64,并且權重參數(shù)以單精度存儲,一層網(wǎng)絡則需要 8GB 的內(nèi)存。如此高的內(nèi)存消耗將使網(wǎng)絡很難訓練。[31] 使用非常小的網(wǎng)絡和少數(shù)的濾波器,這顯著降低了其性能。


2. 高效的 PointConv


為了解決前面提到的內(nèi)存問題,我們提出了一個基于 Lemma 1 的內(nèi)存高效版 PointConv,這也是本文最重要的貢獻。

微信圖片_20190421152211.jpg


具體的證明可以參考原論文。根據(jù) Lemma 1 重新實現(xiàn) PointConv,可實現(xiàn)完全相同的卷積操作,但大大減少內(nèi)存消耗。采用 1 中相同的配置,單層卷積操作的內(nèi)存占用將由 8G 縮小為 0.1G 左右,變?yōu)樵瓉淼?1/64. 圖 5 展示了高效的 PointConv 卷積操作。

微信圖片_20190421152338.jpg


 四、反卷積操作


在分割任務中,將信息從粗糙層傳遞到精細層的能力非常重要。由于 PointConv 可以實現(xiàn)標準卷積操作,因此將 PointConv 擴展為 PointDeconv 是很順理成章的。PointDeconv 由兩部分組成:插值和 PointConv。首先,使用一個線性插值算法來得到精細層的特征的初始值,再在精細層上進行一個 PointConv 進行優(yōu)化特征,從而獲得較高精度的特征值。圖 4 展示了反卷積操作的具體流程。

 

微信圖片_20190421152515.jpg


五、實驗


為了說明 PointConv 的有效性,我們在常用的 3D 點云數(shù)據(jù)庫上進行了測試,包括 ModelNet40,ShapeNet 和 ScanNet. 同時,為了說明 PointConv 是可以和圖像 CNN 進行等價,我們在 CIFAR10 上進行了測試。這里我們重點介紹在 ScanNet 上的測試結果,更多實驗結果請參考論文原文。如表 3 所示,僅使用 4 層 PointConv 網(wǎng)絡,即可在場景的的語義分割測試中達到遠好于其他算法的效果,達到了當前最優(yōu)水平。圖 7 給出了室內(nèi)場景語義分割的一些可視化結果。


 

微信圖片_20190421152542.jpg

微信圖片_20190421152606.jpg


為了說明 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 同等水平的學習效果。

 

微信圖片_20190421152627.jpg


論文:PointConv: Deep Convolutional Networks on 3D Point Clouds

微信圖片_20190421152652.jpg


論文地址:https://arxiv.org/pdf/1811.07246.pdf

代碼地址:https://github.com/DylanWusee/pointconv


摘要:與使用常規(guī)密集網(wǎng)格表示的圖像不同,3D 點云是不規(guī)則且無序的,因此對它們執(zhí)行卷積存在困難。在本文中,我們將動態(tài)濾波器擴展為一個名為 PointConv 的新型卷積操作。PointConv 可以在點云上構建深度卷積網(wǎng)絡。我們將卷積核看作 3D 點局部坐標的非線性函數(shù),該函數(shù)由權重和密度函數(shù)組成。對于給定點,利用多層感知器網(wǎng)絡學習權重函數(shù),通過核密度估計學習密度函數(shù)。為了高效地計算權重函數(shù),我們提出了一種新型計算方法,使網(wǎng)絡規(guī)模顯著擴大,性能顯著提高。學習到的卷積核可用于計算 3D 空間中任何點集上的平移不變卷積和置換不變卷積。此外,PointConv 還可以用作反卷積算子,將從子采樣點云中提取的特征傳遞回原始分辨率。在 ModelNet40、ShapeNet 和 ScanNet 上的實驗表明,基于 PointConv 構建的深度卷積神經(jīng)網(wǎng)絡在 3D 點云上執(zhí)行操作時能夠在具有挑戰(zhàn)性的語義分割基準上實現(xiàn)當前最優(yōu)結果。此外,將 CIFAR-10 轉(zhuǎn)換為點云的實驗表明,基于 PointConv 構建的網(wǎng)絡性能堪比在類似結構的 2D 圖像中執(zhí)行操作的卷積網(wǎng)絡。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。