一種基于曲率特征的三維正態(tài)分布變換點(diǎn)云配準(zhǔn)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于三維重建技術(shù)領(lǐng)域,特別是涉及兩片帶重疊區(qū)域的點(diǎn)云數(shù)據(jù)集之間實(shí) 現(xiàn)配準(zhǔn)的方法。
【背景技術(shù)】
[0002] 由于待重建場(chǎng)景的復(fù)雜性、激光傳感器掃描范圍的局限性等原因,往往需要將一 個(gè)大的場(chǎng)景分為多個(gè)區(qū)域分別掃描。而每次掃描的相對(duì)坐標(biāo)系都是以激光掃描儀的發(fā)射 點(diǎn)(視點(diǎn))為原點(diǎn)的新建坐標(biāo)系。為了使多次掃描的點(diǎn)云數(shù)據(jù)集統(tǒng)一到同一個(gè)坐標(biāo)系下, 需要求出每?jī)纱螔呙璧狞c(diǎn)云數(shù)據(jù)集之間的變換矩陣,求變換矩陣的過程就是點(diǎn)云配準(zhǔn)的過 程。三維重建系統(tǒng)中常用的配準(zhǔn)算法主要分為三類:基于特征的配準(zhǔn)算法 [W],迭代最近點(diǎn) 算法(ICP) [5_7]和正態(tài)分布變換算法(NDT) [8_11]。
[0003] 基于特征的配準(zhǔn)算法就是利用兩片點(diǎn)云對(duì)應(yīng)的特征點(diǎn)對(duì)或者對(duì)應(yīng)的特征向量估 計(jì)變換矩陣,使得一個(gè)點(diǎn)云數(shù)據(jù)集準(zhǔn)確地配準(zhǔn)到另一個(gè)點(diǎn)云數(shù)據(jù)集。由于此類算法只存在 一次變換過程,對(duì)應(yīng)特征估計(jì)的準(zhǔn)確性要求非常高,因此在實(shí)際應(yīng)用中,基于特征的配準(zhǔn)算 法均作為一種粗配準(zhǔn)或者初始配準(zhǔn),如文獻(xiàn)[3]中提取SIFT特征完成初始配準(zhǔn)以及文獻(xiàn)
[4] 中根據(jù)k近鄰搜索點(diǎn)設(shè)計(jì)的一種不變特征。完成初始配準(zhǔn)得到比較理想的初始位置之 后,采用精確配準(zhǔn)算法提高配準(zhǔn)精度。常用的精確配準(zhǔn)算法是Besl等人在1992年提出的 迭代最近點(diǎn)算法(ICP)[6]。ICP算法的明顯特征是在計(jì)算過程中的迭代思想,本質(zhì)上是一種 計(jì)算兩個(gè)點(diǎn)集間的距離并將其最小化的方法。ICP算法對(duì)初始位置要求嚴(yán)格、易于陷入局部 最優(yōu),而且算法時(shí)間復(fù)雜度高[8]。
[0004]正態(tài)分布變換配準(zhǔn)算法于2003年由Biber和Strasser提出[9],正態(tài)分布變換配 準(zhǔn)的主要思想是改變模型的表示形式,由原來離散點(diǎn)的表示形式轉(zhuǎn)換為一種正態(tài)分布的組 合形式,新的模型描述了某一個(gè)點(diǎn)分別屬于各個(gè)表面的概率。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明目的是解決配準(zhǔn)過程耗時(shí)長(zhǎng)的問題,提供一種基于曲率特征的三維正態(tài)分 布變換點(diǎn)云配準(zhǔn)方法。
[0006] 本發(fā)明采用三維正態(tài)分布變換算法在很大程度上降低了配準(zhǔn)算法的運(yùn)行時(shí)間,而 且降低了實(shí)驗(yàn)誤差,提高了實(shí)驗(yàn)精度。但應(yīng)用到一個(gè)場(chǎng)景范圍大、點(diǎn)云密集程度高的場(chǎng)景 中,配準(zhǔn)過程耗時(shí)長(zhǎng)的問題依然不容忽視。通過提取曲率特征,排除了大量冗余點(diǎn)的干擾, 降低了參與配準(zhǔn)過程的點(diǎn)的數(shù)量,有效地縮短了配準(zhǔn)算法的運(yùn)行時(shí)間。
[0007] 本發(fā)明提供的一種基于曲率特征的三維正態(tài)分布變換點(diǎn)云配準(zhǔn)方法,包括如下步 驟:
[0008] 第1、曲率特征提取,提取曲率特征的原則是:曲率種子點(diǎn)鄰域半徑范圍內(nèi)的點(diǎn)為 曲率特征點(diǎn),鄰域半徑計(jì)算過程為在提取曲率特征點(diǎn)之前,首先設(shè)定曲率閾值 e,曲率值大 于閾值的點(diǎn)為曲率種子點(diǎn),并確定鄰域半徑的計(jì)算公式:
[0009] R=kH(I)其中H為該點(diǎn)曲率值,k為比例參數(shù)。k的取值根據(jù)實(shí)際情況進(jìn)行調(diào) 節(jié),場(chǎng)景特征豐富時(shí),同比例減小比例值;反之,增大比例值;
[0010] 曲率特征提取過程為:
[0011] 第1.1、分別計(jì)算模型點(diǎn)云中點(diǎn)的曲率值,計(jì)算公式如下:
[0013] 其中,曲面函數(shù)為y=f(x),y',y"分別為函數(shù)y關(guān)于X的一階和二階導(dǎo)數(shù)。
[0014] 第1. 2、遍歷模型點(diǎn)云中所有點(diǎn),若曲率值大于閾值e,計(jì)算該點(diǎn)的鄰域半徑R,提 取鄰域半徑R內(nèi)的點(diǎn)為曲率特征點(diǎn)。
[0015] 第1. 3、參照第I. 1步和第1. 2步方法,提取目標(biāo)點(diǎn)云的曲率特征點(diǎn)。
[0016] 第2、坐標(biāo)變換矩陣估計(jì)
[0017] 采用精簡(jiǎn)過程為:首先將點(diǎn)云模型劃分為體素柵格結(jié)構(gòu),然后分別計(jì)算每個(gè)體素 柵格內(nèi)包含數(shù)據(jù)點(diǎn)的重心,用重心點(diǎn)代替同一柵格內(nèi)其他點(diǎn),依次處理完所有體素柵格。然 后應(yīng)用三維正態(tài)分布變換算法求取坐標(biāo)變換矩陣,完成配準(zhǔn),具體步驟如下:
[0018] 第2. 1、首先,將模型點(diǎn)云的曲率特征點(diǎn)均分為一系列小立方體,每個(gè)小立方體為 一個(gè)單元,邊長(zhǎng)長(zhǎng)度一般設(shè)定為場(chǎng)景寬度的1/20,并且保證小立方體內(nèi)點(diǎn)數(shù)不少于10個(gè)。
[0019] 第2. 2、然后對(duì)于每一個(gè)單元,用公式(3)計(jì)算均值向量和公式(4)計(jì)算協(xié)方差矩 陣,每個(gè)單元的點(diǎn)數(shù)要大于一個(gè)設(shè)定的閾值;
[0022] 其中q為均值向量,C為協(xié)方差矩陣,n為此單元內(nèi)點(diǎn)的個(gè)數(shù),xk= 1...n是此單元里
號(hào),表示從k= 1的項(xiàng),累加到k=n的項(xiàng)。位置X處的點(diǎn)在單元b內(nèi)的概率用正態(tài)分布N(q,c)表示,概率密度函數(shù)為:
[0024] 其中,q是此單元的均值向量,C是此單元的協(xié)方差矩陣,C的上標(biāo)-1代表對(duì)C進(jìn) 行矩陣求逆運(yùn)算,c是歸一化常數(shù),exp表示自然指數(shù)函數(shù)。
[0025] 第2. 3、需要優(yōu)化的參數(shù)是旋轉(zhuǎn)變量和平移變量,把所有參數(shù)用一個(gè)向量p表示。 定義一個(gè)變換函數(shù)T(p,X),即將點(diǎn)X通過p代表的旋轉(zhuǎn)和平移變換得到新的位置坐標(biāo),在二 維空間中,T(p,x)為:
[0027] 其中tx,ty是平移變量,巾為旋轉(zhuǎn)變量,因此p=[tx,ty,傘]。
[0028]第2. 4、假設(shè)目標(biāo)點(diǎn)云的曲率特征點(diǎn)集為X={Xl,???,Xn},坐標(biāo)變換參數(shù)向量為 P。定義目標(biāo)函數(shù)S(p),求最優(yōu)變換P使得X變換之后在模型點(diǎn)云上的概率最大,具體公式 為:
[0030] 等價(jià)于求目標(biāo)函數(shù)S(P)的最小值;應(yīng)用迭代牛頓算法優(yōu)化此函數(shù),直到最后一次 迭代的參數(shù)向量模長(zhǎng)IpI小于o.oooi。
[0031] 第3、將目標(biāo)點(diǎn)云集變換到模型點(diǎn)云坐標(biāo)系
[0032]根據(jù)第2. 3步求得的坐標(biāo)變換函數(shù)T(p,X),將目標(biāo)點(diǎn)云數(shù)據(jù)集X= {Xl,. . .,Xn} 變換到模型點(diǎn)云坐標(biāo)系,完成兩片點(diǎn)云的配準(zhǔn)。
[0033] 本發(fā)明的優(yōu)點(diǎn)和有益效果:
[0034] 本發(fā)明設(shè)計(jì)的改進(jìn)方法與原三維正態(tài)分布變換方法在設(shè)定的初始旋轉(zhuǎn)偏差范圍 內(nèi)運(yùn)行時(shí)間隨著偏差的增大而上升,但本發(fā)明方法的運(yùn)行時(shí)間相比于原方法表現(xiàn)出更加明 顯的優(yōu)勢(shì)。
【附圖說明】:
[0035] 圖1為配準(zhǔn)實(shí)驗(yàn)點(diǎn)云模型;
[0036] 圖2為初始平移偏差對(duì)本發(fā)明方法和文獻(xiàn)[9]中方法的配準(zhǔn)時(shí)間及最終誤差的影 響;
[0037] 圖3為初始旋轉(zhuǎn)誤差對(duì)本發(fā)明方法和文獻(xiàn)[9]中方法的配準(zhǔn)時(shí)間及最終誤差的影 響;
[0038] 圖4表不全景點(diǎn)云模型;
[0039] 圖5表示模型點(diǎn)云提取曲率特征結(jié)果圖;
[0040] 圖6表示目標(biāo)點(diǎn)云提取曲率特征結(jié)果圖;
[0041] 圖7表示配準(zhǔn)之前兩片點(diǎn)云的位置關(guān)系圖;
[0042] 圖8表示配準(zhǔn)之后兩片點(diǎn)云的位置關(guān)系圖。
【具體實(shí)施方式】:
[0043] 實(shí)例例1:
[0044] 為了進(jìn)一步分析比較原三維正態(tài)分布變換方法與本發(fā)明方法,設(shè)計(jì)一組評(píng)估實(shí) 驗(yàn):待配準(zhǔn)的模型點(diǎn)云與目標(biāo)點(diǎn)云來自同一個(gè)點(diǎn)云數(shù)據(jù)集(點(diǎn)云模型如附圖1所示),人為 設(shè)置一定的初始平移偏差與初始旋轉(zhuǎn)偏差,在此初始偏差的基礎(chǔ)上分別應(yīng)用三維正態(tài)分布 變換方法與本發(fā)明方法進(jìn)行配準(zhǔn)實(shí)驗(yàn),每組參數(shù)均進(jìn)行10次實(shí)驗(yàn)并求取均值。
[0045] 第一組實(shí)驗(yàn):
[0046]I.la、設(shè)定初始偏差
[0047] 為了驗(yàn)證初始平移偏差對(duì)配準(zhǔn)效果的影響,保證初始旋轉(zhuǎn)為Orad,設(shè)定初始平移 偏差為100~500mm,并將目標(biāo)點(diǎn)云按照相應(yīng)的變換矩陣完成變換。
[0048]I. 2a、提取模型點(diǎn)云與目標(biāo)點(diǎn)云的曲率特征值
[0049] 設(shè)置曲率閾值0. 5和鄰域半徑比例值500,根據(jù)公式(2)計(jì)算各個(gè)點(diǎn)的曲率值,根 據(jù)公式(1)計(jì)算鄰域半徑的值,保證特征點(diǎn)數(shù)量大概為原點(diǎn)云數(shù)量的1/10,分別提取模型 點(diǎn)云和目標(biāo)點(diǎn)云的曲率特征點(diǎn)。
[0050]I. 3a、應(yīng)用三維正態(tài)分布變換方法完成兩組曲率特征點(diǎn)之間的配準(zhǔn)
[0051] 將模型點(diǎn)云的曲率特征點(diǎn)在空間范圍內(nèi)劃分為一系列小立方體,小立方體的邊長(zhǎng) 為50cm,根據(jù)公式(3)、(4)計(jì)算小立方體內(nèi)三維點(diǎn)的平均向量和協(xié)方差矩陣,根據(jù)公式(5) 得到三維點(diǎn)在該立方體空間內(nèi)的概率密度函數(shù)。根據(jù)公式(6)、(7)求變換矩陣使得目標(biāo)點(diǎn) 云變換到模型點(diǎn)云空間坐標(biāo)系內(nèi)概率最大。
[0052]I. 4a、比較兩種方法的運(yùn)行時(shí)間,以及配準(zhǔn)完成后最終平均偏差值
[0053] 附圖2展示了附圖1中點(diǎn)云數(shù)據(jù)集實(shí)驗(yàn)結(jié)果的曲線圖,當(dāng)初始平移偏差由IOOmm 增大到500mm時(shí),原方法的運(yùn)行時(shí)間由279. 32ms增大到546. 54ms。而在此過程中,本發(fā)明 方法的運(yùn)行時(shí)間一直低于原方法運(yùn)行時(shí)間的一半,誤差值基本保持為一個(gè)很小的定值。分 析上述實(shí)驗(yàn)結(jié)果可得,本發(fā)明方法與原方法有一個(gè)共同特征,即初始偏差越大,方法運(yùn)行時(shí) 間越長(zhǎng),但是本發(fā)明方法的運(yùn)行時(shí)間相比于原方法有明顯地縮短。而且在設(shè)定的初始偏差 范圍內(nèi),兩種方法最后均能收斂到非常小的誤差值。
[0054] 第二組實(shí)驗(yàn):
[0055]I.Ib、設(shè)定初始偏差
[0056] 為了驗(yàn)證初始旋轉(zhuǎn)偏差對(duì)配準(zhǔn)效果的影響,保證初始平移為0mm,設(shè)定初始旋轉(zhuǎn)偏 差為0. 1~0. 5rad,并將目標(biāo)點(diǎn)云按照相應(yīng)的變換矩陣完成變換。
[0057] I.2b、提取模型點(diǎn)云與目標(biāo)點(diǎn)云的曲率特征值
[0058] 設(shè)置曲率閾值0. 5和鄰域半徑比例值500,根據(jù)公式(2)計(jì)算各個(gè)點(diǎn)的曲率值,根 據(jù)公式(1)計(jì)算鄰域半徑的值,保證特征點(diǎn)數(shù)量大概為原點(diǎn)云數(shù)量的1/10,分別提取模型 點(diǎn)云和目標(biāo)點(diǎn)云的曲率特征點(diǎn)。
[0059]I. 3b、應(yīng)用三維正態(tài)分布變換方法完成兩組曲率特征點(diǎn)之間的配準(zhǔn)
[0060] 將模型點(diǎn)云的曲率特征點(diǎn)在空間范圍內(nèi)劃分為一系列小立方體,,小立方體的邊 長(zhǎng)為50cm,根據(jù)公式(3)、(4)計(jì)算小立方體內(nèi)三維點(diǎn)的平