楊 杰, 盧鈺仁, 田 穎, 呂曉玲
(河北工業(yè)大學(xué) 機(jī)械工程學(xué)院,天津 300130)
點(diǎn)云數(shù)據(jù)的拼接配準(zhǔn)是物體三維重建過程中最重要的環(huán)節(jié),直接影響處理后的整體精度[1]。目前的點(diǎn)云拼接大多是兩兩拼接配準(zhǔn)問題,最初采用的方法是順序拼接[2],其核心思想是兩兩拼接,該方法簡單直接,但評估點(diǎn)云之間的包含關(guān)系[3]和重復(fù)拼接的累積誤差,會嚴(yán)重影響整體拼接的精度。對此,Nishino K[4]根據(jù)各個點(diǎn)云之間的對應(yīng)關(guān)系提出了一種多視角拼接算法,但大型場景中多視角的點(diǎn)云數(shù)據(jù)龐大,計算點(diǎn)云之間的收斂十分緩慢,降低了局部點(diǎn)云拼接的準(zhǔn)確性和效率。近年來,研究由局部拼接轉(zhuǎn)向全局拼接。利用平差方法[5]估計全局最優(yōu)坐標(biāo)轉(zhuǎn)換參數(shù)提高配準(zhǔn)精度與可靠性是一種最常用的方法。
本文根據(jù)拼接中大角度變換存在的問題,提出了一種提取拼接點(diǎn)對的條件約束方法,在對點(diǎn)云數(shù)據(jù)進(jìn)行粗拼接時,選取預(yù)參考點(diǎn)并對兩組點(diǎn)云中對應(yīng)點(diǎn)關(guān)系進(jìn)行改進(jìn),對獲取的不同幀數(shù)的點(diǎn)云數(shù)據(jù)進(jìn)行約束條件的比較,去掉不符合條件的點(diǎn)云數(shù)據(jù)后,再對粗拼接數(shù)據(jù)進(jìn)行精確拼接。針對本文提出的算法對室內(nèi)室外場景進(jìn)行實(shí)驗(yàn),以驗(yàn)證所提出的方法的可行性。
三維幾何模型的變換通常包括旋轉(zhuǎn)、平移和縮放,在拼接過程中不考慮縮放,只需要求得目標(biāo)點(diǎn)云集B到源點(diǎn)集A的旋轉(zhuǎn)矩陣R和平移向量T,使得經(jīng)過左邊變換后得到的旋轉(zhuǎn)矩陣(R·A+T)與目標(biāo)點(diǎn)云集B之間的距離最小。
經(jīng)典迭代最近點(diǎn)(iterative closest point,ICP)算法中使用的點(diǎn)與點(diǎn)的對應(yīng)關(guān)系為
d=min‖X-(R·A+T)2‖
(1)
因此,經(jīng)典ICP算法[6]需要對點(diǎn)云遍歷處理,由于點(diǎn)云數(shù)據(jù)中法向量[7]是點(diǎn)云的重要參數(shù),在拼接過程中也需要對其進(jìn)行計算,所以將對應(yīng)點(diǎn)對的關(guān)系改進(jìn)為法向量之間的對應(yīng)關(guān)系,即點(diǎn)與面的對應(yīng)關(guān)系,如圖1所示。
圖1 點(diǎn)到平面距離示意
d′=min‖[X-(R·A+T)2]·ni‖
(2)
式中ni為待拼接數(shù)據(jù)點(diǎn)的法向量。
本文采用了對點(diǎn)云數(shù)據(jù)中點(diǎn)與其鄰域點(diǎn)之間的法向量夾角的變化程度來評估點(diǎn)對之間的關(guān)系。如圖2所示,若夾角變化程度大,說明該模型曲面變化復(fù)雜;若夾角變化程度小,說明模型曲面平滑。選取出點(diǎn)云模型中法向量變化突出的點(diǎn),精簡對應(yīng)點(diǎn)對。因此,設(shè)定點(diǎn)云模型中某一點(diǎn)Pi處的法向量變化趨勢即其特征變化程度為其法向量與其近鄰點(diǎn)法向夾角的算術(shù)平均值
(3)
式中θij為點(diǎn)Pi的法向量與其近鄰點(diǎn)Pj的法向量的夾角,n為比例系數(shù)。
圖2 不同區(qū)域的方向量示意
根據(jù)點(diǎn)云數(shù)據(jù)模型體積V和點(diǎn)數(shù)量的大小n決定取不同的σ值進(jìn)行分析,如圖3所示,σ取值較小時,將會對原點(diǎn)云模型的細(xì)節(jié)信息保存得相對完整,但局部信息去除較多;σ取值較大時,參考點(diǎn)集的點(diǎn)密度相對較大,計算保留的點(diǎn)較多。σ一般取5~10之間。
圖3 不同σ值所對應(yīng)的參考點(diǎn)集
獲取參考點(diǎn)對后即可對點(diǎn)云數(shù)據(jù)進(jìn)行拼接處理,對點(diǎn)云模型的粗拼接效果如圖4所示,經(jīng)過點(diǎn)云粗拼接后的兩幅點(diǎn)云數(shù)據(jù)已經(jīng)重合了很大部分。
圖4 點(diǎn)云粗拼接效果
本文用曲率表示關(guān)鍵點(diǎn)的局部近鄰域形狀變化趨勢,并將其作為識別點(diǎn)云模型特征的重要依據(jù)。
設(shè)曲面S:r=r×(u:v)在點(diǎn)的主方向?yàn)?d)=du:dv,若定義Kn為A點(diǎn)處的主曲率,則Kn一定滿足[11]
(L-KnE)(N-KnG)-(M-KnF)(M-KnF)=0
(4)
對選取的對應(yīng)點(diǎn)對進(jìn)行曲率計算,因?yàn)樵谟嬎銠C(jī)測量和計算時會出現(xiàn)不可避免的偏差,建立以下約束條件
(5)
如果點(diǎn)云中的Bi點(diǎn)不滿足式(5),需要將所選點(diǎn)剔除,選取另外互不共線的點(diǎn)對繼續(xù)進(jìn)行比較,直至搜索完全參考點(diǎn)對點(diǎn),找到點(diǎn)Ai所有可能匹配點(diǎn)Bi。
1)對應(yīng)點(diǎn)之間距離約束
若兩組模型的拼接點(diǎn)對是正確拼接匹配點(diǎn)對,根據(jù)剛體不變性及實(shí)際應(yīng)用情況,只需滿足:|dist(xi,yi)|≈|dist(xj,yj)|。計算每個初始點(diǎn)對
(6)
式中δ1為設(shè)定的距離誤差,若計算兩點(diǎn)間距離滿足式(6),則將點(diǎn)對(xj,yj)記為相對于點(diǎn)對(xi,yi)的符合距離約束的點(diǎn)對。
2)對應(yīng)點(diǎn)的曲率約束
根據(jù)關(guān)鍵點(diǎn)的曲率值建立如下約束條件
(7)
式中δ2為給定的曲率誤差。
將粗拼接后的結(jié)果作為新的初始位置,利用改進(jìn)ICP算法進(jìn)行精確拼接。雖然只是經(jīng)過了粗拼接后,但已經(jīng)得到了較好的初始位置關(guān)系,計算出的旋轉(zhuǎn)矩陣R和平移矩陣T誤差最小,可以得到最優(yōu)變換矩陣
(8)
由于對選取點(diǎn)對和計算點(diǎn)的距離上有優(yōu)化,并且對精確點(diǎn)對有優(yōu)化和約束,所以,如表1所示,算法在點(diǎn)云拼接速度和精度上有所提高。
表1 不同點(diǎn)云拼接算法結(jié)果比較
點(diǎn)云精確拼接處理效果如圖5所示,在粗拼接的基礎(chǔ)上對點(diǎn)云數(shù)據(jù)進(jìn)行精確拼接并進(jìn)行點(diǎn)云融合??梢钥闯觯簝煞蠼嵌鹊狞c(diǎn)云圖像經(jīng)過點(diǎn)云精確拼接后能完整地重現(xiàn)真實(shí)物體的特征。
圖5 點(diǎn)云精確拼接示意
本文針對點(diǎn)云數(shù)據(jù)獲取時,角度差異較大的數(shù)據(jù)拼接誤差較大的問題,分析了兩幅點(diǎn)云之間點(diǎn)與點(diǎn)之間的關(guān)系,提出了點(diǎn)到面的計算方法,并根據(jù)點(diǎn)的法向量的變化提取預(yù)參考點(diǎn),簡化了兩組點(diǎn)云之間的計算復(fù)雜程度。對拼接點(diǎn)云進(jìn)行優(yōu)化約束,求得精確點(diǎn)對完成點(diǎn)云拼接。實(shí)驗(yàn)結(jié)果表明:與傳統(tǒng)的點(diǎn)云拼接算法比較,本文改進(jìn)的算法能夠有效提升處理速度并減少了實(shí)驗(yàn)誤差,拼接算法融合后的點(diǎn)云數(shù)據(jù)能夠很好地達(dá)到重建的精度要求。