基于深度學(xué)習(xí)方法的點(diǎn)云算法1——PointNetLK(點(diǎn)云配準(zhǔn))
請(qǐng)點(diǎn)點(diǎn)贊,會(huì)持續(xù)更新?。?!
基于深度學(xué)習(xí)方法的點(diǎn)云算法2——PointNet(點(diǎn)云分類(lèi)分割)
基于深度學(xué)習(xí)方法的點(diǎn)云算法3——PointNet++(點(diǎn)云分類(lèi)分割)
基于深度學(xué)習(xí)方法的點(diǎn)云算法4——PCT: Point Cloud Transformer(點(diǎn)云分類(lèi)分割)
摘要
作者將PointNet看成一個(gè)可學(xué)習(xí)的成像函數(shù)(learnable “imaging” function),然后就可以將用于圖像對(duì)齊的LK算法應(yīng)用于點(diǎn)云配準(zhǔn)。作者主要貢獻(xiàn)如下:
(1)修改LK算法,使其適用于PointNet;
(2)將LK與PointNet相結(jié)合得到PoinNetLK。
本文為深度學(xué)習(xí)在點(diǎn)云配準(zhǔn)中的應(yīng)用開(kāi)辟了新的途徑。
源碼: PointNetLK源碼
論文:PointNetLK論文
一、Introduction
點(diǎn)云本質(zhì)上是非結(jié)構(gòu)化的,具有樣本和順序排列的模糊性。 這種結(jié)構(gòu)的缺乏使得現(xiàn)代深度學(xué)習(xí)體系結(jié)構(gòu)在點(diǎn)云任務(wù)上的使用存在問(wèn)題。從這個(gè)角度來(lái)看,PointNet的提出是革命性的,因?yàn)樗鼮辄c(diǎn)云提供了可學(xué)習(xí)的結(jié)構(gòu)化表示??梢詫⑦@一過(guò)程視為一種“成像”(“imaging”)——無(wú)論樣本數(shù)量或點(diǎn)的順序如何,都能產(chǎn)生固定尺寸的輸出。
但是,PointNet在點(diǎn)云配準(zhǔn)任務(wù)中的應(yīng)用仍然有待探索(這其實(shí)就是作者要解決的問(wèn)題)。作者將進(jìn)一步探索將PointNet視為成像函數(shù)這一概念,這一概念的好處是可以將圖像對(duì)齊方法應(yīng)用于點(diǎn)云配準(zhǔn)問(wèn)題,作者將應(yīng)用經(jīng)典的LK(Lucas&Kanade)算法,因?yàn)榻谟醒芯空邔K算法重新解釋為了循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network),實(shí)現(xiàn)了最先進(jìn)的2D目標(biāo)跟蹤(object tracking)性能。
然而,LK算法不能簡(jiǎn)單地應(yīng)用于PointNet(這其實(shí)就是作者要解決的第二個(gè)問(wèn)題)。這是由于LK算法依賴(lài)于梯度估計(jì),而梯度估計(jì)實(shí)際上是通過(guò)卷積來(lái)估計(jì)的。在二維光學(xué)圖像或三維體積圖像中,每個(gè)元素(即像素或體素)與其相鄰元素之間具有已知的局部相關(guān)性,可以分別表示為二維和三維網(wǎng)格,從中可以定義卷積。PointNet沒(méi)有這種局部依賴(lài)性,因此通過(guò)卷積估計(jì)空間梯度是不合適的。
貢獻(xiàn):
(1)修改LK算法,使其適用于PointNet;
(2)將LK與PointNet相結(jié)合得到PoinNetLK。
PointNetLK不像ICP及其變種算法一樣需要計(jì)算代價(jià)高昂的對(duì)應(yīng)點(diǎn)計(jì)算。具有準(zhǔn)確率、初始化魯棒性(ICP對(duì)初始化是敏感的)和計(jì)算效率優(yōu)勢(shì)。
PointNetLK對(duì)于未見(jiàn)過(guò)的對(duì)象具有顯著的泛化性能,如圖1所示,這種泛化性能可歸因于網(wǎng)絡(luò)體系結(jié)構(gòu)中對(duì)齊過(guò)程的顯式編碼(explicit encoding )。 因此,網(wǎng)絡(luò)只需要學(xué)習(xí)點(diǎn)網(wǎng)表示,而不需要學(xué)習(xí)對(duì)齊任務(wù)。
圖1
本文所提出的方法是完全可微的,因此可以與更大的深度神經(jīng)網(wǎng)絡(luò)系統(tǒng)結(jié)合。
PointNetLK可以在GPU上運(yùn)行,而ICP及其大多數(shù)變種方法只能在CPU上運(yùn)行。
二、Related Work
PointNet: PointNet是第一個(gè)以原始點(diǎn)云為輸入,使用DNN進(jìn)行分類(lèi)和分割的模型。其結(jié)構(gòu)簡(jiǎn)單,但實(shí)現(xiàn)了最先進(jìn)的性能(state of the art),并為處理點(diǎn)云數(shù)據(jù)提供了創(chuàng)新性的理論見(jiàn)解。PointNet++是PointNet的改進(jìn)版,它在局部點(diǎn)集中分層聚合特征。
ICP and variants: Besl 和 McKay 提出了ICP(iterative closest point)算法,通過(guò)迭代估計(jì)點(diǎn)的對(duì)應(yīng)關(guān)系并執(zhí)行最小二乘法來(lái)進(jìn)行配準(zhǔn),這是一種經(jīng)典且廣泛應(yīng)用的方法。并且衍生出多種ICP變種算法。然而,ICP及其變種算法有一些基本的缺點(diǎn):(1)明確估計(jì)最近點(diǎn)的對(duì)應(yīng)關(guān)系,導(dǎo)致計(jì)算復(fù)雜度與點(diǎn)的數(shù)量成二次指數(shù)關(guān)系;(2)對(duì)初始化敏感;(3)因?yàn)榭晌⑿詥?wèn)題,無(wú)法將其集成到深度學(xué)習(xí)框架中。
Globally optimal registration: 因?yàn)镮CP及其變種對(duì)初始擾動(dòng)(initial perturbation)敏感,只能產(chǎn)生局部最優(yōu)估計(jì)。Yang等人開(kāi)發(fā)了Go-ICP,可以獲取全局最優(yōu)解。最近,凸松弛(convex relaxation)被用于全局姿態(tài)估計(jì)(global pose estimation),如黎曼優(yōu)化、半定規(guī)劃和混合整數(shù)規(guī)劃。但是上述方法的一個(gè)主要缺點(diǎn)是計(jì)算時(shí)間長(zhǎng),不適合實(shí)時(shí)應(yīng)用。
Interest point methods: 一些研究通過(guò)估計(jì)特征點(diǎn)(interest point)來(lái)進(jìn)行配準(zhǔn)。文獻(xiàn)中有一些作品估計(jì)了興趣點(diǎn)以幫助注冊(cè)。例如,尺度不變曲率描述符、定向描述符、擴(kuò)展高斯圖像、快速點(diǎn)特征直方圖、基于顏色強(qiáng)度的描述符、全局點(diǎn)簽名、熱核等,特征點(diǎn)有可能提高配準(zhǔn)方法的計(jì)算速度,它們并不能推廣到所有應(yīng)用程序。
Hand-crafted representations: Vongkulbhisal等人提出的discriminative optimization (DO)方法采用手工設(shè)計(jì)特征向量的方式學(xué)習(xí)一系列特征圖,來(lái)估計(jì)良好的初始對(duì)齊。隨后使用ICP對(duì)配準(zhǔn)進(jìn)行細(xì)化。缺點(diǎn)(drawback)是特征和特征圖是特定于每個(gè)對(duì)象的,不具有泛化能力。最近,他們開(kāi)發(fā)了逆合成判別優(yōu)化(inverse composition discriminative optimization,ICDO),可以泛化到未知對(duì)象上。不幸的是,ICDO的計(jì)算復(fù)雜度和點(diǎn)數(shù)上是二次指數(shù)關(guān)系,因此很難在幾個(gè)真實(shí)場(chǎng)景中使用。ICDO的另一個(gè)問(wèn)題是,特征和路線圖都已學(xué)習(xí),這可能會(huì)對(duì)方法的泛化能力造成影響。
Alternate representations: 體素化是一種將空間離散化并將點(diǎn)云轉(zhuǎn)換為結(jié)構(gòu)化網(wǎng)格的方法。幾種在體素上使用DNN的方法已經(jīng)得到了開(kāi)發(fā)。這些方法的主要缺點(diǎn)包括計(jì)算時(shí)間和內(nèi)存需求。另一種流行的表示是深度圖像(depth image)或范圍圖像(range image),它將點(diǎn)云表示為2D視圖的集合,這些視圖很容易通過(guò)商業(yè)結(jié)構(gòu)光傳感器獲得。通常在每個(gè)視圖上執(zhí)行卷積運(yùn)算,并聚合得到的特征。一些作品還將體素?cái)?shù)據(jù)與多視圖數(shù)據(jù)相結(jié)合。有幾項(xiàng)工作可以直接從光學(xué)圖像估計(jì)3D姿勢(shì)。例如,直接回歸裁剪對(duì)象圖像中對(duì)象方向的歐拉角。另一方面,在機(jī)器人操縱等應(yīng)用中,姿勢(shì)通常被解耦為旋轉(zhuǎn)和平移分量,并且每個(gè)分量都是獨(dú)立推斷的。
三、PointNetLK
圖2 PointNetLK
3.1 Overview
Φ表示PointNet函數(shù), Φ使用的是多層感知機(jī)(Multi-Layer Perceptron,MLP),MLP將形狀是N×3的數(shù)據(jù)轉(zhuǎn)換為形狀是N×K的特征,其中N為點(diǎn)的個(gè)數(shù),3包含了x,y,z。然后應(yīng)用對(duì)稱(chēng)池函數(shù)(symmetric pooling function, sym. func.),如最大池化或者平均池化,生成一個(gè)K維(形狀是1×K,我習(xí)慣稱(chēng)之為長(zhǎng)度為K)全局描述符。 在傷處過(guò)程中,作者利用MIP和symmetric pooling function將點(diǎn)云數(shù)據(jù)進(jìn)行特征提取,得到了一個(gè)長(zhǎng)度為K的點(diǎn)云全局特征,如圖3所示。注意,
P
T
P_T
PT? 表示模板點(diǎn)云,
P
S
P_S
PS? 表示源點(diǎn)云,提取兩者特征的MLP是共享參數(shù)(shared)的。
圖3
優(yōu)化方案如下:
G 屬于李群,是剛體變換,表示源點(diǎn)云向模板點(diǎn)云的變換矩陣,G 如上式所示,可由指數(shù)形式表示,其中
T
i
T_i
Ti?表示扭轉(zhuǎn)參數(shù)(twist parameters)(李代數(shù)) ξ 的指數(shù)映射的生成器。則3D點(diǎn)云配準(zhǔn)問(wèn)題可以轉(zhuǎn)換為求取G ,使得Φ(
P
T
P_T
PT? )=Φ(
G
?
P
S
G·P_S
G?PS? )。該方程類(lèi)似于二維圖像的經(jīng)典LK算法中優(yōu)化的數(shù)量,其中源圖像被變換,從而使變換的源和模板之間的像素強(qiáng)度差最小化。
有關(guān)李群李代數(shù),剛體變換的知識(shí)點(diǎn)可參考 SE(3)和se(3)
值得注意的是,本文剔除了PointNet體系結(jié)構(gòu)中T-net,因?yàn)樗哪康氖寝D(zhuǎn)換輸入點(diǎn)云,解決點(diǎn)云數(shù)據(jù)的旋轉(zhuǎn)不變性問(wèn)題,以提高分類(lèi)精度。然而,本文的任務(wù)是點(diǎn)云配準(zhǔn),計(jì)算的正是兩組點(diǎn)云之間的旋轉(zhuǎn)關(guān)系和平移關(guān)系,如果引入T-Net,會(huì)使得提取到的點(diǎn)云特征中的旋轉(zhuǎn)特征消失,進(jìn)而無(wú)法完成配準(zhǔn)工作。
注意: 將變換矩陣映射成指數(shù)形式的G 是為了在模型訓(xùn)練中可以求梯度。
應(yīng)用逆合成(Inverse Compositional,IC) 公式改進(jìn)LK算法,由于傳統(tǒng)的LK算法在每次迭代優(yōu)化時(shí)都有很高的計(jì)算成本,因此有必要使用IC公式。此成本來(lái)自在優(yōu)化的每個(gè)步驟中,在變換的源圖像上重新計(jì)算圖像雅可比矩陣。IC公式的精髓在于逆轉(zhuǎn)模板點(diǎn)云和源點(diǎn)云的作用:在每次迭代中,將解決模板點(diǎn)云而不是源點(diǎn)云的增量變換更新,然后將此增量變換的逆運(yùn)算應(yīng)用于源點(diǎn)云。通過(guò)這樣做,將對(duì)模板點(diǎn)云而不是源點(diǎn)云執(zhí)行雅可比計(jì)算,并且在優(yōu)化開(kāi)始之前只執(zhí)行一次。如圖4所示,
J
i
J_i
Ji?為模板點(diǎn)云的雅可比矩陣,
J
+
J^+
J+為
J
i
J_i
Ji?的逆,因?yàn)槟0妩c(diǎn)云是固定的,不發(fā)生變化的,因此其雅可比矩陣也是不變的,因此只需要計(jì)算一次。
圖4
3.2 Derivation
本節(jié)主要描述迭代優(yōu)化方案,迭代優(yōu)化的目的是求取G。
應(yīng)用上一節(jié)提到的IC公式,得到:
然后將上述公式的右端線性化,得到:
對(duì)
G
?
G^-
G?定義如下:
Canonical LK: 定義雅各比矩陣:
雅各比矩陣J的形狀是K×6?;谏鲜龉?,計(jì)算雅各比矩陣需要計(jì)算PointNet函數(shù)Φ相對(duì)于G的扭轉(zhuǎn)參數(shù)(twist parameters)(李代數(shù)) ξ的梯度的解析表示,這存在困難并且計(jì)算代價(jià)高昂。
Modified LK: 采用隨機(jī)梯度法(stochastic gradient)計(jì)算J,具體而言,雅可比矩陣的每一列
J
i
J_i
Ji?可以通過(guò)有限差分梯度來(lái)近似,計(jì)算如下 :
其中,
t
i
t_i
ti?是扭轉(zhuǎn)參數(shù)ξ的無(wú)窮小擾動(dòng)。這種計(jì)算J的方法允許將計(jì)算效率高的逆合成LK算法應(yīng)用于使用PointNet提取特征的點(diǎn)云配準(zhǔn)問(wèn)題。注意:J只需要計(jì)算一次,因?yàn)槟0妩c(diǎn)云是不發(fā)生變化的。對(duì)于雅可比矩陣的每列
J
i
J_i
Ji?,只有第i個(gè)扭曲參數(shù)具有非零值
t
i
t_i
ti?。理論上,
t
i
t_i
ti?應(yīng)該是無(wú)窮小的,此時(shí),J等于解析導(dǎo)數(shù)。在實(shí)踐中,根據(jù)經(jīng)驗(yàn)發(fā)現(xiàn),在所有迭代中,將
t
i
t_i
ti?設(shè)置為某個(gè)較小的固定值會(huì)產(chǎn)生最佳結(jié)果。
然后可計(jì)算 ξ:其中,
J
+
J^+
J+是J的摩爾-彭羅斯逆(Moore-Penrose inverse)。
總之,整個(gè)迭代算法包括通過(guò)上式計(jì)算扭轉(zhuǎn)參數(shù),以及通過(guò)下式更新源點(diǎn)云:最終估算
G
e
s
t
G_est
Ge?st是迭代循環(huán)期間計(jì)算的所有增量估算的組成:
迭代的終止條件是ΔG小于設(shè)定的閾值。
3.3 Training
**Loss function:**訓(xùn)練的損失函數(shù)應(yīng)該以最小化估計(jì)變換
G
e
s
t
G_{est}
Gest?和真實(shí)變換
G
g
t
G_{gt}
Ggt?之間的差異為目標(biāo)。文中并沒(méi)有使用
ξ
e
s
t
ξ_{est}
ξest?和
ξ
g
t
ξ_{gt}
ξgt?的均方誤差(MSE),而是使用了如下?lián)p失函數(shù):
它的計(jì)算效率更高,因?yàn)樗谟?xùn)練期間不需要矩陣對(duì)數(shù)運(yùn)算。
Symmetric pooling operator: 在PointNet中,MLP操作之后是對(duì)稱(chēng)池化函數(shù)(symmetric pooling function),如最大池化或平均池化,以實(shí)現(xiàn)點(diǎn)的順序排列不變性。在第4節(jié)中,展示了使用最大池化或平均池化的結(jié)果,并觀察了在不同情況下哪個(gè)操作符可能更合適。 特別是,假設(shè)在噪聲點(diǎn)云數(shù)據(jù)的情況下,平均池化比最大池化更有優(yōu)勢(shì),這在實(shí)驗(yàn)中得到了證實(shí)。
四、Experiments
使用ModelNet40數(shù)據(jù)集,在測(cè)試時(shí)以ICP為baseline。
4.1 Train and test on same object categories
首先在ModelNet40數(shù)據(jù)集中的20各類(lèi)別中訓(xùn)練,然后也在這20個(gè)類(lèi)別中測(cè)試。首先使用PointNet分類(lèi)模型在數(shù)據(jù)集上進(jìn)行訓(xùn)練,然后用訓(xùn)練得到的分類(lèi)模型初始化PointNetLK的特征提取網(wǎng)絡(luò),并用文中提出的損失函數(shù)進(jìn)一步訓(xùn)練微調(diào)PointNetLK。源點(diǎn)云是模板點(diǎn)云的剛性變換,模板點(diǎn)云在通過(guò)扭轉(zhuǎn)產(chǎn)生源點(diǎn)云之前線歸一化到
[
0
,
1
]
3
[0,1]^3
[0,1]3之間。真是標(biāo)簽旋轉(zhuǎn)角度在[0,45]度之間,平移距離為[0,0.8]之間。
實(shí)驗(yàn)結(jié)果如圖5所示,在測(cè)試時(shí),ICP和PointNetLK均迭代了10次。結(jié)果顯示,PointNetLK能夠以比ICP少得多的迭代次數(shù)收斂到正確的解。確保對(duì)ICP和PointNetLK用相同點(diǎn)云和相同的初始變換進(jìn)行測(cè)試。測(cè)試的初始平移在[0,0.3]范圍內(nèi),初始旋轉(zhuǎn)在[0,90]度范圍內(nèi)。
圖5
4.2 Train and test on different object categories
用ModelNet40中另外的20類(lèi)訓(xùn)練模型,然后用訓(xùn)練時(shí)未使用的20類(lèi)來(lái)測(cè)試PointNetLK,實(shí)驗(yàn)結(jié)果如圖5綠色的曲線所示。實(shí)驗(yàn)結(jié)果表明PointNetLK具有很好的泛化性能。還在斯坦福數(shù)據(jù)集中的兔子點(diǎn)云上做了測(cè)試,效果很不錯(cuò),如圖6所示。
圖6
4.3. Gaussian noise
研究了PointNetLK對(duì)高斯噪聲的魯棒性。從ModelNet40數(shù)據(jù)集中的每個(gè)形狀隨機(jī)采樣1000個(gè)點(diǎn)得到模板點(diǎn)云,對(duì)模板點(diǎn)云加入高斯噪聲得到源點(diǎn)云。作者認(rèn)為在本實(shí)驗(yàn)中,對(duì)稱(chēng)池化算子的選擇對(duì)PointNetLK的性能變得更加關(guān)鍵。正如在最初的PointNet工作中所指出的,使用最大池化操作符可以得到一組關(guān)鍵的形狀點(diǎn),這些形狀點(diǎn)定義了全局特征向量。對(duì)于有噪聲的數(shù)據(jù),該臨界集在不同的隨機(jī)噪聲樣本中會(huì)發(fā)生較大的變化。因此,作者認(rèn)為平均池更適合于學(xué)習(xí)噪聲數(shù)據(jù)的全局特征。圖7所示的結(jié)果證實(shí)了這一假設(shè)。我們重復(fù)第4.2節(jié)的程序,測(cè)試在訓(xùn)練期間看不到的對(duì)象類(lèi)別。圖8中顯示了一些示例對(duì)齊對(duì)。
圖7
圖8
4.4. Partially visible data
作者探討了PointNetLK在對(duì)齊2.5D數(shù)據(jù)的常見(jiàn)配準(zhǔn)場(chǎng)景中的使用。在現(xiàn)實(shí)世界中,通常模板點(diǎn)云是一個(gè)完整的3D模型,源是一個(gè)2.5D掃描(2.5D的意思是從一個(gè)固定的視角獲取到的點(diǎn)云信息,既不完整的點(diǎn)云信息)。這種情況下的一種方法是將2.5D源和3D模板直接輸入到對(duì)齊算法中,并估計(jì)對(duì)應(yīng)關(guān)系和對(duì)齊。第二種方法是從某一個(gè)視角相對(duì)于3D模型的初始估計(jì)來(lái)采樣模型上的可見(jiàn)點(diǎn),這可以類(lèi)比為2.5D掃描。然后迭代更新視角,直到3D模型上的可見(jiàn)點(diǎn)與2.5D數(shù)據(jù)匹配。
作者采用第二種方法測(cè)試PointNetLK,因?yàn)槿绻捎玫谝环N方法,代價(jià)函數(shù)
Φ
(
P
T
)
?
Φ
(
G
?
P
S
)
Φ(P_T)-Φ(G·P_S)
Φ(PT?)?Φ(G?PS?)可能會(huì)很大。相反,先根據(jù)初始姿勢(shì)估計(jì)從3D模型中采樣可見(jiàn)點(diǎn)更有意義,這樣PointNetLK的輸入都是2.5D。這樣,正確的最終匹配更有可能使得代價(jià)函數(shù)
Φ
(
P
T
)
?
Φ
(
G
?
P
S
)
Φ(P_T)-Φ(G·P_S)
Φ(PT?)?Φ(G?PS?)接近于零。
整個(gè)過(guò)程可總結(jié)為:
扭轉(zhuǎn)模板點(diǎn)云得到源點(diǎn)云,對(duì)模板點(diǎn)云和源點(diǎn)云在某一視角下進(jìn)行采樣得到2.5D數(shù)據(jù),然后將2.5D的模板點(diǎn)云和源點(diǎn)云輸入模型,完成一次迭代,得到變換矩陣,然后根據(jù)變換矩陣更新源點(diǎn)云,然后在對(duì)源點(diǎn)云在某一視角下進(jìn)行采樣得到新的2.5D數(shù)據(jù),然后將模板點(diǎn)云和更新后的源點(diǎn)云輸入模型,一直重復(fù)這個(gè)過(guò)程。
實(shí)驗(yàn)結(jié)果如圖8所示:
圖8
4.5. Same category, different object
作者假設(shè)PointNetLK特征可以用于配準(zhǔn)不同的但屬于同一類(lèi)別的對(duì)象的點(diǎn)云。
實(shí)驗(yàn)結(jié)果如圖9所示:
圖9
4.6. Computational efficiency
圖10文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-496319.html
五、References
PointNetLK: Robust & Efficient Point Cloud Registration using PointNet文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-496319.html
到了這里,關(guān)于基于深度學(xué)習(xí)方法的點(diǎn)云算法1——PointNetLK(點(diǎn)云配準(zhǔn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!