「PointCNN全面刷新測試記錄」山東大學提出通用點雲卷積框架
【新智元導讀】山東大學李揚彥、卜瑞、孫銘超、陳寶權研究團隊近日研究提出的PointCNN是簡單通用的點雲特徵學習架構,基於這一方法一組神經網路模型一舉刷新了五個點雲基準測試的記錄。
論文地址:https://arxiv.org/abs/1801.07791
由山東大學提出的PointCNN是一個簡單通用的點雲特徵學習架構。基於這一方法的一組神經網路模型一舉刷新了五個點雲基準測試的記錄。
CNN成功的關鍵在於其卷積操作能夠很好地從基於規則域表示的數據中提取局部信息。然而,由於點雲數據的不規則和無序性,使得卷積操作由於輸入數據順序的不穩定很難直接應用到點雲數據上。
為了解決這個問題,PointCNN提出了一種稱為X-變換的方法。X-變換是從輸入點學習到的一組權值X,這組權值可以對各點相關聯的特徵進行重新加權和排列。 X-變換可以實現「隨機應變」,即當輸入點的順序變化時, X能夠相應地變化,使加權和排列之後的特徵近似不變。輸入特徵在經過X-變換的處理之後能夠變成與輸入點順序無關同時也編碼了輸入點形狀信息的歸一化的特徵。在經過X-變換之後的特徵上進行卷積能夠極大提高卷積核的利用率, 從而大大提高卷積操作在無序數據上提取特徵的能力。
以下內容是對arxv文章的翻譯,原文作者為:李揚彥、卜瑞、孫銘超、陳寶權。
摘要:將針對規則域數據的CNN推廣到可以處理點雲數據
我們提出了一個簡單而通用的點雲特徵學習框架。 CNN成功的關鍵是卷積運算元,它能夠利用網格形式密集表示的數據中的局部相關性(如圖像)。 然而,點雲是不規則的,無序的,因此點對點的特徵與點的直接卷積將導致形狀信息丟失,還會因為輸入點順序不一致而產生不同的輸出。 為了解決這些問題,我們嘗試從輸入點學習X-變換,然後使用它來加權與排列輸入點的特徵。這種操作可以把輸入點的形狀信息編碼到特徵中,同時把輸入特徵的順序歸一化到某種潛在的一致的模式。 這種方法是將典型的針對規則域數據的CNN推廣到能夠處理點雲這種非規則無序數據的一種嘗試,因此被稱為PointCNN。 實驗表明,PointCNN在多種具有挑戰性的基準數據集和任務上達到了與最先進方法相當或更好的性能。
背景:認識點雲,CNN
點雲(PointCloud)
點雲是一組點的集合,常用來表示自身維度比背景空間緯度低的數據(比如空間中的曲面等)。由於數據較為稀疏,直接採用密集體素的方式,不僅數據量大,而且數據中包含過多的冗餘信息,不利於數據特徵的提取。不僅如此,大量的3D感測器也採用點雲的方式保存數據,數據來源非常廣泛。
卷積神經網路(CNN)
基於CNN的一系列方法在圖像識別中已經取得了巨大的成功,其關鍵原因就是CNN能夠很好地捕捉數據的空間局部特徵。
數學上來講,CNN中的卷積操作本質上是將輸入進行加權求和,結果依賴輸入的順序,即f(a,b)通常不等於f(b,a)。特別地,對於f(a,b,c,d)來講,如果a被e替換掉,且e順序在d之後,則替換後的結果f(b,c,d,e)通常會和f(a,b,c,d)有巨大的差異。因此CNN中的卷積操作是對數據輸入的順序是敏感的,對於無序數據則較難提取到有效的特徵。
由於圖像表示方式大多為密集陣列式的,像素點之間等距有序地排列在一起,使得基於卷積的一系列操作在圖像數據上能夠得到統一的輸出。最直接的將處理圖片的CNN推廣到處理三維數據的方式是將三維數據使用三維體素來表達,從而應用三維CNN。然而,三維數據通常較為稀疏,但基於體素的三維CNN難以利用這一特性。點雲可以高效表達三維稀疏數據,然而,點雲數據中各點之間距離不一, 點的排布也沒有順序(unordered), 無法直接使用CNN進行特徵學習。
PointCNN提供了一個能夠高效地從點雲中提取特徵的方法。
PointCNN:能夠高效地從點雲中提取特徵
PointCNN
PointCNN提出了一個稱為X-變換的方法來解決在點雲上卷積難以有效實現卷積的問題。
由於卷積操作本身的有序性,對於上圖中ii,iii,iv三組點,如果把它們以i的方式進行卷積操作,會得到以下三個輸出。
對於ii和iii,由於四個點的空間位置不一樣,我們希望進行卷積後產生的輸出也會不一樣。但實際上,直接進行卷積操作時ii和iii都被映射到了同樣的位置,因此產生的輸出也完全一樣,這是不合理的。另一方面,對於iii和iv,其數據完全一致,但由於順序不一樣,進行卷積後結果也通常會不一樣,這也不是我們所期望的。因此,直接對無序的點雲數據進行卷積並不高效。
由於點雲的無序性特點,PointCNN期望能夠得到一種變換,使得
中,ii和iii不同,且iii和iv相同。
PointCNN採用了學習權重的方式,這裡Xs是一個4x4的矩陣,由a,b,c,d四個點的坐標經過MLP得到,即Xs=MLP(a,b,c,d)。MLP由網路學習得到。
通過學習,我們期望得到的矩陣能夠滿足
,且
,其中
是和(a,b,c,d)與(c,a,b,d)對應的列變換矩陣,即,使得
事實上,在實驗中,學習到的MLP並不能完全滿足上面理想情況下的要求。儘管如此,PointCNN還是得到了良好的效果。
細節上,PointCNN採用KNN選取臨近點進行卷積;將點的坐標信息進行處理添加到特徵中作為其一部分;通過隨機採樣等方式降低數據空間解析度。
實驗結果
classification accuracy on ModelNet 40 (91.7%)
classification accuracy on ScanNet (77.9%)
segmentation part averaged IoU on ShapeNet Parts (86.13%)
segmentation mean IoU on S3DIS (62.74%)
per voxel labelling accuracy on ScanNet (85.1%)
特別值得一提的是,在ModelNet40的分類任務上,在只使用32個點作為輸入的極端壓力測試下,PointCNN仍然能夠取得84.4%的準確率,這一結果大幅領先目前已知的其他方法。在這種極端壓力測試下,PointCNN的計算量非常小,能夠在GTX 1080 GPU上以每幀0.3毫秒的速度進行點雲識別。自動駕駛中獲取的點雲往往非常稀疏,同時對實時性要求極高。該壓力測試顯示PointCNN有應用於自動駕駛的巨大潛力。
未來與未來工作展望
X-變換的進一步理解
雖然X-Conv是被設計用來進行在三維點雲上進行卷積,並且它在實驗中展示了最新水準的結果,但是我們對它背後的理論方法仍然知之甚少,尤其是當它被用於深層神經網路上時,我們的理解還十分的有限。
PointCNN採取了最簡單也是最直接的方式來學習X-Conv——用MLP學習變換矩陣。雖然一般的矩陣可以用來實現權值和順序變換,但是這種方法是否是實現目標的最簡形式仍然是不得而知的。實際上,相比於此前的其他方法,PointCNN的參數更少,但還是在部分小規模的數據上表現出了過擬合的問題。X-Conv在帶來強大的表徵能力的同時,也可能攜帶了大量額外的自由度,能否找到一種比一般的矩陣更加精鍊的可以學習的表達形式,或許是X-Conv發展的方向。
PointCNN對形狀分析的應用
文章中說明了PointCNN對分類和圖像分割問題的特徵學習的有效性。我們認為PointCNN學習的特徵可以在多種形狀分析任務中超過手工設計的特徵,例如關鍵點匹配,形狀檢索等任務。
全卷積的PointCNN
在原本的CNN中運用了全卷積的思想來處理不同大小的圖像,PointCNN也應該實現全卷積的方法來處理不同尺度的點雲。這篇論文使用了對全卷積方法的幾乎最暴力的近似方法,在之後的擴展中,需要更有效的點雲索引和內存管理來實現全卷積的X-Conv操作。
PointCNN還是CNN?
由於X-Conv是卷積的一種推廣,因此,對於相同的數據(但是表達形式不同),PointCNN應該至少不比CNN要差,甚至要更好。為了證明這一點,論文中將PointCNN運用到了MNIST和CIFAR10的點雲形式上。在MNIST數據集上,PointCNN達到了所有比較的方法中的最好的效果,而對於沒有太多形狀信息的CIFAR10數據集上,PointCNN從RGB特徵的空間局部相關性中提取特徵並且達到了還算不錯的效果,但它和基於圖片的CNN差距還很大。
從CIFAR10實驗來看。在一般的圖像上, CNN仍然是比PointCNN更好的選擇。而PointCNN的優勢在數據越稀疏的時候越能展現出來。目前並沒有一個科學的準則判斷是應該將數據表達為規則形式進而應用CNN,還是應該將數據表達為點雲形式進而應用PointCNN。有意思的是,部分密集的數據也許可以被稀疏的表達,例如視頻通常被表現為密集的三維數據,但是通常在視頻幀裡面只有少量的像素是逐幀變化的。 PointCNN加上稀疏但不規則表達的視頻數據也是一個有趣的方向。
PointCNN和CNN的結合
由於三維獲取技術的高速發展,越來越多的採集的數據同時具有三維點雲和圖像,在這種情況下獨立運用PointCNN和CNN分別來處理點雲和圖像數據,再將結果合併用於最後的推理也許是一種方法,但或許可以在更早期將這兩種數據融合起來處理。
※「重磅」谷歌微軟即將公布里程碑式量子突破,量子霸權崛起
※沉重悼念:中國計算機軟體學科奠基人、南京大學計算機系徐家福教授辭世
TAG:新智元 |