侯維廣,付生鵬,夏 鑫,劉 晶
(1.沈陽化工大學(xué)信息工程學(xué)院,沈陽 110142;2.中國科學(xué)院沈陽自動化研究所機(jī)器人學(xué)國家重點(diǎn)實(shí)驗(yàn)室,沈陽 110016;3.中國科學(xué)院機(jī)器人與智能制造創(chuàng)新研究院,沈陽 110169)
傳統(tǒng)配準(zhǔn)方法中應(yīng)用最廣泛的是迭代最近點(diǎn)(ICP)[1]算法,通過建立近鄰點(diǎn)查詢歐式距離最小的點(diǎn)對,迭代估計源點(diǎn)云到目標(biāo)點(diǎn)云的坐標(biāo)變換矩陣和目標(biāo)函數(shù)值。該算法對初始位姿較為敏感且僅適用于小尺度物體變換估計??焖偃峙錅?zhǔn)(fast global registration,FGR)[2]算法使用快速點(diǎn)特征直方圖[3-4]特征和交替優(yōu)化技術(shù)來加速全局配準(zhǔn),但對于噪聲點(diǎn)比較敏感。全局優(yōu)化迭代最近點(diǎn)算法(globally optimal ICP,Go-ICP)[5]利用SE(3)搜索全局空間結(jié)構(gòu),推導(dǎo)出新目標(biāo)函數(shù)的上下界,保證全局最優(yōu)的同時加快了速度,但其仍對初始位置較為敏感。隨著點(diǎn)云數(shù)據(jù)規(guī)模的劇增,傳統(tǒng)的配準(zhǔn)方法在效率和精度上已不能滿足實(shí)際需求。
近年來,以深度學(xué)習(xí)的方法實(shí)現(xiàn)點(diǎn)云配準(zhǔn)受到了越來越廣泛的關(guān)注。PointNet[6]是首次使用無序點(diǎn)云作為卷積網(wǎng)絡(luò)輸入的模型,但精度有限。PointNet++[7]利用MSG(multi scale grouping)和MRG(multi resolution grouping)處理點(diǎn)云密度不均的問題,同時使用PointNet對局部點(diǎn)云特征進(jìn)行提取,豐富了局部特征,但魯棒性差。PointNetLK[8]是將PointNet與傳統(tǒng)方法相結(jié)合,采用循環(huán)神經(jīng)網(wǎng)絡(luò)來降低計算復(fù)雜度,在存在一定噪聲等條件下提高了配準(zhǔn)精度。DCP(deep closest point)[9]模型采用動態(tài)圖卷積神經(jīng)網(wǎng)絡(luò)提取點(diǎn)云特征,并使用transformer架構(gòu)計算深層次點(diǎn)云之間的相關(guān)性。DPVCP(deep virtual corresponding points)[10]利用深度點(diǎn)云特征嵌入方法以提取更精細(xì)的局部特征,同時設(shè)計CPG(corresponding point generation)層來得到對應(yīng)點(diǎn)精細(xì)反向傳播。PRNet(self-supervised learning for partial-to-partial registration)[11]網(wǎng)絡(luò)使用Gumbel-Softmax來獲得采樣關(guān)鍵點(diǎn)的對應(yīng)關(guān)系,還設(shè)計了actor-critic模塊用于更好的預(yù)測出更精確的剛性變換矩陣。RPM-Net(robust point matching network)[12]網(wǎng)絡(luò)利用空間和局部幾何來學(xué)習(xí)混合特征,迭代計算得到最優(yōu)退火調(diào)度的軟對應(yīng)方法并更新變換參數(shù),減小了模型初始位置敏感度,但計算速度慢。但目前基于深度學(xué)習(xí)的方法仍然容易受到離群點(diǎn)、點(diǎn)云復(fù)雜多變等因素的影響,需要進(jìn)一步降低對這些因素的影響,提高匹配準(zhǔn)確率。
受迭代距離感知相似度卷積(iterative distance aware similarity matrix convolution,IDAM)[13]配準(zhǔn)網(wǎng)絡(luò)和PointASNL[14]網(wǎng)絡(luò)的啟發(fā),本文提出一種基于自適應(yīng)采樣的點(diǎn)云配準(zhǔn)算法。首先,相比于IDAM點(diǎn)云配準(zhǔn)網(wǎng)絡(luò)使用最遠(yuǎn)距離采樣(farthest point sampling,FPS)方法,本文使用自適應(yīng)采樣方法代替FPS采樣,有利于緩解異常點(diǎn)對模型的影響。其次使用動態(tài)鏈接的圖神經(jīng)網(wǎng)絡(luò)提取特征,有效的捕獲點(diǎn)云更多的局部幾何特征,豐富點(diǎn)云的表達(dá)能力。之后,添加混合注意力模塊,利用目標(biāo)點(diǎn)與源點(diǎn)之間的相對位置構(gòu)建軟對應(yīng)關(guān)系,有效提高特征的特異性,提高配準(zhǔn)精度。
本文基于深度學(xué)習(xí)的方法提出了一種融合自采樣和混合注意力機(jī)制的網(wǎng)絡(luò)結(jié)構(gòu),具體如圖1所示。首先,對于輸入點(diǎn)云進(jìn)行自適應(yīng)采樣,采樣后送入特征提取模塊,之后使用混合注意力進(jìn)行點(diǎn)對關(guān)系交互并保留L個顯著點(diǎn)。其次,組合歐式距離和幾何特征構(gòu)成混合特征矩陣,計算相似度得分,以此取前M對關(guān)鍵點(diǎn)對,根據(jù)對應(yīng)關(guān)系為每個點(diǎn)賦予不同的權(quán)重,最后采用奇異值分解法得到變換矩陣。
圖1 本文算法網(wǎng)絡(luò)結(jié)構(gòu)
目前,最遠(yuǎn)距離采樣(farthest point sampling,FPS)法雖然能夠獲得相對均勻的采樣點(diǎn),但依然存在對異常點(diǎn)敏感和采集時缺失部分點(diǎn)云數(shù)據(jù)會導(dǎo)致網(wǎng)絡(luò)難以得到相對準(zhǔn)確的幾何信息等問題。為了解決以上問題,本文使用自適應(yīng)采樣方法[14]對輸入點(diǎn)云進(jìn)行采樣,降低異常點(diǎn)對后續(xù)點(diǎn)云配準(zhǔn)的影響,產(chǎn)生相對準(zhǔn)確的幾何信息,提高點(diǎn)云配準(zhǔn)精度。
首先,利用FPS進(jìn)行下采樣獲得均勻的Ns點(diǎn)集合,表示為Xs∈RNs×3,點(diǎn)集對應(yīng)的特征集合表示為Fs∈RNs×Dl(Dl指輸出通道數(shù)),以xi和fi分別表示Ns點(diǎn)集中的采樣點(diǎn)及其特征。以K近鄰算法得到xi的K個近鄰點(diǎn),記為xi,1,…,xi,K,近鄰點(diǎn)集合表示為N(xi),近鄰點(diǎn)對應(yīng)特征記為fi.1,…,fi,K,組內(nèi)點(diǎn)xi,h特征更新為:
fi,h=Φ(σ(xi,h,xi,j)γ(xi,j),?xi,j∈N(xi))
(1)
式中:σ()表示匹配操作,用來計算組內(nèi)成員xi,h、xi,j∈N(xi)之間的對應(yīng)關(guān)系;γ函數(shù)表示用來改變特征通道數(shù)為D′,Φ()函數(shù)表示對得到的特征進(jìn)行拼接操作。為了減少計算量,可認(rèn)為γ函數(shù)的線性變換形式表示為γ(xi,j)=Wγfi,j,匹配函數(shù)σ()是如下兩點(diǎn)的點(diǎn)積相似性:
(2)
式中:φ和θ是通過一維卷積實(shí)現(xiàn)的兩個獨(dú)立的線性變換。然后,使用ζp和ζf逐點(diǎn)卷積多層感知機(jī)(multi-layer perceptron,MLP)及softmax激活函數(shù)來獲得每個點(diǎn)的對應(yīng)強(qiáng)度:
(3)
(4)
圖神經(jīng)網(wǎng)絡(luò)(graph neural network,GNN)會忽略圖節(jié)點(diǎn)的輸入順序,且單獨(dú)傳播,通過提取邊緣來學(xué)習(xí)兩節(jié)點(diǎn)之間的相關(guān)性特征,十分適用于點(diǎn)云處理與特征提取。因此,以GNN為基礎(chǔ),構(gòu)建動態(tài)鏈接的圖神經(jīng)網(wǎng)絡(luò)[15]進(jìn)行特征提取,更有效提取特征的同時避免梯度消失的問題。
對于自適應(yīng)采樣后的點(diǎn)云Ps,構(gòu)建出有向圖G,令頂點(diǎn)為V,邊為E:
G=(V,E),V?RC,E?V×V
(5)
式中:C表示每條邊的維數(shù)。然后,在每個卷積層前應(yīng)用KNN來構(gòu)造出局部有向圖,其中心節(jié)點(diǎn)為pi,中心節(jié)點(diǎn)與其近鄰點(diǎn)的邊ei計算得:
V={pi|i=1,2,…,n}
E={ei=(ei1,...,eik)|i=1,2,...,n}
eij=pij-pi
(6)
式中:pij是pi的一個鄰點(diǎn),eij表示從pij到pi的有向邊。之后,以基于邊緣卷積層進(jìn)行提取局部圖特征li:
li=he(G(pi,ei))=max{s(pi,ei1),s(pi,ei2),…,s(pi,eik)}
(7)
式中:he()表示特征提取函數(shù),max()表示最大池化運(yùn)算,用來提取所有邊緣中最主要的特征,且不受近鄰點(diǎn)順序影響;s(pi,eij)表示pi和一個邊向量eij的隱藏特征向量,可用MLP提取得到:
(8)
式中:pic和Pijc是pi及其鄰點(diǎn)pij在通道c中的值,C和C′分別表示輸入點(diǎn)pi及輸出向量s(pi,eij)的通道數(shù),wc′c,wc′(c+C),bc′為可訓(xùn)練參數(shù)。
由于感受野的增加有利于模型性能的提升,而邊緣卷積是從先前特征中提取邊緣向量來學(xué)習(xí)新特征,所以,可以通過使用連續(xù)卷積進(jìn)行擴(kuò)展感受野,提取更多的邊緣向量。因此,添加一組通道數(shù)為64的邊緣卷積進(jìn)行分層特征提取,然后進(jìn)行通過鏈接更深層次的結(jié)構(gòu)來提取更復(fù)雜的特征,同時存在足夠的表達(dá)能力和泛化能力。
由于原IDAM模型在硬點(diǎn)消除的過程中,僅僅對單點(diǎn)云進(jìn)行處理,無法考慮到相應(yīng)的點(diǎn)對信息,可能會錯誤消去正確對應(yīng)的點(diǎn)對,降低下一步模型迭代配準(zhǔn)的精度。因此在此之前采用基于消息傳遞的混合注意力[16]方法來獲得對應(yīng)點(diǎn)的軟連接,結(jié)構(gòu)如圖2所示,通過基于殘差連接的多頭注意力方法來預(yù)測出正確點(diǎn)對的概率,進(jìn)一步提高正確對應(yīng)點(diǎn)的權(quán)重信息,提高點(diǎn)云配準(zhǔn)精度。
圖2 混合注意力模型結(jié)構(gòu)圖
首先通過自注意力聚合源點(diǎn)云A上所有節(jié)點(diǎn)的特征,并在每層中進(jìn)行更新。設(shè)mε→i是所有關(guān)鍵點(diǎn){j:(i,j)∈ε}的聚合結(jié)果,ε∈{εself,εcross},則元素i的剩余消息傳遞更新為:
(9)
(10)
(11)
之后,使用多頭注意力進(jìn)行特征提取,即4個平行的注意力頭,輸出源點(diǎn)云A的交互特征:
(12)
式中:LLDGNN表示特征提取后得到的特征,MLP表示一個3層全連接網(wǎng)絡(luò),目標(biāo)點(diǎn)云計算同理。
本文實(shí)驗(yàn)基于Windows10系統(tǒng),以CPU為Inter i5-10400H和GPU為RTX2070的作為硬件平臺。軟件環(huán)境為Open3D點(diǎn)云庫,網(wǎng)絡(luò)模型以Pytorch框架搭建,設(shè)置迭代次數(shù)為3,批次大小設(shè)置為4,初始學(xué)習(xí)率為1×10-3,并在30個epoch之后以0.1進(jìn)行衰減,權(quán)重衰減率為1×10-3且無Dropout,最后使用2.4節(jié)的優(yōu)化器對模型進(jìn)行50 epoch的訓(xùn)練。
本文所有實(shí)驗(yàn)使用ModelNet40數(shù)據(jù)集進(jìn)行訓(xùn)練和測試,以及在某大學(xué)3D點(diǎn)云數(shù)據(jù)集和實(shí)測點(diǎn)云上進(jìn)行測試。ModelNet40總共有1200多個計算機(jī)輔助設(shè)計模型,分為40類,包括床、椅子、杯子等,其中訓(xùn)練集為9843個樣例。對于給定的模型,以最遠(yuǎn)點(diǎn)采樣方法得到1024個點(diǎn)形成原始點(diǎn)云,隨機(jī)生成[0°,45°]的旋轉(zhuǎn)角度和[-0.5,0.5]的平移量作用于點(diǎn)云,形成目標(biāo)點(diǎn)云。
本文實(shí)驗(yàn)以真實(shí)旋轉(zhuǎn)平移矩陣Ggt和預(yù)測旋轉(zhuǎn)平移矩陣Gest之間的均方根誤差(root mean squared error,RMSE)和平均絕對誤差(mean absolute error,MAE)作為評價指標(biāo),均方根誤差表示了真實(shí)旋轉(zhuǎn)平移矩陣與預(yù)測旋轉(zhuǎn)平移矩陣之間的相差程度,故均方差越小,說明該模型配準(zhǔn)時旋轉(zhuǎn)、平移的精度更高。平均絕對誤差值越小,說明旋轉(zhuǎn)平移矩陣的預(yù)測誤差值越小。
將本文方法和PointNetLK[8]、DeepGMR[17]、DCP[9]、PRNet[11]、FMR[18]以及IDAM[13]進(jìn)行對比,且均在ModelNet40數(shù)據(jù)集上進(jìn)行訓(xùn)練和測試。對比方法中的實(shí)驗(yàn)設(shè)置與本文一樣,測試性能對比結(jié)果如表1所示。
表1 不可見形狀點(diǎn)云下各算法的配準(zhǔn)誤差
由于DeepGMR中的高斯混合模型未能得到較好的對應(yīng)關(guān)系,導(dǎo)致在未可見點(diǎn)云形狀配準(zhǔn)實(shí)驗(yàn)中誤差最大。由于PointNetLK對初始值的選取比較敏感,容易陷入局部最優(yōu)解,同樣導(dǎo)致了在該實(shí)驗(yàn)中配準(zhǔn)誤差較大。IDAM使用混合特征進(jìn)行處理,相比其余的方法能夠得到更小的配準(zhǔn)誤差,但是并沒有考慮特征間的關(guān)聯(lián)性。本文算法在提取更細(xì)致特征的同時給予匹配正確概率大的點(diǎn)對以更大的權(quán)重信息,得以減少去除正確的點(diǎn)對,提高模型性能。最終在本實(shí)驗(yàn)上得到RMSE(R)為1.07,RMSE(t)為0.009,顯著提升了點(diǎn)云配準(zhǔn)精度。
圖3為本文方法的可視化配準(zhǔn)結(jié)果。其中淺色為源點(diǎn)云,目標(biāo)點(diǎn)云是由源點(diǎn)云在[0°,45°]上隨機(jī)旋轉(zhuǎn)并在[-0.5,0.5]上隨機(jī)平移得到,如圖3a所示。本節(jié)實(shí)驗(yàn)配準(zhǔn)結(jié)果如圖3b所示,可以清楚的看出本文方法對不可見形狀的點(diǎn)云能夠精確配準(zhǔn)。
(a) 初始點(diǎn)云
本節(jié)以ModelNet40訓(xùn)練集中的前20個類別進(jìn)行訓(xùn)練,后20個類別的數(shù)據(jù)集作為測試集來評估這些點(diǎn)云配準(zhǔn)模型的泛化能力,結(jié)果如表2所示。
表2 不可見類別點(diǎn)云下各算法的配準(zhǔn)誤差
由于深度學(xué)習(xí)方法的訓(xùn)練模型和測試模型均屬于不同的類別,配準(zhǔn)性能有所下降,但本文方法在各項指標(biāo)上均優(yōu)于其他的對比方法,對不可見類別的點(diǎn)云數(shù)據(jù)具有良好的泛化性。本節(jié)配準(zhǔn)可視化結(jié)果如圖4所示。其中淺色為源點(diǎn)云,目標(biāo)點(diǎn)云是由源點(diǎn)云在[0°,45°]上隨機(jī)旋轉(zhuǎn)并在[-0.5,0.5]上隨機(jī)平移得到,如圖4a所示。本節(jié)實(shí)驗(yàn)配準(zhǔn)結(jié)果如圖4b所示,可以看出本文方法在不可見類別的點(diǎn)云上依舊具有良好的配準(zhǔn)精度,泛化性較好。
(a) 初始點(diǎn)云
由于真實(shí)場景掃描的點(diǎn)云模型會包含不同程度大小的噪聲。因此本小節(jié)實(shí)驗(yàn)以標(biāo)準(zhǔn)差為0.01,范圍為[-0.05,0.05]的高斯噪聲,隨機(jī)添加進(jìn)所有不可見形狀的點(diǎn)云來模擬真實(shí)場景,其他設(shè)置與2.3節(jié)的實(shí)驗(yàn)一樣,所得結(jié)果如表3所示。
表3 不可見形狀點(diǎn)云中加入噪聲的配準(zhǔn)誤差
由于添加的高斯噪聲對特征的影響較大,PointNetLK和DeepGMR模型的配準(zhǔn)性都受到了較大的影響。PRNet和IDAM方法依舊是配準(zhǔn)結(jié)果較好,主要是因?yàn)榫植刻卣髅枋鲎拥聂敯粜院?。本文方法在采樣時調(diào)整異常的采樣點(diǎn),減少了異常點(diǎn)對模型的影響,同時對不匹配的點(diǎn)對關(guān)系給予更低的權(quán)重,提高模型對噪聲的魯棒程度,因此本文方法在指標(biāo)上均優(yōu)于其他對比方法,具有抵抗噪聲的良好泛化能力。
為驗(yàn)證本文算法在實(shí)際場景中的可行性,采用三維激光掃描儀獲取三組實(shí)物的點(diǎn)云模型進(jìn)行配準(zhǔn),實(shí)物及其對應(yīng)點(diǎn)云模型如圖5所示。
圖5 零件實(shí)物及對應(yīng)點(diǎn)云圖
同樣目標(biāo)點(diǎn)云是由源點(diǎn)云在[0°,45°]上隨機(jī)旋轉(zhuǎn)并在[-0.5,0.5]上隨機(jī)平移得到,依舊選取在ModelNet40數(shù)據(jù)集上性能較優(yōu)的DCP,PRNet,FMR和IDAM算法與本文算法進(jìn)行對比,最終結(jié)果如表4所示。
表4 實(shí)測零件點(diǎn)云配準(zhǔn)誤差
由于實(shí)際采集的點(diǎn)云包含更多的噪點(diǎn),極其影響點(diǎn)云模型配準(zhǔn)的誤差,從表中可以看出DCP誤差最大,主要是由于噪點(diǎn)影響了計算出模擬點(diǎn)云位姿,導(dǎo)致了在向目標(biāo)點(diǎn)云逼近的誤差變大。由于FMR是將獲得的全局特征組成方位圖來計算點(diǎn)云特征的差異,但噪點(diǎn)減小了該差異,導(dǎo)致配準(zhǔn)誤差同樣不好。本文方法在采樣階段減少了噪聲的影響,同時動態(tài)鏈接的圖神經(jīng)網(wǎng)絡(luò)和交叉注意力保證了特征的差異化,因此具有較低的配準(zhǔn)誤差。本文方法的配準(zhǔn)結(jié)果如圖6所示,其中淺色點(diǎn)云為源點(diǎn)云,可以看出具有良好的配準(zhǔn)效果。
圖6 零件點(diǎn)云圖模型配準(zhǔn)圖
本節(jié)對所提模型進(jìn)行消融實(shí)驗(yàn)研究,以顯示每個部分的有效性。這里分別研究了以IDAM模型作為基本模型時,分別添加自適應(yīng)采樣法(記為AS)、動態(tài)鏈接的圖神經(jīng)網(wǎng)絡(luò)模型(記作LDGNN)和混合注意力機(jī)制(記為Att)對模型的影響,結(jié)果如表5所示。
表5 實(shí)測零件點(diǎn)云配準(zhǔn)誤差
同時自適應(yīng)采樣方法提升幅度不大,可能是因?yàn)镸odeldNet40中的點(diǎn)云模型是由CAD模型中采樣得到,幾乎沒有噪聲點(diǎn),因此在噪聲點(diǎn)一定的時候,會有一個不錯的提升效果。對于LDGNN模塊和混合注意力模塊對模型提升較大,可能是捕獲到更多的點(diǎn)云特征的同時提高對應(yīng)點(diǎn)的權(quán)重,給予了更可靠的對應(yīng)關(guān)系,使得模型配準(zhǔn)更加準(zhǔn)確。
本文在IDAM點(diǎn)云配準(zhǔn)網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行了改進(jìn),利用自適應(yīng)采樣方法來有效緩解異常點(diǎn)對模型的影響,以動態(tài)鏈接的圖神經(jīng)網(wǎng)絡(luò)捕獲更多的局部信息,同時配合混合注意力來減少特性信息的損失,提高網(wǎng)絡(luò)的魯棒性。在ModelNet40數(shù)據(jù)集和實(shí)際掃描的點(diǎn)云模型配準(zhǔn)實(shí)驗(yàn)結(jié)果表明,本文算法與IDAM及部分深度學(xué)習(xí)的配準(zhǔn)網(wǎng)絡(luò)相比,具有配準(zhǔn)精度高,對噪聲有更好的魯棒性以及不錯的泛化性。此外,在未來工作中,將繼續(xù)研究模型的輕量化與配準(zhǔn)精度結(jié)合,以獲得更為精準(zhǔn)、快速的配準(zhǔn)結(jié)果。