NDT 算法和一些常见配准算法
原文鏈接:http://ghx0x0.github.io/2014/12/30/NDT-match/
目前三維配準(zhǔn)中用的較多的是ICP迭代算法,需要提供一個(gè)較好的初值,同時(shí)由于算法本身缺陷,最終迭代結(jié)果可能會(huì)陷入局部最優(yōu)。本文介紹的是另一種比較好的配準(zhǔn)算法,NDT配準(zhǔn)。這個(gè)配準(zhǔn)算法耗時(shí)穩(wěn)定,跟初值相關(guān)不大,初值誤差大時(shí),也能很好的糾正過來。
緒論:
采樣:
3d點(diǎn)云數(shù)據(jù)在離相機(jī)近處點(diǎn)云密度大,遠(yuǎn)處密度小,所以在下采樣時(shí)采用統(tǒng)一的采樣方法還是會(huì)保留密度不均勻;
一種方法是將空間劃分格子,在每個(gè)格子內(nèi)的點(diǎn)云隨機(jī)取點(diǎn),點(diǎn)數(shù)足夠了即可。
短波將會(huì)產(chǎn)生更高的分辨率和較少的鏡面反射。采用多個(gè)深度相機(jī)會(huì)產(chǎn)生串?dāng)_的問題,尤其是鏡面反射很厲害的時(shí)候。
可以采集圖像深度的相機(jī):
雷達(dá)radio
激光雷達(dá)lidar
三角測(cè)量法
TOF飛行時(shí)間法
相位差法
聲吶
雙目視覺
雙目視覺是一個(gè)被動(dòng)的三角測(cè)量;
缺點(diǎn):
A.雙目視覺只有能被檢測(cè)出來的特征點(diǎn)才能檢測(cè)出深度,在低對(duì)比度的環(huán)境中,只有很少的特征點(diǎn)能夠檢測(cè)出;
B.雙目視覺的另一個(gè)缺點(diǎn)是歲兩個(gè)相機(jī)之間的距離增大,深度精度減少,盲區(qū)增大,主要面向幾米遠(yuǎn)的長(zhǎng)距離測(cè)量。
C.對(duì)于沒有紋理的表面檢測(cè)不出來。
投影光三角測(cè)量
TOF深度相機(jī)
實(shí)際上是采用相位偏移法測(cè)量;
TOF深度相機(jī)相比lidar的TOF是 采集速度快,硬件便宜
缺點(diǎn)是噪點(diǎn)很明顯,并且需要標(biāo)定,并且受外界光和本身主動(dòng)光的影響。 而且曝光時(shí)間不容易確定
視圖匹配(配準(zhǔn)):
ICP
缺點(diǎn):
A.要剔除不合適的點(diǎn)對(duì)(點(diǎn)對(duì)距離過大、包含邊界點(diǎn)的點(diǎn)對(duì))
B.基于點(diǎn)對(duì)的配準(zhǔn),并沒有包含局部形狀的信息
C.每次迭代都要搜索最近點(diǎn),計(jì)算代價(jià)高昂
存在多種優(yōu)化了的變體算法,如八叉樹等
IDC
ICP的一種改進(jìn),采用極坐標(biāo)代替笛卡爾坐標(biāo)進(jìn)行最近點(diǎn)搜索匹配
PIC
考慮了點(diǎn)云的噪音和初始位置的不確定性
Point-based probabilistic registration
需要首先建立深度圖的三角面片
NDT——正態(tài)分布變換:
計(jì)算正態(tài)分布是一個(gè)一次性的工作(初始化),不需要消耗大量代價(jià)計(jì)算最近鄰搜索匹配點(diǎn)
概率密度函數(shù)在兩幅圖像采集之間的時(shí)間可以離線計(jì)算出來
Gaussian fields
和NDT正態(tài)分布變換類似,利用高斯混合模型考察點(diǎn)和點(diǎn)的距離和點(diǎn)周圍表面的相似性
Quadratic patches
Likelihood-field matching——隨機(jī)場(chǎng)匹配
CRF匹配
缺點(diǎn): 運(yùn)行速度慢,在3d中實(shí)時(shí)性能不好,誤差大。
Branch-and-bound registration
Registration using local geometric features
NDT算法:
將空間(reference scan)劃分成各個(gè)格子cell
將點(diǎn)云投票到各個(gè)格子
計(jì)算格子的正態(tài)分布PDF參數(shù)
將第二幅scan的每個(gè)點(diǎn)按轉(zhuǎn)移矩陣T的變換
第二幅scan的點(diǎn)落于reference的哪個(gè) 格子,計(jì)算響應(yīng)的概率分布函數(shù)
求所有點(diǎn)的最優(yōu)值,目標(biāo)函數(shù)為
PDF可以當(dāng)做表面的近似表達(dá),協(xié)方差矩陣的特征向量和特征值可以表達(dá)表面信息(朝向、平整度)
格子內(nèi)少于3個(gè)點(diǎn),經(jīng)常會(huì)協(xié)方差矩陣不存在逆矩陣,所以只計(jì)算點(diǎn)數(shù)大于5的cell,涉及到下采樣方法。
NDT的優(yōu)化:
格子參數(shù)最重要,太大導(dǎo)致精度不高,太小導(dǎo)致內(nèi)存過高,并且只有兩幅圖像相差不大的情況才能匹配
固定尺寸
八叉樹建立,格子有大有小
迭代,每次使用更精細(xì)的格子
K聚類,有多少個(gè)類就有多少個(gè)cell,格子大小不一
Linked-cell
三線插值 平滑相鄰的格子cell導(dǎo)致的不連續(xù),提高精度
缺點(diǎn):插值導(dǎo)致時(shí)間是普通的4倍
優(yōu)點(diǎn):可以提高魯棒性
ICP算法:
給定參考點(diǎn)集P和數(shù)據(jù)點(diǎn)集Q(在給定初始估計(jì)RT時(shí))
對(duì)Q中的每一個(gè)點(diǎn)尋找P中的對(duì)應(yīng)最近點(diǎn),構(gòu)成匹配點(diǎn)對(duì)
對(duì)匹配點(diǎn)對(duì)求歐氏距離和作為誤差目標(biāo)函數(shù)error
利用SVD分解求出R和T,使得error最小
將Q按照R和T旋轉(zhuǎn)變化,并以此為基準(zhǔn)回到1 重新尋找對(duì)應(yīng)點(diǎn)對(duì)
NDT 耗時(shí)穩(wěn)定,跟初值相關(guān)不大,初值誤差大時(shí),也能很好的糾正過來;
ICP耗時(shí)多,容易陷入局部最優(yōu);
可以根據(jù)格子cell的PDF的協(xié)方差矩陣計(jì)算特征向量特征值,每個(gè)格子有球形狀、平面、線型三種類型,根據(jù)朝向作以統(tǒng)計(jì),得到局部或者一幅圖像的特征直方圖
文章來自于Martin Magnusson的The Three-Dimensional Normal-Distributions Transform— an Efficient Representation for Registration,Surface Analysis, and Loop Detection。 作者詳細(xì)介紹了NDT在各個(gè)條件下的配準(zhǔn)效果及與其他配準(zhǔn)方法的詳細(xì)實(shí)驗(yàn)對(duì)比,并利用NDT算法配準(zhǔn)礦洞內(nèi)三維場(chǎng)景,同時(shí)完成SLAM任務(wù)。
總結(jié)
以上是生活随笔為你收集整理的NDT 算法和一些常见配准算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言二分法求最小值解,C语言用二分法求
- 下一篇: 腾讯支付新专利公布,可同时验证掌纹与人脸