点云处理学习笔记(八)-- 点云配准
一、點云配準(zhǔn)
? ? ? ?點云配準(zhǔn)的實質(zhì)是把不同坐標(biāo)系中測得的數(shù)據(jù)點云進行坐標(biāo)系的變換,以得到整體的數(shù)據(jù)模型,問題的關(guān)鍵是如何得到坐標(biāo)變換的旋轉(zhuǎn)矩陣R和平移向量T,使得兩視角下測得的三維數(shù)據(jù)經(jīng)坐標(biāo)變換后距離最小。目前的配準(zhǔn)算法按照過程可以分為:整體配準(zhǔn)和局部配準(zhǔn)。
二、兩兩配準(zhǔn)
? ? ? ?一對點云數(shù)據(jù)集的配準(zhǔn)問題就是兩兩配準(zhǔn)(pair-wise registration),通過一個估計得到的表示平移和旋轉(zhuǎn)的4*4剛體變換矩陣來使得一個點云的數(shù)據(jù)集精確地與另一個點云數(shù)據(jù)集(目標(biāo)數(shù)據(jù)集)進行配準(zhǔn)。
? ? ? ?實現(xiàn)步驟:
? ? ? ?1.首先從兩個數(shù)據(jù)集中按照同樣的關(guān)鍵點選取的標(biāo)準(zhǔn),提取關(guān)鍵點(也可以采用原始點云數(shù)據(jù),這依賴于配準(zhǔn)算法);
? ? ? ?2.對所有選擇的關(guān)鍵點分別計算其特征描述子;
? ? ? ?3.結(jié)合特征描述子在兩個數(shù)據(jù)集中的坐標(biāo)位置,以兩者之間的特征和位置的相似度為基礎(chǔ),來估算他們的對應(yīng)關(guān)機,初步估計相應(yīng)的點對;
? ? ? ?4.假設(shè)數(shù)據(jù)存在噪聲,除去對配準(zhǔn)有影響的錯誤的對應(yīng)點對;
? ? ? ?5.利用剩余的正確的對應(yīng)關(guān)系來估算剛體變換實現(xiàn)完整配準(zhǔn)。
三、對應(yīng)估計
? ? ? ?假設(shè)我們已經(jīng)得到的掃描點云數(shù)據(jù)獲得的兩組特征向量,在此基礎(chǔ)上,我們必須找到相似特征在確定數(shù)據(jù)的重疊部分,然后才能進行配準(zhǔn),根據(jù)特征的類型,使用不同的方法來搜索特征之間的對應(yīng)關(guān)系:
? ? ? ?使用點匹配時,使用點的XYZ坐標(biāo)作為特征值,針對有序點云和無序點云數(shù)據(jù)的不同處理策略:
? ? ? ?1.窮舉配準(zhǔn)(brute force matching)
? ? ? ?2.kd-tree最近鄰查詢(FLANN)
? ? ? ?3.在有序點云數(shù)據(jù)的圖像空間中查找
? ? ? ?4.在無序點云數(shù)據(jù)的索引空間中查找
四、對應(yīng)關(guān)系的去除
? ? ? ?由于噪聲的影響,通常并不是所有估計的對應(yīng)關(guān)系都是正確的,由于錯誤的對應(yīng)關(guān)系對于最終的剛體變換矩陣的估算會產(chǎn)生負面的影響,所以必須去除它們。采用隨機采樣一致性估計,或者其他方法剔除錯誤的對應(yīng)關(guān)系,最終使用對應(yīng)關(guān)系數(shù)量只使用一定比例的對應(yīng)關(guān)系,這樣既能提高變換矩陣的估計精度也可以提高配準(zhǔn)點的速度。
五、變換矩陣的估算
? ? ? ?估算對應(yīng)矩陣:
? ? ? ?1.在對應(yīng)關(guān)系的基礎(chǔ)上評估一些錯誤的度量標(biāo)準(zhǔn);
? ? ? ?2.在攝像機位姿(運動估算)和最小化錯誤度量標(biāo)準(zhǔn)下估算一個剛體變換;
? ? ? ?3.優(yōu)化點的結(jié)構(gòu);
? ? ? ?4.使用剛體變換把點云旋轉(zhuǎn)/平移到與目標(biāo)所在的同一坐標(biāo)系下,用所有的點、點的一個子集或關(guān)鍵點運算一個內(nèi)部的ICP循環(huán);
? ? ? ?5.進行迭代,直到符合收斂性判斷標(biāo)準(zhǔn)為止。
六、迭代最近點算法(Iterative Closest Point,簡稱為ICP)
? ? ? ?ICP對待需要進行拼接的兩片點云,首先根據(jù)一定的準(zhǔn)則確立對應(yīng)點集P與Q中對應(yīng)點對的個數(shù),然后通過最小二乘法迭代計算最優(yōu)的坐標(biāo)變換矩陣(旋轉(zhuǎn)矩陣R和平移矢量T),使得誤差函數(shù)最小,ICP處理步驟如下:
? ? ? ?1.對原始點云數(shù)據(jù)進行采樣;
? ? ? ?2.確定初始對應(yīng)點集;
? ? ? ?3.去除錯誤對應(yīng)點對;
? ? ? ?4.求解坐標(biāo)變換。
? ? ? ?缺點:
? ? ? ?a:需要剔除不合適的點對(點對距離過大、包含邊界點的點對)
? ? ? ?b:基于點對的配準(zhǔn),并沒有包含局部形狀的信息
? ? ? ?c:每次迭代都要搜索最近點,計算代價高昂
七、NDT算法
? ? ? ?1.將空間(reference scan)劃分為各個格子cell;
? ? ? ?2.將點云投票到各個格子;
? ? ? ?3.計算格子的正態(tài)分布PDF參數(shù):
? ? ? ?PDF參數(shù)可以當(dāng)作表面的近似表達,協(xié)方差矩陣的特征向量和特征值可以表達表面信息(朝向,平整度);
? ? ? ?格子內(nèi)少于3個點時,協(xié)方差矩陣不存在逆矩陣,所以只計算點數(shù)大于5的格子,涉及到下采樣方法。
? ? ? ?4.將第二幅scan的每個點按轉(zhuǎn)義矩陣T進行變換;
? ? ? ?5.第二幅scan的點落于reference的哪個格子,計算響應(yīng)的概率分布函數(shù):
? ? ? ?6.求所有點的最優(yōu)值,目標(biāo)函數(shù)為:
? ? ? ?NDT的優(yōu)化:
? ? ? ?格子參數(shù)最重要,格子太大會導(dǎo)致精度不高,太小導(dǎo)致內(nèi)存過高,并且只有兩幅圖像相差不大的情況才能匹配。
八、SAC-IA算法
? ? ? ?基于RNSAC算法,在原始點云中,選擇4點,針對每點在目標(biāo)點云中選擇相似特征的1到多個點(多點隨機選1),計算剛體變換矩陣,接著計算變換損失(誤差),完成一次迭代,持續(xù)迭代,直到所有點數(shù)的Huber損失最小。
點云處理學(xué)習(xí)筆記只是自己看了Eason.wxd博主的文章之后,記錄的一些概念性的內(nèi)容,僅供參考用,后續(xù)會根據(jù)《PCL從入門到精通》這本書做進一步的學(xué)習(xí)和實踐,會對內(nèi)容進行補充或者調(diào)整,也會更新新的筆記。
總結(jié)
以上是生活随笔為你收集整理的点云处理学习笔记(八)-- 点云配准的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查看本机外网IP地址
- 下一篇: java面试题:2018年6月