論文解讀 | 5分鐘帶你了解基于深度學(xué)習(xí)的點(diǎn)云配準(zhǔn)的ICP算法
原創(chuàng) | 文 BFT機(jī)器人

01
摘要
迭代最近點(diǎn)(ICP)及其變式為此任務(wù)提供了簡(jiǎn)單且易于實(shí)現(xiàn)的迭代方法,但這些算法可能會(huì)收斂到虛假的局部最優(yōu)值。
為了解決ICP通道中的局部最優(yōu)和其他困難,我們提出了一種基于學(xué)習(xí)的方法,名為“深度最近點(diǎn)”(DCP),其靈感來(lái)自計(jì)算機(jī)視覺(jué)和自然語(yǔ)言處理的最新技術(shù)。我們的模型由三部分組成:點(diǎn)云特征提取網(wǎng)絡(luò)、基于注意力的點(diǎn)云匹配預(yù)測(cè),以及可微奇異值分解(SVD)層用來(lái)提取最終的剛性變換。
我們?cè)?ModelNet40 數(shù)據(jù)集上端到端地訓(xùn)練我們的模型,并在多種設(shè)置中顯示它比 ICP 及其變體(例如 Go-ICP、FGR)以及最近提出的基于學(xué)習(xí)的方法 PointNetLK 表現(xiàn)更好。除了提供最先進(jìn)的配準(zhǔn)技術(shù)之外,我們還評(píng)估了將學(xué)習(xí)到的特征轉(zhuǎn)移到看不見(jiàn)的物體上的適用性。我們還對(duì)我們學(xué)習(xí)的模型進(jìn)行初步分析,以幫助了解局部特征以及全局特征是否有利于點(diǎn)云配準(zhǔn)。
02
本文的主要貢獻(xiàn)
我們?cè)O(shè)計(jì)了一個(gè)子網(wǎng)絡(luò)模塊去解決ICP通道中的一些難點(diǎn)。并提出了一個(gè)簡(jiǎn)單的架構(gòu)來(lái)預(yù)測(cè)對(duì)齊兩個(gè)點(diǎn)云的剛性變換。評(píng)估多種環(huán)境下的效率和性能,并提供消融實(shí)驗(yàn)來(lái)驗(yàn)證我們的模塊。另外,我們還分析局部特征還是全局特征對(duì)于配準(zhǔn)更有用。以及我們發(fā)布代碼以促進(jìn)可重復(fù)性和未來(lái)的研究。
03
DCP(Deep Closest Point)網(wǎng)絡(luò)結(jié)構(gòu)
我們的模型由三個(gè)部分組成:
(1)我們將輸入點(diǎn)云映射到網(wǎng)絡(luò)中,這有助于識(shí)別匹配的點(diǎn)對(duì)(我們?cè)谶@一步中比較了 PointNet和 DGCNN)。
(2)然后,結(jié)合指針網(wǎng)絡(luò)的基于注意力的模塊預(yù)測(cè)點(diǎn)云之間的軟匹配。
(3)最后,可微奇異值分解層預(yù)測(cè)剛性變換。我們?cè)?ModelNet40 上的各種設(shè)置中端到端地訓(xùn)練和測(cè)試我們的模型,表明我們的模型不僅高效,而且優(yōu)于 ICP 及其擴(kuò)展,以及最近提出的 PointNetLK 方法。我們學(xué)到的特征可以推廣到看不見(jiàn)的數(shù)據(jù),這表明我們的模型正在學(xué)習(xí)顯著的幾何特征。
DCP網(wǎng)絡(luò)結(jié)構(gòu)示意圖如下所示:

3.1特征提取模塊
我們網(wǎng)絡(luò)的第一階段將未對(duì)齊的輸入點(diǎn)云 X 和 Y 嵌入到一個(gè)公共空間中,用于查找兩個(gè)點(diǎn)云之間的匹配點(diǎn)對(duì)。目的是找到一種方法,可以對(duì)剛性運(yùn)動(dòng)進(jìn)行求商,同時(shí)保持對(duì)剛性匹配相關(guān)特征的敏感度。
我們?cè)u(píng)估了可學(xué)習(xí)嵌入模塊的兩種可能選擇:PointNet 和 DGCNN]。由于我們使用兩個(gè)輸入點(diǎn)云的每點(diǎn)嵌入來(lái)生成映射 m 并恢復(fù)剛性變換,因此我們?cè)谳斎朦c(diǎn)云中尋找每個(gè)點(diǎn)的特征,而不是每個(gè)點(diǎn)云的一個(gè)特征。因此,在這兩個(gè)網(wǎng)絡(luò)架構(gòu)中,我們使用一個(gè)聚合函數(shù)生成最后的表示,記為 FX = {xL1 , xL2 , ..., xLi , ..., xLN } 和 FY = {yL1 , yL2 , ...., yLi , ..., yLN },假設(shè)總共有 L 層。
PointNet 主要基于點(diǎn)云中每個(gè)點(diǎn)的嵌入來(lái)獨(dú)立提取信息,而 DGCNN 明確地將局部幾何特征合并到其表示中。特別是,給定一組點(diǎn) X,DGCNN 構(gòu)造一個(gè)k-NN 圖G,對(duì)邊緣端點(diǎn)處的值應(yīng)用非線性以獲得沿邊值,并在每層中執(zhí)行頂點(diǎn)聚合。
因此,DGCNN 的前向機(jī)制為

