基于深度學(xué)習(xí)方法的點(diǎn)云算法5——PointConv(點(diǎn)云分類分割)
請點(diǎn)點(diǎn)贊,會持續(xù)更新?。?!
基于深度學(xué)習(xí)方法的點(diǎn)云算法1——PointNetLK(點(diǎn)云配準(zhǔn))
基于深度學(xué)習(xí)方法的點(diǎn)云算法2——PointNet(點(diǎn)云分類分割)
基于深度學(xué)習(xí)方法的點(diǎn)云算法3——PointNet++(點(diǎn)云分類分割)
基于深度學(xué)習(xí)方法的點(diǎn)云算法4——PCT: Point Cloud Transformer(點(diǎn)云分類分割)
摘要
與在規(guī)則密集網(wǎng)格中表示的圖像不同,三維點(diǎn)云是不規(guī)則和無序的,因此很難對其應(yīng)用卷積。本文將動態(tài)濾波器擴(kuò)展到一種新的卷積運(yùn)算,即PointConv。PointConv可以應(yīng)用于點(diǎn)云以構(gòu)建深度卷積網(wǎng)絡(luò)。將卷積核視為由權(quán)重函數(shù)和密度函數(shù)組成的三維點(diǎn)的局部坐標(biāo)的非線性函數(shù)。對于給定的點(diǎn),通過多層感知器網(wǎng)絡(luò)(multi-layer perceptron networks )和核密度估計(jì)(kernel density estimation)的密度函數(shù)(density functions)學(xué)習(xí)權(quán)重函數(shù)(weight functions)。這項(xiàng)工作最重要的貢獻(xiàn)是提出了一種新的重新計(jì)算權(quán)重函數(shù)的方法,它使我們能夠極大地擴(kuò)展網(wǎng)絡(luò)并顯著提高其性能。所學(xué)習(xí)的卷積核可用于計(jì)算三維空間中任意點(diǎn)集上的平移不變( translation-invariant)和置換不變( permutation-invariant)卷積。此外,PointConv還可以用作反卷積算子,將特征從次采樣點(diǎn)云傳播回其原始分辨率。在ModelNet40、ShapeNet和ScanNet上的實(shí)驗(yàn)表明,構(gòu)建在PointConv上的深度卷積神經(jīng)網(wǎng)絡(luò)能夠在3D點(diǎn)云上挑戰(zhàn)語義分割基準(zhǔn)方面實(shí)現(xiàn)最新水平。此外,我們將CIFAR-10轉(zhuǎn)換為點(diǎn)云的實(shí)驗(yàn)表明,在PointConv上構(gòu)建的網(wǎng)絡(luò)可以在類似結(jié)構(gòu)的2D圖像中與卷積網(wǎng)絡(luò)的性能相匹配。
一、Introduction
3D傳感器的發(fā)展、3D傳感器的應(yīng)用領(lǐng)域及3D數(shù)據(jù)的優(yōu)點(diǎn)
在最近的機(jī)器人技術(shù)、自動駕駛和虛擬增強(qiáng)現(xiàn)實(shí)應(yīng)用中,可以直接獲取3D數(shù)據(jù)的傳感器越來越普遍。這包括室內(nèi)傳感器(如激光掃描儀)、飛行時間傳感器(如Kinect、RealSense或Google Tango)、結(jié)構(gòu)光傳感器(如iPhoneX上的傳感器)以及室外傳感器(如激光雷達(dá)和MEMS傳感器)。在這些應(yīng)用中,直接測量3D數(shù)據(jù)的能力是非常寶貴的,因?yàn)樯疃刃畔⒖梢韵?D圖像中的許多分割歧義,而曲面法線提供了場景幾何體的重要線索。
介紹CNN,說明傳統(tǒng)的CNN不適用于處理點(diǎn)云數(shù)據(jù)的原因
在二維圖像中,卷積神經(jīng)網(wǎng)絡(luò)(CNN)極大地改善了幾乎所有視覺任務(wù)的結(jié)果,從而從根本上改變了計(jì)算機(jī)視覺的格局。CNN成功地利用了平移不變性,因此相同的卷積濾波器集可以應(yīng)用于圖像中的所有位置,從而減少了參數(shù)數(shù)量,提高了泛化能力。我們希望這些成功能夠轉(zhuǎn)化為3D數(shù)據(jù)分析。然而,3D數(shù)據(jù)通常以點(diǎn)云的形式出現(xiàn),點(diǎn)云是一組無序的3D點(diǎn),每個點(diǎn)上都有或沒有其他特征(例如RGB)。點(diǎn)云無序,不符合2D圖像中的規(guī)則晶格柵格。對于這種無序的輸入,很難應(yīng)用傳統(tǒng)的CNN。另一種方法是將三維空間視為體素柵格(volumetric grid),但在這種情況下,體素必須是稀疏的,因?yàn)镃NN難以在高分辨率體素上進(jìn)行計(jì)算(計(jì)算量太大)。
本文提出PointNet
在本文中,提出了一種對非均勻采樣的三維點(diǎn)云進(jìn)行卷積的新方法。注意到,卷積運(yùn)算可以看作是連續(xù)卷積算子的離散近似。在3D空間中,可以將此卷積算子的權(quán)重視為局部3D點(diǎn)坐標(biāo)相對于參考3D點(diǎn)的連續(xù)函數(shù)。連續(xù)函數(shù)可用多層感知器(MLP)近似。但這些算法沒有考慮非均勻采樣。我們建議使用逆密度標(biāo)度(inverse density scale)對MLP學(xué)習(xí)的連續(xù)函數(shù)重新加權(quán),這對應(yīng)于連續(xù)卷積的蒙特卡羅近似。我們稱這種操作為PointConv。PointConv包括將點(diǎn)云的位置作為輸入,學(xué)習(xí)MLP以近似權(quán)重函數(shù),以及對學(xué)習(xí)的權(quán)重應(yīng)用反向密度標(biāo)度以補(bǔ)償非均勻采樣。
新方法提高內(nèi)存效率(重要創(chuàng)新點(diǎn))
因?yàn)镻ointConv的樸素實(shí)現(xiàn)內(nèi)存效率是低下的,所以當(dāng)輸出特性的通道大小非常大時,將難以訓(xùn)練和擴(kuò)展到大型網(wǎng)絡(luò)。為了減少PointConv的內(nèi)存消耗,引入了一種方法,該方法能夠通過改變求和順序的重新計(jì)算大大提高內(nèi)存效率。這種新結(jié)構(gòu)能夠在3D點(diǎn)云上構(gòu)建多層深度卷積網(wǎng)絡(luò),其功能與光柵圖像上的2D CNN類似。我們可以實(shí)現(xiàn)與二維卷積網(wǎng)絡(luò)相同的平移不變性,以及點(diǎn)云中點(diǎn)的排序?qū)χ脫Q的不變性。
反卷積PointDeconv
在分割任務(wù)中,將信息從粗層(coarse layer)逐漸傳輸?shù)郊?xì)層(finer layer)的能力非常重要。因此,能夠充分利用從粗層到細(xì)層的特征的 反卷積(deconvolution) 操作對性能至關(guān)重要。大多數(shù)先進(jìn)的算法無法執(zhí)行反卷積,這限制了它們在分割任務(wù)上的性能。由于PointConv是卷積的完全近似,因此很自然地將PointConv擴(kuò)展到PointDeconv,它可以完全解開粗層中的信息,并傳播到更細(xì)的層。通過使用PointConv和PointDeconv,本文可以在語義分割任務(wù)上獲得更好的性能。
本文主要貢獻(xiàn):
提出了一種密度重新加權(quán)卷積PointConv,它能夠完全逼近任意一組3D點(diǎn)上的3D連續(xù)卷積。
設(shè)計(jì)了一種內(nèi)存高效的方法來實(shí)現(xiàn)PointConv,使用求和順序的改變技術(shù),最重要的是,允許它擴(kuò)展到現(xiàn)代CNN的層數(shù)。
將PointConv擴(kuò)展到反卷積版本(PointDeconv),以獲得更好的分割結(jié)果。
實(shí)驗(yàn)表明,基于PointConv構(gòu)建的深度網(wǎng)絡(luò)與其他點(diǎn)云深度網(wǎng)絡(luò)相比具有很強(qiáng)的競爭力,并在部分分割和室內(nèi)語義分割基準(zhǔn)方面取得了最先進(jìn)的結(jié)果。為了證明PointConv確實(shí)是一種真正的卷積運(yùn)算,我們還通過將2D圖像中的所有像素轉(zhuǎn)換為具有2D坐標(biāo)以及每個點(diǎn)上的RGB特征的點(diǎn)云來評估CIFAR-10上的PointConv。在CIFAR-10上的實(shí)驗(yàn)表明,我們的PointConv的分類精度與結(jié)構(gòu)相似的圖像CNN相當(dāng),遠(yuǎn)遠(yuǎn)優(yōu)于以前由點(diǎn)云網(wǎng)絡(luò)獲得的最佳結(jié)果。作為三維數(shù)據(jù)CNN的一種基本方法,PointConv有許多潛在的應(yīng)用價值。
二、Related Work
將點(diǎn)云轉(zhuǎn)換為2D圖像或者3D提速數(shù)據(jù)的工作
大多數(shù)關(guān)于3D CNN網(wǎng)絡(luò)的工作將3D點(diǎn)云轉(zhuǎn)換為2D圖像或3D體積柵格。將3D點(diǎn)云或形狀投影到多個2D圖像中,然后應(yīng)用2D卷積網(wǎng)絡(luò)進(jìn)行分類。雖然這些方法在形狀分類和檢索任務(wù)上取得了主導(dǎo)性的性能,但將其擴(kuò)展到高分辨率場景分割任務(wù)是困難的(nontrivial)。另一種方法,通過量化將點(diǎn)云體素化為體積網(wǎng)格,然后應(yīng)用3D卷積網(wǎng)絡(luò)。這種方法受到其三維體積分辨率和三維卷積計(jì)算成本的限制。Gernot Riegler通過使用一組不平衡的八叉樹,每個葉節(jié)點(diǎn)存儲一個合并的特征表示,顯著提高了分辨率。Kd networks在一定大小的Kd樹上以前饋?zhàn)缘紫蛏系姆绞接?jì)算表示。在Kd網(wǎng)絡(luò)中,在訓(xùn)練和測試期間,點(diǎn)云中的輸入點(diǎn)數(shù)需要相同,這不適用于許多任務(wù)。SSCN利用基于體積網(wǎng)格的卷積,通過僅在輸入點(diǎn)上考慮CNN輸出,實(shí)現(xiàn)了新的速度/內(nèi)存改進(jìn)。但是,如果點(diǎn)云采樣稀疏,尤其是采樣率不均勻時,對于上的稀疏采樣區(qū)域,可能無法在體積卷積濾波器內(nèi)找到任何鄰域,這可能會導(dǎo)致重大問題。
直接使用點(diǎn)云的工作
一些最新的工作直接將原始點(diǎn)云作為輸入,而不將其轉(zhuǎn)換為其他格式。有研究建議使用共享多層感知器和最大池層來獲取點(diǎn)云的特征。由于最大池圖層應(yīng)用于點(diǎn)云中的所有點(diǎn),因此很難捕獲局部特征。PointNet++通過添加層次結(jié)構(gòu)改進(jìn)了PointNet中的網(wǎng)絡(luò)。該層次結(jié)構(gòu)與圖像CNN中使用的層次結(jié)構(gòu)相似,它從較小的局部區(qū)域開始提取特征,然后逐漸擴(kuò)展到較大的區(qū)域。PointNet和PointNet++中用于聚合不同點(diǎn)的功能的關(guān)鍵結(jié)構(gòu)是最大池。然而,最大池層僅在局部或全局區(qū)域中保持對功能的最強(qiáng)激活,這可能會丟失一些用于分割任務(wù)的有用詳細(xì)信息。SPLATNet提出了一種將點(diǎn)云的輸入特征投影到高維晶格上,然后在高維晶格上應(yīng)用雙邊卷積來聚合特征的方法,稱為“SPLATNet”。SPLATNet能夠給出與PointNet++類似的結(jié)果。切線卷積(tangent convolution)將局部曲面幾何體投影到圍繞每個點(diǎn)的切面上,從而生成一組可平面卷積的切線圖像。逐點(diǎn)卷積(pointwise convolution)動態(tài)查詢最近的鄰域,并將點(diǎn)裝箱到核單元中,然后在裝箱單元上應(yīng)用核權(quán)重以在點(diǎn)云上卷積。Flex卷積引入了傳統(tǒng)卷積層的泛化以及高效的GPU實(shí)現(xiàn),可應(yīng)用于具有數(shù)百萬個點(diǎn)的點(diǎn)云。FeaStNet建議通過添加軟分配矩陣將傳統(tǒng)卷積層推廣到3D點(diǎn)云。PointCNN的要點(diǎn)是從輸入點(diǎn)學(xué)習(xí)χ?轉(zhuǎn)換,然后使用它同時對與點(diǎn)關(guān)聯(lián)的輸入特征進(jìn)行加權(quán)和置換。與我們的方法相比,PointCNN無法實(shí)現(xiàn)點(diǎn)云所需的置換不變性。
連續(xù)濾波器執(zhí)行卷積
有的研究建議學(xué)習(xí)連續(xù)濾波器來執(zhí)行卷積。Dynamic filter networks提出二維卷積中的權(quán)值濾波器可以看作是一個連續(xù)函數(shù),可以用MLPs近似。Dynamic edge-conditioned filters首先將該思想引入到3d圖形結(jié)構(gòu)中。Shenlong Wang將Dynamic edge-conditioned filters中的方法擴(kuò)展到分割任務(wù),并提出了一種有效的方法,但其有效的方法只能近似于深度方向的卷積,而不能近似于實(shí)卷積。Dynamic graph CNN 提出了一種可以動態(tài)更新圖的方法。Yifan Xu提出了一系列特殊的過濾器,以近似權(quán)重函數(shù),而不是使用MLP。Monte carlo convolution 提出了一種考慮密度的三維卷積Monta-Carlo近似方法。我們的工作在三個方面與之不同。最重要的是,在以前的研究工作中從未提出過真正卷積的有效版本。此外,我們使用的密度與Monte carlo convolution不同,我們提出了一種基于PointConv的反卷積算子來執(zhí)行語義分割。
三、PointConv
我們提出了一種卷積運(yùn)算,將傳統(tǒng)的圖像卷積擴(kuò)展到點(diǎn)云中,稱為PointConv。PointConv是對三維連續(xù)卷積算子蒙特卡羅近似的擴(kuò)展。對于每個卷積濾波器,它使用MLP來近似權(quán)重函數(shù),然后應(yīng)用密度標(biāo)度(density scale)來重新加權(quán)所學(xué)習(xí)的權(quán)重函數(shù)。第3.1節(jié)介紹了PointConv層的結(jié)構(gòu)。第3.2節(jié)介紹了PointDeconv。
3.1 Convolution on 3D Point Clouds
卷積定義式:
圖像可以解釋為二維離散函數(shù),通常表示為網(wǎng)格狀矩陣。在CNN中,每個濾波器被限制在一個小的局部區(qū)域,如3×3、5×5等。在每個局部區(qū)域內(nèi),不同像素之間的相對位置總是固定的,如下圖(a)所示。該濾波器可以很容易地離散為局部區(qū)域內(nèi)每個位置的實(shí)值權(quán)重之和。
點(diǎn)云表示為一組3D點(diǎn)
{
p
i
∣
i
=
1
,
…
,
n
}
\{p_i | i=1,…,n\}
{pi?∣i=1,…,n},其中每個點(diǎn)包含一個位置向量(x,y,z)及其特征,如顏色、曲面法線等。與圖像不同,點(diǎn)云具有更靈活的形狀。點(diǎn)云中點(diǎn)的坐標(biāo)p=(x,y,z)不位于固定柵格上,但可以采用任意連續(xù)值。因此,在每個局部區(qū)域,不同點(diǎn)的相對位置是不同的。光柵圖像上的傳統(tǒng)離散卷積濾波器無法直接應(yīng)用于點(diǎn)云。上圖表示出了圖像中的局部區(qū)域和點(diǎn)云之間的差異。
為了使卷積與點(diǎn)集兼容,提出了一種置換不變卷積運(yùn)算,稱為PointConv。我們的想法是首先回到3D卷積的連續(xù)版本,如下所示:
其中,F(xiàn)是點(diǎn)的特征。可以將點(diǎn)云視為連續(xù)空間中的非均勻采樣樣本。在每個局部區(qū)域中,(δx,δy,δz)可以是局部區(qū)域中的任何可能位置。我們將PointConv定義如下:
其中S(δx,δy,δz)是點(diǎn)(δx,δy,δz)處的逆密度估計(jì)(密度越大,逆密度估計(jì)越?。?。需要S(δx,δy,δz),因?yàn)辄c(diǎn)云可以非常不均勻地采樣。直觀地說,局部區(qū)域中的點(diǎn)數(shù)量在整個點(diǎn)云中有所不同,如圖2(b)和(c)所示。此外,在圖2(c)中,點(diǎn)p3、p5、p6、p7、p8、p9、p10彼此非常接近,因此應(yīng)該減小每個點(diǎn)的貢獻(xiàn),p1、p2點(diǎn)較為稀疏,因此應(yīng)該增大每個點(diǎn)的貢獻(xiàn),防止特征丟失。
主要思想是通過多層感知器從三維坐標(biāo)(δx,δy,δz)和通過核化密度估計(jì)和MLP實(shí)現(xiàn)的非線性變換得到的逆密度S(δx,δy,δz)近似權(quán)重函數(shù)W(δx,δy,δz)。由于權(quán)重函數(shù)高度依賴于輸入點(diǎn)云的分布,因此我們將整個卷積運(yùn)算稱為PointConv。Dynamic filter networks和Dynamic edge-conditioned filters考慮了權(quán)函數(shù)的近似,但沒有考慮密度標(biāo)度的近似,因此不是連續(xù)卷積算子的完全近似。我們對密度的非線性變換也不同于Monte carlo convolution。
PointConv中MLP的權(quán)重在所有點(diǎn)之間共享,以保持置換不變性。為了計(jì)算逆密度尺度S(δx,δy,δz),首先使用核密度估計(jì)(kernel density estimation,KDE)離線估計(jì)點(diǎn)云中每個點(diǎn)的密度,然后將密度輸入到MLP中進(jìn)行一維非線性變換。使用非線性變換的原因是網(wǎng)絡(luò)可以自適應(yīng)地決定是否使用密度估計(jì)。
上圖顯示了K點(diǎn)局部區(qū)域上的PointConv操作。設(shè)
C
i
n
C_{in}
Cin?,
C
o
u
t
C_{out}
Cout?為輸入特征和輸出特征的通道數(shù),k,
c
i
n
c_{in}
cin?,
c
o
u
t
c_{out}
cout?為第k個鄰域的索引,輸入特征的第
c
i
n
c_{in}
cin?個通道,輸出特征的第
c
o
u
t
c_{out}
cout?個通道。輸入是點(diǎn)Plocal的3D局部位置∈ RK×3,可通過減去局部區(qū)域質(zhì)心和特征的坐標(biāo)來計(jì)算3D局部區(qū)域內(nèi)點(diǎn)的去中心化坐標(biāo)。使用1×1卷積來實(shí)現(xiàn)MLP。權(quán)重函數(shù)的輸出為W。卷積后,將具有K個相鄰點(diǎn)的局部區(qū)域的特征
F
i
n
F_in
Fi?n編碼到輸出特征
F
o
u
t
F_out
Fo?ut,如等式(4)所示:
PointConv學(xué)習(xí)網(wǎng)絡(luò)以近似卷積的連續(xù)權(quán)重。對于每個輸入點(diǎn),我們可以使用MLP的相對坐標(biāo)計(jì)算其權(quán)重。圖2(a)顯示了卷積的連續(xù)權(quán)重函數(shù)示例。將點(diǎn)云輸入作為連續(xù)輸入的離散化,可通過圖2(b)計(jì)算離散卷積以提取局部特征,這將對不同的點(diǎn)云樣本(圖2(b-d))起作用(具有潛在的不同近似精度),包括規(guī)則網(wǎng)格(圖2(d))。請注意,在光柵圖像中,局部區(qū)域中的相對位置是固定的。然后,PointConv(僅將相對位置作為權(quán)重函數(shù)的輸入)將在整個圖像上輸出相同的權(quán)重和密度,在這里它退化為傳統(tǒng)的離散化卷積。
為了聚合整個點(diǎn)集中的特征,我們使用了一種層次結(jié)構(gòu),該結(jié)構(gòu)能夠?qū)⒃敿?xì)的小區(qū)域特征組合成覆蓋更大空間范圍的抽象特征。我們使用的層次結(jié)構(gòu)由幾個特征編碼模塊組成,這與PointNet++[28]中使用的模塊類似。每個模塊大致相當(dāng)于卷積CNN中的一層。每個特征編碼模塊的關(guān)鍵層是采樣層、分組層和PointConv。
這種方法的缺點(diǎn)是,每個核W都需要由網(wǎng)絡(luò)近似,因此效率非常低。在第4節(jié)提出了一種實(shí)現(xiàn)PointConv的有效方法。
3.2 Feature Propagation Using Deconvolution
對于分割任務(wù),我們需要逐點(diǎn)預(yù)測。為了獲得所有輸入點(diǎn)的特征,需要一種將特征從次采樣點(diǎn)云傳播到更密集點(diǎn)云的方法。PointNet++[28]建議使用基于距離的插值來傳播特征,這是合理的,因?yàn)榫植繀^(qū)域內(nèi)存在局部相關(guān)性。然而,這并沒有充分利用反卷積操作,反卷積操作從粗略級別捕獲傳播信息的局部相關(guān)性。我們建議在PointConv的基礎(chǔ)上添加一個PointDeconv層,作為解決此問題的反卷積操作。
如下圖所示,PointDeconv由兩部分組成:插值和PointConv。首先,我們使用插值來傳播前一層的粗糙特征。根據(jù)PointNet++,通過從最近的3個點(diǎn)對特征進(jìn)行線性插值來進(jìn)行插值。然后,使用跳過鏈接將插值特征與具有相同分辨率的卷積層的特征連接起來。在串聯(lián)之后,我們對串聯(lián)的特征應(yīng)用PointConv,以獲得最終的反卷積輸出,類似于圖像反卷積層。我們應(yīng)用此過程,直到所有輸入點(diǎn)的特征都傳播回原始分辨率。
四、Efficient PointConv
PointConv的簡單實(shí)現(xiàn)占用內(nèi)存且效率低下。與Dynamic edge-conditioned filters不同的是,我們提出了一種新的重新格式來實(shí)現(xiàn)PointConv,將其簡化為兩種標(biāo)準(zhǔn)操作:矩陣乘法和2d卷積。這種新的技巧不僅利用了GPU的并行計(jì)算,而且可以使用主流的深度學(xué)習(xí)框架輕松實(shí)現(xiàn)。由于反向密度標(biāo)度沒有這種內(nèi)存問題,下面的討論主要集中在權(quán)重函數(shù)上。文章來源:http://www.zghlxwxcb.cn/news/detail-455389.html
PointConv的簡單實(shí)現(xiàn)占用內(nèi)存且效率低下,網(wǎng)絡(luò)將難以訓(xùn)練。PointNet++使用了非常小的網(wǎng)絡(luò)和很少的核,這大大降低了其性能。為了解決這個問題,我們基于以下引理提出了一個高效內(nèi)存版本的PointConv:
證明:
因此,可以將原始PointConv等效為矩陣乘法和1×1卷積。下圖顯示了PointConv的高效版本。
在該方法中,我們不將生成的濾波器存儲在內(nèi)存中,而是將權(quán)重濾波器分為兩部分:中間結(jié)果M和卷積核H。文章來源地址http://www.zghlxwxcb.cn/news/detail-455389.html
五、Experiments
六、Ablation Experiments and Visualizations
到了這里,關(guān)于基于深度學(xué)習(xí)方法的點(diǎn)云算法5——PointConv(點(diǎn)云分類分割)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!