天天看點

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

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

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

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

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

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

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

近年來,随着 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 * 表示前述變體)。