其中 Ni 表示圖 G 中頂點(diǎn) i 的臨近值。由于不包含局部鄰域信息,我們根據(jù)經(jīng)驗(yàn)發(fā)現(xiàn) DGCNN 的局部特征對(duì)于我們網(wǎng)絡(luò)后續(xù)步驟中的高質(zhì)量匹配至關(guān)重要。
3.2注意力機(jī)制模塊
從 PointNet 過(guò)渡到 DGCNN 的原因是,我們觀察到剛性對(duì)齊最有用的特征是從局部和全局特征中聯(lián)合學(xué)習(xí)的,我們還可以通過(guò)使它們針對(duì)特定任務(wù)改進(jìn)我們的匹配功能。即根據(jù) X 和 Y 的特殊性一起更改特征,而不是獨(dú)立嵌入 X 和 Y。受到最近 BERT 、非局部神經(jīng)網(wǎng)絡(luò)和關(guān)系網(wǎng)絡(luò)基于注意力模型的成功的使用啟發(fā),我們?cè)O(shè)計(jì)了一個(gè)模塊,通過(guò)捕獲自注意力和條件注意力來(lái)學(xué)習(xí)上下文信息。
FX和FY為3.1中的模塊生成的輸出;這些輸出是彼此獨(dú)立計(jì)算的,我們的注意力模型學(xué)習(xí)一個(gè)函數(shù) ,其中 P 是輸出維度,它提供點(diǎn)云的新輸出為

3.3指針生成模塊(Pointer Generation)
當(dāng)匹配估計(jì) mk 遠(yuǎn)非最佳時(shí),ICP 最常見(jiàn)的故障模式就會(huì)發(fā)生。當(dāng)這種情況發(fā)生時(shí),隨后使用普通的ICP估計(jì)的剛性運(yùn)動(dòng)不會(huì)顯著改善對(duì)準(zhǔn),從而導(dǎo)致虛假的局部最優(yōu)。作為替代方案,我們學(xué)習(xí)的輸出經(jīng)過(guò)專(zhuān)門(mén)訓(xùn)練,以使用下面解釋的簡(jiǎn)單過(guò)程來(lái)公開(kāi)匹配的點(diǎn)對(duì)。我們將這個(gè)步驟稱(chēng)為“指針生成”,再次受到第 3.2 節(jié)介紹的注意力文獻(xiàn)中術(shù)語(yǔ)的啟發(fā)。
為了避免選擇不可微的硬分配,我們使用一種概率方法來(lái)生成從一個(gè)點(diǎn)云到另一個(gè)點(diǎn)云的(單隨機(jī))“軟映射”。
也就是說(shuō),每個(gè) xi ∈ X 被分配一個(gè) Y 元素上的概率向量,由下面公式給出

在這個(gè)公式里,表示注意力模塊生成的 Y 的輸出,Φxi 表示來(lái)自注意力模塊的矩陣 ΦX 的第 i 行。我們可以將 m(xi, Y) 視為從每個(gè) xi 到 Y 元素的“軟指針”。
3.4 SVD模塊
我們網(wǎng)絡(luò)中的最后一個(gè)模塊從第 3.3 節(jié)中計(jì)算的軟匹配中提取剛性運(yùn)動(dòng)。我們使用軟指針為 X 中的每個(gè)點(diǎn)生成 Y 中的匹配平均點(diǎn):

為了通過(guò)網(wǎng)絡(luò)反向傳播梯度,我們需要對(duì) SVD 進(jìn)行微分。[29]描述了計(jì)算該導(dǎo)數(shù)的標(biāo)準(zhǔn)方法;此計(jì)算的版本包含在 PyTorch [30] 和 TensorFlow [1] 中。請(qǐng)注意,我們只需要解決 3 × 3 特征問(wèn)題,這些問(wèn)題足夠小,可以使用簡(jiǎn)單的算法(原則上)甚至封閉式公式來(lái)解決。
3.5損失函數(shù)模塊
組合起來(lái),上面的模塊從一對(duì)點(diǎn)云 X 和 Y 映射到剛性運(yùn)動(dòng),使它們彼此對(duì)齊。初始特征模塊(3.1)和注意力模塊(3.2)均由一組神經(jīng)網(wǎng)絡(luò)權(quán)重參數(shù)化,這些權(quán)重必須在訓(xùn)練階段學(xué)習(xí)。我們采用相當(dāng)簡(jiǎn)單的訓(xùn)練策略,測(cè)量合成生成的點(diǎn)云對(duì)的 ?與地面實(shí)況的偏差。
我們使用以下?lián)p失函數(shù)來(lái)衡量模型與真實(shí)剛性運(yùn)動(dòng)的一致性:

