姓名:黃姣蕊
學(xué)號(hào):21011110244
【嵌牛導(dǎo)讀】三維點(diǎn)云數(shù)據(jù)融合的方法以及迭代最近點(diǎn)算法
【嵌牛鼻子】三維點(diǎn)云數(shù)據(jù)融合,迭代最近點(diǎn)算法,計(jì)算機(jī)視覺
【嵌牛提問】如何將三維點(diǎn)云數(shù)據(jù)融合在一起
【嵌牛正文】
一、迭代最近點(diǎn)算法(ICP)
基于人體三維模型尋找相鄰幀對(duì)應(yīng)點(diǎn)的變化,主要采用的算法如下:
ICP(Iterative Closest Point )基本思想:主要應(yīng)用于剛性配準(zhǔn),使源點(diǎn)集和目標(biāo)點(diǎn)集經(jīng)過旋轉(zhuǎn)和平移盡可能的對(duì)齊。
算法流程圖:
具體步驟:
??? Step1:源點(diǎn)集P={P1,P2,...,Pn}的點(diǎn)坐標(biāo),在目標(biāo)數(shù)據(jù)點(diǎn)集S={S1,S2,...,Sn}中搜索相應(yīng)最近點(diǎn)的點(diǎn)集Q={q1,q2,...,qn}。
??? 利用兩點(diǎn)間的距離平方和為dis。公式如下
?? ?其中,j遍歷整個(gè)點(diǎn)集S,通過不斷比較,找到距離最近的點(diǎn),根據(jù)該點(diǎn)序列號(hào)保存該點(diǎn)集Q中,記為qi。
???? Step2:計(jì)算兩個(gè)點(diǎn)集P、Q的重心位置坐標(biāo),并進(jìn)行點(diǎn)集重心化生成新的點(diǎn)集。
兩個(gè)數(shù)據(jù)點(diǎn)集P、Q的重心坐標(biāo)? 公式如下:
其中,k為點(diǎn)集的當(dāng)前點(diǎn)序號(hào),n為數(shù)據(jù)點(diǎn)集總數(shù)。并將點(diǎn)集中的所有數(shù)據(jù)點(diǎn)扣除重心點(diǎn)坐標(biāo)生成新的點(diǎn)集D、M。
???? Step3:由新的點(diǎn)集計(jì)算協(xié)方差矩陣,并求解由它組成的一個(gè)四元數(shù)矩陣的最大特征值及其最大特征向量[f0,f1,f2,f3]。
???? 旋轉(zhuǎn)矩陣R:
? ? ? ?Step4:將兩個(gè)重心坐標(biāo)寫成向量形式,分別為:
??????? 則平移向量T的計(jì)算公式下:
? ? ? ?Step5:將待匹配數(shù)據(jù)點(diǎn)集 P 經(jīng)過旋轉(zhuǎn)、平移變換后得到新的點(diǎn)集P’。計(jì)算點(diǎn)集 P’ 與模板點(diǎn)集 Q 對(duì)應(yīng)點(diǎn)對(duì)的距離平方和的均值,定義為I作為迭代判斷數(shù)值:
式中,n為數(shù)據(jù)點(diǎn)集總數(shù),? 為模板的鄰近點(diǎn)集坐標(biāo)向量, 為待匹配數(shù)據(jù)點(diǎn)集的坐標(biāo)向量。
? ? ? ?Step7:設(shè)置閾值,當(dāng)數(shù)值I小于閾值時(shí),ICP配準(zhǔn)算法就停止迭代,否則重復(fù)(1)至(3)步。
二、三維點(diǎn)云數(shù)據(jù)融合
點(diǎn)云融合算法
step1:數(shù)據(jù)獲取步驟:
1)將深度相機(jī)擺放好,保證相機(jī)水平放置之后,對(duì)地面進(jìn)行拍攝,得到第一幅深度點(diǎn)云數(shù)據(jù);
2)將底座放置在距相機(jī)平面大概1.2 米左右的位置,然后用深度相機(jī)進(jìn)行拍攝,得到第二幅地面+底座的深度點(diǎn)云數(shù)據(jù);
3)將奶牛模型平行于相機(jī)平面放置在底座上,進(jìn)行拍攝,得到第三幅奶牛的正面點(diǎn)云數(shù)據(jù);
4)將奶牛逆時(shí)針旋轉(zhuǎn)30度,進(jìn)行拍攝得到第四幅點(diǎn)云數(shù)據(jù);
5)再將奶牛順時(shí)針旋轉(zhuǎn)60度,拍攝第五幅點(diǎn)云數(shù)據(jù);
6)將整個(gè)奶牛調(diào)轉(zhuǎn)180度放置在底座上進(jìn)行拍攝,的到第六幅點(diǎn)云數(shù)據(jù);
7)然后將奶牛逆時(shí)針旋轉(zhuǎn)30 度,拍攝第七幅點(diǎn)云數(shù)據(jù);
8)之后再順時(shí)針旋轉(zhuǎn)60度,拍攝第八幅點(diǎn)云數(shù)據(jù);
9)將第三到第六幅的點(diǎn)云數(shù)據(jù)進(jìn)行去背景處理。
step2:利用ICP迭代最近點(diǎn)算法對(duì)得到的點(diǎn)云數(shù)據(jù)進(jìn)行配準(zhǔn)。
具體配準(zhǔn)過程如下:
step3:將得到的Front和Back兩點(diǎn)云,利用ICP算法進(jìn)行配準(zhǔn),就可以得到完整的三維點(diǎn)云數(shù)據(jù)圖。
注意:在最后配準(zhǔn)的過程中,我們是以底座為基準(zhǔn)進(jìn)行配準(zhǔn)的,因?yàn)槿绻阅膛DP蜑榛鶞?zhǔn)進(jìn)行配準(zhǔn)那么相匹配的特征點(diǎn)太少無法實(shí)現(xiàn)。
三維點(diǎn)云融合的結(jié)果圖: