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