功能描述:
但是對(duì)于3D點(diǎn)云,數(shù)據(jù)正在迅速增長(zhǎng)。大有從2D向3D發(fā)展的趨勢(shì),比如在opencv中就已經(jīng)慢慢包含了3D點(diǎn)云的處理的相關(guān)模塊,在數(shù)據(jù)方面點(diǎn)云的獲取也是有多種渠道, 無論是源于CAD模型還是來自LiDAR傳感器或RGBD相機(jī)的掃描點(diǎn)云,無處不在。 另外,大多數(shù)系統(tǒng)直接獲取3D點(diǎn)云而不是拍攝圖像并進(jìn)行處理。因此,在深度學(xué)習(xí)大火的年代,應(yīng)該如何應(yīng)用這些令人驚嘆的深度學(xué)習(xí)工具,在3D點(diǎn)云上的處理上達(dá)到對(duì)二維圖像那樣起到很好的作用呢?
3D點(diǎn)云應(yīng)用深度學(xué)習(xí)面臨的挑戰(zhàn)。首先在神經(jīng)網(wǎng)絡(luò)上面臨的挑戰(zhàn):
(1)非結(jié)構(gòu)化數(shù)據(jù)(無網(wǎng)格):點(diǎn)云是分布在空間中的XYZ點(diǎn)。 沒有結(jié)構(gòu)化的網(wǎng)格來幫助CNN濾波器。
(2)不變性排列:點(diǎn)云本質(zhì)上是一長(zhǎng)串點(diǎn)(nx3矩陣,其中n是點(diǎn)數(shù))。 在幾何上,點(diǎn)的順序不影響它在底層矩陣結(jié)構(gòu)中的表示方式,例如, 相同的點(diǎn)云可以由兩個(gè)完全不同的矩陣表示。 如下圖所示:
(3)點(diǎn)云數(shù)量上的變化:在圖像中,像素的數(shù)量是一個(gè)給定的常數(shù),取決于相機(jī)。 然而,點(diǎn)云的數(shù)量可能會(huì)有很大的變化,這取決于各種傳感器。
在點(diǎn)云數(shù)據(jù)方面的挑戰(zhàn):
(1)缺少數(shù)據(jù):掃描的模型通常被遮擋,部分?jǐn)?shù)據(jù)丟失。
(2)噪音:所有傳感器都是嘈雜的。 有幾種類型的噪聲,包括點(diǎn)云擾動(dòng)和異常值。 這意味著一個(gè)點(diǎn)有一定的概率位于它被采樣的地方(擾動(dòng))附近的某一半徑范圍內(nèi),或者它可能出現(xiàn)在空間的任意位置(異常值)。
(3)旋轉(zhuǎn):一輛車向左轉(zhuǎn),同一輛車向右轉(zhuǎn),會(huì)有不同的點(diǎn)云代表同一輛車
Princeton’s Modelnet40 dataset。 它包含約40個(gè)對(duì)象類別(如飛機(jī),表格,植物等),用三角形網(wǎng)格表示的12311個(gè)CAD模型。 數(shù)據(jù)分為9843個(gè)培訓(xùn)模式和2468個(gè)測(cè)試模式,如下圖
在點(diǎn)云上應(yīng)用深度學(xué)習(xí)的直接方法是將數(shù)據(jù)轉(zhuǎn)換為體積表示。 例如體素網(wǎng)格。 這樣我們就可以用沒有神經(jīng)網(wǎng)絡(luò)問題的3D濾波器來訓(xùn)練一個(gè)CNN(網(wǎng)格提供了結(jié)構(gòu),網(wǎng)格的轉(zhuǎn)換解決了排列問題,體素的數(shù)量也是不變的)。 但是,這有一些不利因素。 體積數(shù)據(jù)可能變得非常大,非常快。 讓我們考慮256×256 = 65536像素的典型圖像大小,現(xiàn)在讓我們添加一個(gè)維度256x256x256 = 16777216體素。 這是很大的數(shù)據(jù)量(盡管GPU一直在發(fā)展)。 這也意味著非常緩慢的處理時(shí)間。 因此,通常我們需要妥協(xié)并采取較低的分辨率(一些方法使用64x64x64),但是它帶來了量化誤差的代價(jià)。所以,所需的解決方案是一個(gè)直接的深度學(xué)習(xí)的方法,將是3D點(diǎn)云應(yīng)用深度學(xué)習(xí)的重點(diǎn)。
作者調(diào)查了三種最近發(fā)表的文章,主要針對(duì)對(duì)點(diǎn)云進(jìn)行深度學(xué)習(xí)的論文。 正如下圖所示,展示了3D點(diǎn)云分類準(zhǔn)確性出版(準(zhǔn)確性,年份和數(shù)據(jù)類型),它總結(jié)了數(shù)據(jù)集上的最新準(zhǔn)確性結(jié)果。 以及每種方法正在處理的數(shù)據(jù)的類型。 可以看到,在2015年,大多數(shù)方法都用于多視圖數(shù)據(jù)(這是一種簡(jiǎn)短的說法 - 讓我們拍攝3D模型的幾張照片并使用2D方法處理它們),2016年更多的方法使用了體素表示的點(diǎn)云學(xué)習(xí)和2017年的基于點(diǎn)的方法有了大幅度的增長(zhǎng)。
PointNet(CVPR2017)
開拓者! 來自斯坦福大學(xué),他們的工作引起了很多關(guān)注。他們做了一些令人驚訝的簡(jiǎn)單的事情,并證明了為什么它運(yùn)作良好,他們分別在每個(gè)點(diǎn)上訓(xùn)練了一個(gè)MLP(在點(diǎn)之間分享權(quán)重)。每個(gè)點(diǎn)被“投影”到一個(gè)1024維空間。然后,他們用點(diǎn)對(duì)稱函數(shù)(max-pool)解決了點(diǎn)云順序問題。這為每個(gè)點(diǎn)云提供了一個(gè)1 x 1024的全局特征,這些特征點(diǎn)被送入非線性分類器。利用他們稱為T-net的“迷你網(wǎng)絡(luò)”解決了旋轉(zhuǎn)問題。它學(xué)習(xí)了點(diǎn)(3 x 3)和中級(jí)特征(64 x 64)上的變換矩陣。稱之為“迷你”有點(diǎn)讓人誤解,因?yàn)樗鼘?shí)際上與主網(wǎng)絡(luò)的大小有關(guān)。另外,由于參數(shù)數(shù)量的大量增加,引入了一個(gè)損失項(xiàng)來約束64×64矩陣接近正交。也使用類似的網(wǎng)絡(luò)進(jìn)行零件分割。也做了場(chǎng)景語義分割。做得好!我強(qiáng)烈推薦閱讀(或者您也可以觀看演示視頻)。本文對(duì)ModelNet40數(shù)據(jù)集的準(zhǔn)確率高達(dá)89.2%。下圖是pointNet點(diǎn)云分類的框架
Pointnet ++(NIPS 2017)
在PointNet之后不久,引入了Pointnet ++。它本質(zhì)上是PointNet的分層版本。每個(gè)圖層都有三個(gè)子階段:采樣,分組和PointNeting。在第一階段,選擇質(zhì)心,在第二階段,把他們周圍的鄰近點(diǎn)(在給定的半徑內(nèi))創(chuàng)建多個(gè)子點(diǎn)云。然后他們將它們給到一個(gè)PointNet網(wǎng)絡(luò),并獲得這些子點(diǎn)云的更高維表示。然后,他們重復(fù)這個(gè)過程(樣本質(zhì)心,找到他們的鄰居和Pointnet的更高階的表示,以獲得更高維表示)。使用這些網(wǎng)絡(luò)層中的3個(gè)。還測(cè)試了不同層級(jí)的一些不同聚合方法,以克服采樣密度的差異(對(duì)于大多數(shù)傳感器來說這是一個(gè)大問題,當(dāng)物體接近時(shí)密集樣本,遠(yuǎn)處時(shí)稀疏)。他們?cè)谠蚉ointNet上進(jìn)行了改進(jìn),在ModelNet40上的準(zhǔn)確率達(dá)到了90.7%。下面是Pointnet++ 架構(gòu)。
|