摘 要:為了解決現(xiàn)有點云配準算法對配準點云的初始位置或噪聲敏感,對獨特幾何結(jié)構(gòu)的需求以及算法設(shè)計復(fù)雜、通用性差等問題,本文提出了基于圖神經(jīng)卷積網(wǎng)絡(luò)的點云配準算法。該算法利用圖神經(jīng)網(wǎng)絡(luò)在不規(guī)則點云圖形結(jié)構(gòu)中尋找關(guān)鍵頂點特征,簡化原有點云結(jié)構(gòu),利用在頂點所屬對象特征和局部幾何信息中學(xué)習(xí)到的混合特征來構(gòu)建點對應(yīng)的分配網(wǎng)絡(luò),并提取所需的圖特征。同時,通過將模擬配準信息輸入另一卷積網(wǎng)絡(luò)中,計算最佳的配準擬合參數(shù)。該算法降低了對配準初始值的依賴,使算法快速收斂,提高了在點云局部可見情況下的配準質(zhì)量。
關(guān)鍵詞:圖神經(jīng)卷積網(wǎng)絡(luò);點云;迭代;收斂
中圖分類號:P 237 " " " " 文獻標志碼:A
隨著激光雷達(Light Detection and Ranging,LiDAR)、3D體感攝影機(Kinect)等高精度傳感器的快速發(fā)展以及基于深度學(xué)習(xí)的點云配準算法的提出,點云已成為表征三維世界的主要數(shù)據(jù)格式。如何將傳感器探測到的有限場景數(shù)據(jù)組成的點云采用配準算法生成完整的三維場景點云,成為當(dāng)前的主要問題[1-2]。根據(jù)變換矩陣,可以將同一個三維場景或物體的部分掃描點云合并為一個完整的三維點云。
1 點云配準算法現(xiàn)狀分析
1.1 基于距離的匹配算法
基于距離的匹配算法包括迭代最近點(Iterative Closest Point,ICP)算法、RPM(Robust Point Matching,RPM)等。ICP算法通過迭代的方式解決點云的剛性配準問題,主要步驟如下。1)基于最近的空間距離尋找hard點的對應(yīng)關(guān)系。2)求解最小二乘變換。其中,步驟1)對配準點云的初始位置和噪聲點/離群點敏感,可能導(dǎo)致在迭代的過程中收斂到錯誤的局部最小值。這類算法對配準點云的初始位置或噪聲敏感,因此需要采取措施降低對初始位置和噪聲的影響。
1.2 基于特征的匹配算法
一種是基于局部坐標系(LRF)的算法[3],其中典型的是基于局部特征描述符的旋轉(zhuǎn)圖像(Spin Image,SI)。該算法首先將關(guān)鍵點的法向量作為參考軸,其次將局部鄰域點投影到以水平和垂直投影距離為坐標的二維平面,最后通過二維累加運算的方式得到1張二維灰度圖。這個特征描述符主要依賴采樣點的法向量方向,對噪聲的魯棒性較差并且計算復(fù)雜度較高。另一種是點特征直方圖(PFH)。首先,PFH 描述符采樣點和其鄰域點的法線和位置差異構(gòu)建局部坐標系,其次,根據(jù)局部坐標系描述兩點的局部特征信息,最后,計算所有鄰域點兩兩之間的局部信息并用直方圖表示。PFH具有較強的鑒別能力,但是計算耗時較長。為了提高效率,筆者產(chǎn)生了利用簡化版點特征直方圖(SPFH)來構(gòu)造快速點特征直方圖(FPFH)的思路。FPFH具有快速、鑒別能力強的特點,但是降低了特征維度和通用性。
這類算法要求計算的點云具有獨特的幾何結(jié)構(gòu),否則不能有效地進行信息配準。
1.3 基于學(xué)習(xí)的匹配算法
例如點云配準(PointNetLK)、 深度最近點(DCP)以及PRNet等。PointNetLK將LK算法和PointNet融合到一個單一的可訓(xùn)練的遞歸神經(jīng)網(wǎng)絡(luò)中,具有較好的泛化能力和高效的計算能力。但是它主要用于局部到整體的配準變換,需要主體模板。DCP是局部到局部的配準算法,通過一種基于注意力機制的深度神經(jīng)網(wǎng)絡(luò)模型(Transformer)中的注意力機制計算出1個“假想的目標點云”。這個假想的目標點云與待調(diào)整點云之間點的對應(yīng)關(guān)系已知(soft matching:使用一種概率方法來生成從一個點云到另一個點云的“軟映射”)。再通過損失函數(shù)約束,間接使假想的目標點云向真正的目標點云不斷逼近,最終實現(xiàn)點云的對齊匹配。但是DCP的收斂性不高,在計算中多次使用軟映射,導(dǎo)致計算過程較復(fù)雜。這類算法大多基于整體特征的提取,不能有效地解決局部到局部的點云匹配問題。同時,算法設(shè)計復(fù)雜,無法在較短的時間內(nèi)得到理想的結(jié)果。綜上所述,現(xiàn)有的配準算法大多通過對應(yīng)搜索和變換估計2個過程來縮小幾何投影誤差。這2個過程交替進行,直到幾何重投影誤差最小。在已知精確對應(yīng)的情況下,變換估計有一個閉環(huán)形式的解[4]。
2 解決方案
針對點云配準的現(xiàn)狀,本文提出一種有效的圖神經(jīng)卷積網(wǎng)絡(luò)。該網(wǎng)絡(luò)從局部到局部的微分網(wǎng)絡(luò)保留基于距離匹配算法中對離群點的魯棒性,同時訓(xùn)練得出所屬對象特征中的對應(yīng)關(guān)系,減少對初始值的依賴。具體實施步驟如下。
步驟1:將原始輸入的點云命名為X點云數(shù)據(jù),將目標點云命名為Y點云數(shù)據(jù)。在X中,將N個點組成的點云數(shù)據(jù)定義為一個集合P={p1,…,pN},其中每個元素pi=(xi,si)。這里,xi為三維坐標系中該點的坐標,si為點屬性的k維度向量,這個值包括自身與周圍點的信息以及自身的位姿信息和條件信息。給定點云P,使用此點云P作為1個頂點Pi,此時X點云數(shù)據(jù)就變?yōu)?個少量的點云集合I={P1,……,Pn}。
步驟2:對減少后的點云集合I使用FPS最遠點采樣方法(采用歐幾里得距離度量點之間最遠距離)。在對第一個點采樣的過程中,可以隨機從數(shù)據(jù)中選取1個點,或者求整個數(shù)據(jù)點(點云)的重心(即所有點坐標求和平均得到的坐標點),選取距離重心最遠的點為初始采樣點,記為K0。繼續(xù)選取剩余的所有點中距離初始采樣點最遠的點,記為K1。對剩下的每個點,分別計算其到K0和K1的距離,并選取距離最小的點作為這個點到K0和K1整體的距離。完成這些距離的計算后,選擇距離最大的點,記為K2。重復(fù)以上操作,最終取到所需的M個點。根據(jù)M個點的特征,概括稠密點云特征,最后進行編碼,將其概括為頂點的初始狀態(tài)si1(表示初始點云所有頂點經(jīng)過第一次計算后得到的Si)。利用體素濾波再次減少點的數(shù)量,然后使用3D稀疏卷積進行特征提取,確立最終的頂點點云數(shù)據(jù)集合P。在集合中,每個點Pi利用固定的半徑r尋找另一個相鄰頂點Pj進行連線E,構(gòu)建圖形Gx=(P,E),其中E={(Pi,Pj)| ||xi-xj||2lt; r}。
步驟3:對圖形G使用圖神經(jīng)網(wǎng)絡(luò)(GNN)細化頂點狀態(tài)進行配準特征提取。這里采用鄰接表表達圖的關(guān)聯(lián)性,如果采用鄰接矩陣,其多表示性(指多種鄰接矩陣表示一種連通性)就會導(dǎo)致細化結(jié)果不準確,從而影響后續(xù)的操作。采用頂點間的相對坐標作為輸入,同時根據(jù)相鄰的頂點結(jié)構(gòu)特征調(diào)整坐標,計算得到每個頂點的不同特征信息。如公式(1)所示。
sit+1=gt(ρ({f(xj-xi+?xit,sjt)}),sjt) " " " " " "(1)
式中:t為迭代次數(shù);xj為三維坐標系中與Pi相鄰點Pj的坐標;sj為與Pi相鄰點Pj的屬性的k維度向量,這個值是自身與周圍點的信息以及自身的位姿信息和條件信息;ρ(…)為聚合每個頂點邊要素的函數(shù)集合;gt(…)為利用聚合的邊特征跟新頂點特征的函數(shù);f(…)為輸入變換幅度,用于減少平移和變換造成的特征差異;?xit為頂點要配準的偏移量大小,由公式ht-(…)決定。
使用多層感知器(MLP)對這些函數(shù)進行建模輸出。在輸出過程中,引入添加殘差結(jié)構(gòu)以消除?x在計算過程中產(chǎn)生的偏移誤差。值得注意的是,每個迭代次數(shù)t都使用不同的MLP,即每次迭代并不共享MLP。
步驟4:將經(jīng)過迭代計算后的屬性向量特征si寫入頂點的元素向量Pi中。同時,為了提高魯棒性,本文將ρ(…)設(shè)置為Max聚類。在完成t次迭代的圖神經(jīng)網(wǎng)絡(luò)中,使用頂點狀態(tài)值來預(yù)測初步的特征,并對這些特征進行歸一化處理,以生成所需的圖特征Ux。
步驟5:對Y點云數(shù)據(jù)進行隨機的平移、翻轉(zhuǎn)等變換,并將此時的變換狀態(tài)記作σ,然后對變換后的Y點云數(shù)據(jù)按照上述X點云數(shù)據(jù)的處理方式,求出所需的圖特征Uy。
步驟6:通過上述步驟,確定了2個圖特征Ux和Uy、它們構(gòu)成的圖形Gx和Gy以及點集I和連線E。將X、Y的點云數(shù)據(jù)進行標記,并通過通道數(shù)模式疊加(即使用concat鏈接)。然后,通過一個共享參數(shù)的MLP結(jié)構(gòu)網(wǎng)絡(luò),并使用最大池化層進行歸一化和維度縮減,得到所需的2組關(guān)聯(lián)性結(jié)果數(shù)據(jù)α和β。為了確保數(shù)值為正,使用leaky_relu作為激活函數(shù)。如公式(2)所示。
?xit=MLPht(sit) (2)
式中:MLPht為t層感知機網(wǎng)絡(luò)。
步驟7:根據(jù)關(guān)聯(lián)性結(jié)果數(shù)據(jù),并結(jié)合基礎(chǔ)數(shù)據(jù),計算X與Y點云之間的相關(guān)性,如公式(3)所示。
(3)
式中:nKC為點與點云核之間的相關(guān)度;Qi為目標點云的點;Pi為輸入點云對應(yīng)Qi的點;|E(Qi)|為根據(jù)Y點云數(shù)據(jù)建立的圖Gy中求出的關(guān)于i的E中所有的點的個數(shù);len(E)為根據(jù)Y點云數(shù)據(jù)建立的圖Gy中求出的關(guān)于i的E中所有的邊的個數(shù);m為當(dāng)前求和步驟中目標點云的Q點在圖Gy中對應(yīng)的邊;n為當(dāng)前求和步驟中作為對象被分析的點,其屬于E(Qi)域;E(Qi)為根據(jù)Y點云數(shù)據(jù)建立的圖Gy中求出的關(guān)于i的E中所有的點;sn為與Pi相鄰點Pj的屬性的k維度向量;Kσ(…)為構(gòu)建核的函數(shù),是高斯函數(shù)一種公式,通過相關(guān)度⊙點乘參數(shù),擴大頂點之間相關(guān)度關(guān)系,完成對X、Y點云數(shù)據(jù)的相關(guān)性特征的編碼提取。如公式(4)所示。
(4)
步驟8:進行奇異值分解(Singular Value Decomposition,SVD)以求解位姿問題。對給定的2個待配準點云X和Y,其中P為源點云,Q為源點云經(jīng)過變換后的目標點云,三維點云配準任務(wù)為尋找合適的變換參數(shù)即旋轉(zhuǎn)矩陣R和平移向量T,使配準后的點云在同一坐標系下對齊。在確定點云之間的對應(yīng)關(guān)系后,變換參數(shù)可以通過優(yōu)化以下目標函數(shù)來求得,如公式(5)所示。
(5)
式中:O為函數(shù)名;N為整個點云的數(shù)量。
在配準過程中,不是所有的點都有一一對應(yīng)的關(guān)系,設(shè)置一個權(quán)重ωi,增加數(shù)據(jù)的可用性,減少因為強制匹配產(chǎn)生的錯誤配準。
使用SVD求解配準變換參數(shù)的計算步驟如下:通過下列公式分別計算源點云和目標點云的質(zhì)心,即求取點云中點的均值,如公式(6)所示。
(6)
式中:N1為點集I中頂點的數(shù)量。
求解點云的協(xié)方差矩陣H,如公式(7)所示。
(7)
對協(xié)方差矩陣H進行SVD分解,如公式(8)所示。
[U,S,V]=SVD(H) " " " "(8)
式中:U、S、V分別為進行SVD分解后得到的降維矩陣的均值、方差與中心矩陣。
求解旋轉(zhuǎn)矩陣R和平移向量T,如公式(9)、公式(10)所示。
R=VUT " " " " " " " (9)
T=-R·+ " " " " "(10)
解算出初始變換矩陣后,將其應(yīng)用于源點云得到初始配準結(jié)果。由于點云位姿變換具有復(fù)雜性,神經(jīng)網(wǎng)絡(luò)難以一次性地對配準參數(shù)進行精確估計,因此利用RANSAC算法(隨機抽樣一致算法,這是一種通用且非常成功的估計算法,它能夠應(yīng)付大比例野值的情況)的方法迭代將變換后的源點云與目標點云重新輸入網(wǎng)絡(luò)計算,使配準誤差不斷變小,直到達到最大迭代次數(shù)或兩次產(chǎn)生的矩陣之差小于閾值,點云精細配準過程如公式(11)所示。
(11)
式中:Rl為最終旋轉(zhuǎn)矩陣;T l為利用RANSAC算法估算后的平移向量。
步驟9:定義Loss函數(shù),在點的分類判斷中,1個頂點在1個對象的框中,筆者將對象值賦給這個頂點。如果1個頂點位于任何邊界框之外,則它屬于背景類。筆者用平均交叉熵損失作為分類損失,如公式(12)所示。
(12)
式中:Lcls為平均交叉熵損失;yi cj為第i個點的真實概率;Pi cj為
第i個頂點的預(yù)測概率。
根據(jù)變換矩陣網(wǎng)絡(luò)設(shè)計2個損失函數(shù):Lreg和Lest進行迭代傳送,并獨立計算,使預(yù)測配準參數(shù)與真實配準參數(shù)之間誤差最小,如公式(13)~公式(15)所示。
(13)
式中:I為點云內(nèi)的比例系數(shù);Rgt為真實變換矩陣;tgt為真實平移向量值;Rpred為網(wǎng)絡(luò)估計的變換矩陣;tpred網(wǎng)絡(luò)估計的平移向量值。
Lest=||(Rpred)-1·Rgt-E4|| " " " " " " " " " " " " (14)
式中:E4為Rpred與Rgt相等時的單位陣。
Lt=Lreg+λLest " " " " (15)
式中:Lt為兩類損失加權(quán)求和得到的損失值;λ為權(quán)值。
考慮每次迭代的損失,將損失設(shè)置為每次迭代損失的加權(quán)和并且每次迭代都是獨立的,確保最終得到的R、T結(jié)果預(yù)測值符合真實值。如公式(16)所示。
(16)
式中:L為總體的配準損失;N為總迭代次數(shù);i為當(dāng)前迭代數(shù);Lti為第i次迭代產(chǎn)生的損失值。
3 本點云配準算法優(yōu)勢
3.1 特征篩選與點云量化改進
步驟1~4利用圖神經(jīng)網(wǎng)絡(luò)中的點與臨近點之間的關(guān)系以及自身的位姿信息和條件信息等篩選特征,建立頂點之間的相關(guān)性信息。并結(jié)合網(wǎng)格繪制(gird-based)和點繪制(point-based)在量化點云的同時使特征被賦予更良好的定位信息,使網(wǎng)絡(luò)能更好、更快地提取特征信息。
3.2 濾波與平移誤差優(yōu)化
步驟5、步驟6利用初步統(tǒng)計和擬合信息,創(chuàng)建初步的濾波和確定平移誤差,并通過殘差網(wǎng)絡(luò)鏈接至后續(xù)的變換網(wǎng)絡(luò)中,加速計算并使計算結(jié)果更方便、準確。
3.3 高斯方程求解與預(yù)測變換優(yōu)化
步驟7、步驟8將計算結(jié)果與KC(核相關(guān))算法結(jié)合,建立核相關(guān)高斯方程,通過密度估計相關(guān)性和圖形點之間對應(yīng)關(guān)系求解預(yù)測變換的R、T值,不斷迭代更新直至2次產(chǎn)生的矩陣之差小于閾值,完成預(yù)測。
3.4 創(chuàng)立新Loss函數(shù)
步驟9創(chuàng)立了新的Loss函數(shù)鏈接預(yù)測值和正值,迭代更新且保持迭代的獨立性,完成點云配準變換。
4 效果展示
該算法利用圖神經(jīng)網(wǎng)絡(luò)考慮點與臨近點之間的關(guān)系,結(jié)合自身的位姿信息和條件信息篩選特征。從而降低了對配準初始值的敏感度,并減少了異常點對算法結(jié)果的影響。在存在異常點輸入的情況下(如圖1所示),該算法仍能夠輸出較為準確的配準結(jié)果(如圖2所示)。
圖3為該算法的配準過程模型圖,該過程將持續(xù)進行,直到達到最大迭代次數(shù),或者某次迭代與前一次迭代產(chǎn)生的矩陣之差小于預(yù)設(shè)閾值,最終得到精確化的配準模型。
5 結(jié)語
截至2023年底,基于距離的匹配算法仍然容易受到噪聲的干擾,而基于特征的匹配算法則要求計算的點云具有獨特的幾何結(jié)構(gòu),否則無法有效地進行信息配準。與此同時,基于學(xué)習(xí)的匹配算法較為復(fù)雜且收斂性較差?;趫D神經(jīng)卷積網(wǎng)絡(luò)的點云配準算法則利用點與鄰近點之間的關(guān)系簡化了點云的結(jié)構(gòu),確立了頂點間的相關(guān)性,同時提供了更準確的定位信息。在配準計算中,該算法通過殘差網(wǎng)絡(luò)加快了計算過程,并得到了更精確的R、T結(jié)果。與KC算法的結(jié)合使其在迭代更新中計算出的矩陣差值能夠收斂于閾值內(nèi),同時保證了每輪迭代的獨立性。最終,該算法能夠完成點云配準變換,為相關(guān)領(lǐng)域的研究和應(yīng)用提供了有力的支持。
參考文獻
[1]楊必勝,董震.點云智能研究進展與趨勢[J].測繪學(xué)報,2019,48(12):1575.
[2]王暢,舒勤,楊赟秀,等.利用結(jié)構(gòu)特征的點云快速配準算法[J].光學(xué)學(xué)報,2018,38(9): 175.
[3]耿國華,劉曉寧,周明全.基于局部坐標系和哈希技術(shù)的空間曲線匹配算法[J].計算機工程, 2003, 29(4):3.
[4]GUO Y,WANG H,HU Q,et al.Deep learning for 3d point clouds:
A survey[J].IEEE transactions on pattern analysis and machine intelligence,
2020,43(12):4338.