天天看點

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

文章目錄

  • ​​RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds​​
  • ​​做了什麼​​
  • ​​RandLA-Net​​
  • ​​RandLA-Net整體結構​​
  • ​​随機采樣(RS)​​
  • ​​局部特征聚合(LFA)子產品​​
  • ​​實驗​​

RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

​​ https://arxiv.org/abs/1911.11236​​

做了什麼

深度神經網絡對點雲進行處理不可避免地需要在保證不丢失有用的點特征的前提下對這些點進行下采樣。而大規模的點雲跨度可達數百米,包含數十萬、百萬個點,采樣的時間和空間複雜度都較高。

這篇論文

  • 分析并比較了現有的點雲采樣方法,得出随機采樣(Random Sampling)是最适合大規模點集這一結論。
  • 設計了一個局部特征聚合器(Local Feature Aggregation),它通過逐漸增加每個點的感受野來避免随機采樣導緻的特征丢失。

随機采樣和局部特征聚合器結合使得整個網絡(RandLA-Net)在效率和效果之間實作了極好的平衡,在多個大型點雲基準中超越了當時最先進的語義分割方法。

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

RandLA-Net

RandLA-Net整體結構

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

首先使用共享參數的MLP層提取輸入點雲每個點的特征。然後使用四個編碼和解碼層來學習每個點的特征。最後,使用三個全連接配接層和一個Dropout層來預測每個點的語義标簽。

網絡輸入

輸入為的大規模點雲。為點的數量;為每個輸入點的特征維數。

編碼層

RandLA-Net中使用了四個編碼層,以逐漸減小點雲的大小并增加每點特征維數。每個編碼層由局部特征聚合子產品和随機采樣組成。

下采樣保留25%的點雲:

同時,每層逐點特征維數是逐漸增加的,以保留更多資訊:

解碼層

在上述編碼層之後使用四個解碼層。對于解碼器中的每一層,我們首先使用KNN算法為每個查詢點(編碼階段對應的四倍于解碼層輸入點的點集)找到輸入點中的一個最近鄰點,然後通過最近鄰插值對點特征集進行上采樣(使查詢點的特征等于距離它最近的輸入點的特征)。接下來,通過跳躍連接配接将上采樣特征與編碼層生成的中間特征拼接起來,然後将共享參數的MLP應用于拼接的特征。

最終語義預測:

每個點的最終語義标簽通過三個共享參數的全連接配接層和Dropout層獲得。

其中是類别數。

随機采樣(RS)

點雲采樣方法有啟發式的Farthest Point Sampling (FPS)、Inverse Density Importance Sampling (IDIS);基于學習的Generator-based Sampling (GS)、Continuous Relaxation based Sampling (CRS)、Policy Gradient based Sampling (PGS)。其中FPS、IDIS和GS的計算量過大;CRS的記憶體占用過大;PGS則很難學習。

RandLA-Net采用的則是随機采樣(Random Sampling,RS):均勻地從個點中選取個點。相比于其他方法,如圖:

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

随機采樣具有以下兩個優點

(1)具有顯著的計算效率,因為它與輸入點的總數無關;

(2)不需要占用太多的記憶體。

這些優點使得随機采樣非常适合處理大規模點雲的采樣。然而,随機采樣可能導緻許多有用的點特征被丢棄。為了克服這個問題,RandLA-Net還精心設計了一個的局部特征聚合(Local Feature Aggregation)子產品。

局部特征聚合(LFA)子產品

局部特征聚合(LFA)子產品是一個殘差子產品。主要由局部空間編碼(Local Spatial Encoding,LocSE)和注意力池化(altentive pooling)構成。

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

由于大規模的點雲将會被下采樣,是以希望顯著地增加每個點的感受野,這樣即使一些點被删除,輸入點雲的幾何細節也更有可能被保留。為了達到這個目的,RandLA-Net将兩個LocSE和altentive pooling堆疊起來:

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

兩個LocSE和attentive pooling(LA)單元能夠擴大感受野:

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

紅色3D點在第一次LA後能獲得藍色點和綠色點的特征資訊,而藍色點和綠色點将包含其近鄰點的特征資訊。在第二次LA時,紅色點将獲得藍色點和綠色點及其近鄰點資訊,這意味着感受野擴大。

(1) 局部空間編碼(LocSE)單元

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

給定一個點雲和每個點的特征(例如,原始RGB、法線,或中間學習的特征),局部空間編碼單元顯式地嵌入所有鄰近點的x-y-z坐标:

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

這樣相應的點特征總是知道它們的相對空間位置。這使得LocSE單元可以明确地觀察到點雲的局部幾何模式,進而有利于整個網絡有效地學習複雜的局部結構。具體而言,這個單元包括以下步驟:

尋找近鄰點:

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

使用KNN算法從輸入的所有點中擷取其中第個點的近鄰點。

點相對位置編碼

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

對于每一個的K近鄰點,将點相對位置編碼如下:

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

其中和為點與其第個近鄰點的x-y-z位置,為連接配接操作,計算中心點與近鄰點的歐式距離。

點特征增強

将每一個近鄰點的特征與已編碼的相對點位置特征連接配接起來,得到增強特征向量

最終,LocSE單元的輸出是一個近鄰點特征新集:

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

包含了以為中心的局部集合資訊。

(2) 注意力彙聚(Attentive Pooling)單元

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

這個單元用于聚合局部點特征集。

現有的工作常使用max/mean pooling來硬彙聚點的相鄰特征,這可能導緻大部分資訊丢失。相比之下,RandLA-Net使用注意力機制來自動學習重要的局部特征。主要包括以下步驟。

計算注意力得分:

給定局部特征集。使用一個共享參數的函數來學習每個特征的注意力得分:

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

基本上,函數由一個共享MLP和一個softmax組成,其中共享參數MLP的可學習參數。

權重求和:

學習到的注意力分數可以看作是一個自動選擇重要特征的 soft mask。對得到的局部特征的權重求和:

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

總而言之,給定輸入點雲,對于第點,LocSE和注意力彙聚單元學習聚合其個最近點的幾何模式和特征,并最終生成一個富含資訊的特征向量

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

實驗

RandLA-Net的效率

RandLA-Net使用随機采樣且所有元件都使用共享參數的MLP實作,是以時間和空間複雜度都較低。

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

語義分割結果

【CVPR2020】RandLA-Net:大規模點雲的高效語義分割
【CVPR2020】RandLA-Net:大規模點雲的高效語義分割
【CVPR2020】RandLA-Net:大規模點雲的高效語義分割
【CVPR2020】RandLA-Net:大規模點雲的高效語義分割

消融實驗

(1) 去掉LocSE

(2∼4) 将 attentive pooling 用 max/mean/sum pooling 替代