3D點雲算子並無實質進步?微軟亞研重新評估,提出極簡算子PosPool

機器之心專欄

作者:Ze Liu、Han Hu等

前不久一篇探討過去十年深度度量學習研究進展的研究引發熱議,不公平的實驗設置等因素會使人們對領域進展產生誤解。那麼 3D 點雲算子領域的進展是真實的嗎?中科大和微軟亞研的研究人員進行了系統性評估,並提出了無需可學參數的新型 3D 點雲算子 PosPool。

近些年湧現了很多不同的 3D 點雲網絡和算子,它們在常見基準評測集上的性能逐步提升,但是由於各種網絡採用不同的局部算子、整體網絡結構和實現細節,人們對該領域的實質進步一直缺乏準確地評估。

最近,中科大 - 微軟亞洲研究院的研究員在 ECCV 2020 上發表文章,嘗試進行更準確、公平地評估。他們的研究指出:

1)無需更復雜的 3D 網絡,經典的深度殘差網絡就能在各種規模和各種場景的數據集上表現優異。結合幾種典型局部算子後,它們均能在 PartNet 上超過 SOTA 7 個點以上。

2)幾種典型的 3D 局部算子在相同的整體網絡下的表現令人驚奇的一致,一種極簡無參的位置池化算子 PosPool 即能比肩各種更復雜的 3D 局部算子。

論文作者還表示,他們的方法沒有引入各種複雜的設計,希望這一基準方法可以讓今後 3D 點雲識別的研究受益。

3D點雲算子並無實質進步?微軟亞研重新評估,提出極簡算子PosPool

論文鏈接:https://arxiv.org/abs/2007.01294

代碼地址:https://github.com/zeliu98/CloserLook3D

近年來,隨著 3D 掃描設備的普及,針對 3D 點雲的分析和感知在諸如自動駕駛、機器人、形狀匹配和識別等任務中得到了越來越廣泛地關注和應用。與在網格上定義的圖像和視頻不同,點雲數據是無序的且非網格化排列,這使得為網格化數據設計的功能強大的卷積神經網絡(CNN)等深度神經網絡難以得到應用。為了解決這一問題,自 PointNet++ 起,學者們提出了各種各樣的網絡,DGCN、Continuous Conv、DeepGCN、KPConv 等等,它們依賴於不同的網絡結構和不同的 3D 局部算子。

然而,由於不同工作在整體網絡架構、實現細節和局部算子上有所不同,這些 3D 網絡和算子的實質進步一直缺乏準確地評估,這嚴重阻礙了對 3D 網絡和算子的進一步理解和創新。另一方面,大部分 3D 算子僅在淺層網絡中進行了應用和驗證,它們在更深層的深度殘差網絡下的表現仍屬未知。

最近,微軟亞洲研究院的研究員發表在 ECCV 2020 上的工作嘗試對現有的代表性 3D 網絡和算子進行更公平的比較和評估。

該研究發現:

儘管不同的 3D 算子設計各異,但在相同整體網絡和實現細節下,所有這些算子的性能都驚人地相似,均在幾個代表性的基準評測集上達到了目前最好的準確率。

基於這一發現,該研究作者重新思考了為 3D 點雲處理設計各種複雜 3D 算子的必要性。為此,他們提出了一種簡單的、無需可學參數的 3D 算子——「位置池化」(PosPool),並發現它與目前各種複雜的算子相比性能不差,甚至表現略優。

該算子結合最基本的深度殘差網絡,就可以在極具挑戰性的 PartNet 數據集上超過之前的最佳方法高達 7.4 個點之多。

3D 局部算子通用數學表述和分類

該研究首先總結了不同的 3D 局部算子,並提出了一種通用數學表述,根據該通用數學表述對常見的 3D 算子做了總結和分類。

具體來說,針對每個 3D 點,點雲局部算子都是將該鄰域內的輸入特徵進行聚合的一個操作,在聚合過程中會考慮鄰域點和中心點的相對位置關係:

3D點雲算子並無實質進步?微軟亞研重新評估,提出極簡算子PosPool

其中,N(i) 表示鄰域,△p_ij 為相對位置,f_j 為輸入特徵,G(·, ·) 是編碼函數。根據編碼函數 G(·, ·) 的不同,目前典型的 3D 局部算子大致分為三類:

基於逐點多層感知機 (Point-wise MLP) 的方法:

3D點雲算子並無實質進步?微軟亞研重新評估,提出極簡算子PosPool

典型例子包括 PointNet++ 和 DGCNN 中的集合抽象 set abstract 層等。

基於偽網格特徵(Pseudo Grid Feature)的方法:

3D點雲算子並無實質進步?微軟亞研重新評估,提出極簡算子PosPool

3D點雲算子並無實質進步?微軟亞研重新評估,提出極簡算子PosPool

一個典型例子是 KPConv。

基於自適應權重(Adaptive Weight)的方法:

3D點雲算子並無實質進步?微軟亞研重新評估,提出極簡算子PosPool

典型例子包括 ContinuousConv 和 FlexConv 等。

