【泡泡點雲時空】PVCNN:用於高效3D深度學習的點-體素卷積神經網絡

2021-02-15 泡泡機器人SLAM

泡泡點雲時空,帶你精讀點雲領域頂級會議文章

標題:Point-Voxel CNN for Efficient 3D Deep Learning

作者:Zhijian Liu, Haotian Tang, Rui Zhu, Yujun Lin, Song Han

來源:NIPS 2019

編譯:陸煜衡

審核:鄭森華

歡迎個人轉發朋友圈;其他機構或自媒體如需轉載,後臺留言申請授權

本文提出了Point-Voxel CNN(PVCNN),可進行高效,快速的3D深度學習。先前的工作使用基於體素或基於點的神經網絡模型處理3D數據。但是,這兩種方法在計算上都不夠高效。基於體素的模型的計算成本和內存佔用量隨輸入解析度的增加而呈立方增長,從而使其無法擴展解析度。對於基於點的網絡,最多有80%的時間被浪費在構造內存局部性很差的稀疏數據,而不是實際的特徵提取上。在本文中,我們提出了PVCNN,它以點表示作為3D輸入數據,以減少內存消耗,同時在體素中進行卷積以減少不規則,稀疏數據訪問並提高局部性。本文提出地PVCNN在內存消耗及計算速度方面都是高效的。我們在對語義分割和部件分割數據集上對PVCNN進行了評估,PVCNN性能比基於體素的基準高,且GPU內存減少到10%,同時,相比於基於點的方法,PVCNN實現了平均7倍的運算加速。值得注意的是,精簡版的PVCNN在零件和場景分割基準上的精度比PointNet(極其高效的模型)高,且平均速度提升了2倍。我們在3D對象檢測任務上驗證了PVCNN通用有效性:通過用PVConv替換Frustrum PointNet中的卷積操作,其mAP超過Frustrum PointNet ++ 2.4%,實測速度提高了1.5倍,且GPU內存減少了。

1、 提出一種在計算效率與內存利用率都更高效的3D深度學習框架。

2、 在點雲語義分割與部件分割數據集上驗證了本文方法的高效性。

基於體素的特徵聚合

卷積的核心是聚集鄰近信息以提取局部特徵。基於體素的規則性,我們選擇在體素中執行特診聚合。

規範化:不同點雲的尺度可能大不相同,因此,在將點雲轉換為體素之前,我們對坐標{pk}進行歸一化。首先,我們將所有點轉換為以重心為原點的局部坐標系。之後,通過將所有坐標除以max||pk||2,將點歸一化為單位球體,然後縮放並將點轉換為[0,1]。注意,點特徵{fk}在規範化過程中保持不變。我們將歸一化坐標表示為{ˆpk}。

體素化:我們將規範化的點雲轉換為體素坐標,轉換公式如式2所示:

式中r代表體素解析度,II[.]是坐標ˆ pk是否屬於體素網格(u,v,w)的二進位指示符,fk,c表示與ˆ pk對應的第c個通道特徵,Nuvw是歸一化因子(即落在那個體素網格上的點數)。

特徵聚合:將點轉換為體素網格後,我們應用3D體素卷積來聚合特徵。類似於常規3D膠捲機,我們在每個3D卷積後加上批歸一化[和非線性激活函數。

反體素化:由於我們需要將信息與基於點的特徵轉換分支融合在一起,因此我們將基於體素的特徵轉換回點雲域。體素到點映射的直接實現是最近鄰插值(即,將體素的特徵分配給所有在體素內的點)。但是,這將使相同體素網格中的點始終共享相同的特徵。因此,我們改為利用三次線性插值的方法,以確保映射到每個點的特徵是不同的。由於我們的體素化和去體素化都是可導的,因此,可以用端到端的方式優化整個基於體素的特徵聚合網絡。

基於點的特徵變換

基於體素的特徵聚合分支以粗粒度融合鄰域信息。但是,為了建模細粒度的單個點特徵,僅基於低解析度體素的方法可能還不夠。為此,我們直接在每個點上進行操作,用MLP提取單個點的特徵。儘管方法簡單,MLP輸出的每個點都有明顯的區別性特徵。這種高解析度的單點信息對於補充基於粗體素的信息非常關鍵。

如表1所示,我們的PVCNN優於所有以前的模型。與PointNet ++相比,PVCNN直接將其骨幹(PointNet)的準確性提高了2.5%,而開銷卻更小。我們還通過減少到25%(表示為0.25×C)和50%(表示為0.5×C)的通道數來設計PVCNN的縮小版本。生成的模型僅需要PointNet的53.5%的延遲,並且它仍然優於具有複雜鄰域聚合的幾種基於點的方法,包括RSNet,PointNet ++和DGCNN。

室內場景分割實驗:

如表4所示,PVCNN可以將以PointNet為骨幹網的性能提高13%以上,並且在準確性和延遲性方面也大大優於DGCNN(涉及複雜的圖形卷積)。值得注意的是,我們的PVCNN ++性能優於最新的基於點的模型(PointCNN)1.7%,延遲降低了4倍,優於,基於體素的模型(3D-UNet)4%,延遲降低了8倍,並降低了GPU內存消耗。

3D物體檢測:

在表5中,儘管我們的模型在邊界框的的預測中沒有沒有聚合領域特徵,但在大部分類別的性能中仍然優於F-PointNet++,且速度提升了1.8倍。通過使用PVConv改善邊界框預測網絡,我們的完整模型在所有類別上性能均明顯由於基線。與F-PointNet基線相比,我們的PVCNN在行人類別中mAP提高了8%,而騎自行車者類別中的mAP提高了3.5-6.8%,這表明我們提出的PVCNN既高效又富有表現力。

我們提出了Point-Voxel CNN(PVCNN)進行快速,高效的3D深度學習。針對基於體素和點的深度學習方法,我們擇優取之,減少了內存佔用和不規則的內存訪問。我們用稀疏,不規則點來高效的表示3D輸入數據,並在正則,規範地體素表示中進行高效的卷積。在多項任務上的大量實驗一致地證明了我們提出的方法的有效性和高效性。我們相信,我們的研究將打破基於體素的卷積低效的刻板印象,並為設計基於體素和點的網絡結提供了啟示。

Abstract

We present Point-Voxel CNN (PVCNN) for efficient, fast 3D deep learning. Previous work processes 3D data using either voxel-based or point-based NN models. However, both approaches are computationally inefficient. The computation cost and memory footprints of the voxel-based models grow cubically with the input resolution, making it memory-prohibitive to scale up the resolution. As for point-based networks, up to 80% of the time is wasted on structuring the sparse data which have rather poor memory locality, not on the actual feature extraction. In this paper, we propose PVCNN that represents the 3D input data in points to reduce the memory consumption, while performing the convolutions in voxels to reduce the irregular, sparse data access and improve the locality. Our PVCNN model is both memory and computation efficient. Evaluated on semantic and part segmentation datasets, it achieves much higher accuracy than the voxel-based baseline with 10× GPU memory reduction; it also outperforms the state-of-the-art point-based models with 7× measured speedup on average. Remarkably, the narrower version of PVCNN achieves 2× speedup over PointNet (an extremely efficient model) on part and scene segmentation benchmarks with much higher accuracy. We validate the general effectiveness of PVCNN on 3D object detection: by replacing the primitives in Frustrum PointNet with PVConv, it outperforms Frustrum PointNet++ by 2.4% mAP on average with 1.5× measured speedup and GPU memory reduction.

如果你對本文感興趣,想要下載完整文章進行閱讀,可以關注【泡泡機器人SLAM】公眾號。

歡迎來到泡泡論壇,這裡有大牛為你解答關於SLAM的任何疑惑。

有想問的問題,或者想刷帖回答問題,泡泡論壇歡迎你!

泡泡網站:www.paopaorobot.org

泡泡論壇:http://paopaorobot.org/bbs/

泡泡機器人SLAM的原創內容均由泡泡機器人的成員花費大量心血製作而成,希望大家珍惜我們的勞動成果,轉載請務必註明出自【泡泡機器人SLAM】微信公眾號,否則侵權必究!同時,我們也歡迎各位轉載到自己的朋友圈,讓更多的人能進入到SLAM這個領域中,讓我們共同為推進中國的SLAM事業而努力!

泡泡機器人SLAM的原創內容均由泡泡機器人的成員花費大量心血製作而成,希望大家珍惜我們的勞動成果,轉載請務必註明出自【泡泡機器人SLAM】微信公眾號,否則侵權必究!同時,我們也歡迎各位轉載到自己的朋友圈,讓更多的人能進入到SLAM這個領域中,讓我們共同為推進中國的SLAM事業而努力!

商業合作及轉載請聯繫liufuqiang_robot@hotmail.com

相關焦點

  • 【泡泡圖靈智庫】彎曲體素聚類:具有實時性能的3D LiDAR點雲精確分割方法
    給定3D LiDAR點雲,應該如何快速準確地對其進行分割?在移動機器人領域,快速、準確地分割3D LiDAR點雲是一個重要的問題,在分類,跟蹤,SLAM等方面具有廣泛的應用。儘管它很重要,但是現有的方法無法兼顧速度和準確性。尤其是在3D空間中執行分割的方法處理速度太慢,無法實時應用。
  • 【泡泡點雲時空】Voxel Map:針對視覺SLAM的體素地圖
    泡泡點雲時空,帶你精讀點雲領域頂級會議文章標題:Voxel Map for Visual SLAM作者:Manasi Muglikar, Zichao Zhang and Davide Scaramuzza來源:ICRA 2020編譯:王宇傑審核:lionheart歡迎個人轉發朋友圈;其他機構或自媒體如需轉載
  • 【泡泡點雲時空】R-MVSNet:高解析度多視圖三維重建網絡
    泡泡點雲時空,帶你精讀點雲領域頂級會議文章標題:R-MVSNet: Recurrent MVSNet for High-resolution Multi-view Stereo Depth Inference作者:Yao Yao, Zixin Luo, Shiwei Li, Tianwei Shen, Tian Fang, Long Quan
  • 【泡泡點雲時空】OpenGF:包含世界各地公開ALS超大規模地面濾波點雲數據集
    最近,有監督深度學習算法在3D場景理解方面的突破為更好地解決這類問題帶來了新的解決方案。然而,用於地面提取的大規模的場景豐富的公共數據集很少,這在很大程度上限制了有效的基於深度學習的地面過濾方法的發展。為此,我們推出了首個超大型地面濾波數據集OpenGF,該數據集覆蓋了超過47平方公裡的9個不同的典型地形場景,建立在全球4個不同國家的公開ALS點雲之上。
  • 【泡泡點雲時空】PointMixup:點雲數據增強
    泡泡點雲時空,帶你精讀點雲領域頂級會議文章標題:PointMixup: Augmentation for Point Clouds作者:Yunlu Chen, Vincent Tao Hu, Efstratios Gavves, Thomas Mensink, Pascal Mettes, Pengwan Yang, and Cees G.
  • 【泡泡點雲時空】真實感環境下使用點雲感知的問答
    泡泡點雲時空,帶你精讀點雲領域頂級會議文章標題:Embodied Question Answering in Photorealistic Environments with Point Cloud Perception作者:Erik Wijmans, Samyak Datta, Oleksandr Maksymets, Abhishek Das,
  • 基於深度學習的三維點雲綜述part2-3D物體檢測與跟蹤
    該文章提出了一種用於端到端訓練的多任務,多傳感器的三維物體檢測網絡。其中包含的任務有,2D物體檢測,地面估計,深度完善。這些多種任務使得網絡可以更好地學習特徵表示,交叉模態的特徵表示可以被進一步使用去生成更精確的物體檢測結果。結果在2D,3D,BEV檢測中的性能上。比之前的方法性能都要好。
  • 深度學習-卷積神經網絡原理
    卷積神經網絡原理概述卷積神經網絡又稱作(ConvNet, CNN),它的出現解決了人工智慧圖像識別的難題,圖像識別數據量大,並且在識別的過程中很難保留原有的信息
  • Open3D點雲操作
    本教程演示了對點雲的基本操作。顯示點雲[2]:print("Load a ply point cloud, print it, and render it")pcd = o3d.io.read_point_cloud("../..
  • 【點雲一分鐘】SO-Net:用於點雲分析的自組織網絡
    Chen, Gim Hee Lee來源:CVPR2018編譯:鄭英林(1)歡迎個人轉發朋友圈;其他機構或自媒體如需轉載,後臺留言申請授權Abstract本文提出SO-Net,一種用於無序點雲深度學習的置換不變網絡結構。 SO-Net通過構建自組織映射(SOM)來模擬點雲的空間分布。
  • 【泡泡一分鐘】VoteNet:一個3D深度學習的AR校準方法,用於使用深度數據的機器人
    因此,我們提出了一個使用3D深度數據標定AR設備的新穎方法。我們使用頭戴式的AR設備Microsoft Holoens的深度相機進行基於深度學習的校準。因此,我們基於最近發布的VoteNet架構修改了一個神經網絡,該架構可使用Hololens觀測到的原始點雲數據。本文最終獲得了令人滿意的實驗結果,並且消除了標記等外部工作,為AR的集成提供了更加直觀靈活的工作流程。
  • 【泡泡圖靈智庫】在手機上實現實時的單眼3D重建
    與大多數現有的僅使用基於點雲的3D模型在線生成技術或離線的表面網格生成技術不同,本文提供了一種全新的在線增量網格生成方法來實現快速的在線密集表面網格重建,以滿足實時的AR應用需求。對於6DoF跟蹤的每個關鍵幀,本文使用多視圖半全局匹配(SGM)的方法進行的單眼深度估計,然後進行深度細化處理。生成模塊將每個估計的關鍵幀深度圖融合到在線密集表面網格上,這對於實現逼真的AR效果(例如碰撞和遮擋等)。
  • 計算機視覺方向簡介 | 深度學習視覺三維重建
    常規的3D shape representation有以下四種:深度圖(depth)、點雲(point cloud)、體素(voxel)、網格(mesh)。體素體素是三維空間中的一個有大小的點,一個小方塊,相當於是三維空間種的像素。
  • 3D場景理解中的點雲深度學習
    兩個網絡,對輸入順序的置換不變性,輕量級的結構,對數據的丟失非常魯棒,提供了一個統一的框架為不同的任務服務。具體在3d場景理解中,3d物體識別的應用AI不僅僅在場景理解中有用,產品設計圖片集合中圖片之間的關係。
  • 【點雲論文速遞】一款優秀的三維深度學習Pytorch庫——Kaolin
    作者提出了一個旨在加速3D深度學習研究的PyTorch庫——Kaolin。Kaolin這個名字來自於kaolinite,中文意思是高嶺石,亦稱「高嶺土」、「瓷土」,是一種黏土礦物,有時會在三維建模中用到。Kaolin實現了多種可用於3D深度學習的模塊。
  • ​pen3D點雲操作手冊
    本教程演示了對點雲的基本操作。顯示點雲[2]:print("Load a ply point cloud, print it, and render it")pcd = o3d.io.read_point_cloud("../..
  • 深度學習|卷積神經網絡(CNN)介紹(前篇)
    以上闡述了深度神經網絡(DNN)的基本理論,關於這些介紹請參考以下推送:為什麼要有深度學習?系統學習清單深度學習|神經網絡模型簡介和梯度下降求解深度學習|神經網絡模型實現手寫字分類求解思路深度學習|神經網絡模型求解思路總結深度學習|對隱含層的感性認識接下來,介紹下一種圖像處理應用廣泛的卷積神經網絡算法(CNN),它是深度學習家族中非常基礎且重要的算法。為什麼要有CNN?
  • 【泡泡圖靈智庫】利用深度學習和幾何的3D Bounding Box預測
    這是單目三維檢測中比較有代表性的一篇文章,同時也是被百度Apollo引用的文章,其可以看做是一篇深度學習獲取上下文信息能力和幾何約束融合的文章,後來單目三維檢測的工作很多都利用這個幾何約束作為求精模塊。我們提出一種單目三維檢測和位姿預測的方法。
  • 【泡泡一分鐘】全向深度擴展網絡
    為了準確地恢復缺失的深度,我們設計了一種全方位的深度擴展卷積神經網絡(ODE-CNN),其中在特徵編碼層的末端嵌入了球形特徵變換層(SFTL),以及一個可變形的卷積空間傳播網絡( D-CSPN)附加在特徵解碼層的末尾。前者將全向坐標中每個像素的鄰域重新採樣為投影坐標,從而減少了特徵學習的難度,後者則通過CNN自動找到合適的上下文以將結構很好地對準參考圖像的估計深度,可顯著改善視覺質量。
  • AAAI 2020 Oral | TANet:提升點雲3D目標檢測的穩健性
    TA 模塊聯合考慮通道注意力、點注意力和體素注意力,從而增強目標的關鍵信息,同時抑制不穩定的點。此外,新型堆疊 TA 模塊還可以進一步利用多級特徵注意力。而 CFR 模塊可在不過度消耗計算成本的情況下提升定位準確率。在 KITTI 數據集驗證集上的實驗結果表明,在難度較大的噪聲環境中(即在每個對象周圍添加額外的隨機噪聲點),TANet 的性能遠遠超過當前最優方法。