NDT 演算法和一些常見配準演算法

2022-03-11 16:01:22 字數 2154 閱讀 6869

目前三維配準中用的較多的是icp迭代演算法,需要提供乙個較好的初值,同時由於演算法本身缺陷,最終迭代結果可能會陷入區域性最優。本文介紹的是另一種比較好的配準演算法,ndt配準。這個配準演算法耗時穩定,跟初值相關不大,初值誤差大時,也能很好的糾正過來。

雷達radio

雷射雷達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

將空間(reference scan)劃分成各個格仔cell

將點雲投票到各個格仔

計算格仔的正態分佈pdf引數

將第二幅scan的每個點按轉移矩陣t的變換

第二幅scan的點落於reference的哪個 格仔,計算響應的概率分布函式

求所有點的最優值,目標函式為

pdf可以當做表面的近似表達,協方差矩陣的特徵向量和特徵值可以表達表面資訊(朝向、平整度)

格仔內少於3個點,經常會協方差矩陣不存在逆矩陣,所以只計算點數大於5的cell,涉及到下取樣方法。

固定尺寸

八叉樹建立,格仔有大有小

迭代,每次使用更精細的格仔

k聚類,有多少個類就有多少個cell,格仔大小不一

linked-cell

三線插值 平滑相鄰的格仔cell導致的不連續,提高精度

缺點:插值導致時間是普通的4倍

優點:可以提高魯棒性

給定參考點集p和資料點集q(在給定初始估計rt時)

對q中的每乙個點尋找p中的對應最近點,構成匹配點對

對匹配點對求歐氏距離和作為誤差目標函式error

利用svd分解求出r和t,使得error最小

將q按照r和t旋轉變化,並以此為基準回到1 重新尋找對應點對

ndt 耗時穩定,跟初值相關不大,初值誤差大時,也能很好的糾正過來;  

icp耗時多,容易陷入區域性最優;

可以根據格仔cell的pdf的協方差矩陣計算特徵向量特徵值,每個格仔有球形狀、平面、線型三種型別,根據朝向作以統計,得到區域性或者一幅影象的特徵直方圖

常見的一些演算法

1.判斷乙個數是否為素數 質數 判斷乙個數是否為素數 method1 bool judgeprime int number std cout number return true 判斷乙個數是否為素數 method2 bool judgeprime2 int number std cout numb...

一些常見演算法題目

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。class solution int pop ielement stack2.top stack2.pop return ielement private stackstack1 stackstack2 輸入某二叉樹的...

點集配準與ICP演算法 一

一圖勝千言,古人喜歡從畫中尋覓詩意,妙不可言 現代科學則希望從理解世界的視角來分析影象,於是計算機影象學 計算機視覺風生水起。我有幸在一所西部高校裡做機械人方便的研究,得以接觸大量的影象資料,這些影象中既有普通的二維影象 由工業相機採集 也有三維影象 由雷射感測器採集 最近做了的專案裡,我要計算出每...