ICP 演算法體系

2021-10-06 12:06:31 字數 3663 閱讀 7081

2. 匹配:兩個點集之間的點進行配對

3.權重:給每個匹配的點對分配權重

4.去除:去除不符合條件的點對

5.誤差度量和最小化:基於以上點對,給出每個點對的誤差計算方法

參考icp演算法由besl等人於2023年提出,文獻可以參考:a method for registration of 3d shapes,另外還可以參考:least-squares fitting of two 3-d point sets。前者使用的是四元數方法來求解旋轉矩陣,而後者則是通過對協方差矩陣求解svd來得到最終的旋轉矩陣。流程大體上一致,後面就主要列出前者的流程。

icp 演算法的直觀想法如下:

如果我們知道兩幅點雲上點的對應關係,那麼我們可以用 least squares 來求解 r, t 引數;

怎麼知道點的對應關係呢?如果我們已經知道了乙個大概靠譜的 r, t 引數,那麼我們可以通過貪心的方式找兩幅點雲上點的對應關係(直接找距離最近的點作為對應點)。

icp 演算法實際上就是交替進行上述兩個步驟,迭代進行計算,直到收斂。

icp演算法有較多的數學公式和概念,數學公式總歸看起來費勁,這裡只簡要的理解下其演算法步驟:

兩個點集p1,p2,每一步迭代,都朝著距離最小的目標進行。

a. 篩選點對:由p1中的點,在p2中搜尋出其最近的點,組成乙個點對;找出兩個點集中所有的點對。點對集合相當於進行有效計算的兩個新點集。

b. 根據點集對,即兩個新點集,計算兩個重心。

d. 得到旋轉矩陣和平移矩陣rt,就可以計算點集p2進行剛體變換之後的新點集p2,由計算p2到p2的距離平方和,以連續兩次距離平方和之差絕對值,作為是否收斂的依據。若小於閾值,就收斂,停止迭代。

e. 重複a-e,直到收斂或達到既定的迭代次數。

其中,計算旋轉矩陣r時,需要矩陣方面的運算。

由新的點集,每個點到重心的距離關係,計算正定矩陣n,並計算n的最大特徵值及其最大特徵向量;其特徵向量等價於旋轉的四元數(且是殘差和最小的旋轉四元數),將四元數就可以轉換為旋轉矩陣。

數學概念:

四元數:

正定矩陣:特徵值都大於0的矩陣。

這些是矩陣理論,最優化原理方面的一些概念。

fast icp 一般演算法流程為:

點雲預處理 匹配

加權剔除不合理的對應點對

計算 loss

最小化 loss,求解當前最優變換

回到步驟 2. 進行迭代,直到收斂

整體上來看,icp 把點雲配準問題拆分成了兩個子問題:

fast icp分為6個步驟:

a. 篩選:點集或曲面的篩選(濾波)

b. 匹配:兩個點集之間的點進行配對

c. 權重:給每個匹配的點對分配權重

d. 去除:去除不符合條件的點對

e. 誤差度量:基於以上點對,給出每個點對的誤差計算方法

f. 最小化:最小化誤差度量

icp(iterative closest points)演算法是點集配準的經典演算法,演算法基本原理是在a method for registration of 3-d shapes文章中提出。後人也在此基礎上不斷和補充icp演算法。

下面是介紹icp演算法的一些網路資源:

icp演算法基本介紹:

經典icp算**文:

fast icp source code c++原始碼:

大家不容易找到,是因為工程的名字不叫fasticp,而是trimesh2

演算法的一些實現總結:

《**efficient variants of the icpalgorithm》

為測試以上階段中不同演算法的效能和結果,**提供了三個測試場景,並在這些點集(曲面)上加上雜訊

比較平滑的波紋: 比較簡單的場景,幾何尺度變換不是很大

較複雜的不規則的草原地形: 相對複雜的,包含不同尺度的細節

僅含有突出乙個十字形雕刻面的平面: 對匹配而言,最困難的場景,因為特徵太少

篩選也有以下幾種策略:

如下圖 a 隨機採用法, 圖b是向量空間分布法 的示意圖。 由圖可以明顯看出,空間向量分布法對點集的較少的特徵有著比較好的提取能力。

fast icp暫不考慮乙個點的密度顏色資訊。

對水波等簡單場景下:其收斂速度和收斂效果都差別不大。但對於特徵點較少的場景,向量空間分布法的收斂速度和結果很好,而對於另外兩種方法,基本不能收斂。如下:

匹配的策略有以下幾種:

這裡先給出投影法(b)與最近鄰法(a)的示意圖:

從圖上看,可以看出最鄰近點法容易受到雜訊的干擾,而投影法不受雜訊的干擾。

比較normal shooting、最鄰近點法和投影法三種方法:

在雕刻十字面的場景下:

**雖然最鄰近點法容易受到雜訊干擾,但對於特徵比較少的場景下,最鄰近點(相容)法是唯一能完全收斂的方法。效果最好。**對於投影法,收斂很快,但是效果不是很好。normal shooting法在這兩方面都表現平平。

對於複雜的草原場景,幾種方法的收斂結果最終都基本相同,但其收斂速度和計算速度卻有很大的差別:

從上圖來看,投影法的計算速度非常快,這是因為不僅投影法的收斂速度快,而且其演算法複雜度為o(1),而其他的演算法複雜度為o(logn)。

權重分配的策略有以下幾種:

這幾種方法的收斂速度和效果都差別大。總體上來講,**向量一致(相容)**的方法 適應性和速度比其他方法好點。

這個階段的策略包括

這幾種方法的收斂速度差別不大,而且收斂效果也差別不大。但是去除outlier點對這個步驟 對收斂結果 的作用還是明顯的。

誤差度量的策略:

比較其收斂速率和效果,點到面和點到面外推法的度量方式效果更好。

fast icp分析了不同階段裡,各種因素或策略對演算法效能和結果的影響。應可以根據不同的需求,來選取不同的演算法對點集或曲面進行配準。

在演算法效果差別不大的情況下,盡量選擇簡單的演算法,來提高執行速度,如隨機取樣,常數加權,固定閾值等。

fast icp在網上有開源的**,研究一下對此演算法會有更深的理解。

機器學習 演算法體系

貝葉斯 bayesian 決策樹 decision tree 線性分類 linear classifier 無監督學習 unsupervised learning 邏輯學習機 logic learning machine 自組織對映 self organizing map 關聯規則學習 associ...

Chomsky文法體系分類

文法是用來定義語言的乙個模型,常用的文法體系為chomsky文法體系。文法g grammar 是乙個四原組,g n,t,p,s n non terminator 是非終結符集合,t terminator 是終結符集合,p production 是產生式集合,s start 是起始符 其中 n 交 t...

資料結構與演算法體系(選擇排序)

選擇排序演算法 時間複雜度 o n 2 重點 複寫compareto方法 public class selectsort 建立實體類以供測試 1.複寫compareto方法 class cat implements comparable override public string tostring...