當前位置:
首頁 > 知識 > PointConv:在點雲上高效實現卷積操作

PointConv:在點雲上高效實現卷積操作

選自arXiv

作者:Wenxuan Wu、Zhongang Qi、Li Fuxin

機器之心編譯

機器之心編輯部

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

一、背景

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

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

該研究的主要貢獻包括:

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

通過改變求和順序,提出了 PointConv 的高效實現。

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

二、PointConv

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

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

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

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

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

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

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

PointConv 通過學習連續的卷積核函數,適應了 3D 點雲的不規則的特性,實現了置換不變性,使得卷積操作由傳統的圖像擴展到了 3D 點雲領域。

三、高效 PointConv

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

1. 內存問題的產生

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

2. 高效的 PointConv

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

具體的證明可以參考原論文。根據 Lemma 1 重新實現 PointConv,可實現完全相同的卷積操作,但大大減少內存消耗。採用 1 中相同的配置,單層卷積操作的內存佔用將由 8G 縮小為 0.1G 左右,變為原來的 1/64. 圖 5 展示了高效的 PointConv 卷積操作。

四、反卷積操作

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

五、實驗

為了說明 PointConv 的有效性,我們在常用的 3D 點雲資料庫上進行了測試,包括 ModelNet40,ShapeNet 和 ScanNet. 同時,為了說明 PointConv 是可以和圖像 CNN 進行等價,我們在 CIFAR10 上進行了測試。這裡我們重點介紹在 ScanNet 上的測試結果,更多實驗結果請參考論文原文。如表 3 所示,僅使用 4 層 PointConv 網路,即可在場景的的語義分割測試中達到遠好於其他演算法的效果,達到了當前最優水平。圖 7 給出了室內場景語義分割的一些可視化結果。

為了說明 PointConv 可以等價於圖像上的 CNN,我們在 CIFAR10 上進行了測試。首先,將 CIFAR10 的圖像像素轉變為網格狀排列的點雲,再使用 PointConv 進行分類。表格 4 給出了 PointConv 與其他 3D 點雲演算法和圖像 CNN 的分類精度對比。可以看到,5 層的 PointConv 可以達到和 AlexNet(5 層 CNN)相似的精度,同時,PointConv(VGG) 也可以達到和VGG相似的分類精度。與此同時,其他的 3D 點雲演算法,如 PointCNN 等,則僅能取得 80% 左右的分類精度。這項實驗說明了 PointConv 可以取得與圖像 CNN 同等水平的學習效果。

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

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

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

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

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。

------------------------------------------------


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

你已經是一個成熟的碼農了,這些思維習慣你要有
我是怎麼走上推薦系統這條路的……

TAG:機器之心 |