0
雷鋒網(wǎng) AI 科技評論按:雖然CVPR 2017已經(jīng)落下帷幕,但對精彩論文的解讀還在繼續(xù)。下文是Momenta高級研究員陳亮對此次大會收錄的 PointNet:Deep Learning on Point Sets for 3D Classification and Segmentation 一文進行的解讀。
隨著激光雷達,RGBD相機等3D傳感器在機器人,無人駕駛領(lǐng)域的廣泛應(yīng)用。針對三維點云數(shù)據(jù)的研究也逐漸從低層次幾何特征提?。?PFH, FPFH,VFH等)向高層次語義理解過渡(點云識別,語義分割)。與圖像感知領(lǐng)域深度學習幾乎一統(tǒng)天下不同,針對無序點云數(shù)據(jù)的深度學習方法研究則進展緩慢。分析其背后的原因,不外乎三個方面:
1.點云具有無序性。受采集設(shè)備以及坐標系影響,同一個物體使用不同的設(shè)備或者位置掃描,三維點的排列順序千差萬別,這樣的數(shù)據(jù)很難直接通過End2End的模型處理。
2.點云具有稀疏性。在機器人和自動駕駛的場景中,激光雷達的采樣點覆蓋相對于場景的尺度來講,具有很強的稀疏性。在KITTI數(shù)據(jù)集中,如果把原始的激光雷達點云投影到對應(yīng)的彩色圖像上,大概只有3%的像素才有對應(yīng)的雷達點。這種極強的稀疏性讓基于點云的高層語義感知變得尤其困難。
3.點云信息量有限。點云的數(shù)據(jù)結(jié)構(gòu)就是一些三維空間的點坐標構(gòu)成的點集,本質(zhì)是對三維世界幾何形狀的低分辨率重采樣,因此只能提供片面的幾何信息。
面對以上困難,來自斯坦福大學的學者提出了PointNet,給出了自己的的解決方案。PointNet是第一種直接處理無序點云數(shù)據(jù)的深度神經(jīng)網(wǎng)絡(luò)。一般情況下,深度神經(jīng)網(wǎng)絡(luò)要求輸入信息具有規(guī)范化的格式,比如二維的圖像,時序性的語音等。而原始的三維點云數(shù)據(jù)往往是空間中的一些無序點集,假設(shè)某一個點云中包含N個三維點,每一個點用(x,y,z)三維坐標表示,即使不考慮遮擋,視角等變化,單就這些點的先后順序排列組合,就有 N! 種可能。因此,我們需要設(shè)計一個函數(shù),使得函數(shù)值與輸入數(shù)據(jù)的順序無關(guān)。實際上,在代數(shù)組合學中,這類函數(shù)被稱為對稱函數(shù)。PointNet 中,作者使用了Max Pooling 層做為主要的對稱函數(shù),這種處理雖然簡單,但是實驗證明效果較好。
上圖是PointNet的網(wǎng)絡(luò)架構(gòu),輸入是包含n個點的三維點云(nx3) , 原始數(shù)據(jù)通過一個3D 空間變換矩陣預(yù)測網(wǎng)絡(luò) T-Net(3),估計出3x3的變換矩陣T(3) 并作用在原始數(shù)據(jù)上,實現(xiàn)數(shù)據(jù)的對齊。對齊后的數(shù)據(jù)會以點為單位,通過一個共享參數(shù)的雙層感知機模型進行特征提取 。每個點提取出64維的特征,再通過特征空間變換矩陣預(yù)測網(wǎng)絡(luò) T-Net(64) 預(yù)測64x64的變換矩陣,作用到特征上,實現(xiàn)對特征的對齊。然后繼續(xù)利用三層感知機(64,128,1024)進行以特征點為單位的特征提取,直到把特征的維度變?yōu)?024,繼而在特征空間的維度上進行Max Pooling,提取出點云的全局特征向量。
在點云分類任務(wù)中,可直接利用特征向量訓練SVM或者多層感知機來進行分類,而在以點為單位的點云分割或者分塊任務(wù)中,需要結(jié)合每一點的局部特征和全局特征進行特征融合和處理,實現(xiàn)逐點的分類。PointNet中把經(jīng)過特征對齊之后的64維特征看成是點的局部特征,把最后的1024維特征看成是點的全局特征,因此通過一個簡單的拼接,把局部和全局的特征捆綁在一起,利用多層感知機進行融合,最后訓練分類器實現(xiàn)逐點的分類。
PointNet是第一個可以直接處理原始三維點云的深度神經(jīng)網(wǎng)絡(luò),這種新穎的網(wǎng)絡(luò)設(shè)計可以直接對原始點云進行處理,進而完成高層次的點云分類和語義分割的任務(wù),而且完全依賴于數(shù)據(jù)。從實驗驗證的結(jié)果來看,其效果和當前最好的結(jié)果具有可比性,在一些方面甚至超過了state-of-the-art,值得進一步挖掘和研究。
論文作者問答:
Q:輸入的原始三維點云數(shù)據(jù)需要做歸一化嗎?
A:和其他網(wǎng)絡(luò)的輸入一樣,輸入點云數(shù)據(jù)需要做零均值的歸一化,這樣才能保證比較好的實驗性能。
Q:深層神經(jīng)網(wǎng)絡(luò)處理三維離散點云的難點在哪里?PointNet是如何解決這些難點的?
A:深度神經(jīng)網(wǎng)絡(luò)處理三維離散點云數(shù)據(jù)的難點主要在于點云的無序性和輸入維度變化。在本篇文章中,我使用了深度神經(jīng)網(wǎng)絡(luò)中的常用對稱函數(shù) :Max Pooling 來解決無序性問題,使用共享網(wǎng)絡(luò)參數(shù)的方式來處理輸入維度的變化,取得了比較好的效果。
Q:是否可以使用RNN/LSTM來處理三維點云數(shù)據(jù)?
A:RNN/LSTM可以處理序列數(shù)據(jù),可以是時間序列也可以是空間序列。因此從輸入輸出的角度來講,他們可以用來處理三維點云數(shù)據(jù)。但是點云數(shù)據(jù)是無序的,這種點和點之間的先后輸入順序并沒有規(guī)律,因此直接使用RNN/LSTM效果不會太好。
Q:T-Net在網(wǎng)絡(luò)結(jié)構(gòu)中起的本質(zhì)作用是什么?需要預(yù)訓練嗎?
A:T-Net 是一個預(yù)測特征空間變換矩陣的子網(wǎng)絡(luò),它從輸入數(shù)據(jù)中學習出與特征空間維度一致的變換矩陣,然后用這個變換矩陣與原始數(shù)據(jù)向乘,實現(xiàn)對輸入特征空間的變換操作,使得后續(xù)的每一個點都與輸入數(shù)據(jù)中的每一個點都有關(guān)系。通過這樣的數(shù)據(jù)融合,實現(xiàn)對原始點云數(shù)據(jù)包含特征的逐級抽象。
Q:PointNet 與 MVCNN 的實驗結(jié)果比較中,有些指標稍差,背后的原因是什么?
A:PointNet提取的是每一個獨立的點的特征描述以及全局點云特征的描述,并沒有考慮到點的局部特征和結(jié)構(gòu)約束,因此與MVCNN相比,在局部特征描述方面能力稍弱。面對這樣的問題,我們基于PointNet已經(jīng)做了一些改進和提升,新的網(wǎng)絡(luò)命名為 PointNet++,已經(jīng)上傳到Arxiv,歡迎大家閱讀并討論交流。
論文地址:https://arxiv.org/abs/1612.00593
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。