CVPR2017精彩論文解讀:直接處理三維點雲的深度學習模型

 2017-08-11 19:12:00.0

雷鋒網(公衆號:雷鋒網) AI 科技評論按:雖然CVPR 2017已經落下帷幕,但對精彩論文的解讀還在繼續。下文是Momenta高級研究員陳亮對此次大會收錄的 PointNet:Deep Learning on Point Sets for 3D Classification and Segmentation  一文進行的解讀。

隨着激光雷達,RGBD相機等3D傳感器在機器人,無人駕駛領域的廣泛應用。針對三維點雲數據的研究也逐漸從低層次幾何特徵提取( PFH, FPFH,VFH等)向高層次語義理解過渡(點雲識別,語義分割)。與圖像感知領域深度學習幾乎一統天下不同,針對無序點雲數據的深度學習方法研究則進展緩慢。分析其背後的原因,不外乎三個方面:

1.點雲具有無序性。受採集設備以及座標系影響,同一個物體使用不同的設備或者位置掃描,三維點的排列順序千差萬別,這樣的數據很難直接通過End2End的模型處理。

2.點雲具有稀疏性。在機器人和自動駕駛的場景中,激光雷達的採樣點覆蓋相對於場景的尺度來講,具有很強的稀疏性。在KITTI數據集中,如果把原始的激光雷達點雲投影到對應的彩色圖像上,大概只有3%的像素纔有對應的雷達點。這種極強的稀疏性讓基於點雲的高層語義感知變得尤其困難。

3.點雲信息量有限。點雲的數據結構就是一些三維空間的點座標構成的點集,本質是對三維世界幾何形狀的低分辨率重採樣,因此只能提供片面的幾何信息。

面對以上困難,來自斯坦福大學的學者提出了PointNet,給出了自己的的解決方案。PointNet是第一種直接處理無序點雲數據的深度神經網絡。一般情況下,深度神經網絡要求輸入信息具有規範化的格式,比如二維的圖像,時序性的語音等。而原始的三維點雲數據往往是空間中的一些無序點集,假設某一個點雲中包含N個三維點,每一個點用(x,y,z)三維座標表示,即使不考慮遮擋,視角等變化,單就這些點的先後順序排列組合,就有 N! 種可能。因此,我們需要設計一個函數,使得函數值與輸入數據的順序無關。實際上,在代數組合學中,這類函數被稱爲對稱函數。PointNet 中,作者使用了Max Pooling 層做爲主要的對稱函數,這種處理雖然簡單,但是實驗證明效果較好。CVPR2017精彩論文解讀:直接處理三維點雲的深度學習模型

上圖是PointNet的網絡架構,輸入是包含n個點的三維點雲(nx3) , 原始數據通過一個3D 空間變換矩陣預測網絡 T-Net(3),估計出3x3的變換矩陣T(3) 並作用在原始數據上,實現數據的對齊。對齊後的數據會以點爲單位,通過一個共享參數的雙層感知機模型進行特徵提取 。每個點提取出64維的特徵,再通過特徵空間變換矩陣預測網絡 T-Net(64) 預測64x64的變換矩陣,作用到特徵上,實現對特徵的對齊。然後繼續利用三層感知機(64,128,1024)進行以特徵點爲單位的特徵提取,直到把特徵的維度變爲1024,繼而在特徵空間的維度上進行Max Pooling,提取出點雲的全局特徵向量。

在點雲分類任務中,可直接利用特徵向量訓練SVM或者多層感知機來進行分類,而在以點爲單位的點雲分割或者分塊任務中,需要結合每一點的局部特徵和全局特徵進行特徵融合和處理,實現逐點的分類。PointNet中把經過特徵對齊之後的64維特徵看成是點的局部特徵,把最後的1024維特徵看成是點的全局特徵,因此通過一個簡單的拼接,把局部和全局的特徵捆綁在一起,利用多層感知機進行融合,最後訓練分類器實現逐點的分類。 

 CVPR2017精彩論文解讀:直接處理三維點雲的深度學習模型

PointNet是第一個可以直接處理原始三維點雲的深度神經網絡,這種新穎的網絡設計可以直接對原始點雲進行處理,進而完成高層次的點雲分類和語義分割的任務,而且完全依賴於數據。從實驗驗證的結果來看,其效果和當前最好的結果具有可比性,在一些方面甚至超過了state-of-the-art,值得進一步挖掘和研究。

論文作者問答: 

Q:輸入的原始三維點雲數據需要做歸一化嗎? 

A:和其他網絡的輸入一樣,輸入點雲數據需要做零均值的歸一化,這樣才能保證比較好的實驗性能。

Q:深層神經網絡處理三維離散點雲的難點在哪裏?PointNet是如何解決這些難點的?

A:深度神經網絡處理三維離散點雲數據的難點主要在於點雲的無序性和輸入維度變化。在本篇文章中,我使用了深度神經網絡中的常用對稱函數 :Max Pooling 來解決無序性問題,使用共享網絡參數的方式來處理輸入維度的變化,取得了比較好的效果。

Q:是否可以使用RNN/LSTM來處理三維點雲數據? 

A:RNN/LSTM可以處理序列數據,可以是時間序列也可以是空間序列。因此從輸入輸出的角度來講,他們可以用來處理三維點雲數據。但是點雲數據是無序的,這種點和點之間的先後輸入順序並沒有規律,因此直接使用RNN/LSTM效果不會太好。

Q:T-Net在網絡結構中起的本質作用是什麼?需要預訓練嗎? 

A:T-Net 是一個預測特徵空間變換矩陣的子網絡,它從輸入數據中學習出與特徵空間維度一致的變換矩陣,然後用這個變換矩陣與原始數據向乘,實現對輸入特徵空間的變換操作,使得後續的每一個點都與輸入數據中的每一個點都有關係。通過這樣的數據融合,實現對原始點雲數據包含特徵的逐級抽象。

Q:PointNet 與 MVCNN 的實驗結果比較中,有些指標稍差,背後的原因是什麼? 

A:PointNet提取的是每一個獨立的點的特徵描述以及全局點雲特徵的描述,並沒有考慮到點的局部特徵和結構約束,因此與MVCNN相比,在局部特徵描述方面能力稍弱。面對這樣的問題,我們基於PointNet已經做了一些改進和提升,新的網絡命名爲 PointNet++,已經上傳到Arxiv,歡迎大家閱讀並討論交流。

論文地址:https://arxiv.org/abs/1612.00593

文章來源:雷鋒網