一種簡單的無參 3D 算子:位置池化(PosPool)

在總結已有 3D 算子的同時,該研究還提出了一種新型無參 3D 算子,這一新算子基於位置池化,沒有需要學習的參數。在該算子中,G(·, ·) 是將相對位置和輸入特徵相乘的編碼函數。

如圖 1 所示,該算子將前 1/3 的輸入特徵通道與△x_ij 相乘,中間 1/3 的輸入特徵通道與△y_ij 相乘,後 1/3 的輸入特徵通道與△z_ij 相乘。

3D點雲算子並無實質進步?微軟亞研重新評估,提出極簡算子PosPool

圖 1:位置池化(PosPool)算子示意圖

該研究還提出了一種位置池化的變體,在有些場景下可實現更優秀的性能。這一變體首先將 3 維的相對位置嵌入到和輸入特徵具備同樣維度的向量中:

3D點雲算子並無實質進步?微軟亞研重新評估,提出極簡算子PosPool

編碼函數 G(·, ·) 是嵌入向量 ε 與輸入特徵 f_ij 的逐通道相乘:

3D點雲算子並無實質進步?微軟亞研重新評估,提出極簡算子PosPool

該變體保持了無參的性質,並在某些情況下有著比前述基本位置池化方法更好的性能。

公平測試條件

統一的深度殘差網絡

該研究指出,已有的 3D 點雲網絡往往各不相同,而且大部分採用比較淺的網絡,因此很難弄清各種 3D 算子在更深的網絡中表現如何,以及它們在同樣的整體網絡結構中表現如何。

為了公平比較不同的 3D 算子,該研究提出使用統一的深度殘差網絡進行測試,如圖 2 所示。類似於圖像識別中的 ResNet,該研究採用了一個 5 階段的深度殘差網絡,且每個階段由多個瓶頸殘差塊(bottleneck residual block)疊加而成,每個瓶頸塊依次由一個 1x1 變換層、一個 3D 算子和另一個 1x1 變換層組成。

針對形狀分類和語義分割任務,該研究分別設計了基於 4 個全連接層以及類似 U-Net 解碼器的兩個頭部網絡。通過改變每個階段瓶頸塊的個數、通道數,以及瓶頸比例(bottleneck ratio),控制網絡整體的複雜度。

3D點雲算子並無實質進步?微軟亞研重新評估,提出極簡算子PosPool

圖 2:該研究採用的深度殘差網絡

評測數據集

該研究選取了 3 種典型的數據集來進行評測,以覆蓋不同的場景、不同的任務以及不同的數據量,包括:ModelNet40(CAD 模型、分類、小規模),S3DIS(實際場景、分割、中等規模),PartNet(CAD 模型、分割、中大規模)。

兩個基線 3D 算子

為了檢驗局部算子的作用,該研究還在測試中引入了兩個不考慮空間位置的基線算子:

3D點雲算子並無實質進步?微軟亞研重新評估,提出極簡算子PosPool

3D點雲算子並無實質進步?微軟亞研重新評估,提出極簡算子PosPool

其中前者是恆等函數,不編碼鄰域點;後者是一個平均 / 最大池化層,不考慮鄰域點的相對位置。

實驗結果及結論

表 1 展示了在上述一致的實驗設置下,對於基準算子、各類典型 3D 算子(選取合適的設計)以及該研究提出的 PosPool 算子的公平比較,得出如下結論:

1. 在更大規模和更具挑戰性的數據集(例如 PartNet)上,更深的深度殘差網絡可以帶來顯著的性能提升。在 ModelNet40 這樣規模較小的數據集上,更深的深度殘差網絡也不會對性能造成損害。這說明,對於 3D 點雲處理,經典的深度殘差網絡就是一個很好的選擇,並無必要像之前的工作那樣為不同的 3D 局部算子專門設計各種特殊的或深或淺的整體網絡結構。

2. 三類典型的 3D 算子和該研究提出的 PosPool 算子都相較基準算子有較大提升。這表明,編碼鄰域信息的 3D 局部算子對於點雲處理來說是很重要的。

3. 幾種典型的 3D 算子和該研究提出的 PosPool 算子在 3 個具有代表性的數據集上均達到了最先進的性能,特別是在更具挑戰性的 PartNet 上,相比以前最好的方法提升了超過 7 個點。考慮到該研究提出的方法並無多少特殊的設計,這表明該方法很適合作為將來 3D 點雲識別研究的基準方法。

4. 最令人驚奇的是,這 3 類典型 3D 算子與 PosPool 算子的性能是極其接近的,簡單且無參的 PosPool 在某些情況下甚至表現更好。這一結果表明,對於 3D 算子而言,我們也許不需要複雜或繁重的局部算子。這也為理解和設計 3D 算子提供了新的思路。

3D點雲算子並無實質進步?微軟亞研重新評估,提出極簡算子PosPool

表 1:不同 3D 局部算子在基準數據集中的表現(其中 S 表示小一些的模型,PosPool * 表示前述變體)。


分享到:


相關文章: