論文:Point-Voxel CNN for Efficient 3D Deep Learning
來源:NeurIPS2019 Spotlight
共同一作: Zhijian Liu (MIT), Haotian Tang(上海交大)
代碼:https://github.com/mit-han-lab/pvcnn
項目:https://hanlab.mit.edu/projects/pvcnn/
3D深度學習廣泛的應用到多個領域,如AR/VR和自動駕駛等,因此受到了越來越多的關注。在這些應用中往往需要很高的實時性。然而,終端設備(如手機和VR頭戴設備)受到硬件資源和電池的嚴格限制。因此,設計高效、快速的三維深度學習模型是非常重要的。這篇文章巧妙地將voxel-based方法和point-based方法結合,新框架同時具備了兩種方法的優點。
-
已有方法的缺陷分析
論文對已有方法的缺陷進行了細緻地分析,這是文章重要的一部分。論文的分析很透徹,給筆者留下了很深的印象。
對於voxel-based類方法的缺陷,論文指出:這類方法難以平衡分辨率和內存的關係。當體素尺寸較大時,分辨率低,大量點雲佔據同一個體素,沒辦法很好地區分。然而,當減小體素尺寸,提高分辨率時,內存佔用則會成三次方增加。其實voxel-based類方法的這個缺陷學界基本已經產生了共識,因此這部分此處就不再贅述了。
接着,文章對point-based方法的缺點也進行了分析。學界對於point-based方法的缺點還鮮有報道,這也是本篇論文比較新穎的地方之一。作者指出,這類方法的內存訪問的無序性(Irregular access)和動態核開銷(Dynamic Kernel)會佔用大量時間。因爲point-based方法直接對無序點雲進行操作,以PointNet, PointCNN爲代表的這類方法需要對點雲進行鄰域查詢,因此會產生大量的隨機內存訪問(Irregular access),這部分會佔用大量運行時間。
與此同時,point-based方法還存在動態卷積核的問題。由於點雲散落分佈在三維空間中,不同於voxel-based類方法中數據那樣規整,因此需要動態地確定卷積核,這就是動態核開銷(Dynamic Kernel)。
爲了更有說服性,作者對幾類典型的point-based方法的內存訪問(Irregular access)和動態核開銷(Dynamic Kernel)時間進行了統計。如圖所示是作者對於DGCNN, PointCNN, SpiderCNN的時間消耗進行的計算。左邊兩個方框內的時間是無效時間,可以看出上述三種point-based方法有大量的無效時間。而右邊的Actual computation是實際運算時間,可以看出作者提出的網絡時間效率具有壓倒性的優勢。
-
提出PVConv
分析完voxel-based方法和point-based方法的缺陷之後,作者開始提出自己設計的網絡架構Point-Voxel Convolution(PVConv)。
如圖所示,PVConv由兩路分支構成。一個支路用來進行基於體素的特徵聚合,用來進行粗粒度的鄰域特徵提取;另一個支路用MLP對點雲直接進行特徵轉換,是一種細粒度的逐點特徵提取;最後兩種特徵會進行融合。
在上面的支路中,首先對點雲進行歸一化;然後進行體素劃分,這裏使用的體素率較低,不至於帶來太多消耗。接着將體素送入到堆疊的3D卷積層中進行特徵升維,此時學到的是每個體素的高維特徵。然後對數據進行解體素,將體素的特徵轉化到每個點上去。
這裏的操作很容易讓人想到PointNet++中的Grouping-MLP-Interpolate的結構。但是作者很巧妙地用Voxelize代替了Grouping,從而避免了前文提到的隨機內存訪問(Irregular access)的時間消耗。而此處的Devoxelize也沒有直接採用pointnet++中的最近鄰interpolate操作,而是用了trilinear interpolation,使得不同點對應不同的特徵。
如果把上面支路提取的信息作爲鄰域特徵,那麼下方的支路則用來提取每個點的局部特徵,直接採用MLP對每個點進行特徵提取。兩種信息的融合,能夠獲得更爲豐富的特徵信息。
-
實驗結果
文章進行了豐富而詳細的實驗,包括了部件分割、語義分割和目標檢測三種任務。作者不僅關心實驗效果而且重點分析GPU的內存消耗。與主流點雲深度學習框架(PointNet, PointCNN, F-PointNet等)進行了比較,效果很好。部分實驗結果如下:
語義分割任務,可以說是,利用更少的內存消耗,獲得了更好的實驗效果。
目標檢測,性能和內存消耗方面,基本上都超過了F-PointNet++。
-
總結
這篇論文提出了Point-VoxelCNN (PVCNN),將點雲處理領域的兩種方法進行了結合,想法簡單巧妙,而且文章對兩種方法都進行了缺點的分析,特別是對於point-based類方法的分析,讓人印象深刻。此外,文章中對於內存佔用的分析計算的思路也值得借鑑,在改進其他網絡的過程中,是否也考慮下這個層面呢,沒準會給網絡性能找到新的突破口。
歡迎關注公衆號:3D點雲深度學習
相關文章