應用Fast ICP進行點集或曲面配準 演算法解析

2021-09-01 21:10:14 字數 4126 閱讀 8276

1. icp演算法的一些網路資源

2. 經典icp演算法的步驟

3. fast icp演算法

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

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

icp演算法基本介紹:

經典icp算**文:

演算法的一些實現總結:

2. 經典icp演算法介紹。

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

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

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

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

c. 由新點集,計算出下一步計算的旋轉矩陣r,和平移矩陣t(其實**於重心的差異)。

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

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

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

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

數學概念:

四元數:

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

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

3. fast icp解析:

fast icp是對icp的改進與擴充套件。**efficient variants of the icpalgorithm詳細給出了影響icp演算法的各種因素,且每種因素都哪些演算法,其結果與效能如何。

fast icp根據這些因素將icp演算法分為6個步驟:

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

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

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

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

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

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

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

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

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

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

下面是每個階段的演算法的比較:

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

篩選也有以下幾種策略:

* 應用點集內所有可用的點: 無疑是效能最差的方法

* 採用均勻分布的方式篩選(或是距離等間隔篩選)

* 隨機篩選法

* 根據點的密度,顏色來篩選

* 對乙個點集進行篩選,或者兩個點集都進行篩選:對於一般的點集,兩種方法收斂率和結果基本相同,但僅對乙個點集篩選的演算法,資料運算量相對比較大。

* 另外乙個篩選策略是依據向量的分布情況: 篩選哪些能使點的向量的分布盡量大的點,這樣的目的是突出 特徵很少的 點集的特徵 (如十字雕刻面)

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

fast icp暫不考慮乙個點的密度顏色資訊。 對均勻分布法、隨機法、向量空間分布法比較。

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

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

匹配的策略有以下幾種:

* 最鄰近點法:此方法還可以應用k-d樹或最鄰近點快取進行加速

* normal shooting:點集p1中取一點,沿其點法向量,到點集p2(曲面的)的交點,形成乙個點對

* 投影法:將源點集p1投影到目的點集p2上,沿著p2的相機的視角方向,又稱「reverse calibration」,搜尋度量方法包括點對點距離,點對線距離,密度,顏色等。

* 基於向量間角度或顏色的相容度量方法(compatibility metric)

fast icp中不考慮顏色,密度資訊。

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

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

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

在雕刻十字面的場景下:

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

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

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

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

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

* 均勻分配,即常數加權。

* 根據點對距離加權,點對間距大,權重就小,反之,權重就大。

* 根據向量的一致性(compability)進行加權,weight = n1 * n2

* 不確定性

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

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

這個階段的策略包括

* 固定閾值法:當間距大於乙個值時,就去除這個點對

* 固定比例法:每次迭代,去除最差的%n的點對

* 標準差法:將閾值設定為所有點對間距的標準差*2.5

* 去除曲面邊界的點對,如下圖,曲面邊界點的點對是不合理的,在兩個點集做部分匹配的時候。

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

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

誤差度量的策略:

* 點對的距離平方和

* 點到面的距離平方和

* 點到點和點到面的外推法

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

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

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

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

K Means演算法對點集進行分類

k means 什麼是聚類分析 聚類分析是在資料中發現資料物件之間的關係,將資料進行分組,組內的相似性越大,組間的差別越大,則聚類效果越好。明顯分離的 可以看到 a 中不同組中任意兩點之間的距離都大於組內任意兩點之間的距離,明顯分離的簇不一定是球形的,可以具有任意的形狀。演算法思想較為簡單如下所示 ...

Oracle 如何迴圈查詢結果集,進行新增或修改

oracle的pl sql中怎樣迴圈查詢的結果集,然後根據查詢結果進行判斷,是新增或修改操作 loop迴圈例子 for item in select a,b,c from table a where 條件 loop insert into table b a,b,c values item.a,it...

51nod1416兩點(dfs或並查集)

福克斯在玩一款手機解迷遊戲,這個遊戲叫做 兩點 基礎級別的時候是在乙個n m單元上玩的。像這樣 每乙個單元有包含乙個有色點。我們將用不同的大寫字母來表示不同的顏色。這個遊戲的關鍵是要找出乙個包含同一顏色的環。看上圖中4個藍點,形成了乙個環。一般的,我們將乙個序列 d 1,d2,d k 看成乙個環,當...