這里,g 表示真實(shí)值。前兩項(xiàng)定義了 SE(3) 上的簡(jiǎn)單距離。第三項(xiàng)表示 DCP 參數(shù) θ 的 Tikhonov 正則化,這有助于降低網(wǎng)絡(luò)的復(fù)雜性。
04
消融實(shí)驗(yàn)
我們?cè)诒竟?jié)中進(jìn)行了幾次消融實(shí)驗(yàn),剖析 DCP 并用替代方案替換每個(gè)部分,以了解我們網(wǎng)絡(luò)的價(jià)值。
4.1使用PointNet 還是 DGCNN?
我們首先嘗試回答 DGCNN 收集的局部特征是否比使用更簡(jiǎn)單的 PointNet 模型測(cè)量的粗略特征更有價(jià)值。正如[50]中所討論的,PointNet 學(xué)習(xí)整個(gè)形狀的全局描述符,而DGCNN 通過(guò)構(gòu)建k-NN圖來(lái)學(xué)習(xí)局部幾何特征。我們用 PointNet(表示為 PN)替換 DGCNN,并使用 DCP-v1 和 DCP-v2 在 ModelNet40 上進(jìn)行實(shí)驗(yàn)。表 5. 使用 DGCNN 的模型始終優(yōu)于使用 PointNet 的模型。
?

4.2是MLP還是SVD效果好
雖然 MLP 原則上是通用逼近器,但我們的 SVD 層旨在專(zhuān)門(mén)計(jì)算剛性運(yùn)動(dòng)。在這個(gè)實(shí)驗(yàn)中,我們檢查 MLP 還是SVD層是否更適合配準(zhǔn)。我們?cè)?ModelNet40 上將 MLP 和 SVD 與 DCP-v1 和 DCP-v2 進(jìn)行比較。

表 6 顯示 DCP-v1 和 DCP-v2 在 SVD 層上的表現(xiàn)都比 MLP 更好。這支持了我們使用 SVD 計(jì)算剛性變換的動(dòng)機(jī)。
05
結(jié)論
從某種意義上說(shuō),我們的“深度最近點(diǎn)”技術(shù)的關(guān)鍵觀察是,學(xué)習(xí)到的特征極大地促進(jìn)了剛性對(duì)齊算法;通過(guò)結(jié)合 DGCNN [50] 和注意力模塊,我們的模型可靠地提取找到對(duì)齊兩個(gè)輸入點(diǎn)云的剛性運(yùn)動(dòng)所需的對(duì)應(yīng)關(guān)系。我們的端到端可訓(xùn)練模型足夠可靠,可以在單次傳遞中提取高質(zhì)量的對(duì)齊,這可以通過(guò)經(jīng)典 ICP 的迭代或“拋光”來(lái)改進(jìn)。
DCP 可立即應(yīng)用于剛性對(duì)準(zhǔn)問(wèn)題,作為 ICP 的直接替代品,并具有改進(jìn)的性能。除了直接使用之外,我們的實(shí)驗(yàn)還為未來(lái)的探究提出了幾種途徑。一個(gè)簡(jiǎn)單的擴(kuò)展是看看我們學(xué)習(xí)的輸出是否轉(zhuǎn)移到其他任務(wù),如分類(lèi)和分割。我們還可以訓(xùn)練 DCP 以迭代(或遞歸)方式應(yīng)用來(lái)優(yōu)化對(duì)齊,而不是嘗試在單次傳遞中進(jìn)行對(duì)齊;強(qiáng)化學(xué)習(xí)的洞察力可以幫助改進(jìn)這個(gè)方向的方法,使用均方誤差作為獎(jiǎng)勵(lì)來(lái)學(xué)習(xí)控制何時(shí)停止迭代的策略。
我們還對(duì)場(chǎng)景測(cè)試感興趣,這些場(chǎng)景通常有高達(dá) 300,000 個(gè)點(diǎn)。然而,當(dāng)前的深度網(wǎng)絡(luò)只能處理對(duì)象級(jí)點(diǎn)云(每個(gè)點(diǎn)云通常有大約 500 到 5,000 個(gè)點(diǎn));這是最近點(diǎn)云學(xué)習(xí)方法的常見(jiàn)局限性。無(wú)論什么任務(wù),場(chǎng)景測(cè)試都需要設(shè)計(jì)一個(gè)高效的場(chǎng)景級(jí)點(diǎn)云編碼網(wǎng)絡(luò),這對(duì)于點(diǎn)云學(xué)習(xí)來(lái)說(shuō)是一個(gè)有前途但具有挑戰(zhàn)性的方向。
最后,我們希望我們的方法可以合并到更大的網(wǎng)絡(luò)中,以實(shí)現(xiàn)高精度同步定位和建圖(SLAM)或運(yùn)動(dòng)結(jié)構(gòu)(SFM)。
作者?| 江城
排版 |?居居手
更多精彩內(nèi)容請(qǐng)關(guān)注公眾號(hào):BFT機(jī)器人
本文為原創(chuàng)文章,版權(quán)歸BFT機(jī)器人所有,如需轉(zhuǎn)載請(qǐng)與我們聯(lián)系。若您對(duì)該文章內(nèi)容有任何疑問(wèn),請(qǐng)與我們聯(lián)系,將及時(shí)回應(yīng)。