ICP綜述


一、ICP 求解過程

       ICP 有好多變種,ICP求解步驟可以分爲以下部分:

       1、選點

       在模型或者場景中選取匹配點

       2、匹配

       將選取的一組點匹配另一組點

       3、分配權重

       給匹配的點對分配權重

       4、去除錯誤匹配

       根據單個匹配點對或者根據總體匹配情況去除錯誤匹配點

       5、給定誤差標準

       可以是匹配點對的誤差二模或者一模等形式

       6、最小化匹配誤差

       通過最小化匹配誤差求解位姿轉換矩陣

       下面分別從六個方面介紹ICP的求解過程。

二、選點

選點有以下方式

1、利用全部點進行迭代匹配

2、對所有點進行均勻採樣

3、對所有點進行隨機採樣

4、利用可見光圖像採樣梯度值大的點

5、對所有點按照法向量分佈採樣,使得采樣點法向量分佈均勻

6、對於所有上述採樣算法,可以只從模型採樣,或者只從場景採樣,或者雙向採樣

7、按照對點雲配準的貢獻進行採樣,算法見論文《Geometrically StableSampling for the ICP Algorithm》,見附錄 C。

利用方法 1 – 4 採樣缺點,對於下圖所示的配準會產生誤差,下圖配準靠十字形凹槽進行配準。


三、匹配

1、closest point 在一組點雲中找另一組點雲的最近點,可以用 k-d tree等算法加速最近點搜索


2、normal shooting 一組點雲中的一個點,沿着點的法向量的光線和另一組點雲的交點最爲匹配點


3、project將場景點,從模型點的視角下,投影到模型點雲


4、project and walk 如 3 方法,在投影到目標點雲後,再在目標點雲處搜索,搜索可以根據兩點之間的距離,點到光線的距離,或者灰度值的相近程度等

5、可以上述的所有算法,前提是在兩個點能在給定的衡量標準下可以匹配上,衡量標準比如顏色、兩個點之間法向量的角度等,利用最速下降法搜素

優缺點:



       closestpoint對於 (b) 場景不收斂,對於噪聲比較敏感

  對比closest point 和 project

       對於場景 (c) 上述算法只有最近點算法是收斂的

     利用 project 或者 project walk 算法收斂速度塊好多(甚至一個數量級)

四、分配權重

   1、權重是常量

  2、對於距離遠的點降低其權重


   3、根據點法向量的相近程度分配權重


   4、根據曲率分配權重


   5、根據點顏色的相近程度分配權重

  6、根據測量點的不確定性分配權重(由點雲測量傳感器決定)

       優缺點:

       實驗表明上述算法的效果相當。

五、去除錯誤匹配

       1、將匹配點距離超過一定值的去除


       2、將匹配點中,以一定衡量標準衡量的(通常點到點距離) n% 最壞的匹配點對去掉

       3、將匹配點中,點到點距離大於一定乘機值的去掉(例如 2.5 倍的標準差)

       4、去掉和周圍點對不一樣的匹配


       5、去掉在mesh邊界的點

       作者推薦去除mesh邊界上的點,使用起來計算代價低,對於,當兩組點雲不是完全重合匹配時,可以避免好多無匹配。


       實驗表明去掉 10% 最壞的匹配、2.5倍的標準差去除,對於算法的收斂性沒有改善,反而兩組匹配點相隔較遠時,收斂速度較慢。

       6、Picky ICP 對於一個模型點被幾個場景中點作爲匹配點

       如果,一個模型中的點,被幾個場景中的點,選擇作爲匹配點,則按照模型點和場景點匹配的距離,選擇距離最小的場景點作爲模型點的匹配點。算法在兩組點雲只是部分重合時很有效,會使得收斂速度變慢,同時對於原始ICP算法收斂性的證明也不再適用於 Picky ICP。

       7、對於一個模型中的點在場景中有幾個匹配點的問題,還可以參考論文《Robust ICP Registrationusing Biunique Correspondence》的解決方法。

六、給定誤差標準

       1、匹配點距離的平方和


       對於匹配點距離的平方和有閉式解,求解時,不需要迭代,算法有 SVD 等算法,求解步驟見附錄 A。匹配點的誤差平方和最爲目標函數,求解的方法還有Quaternions、Orthonoraml matrices和Dual quaternions。

       2、上面點到點距離平方和再加上點的顏色的差別

       3、點到包含另一個點平面的距離的平方和

       如圖:

       點到平面距離表達式:

       沒有閉式解,可以用非線性最小化算法例如 LM 算法求解,或者將問題線性化求解,令 sin a = a,cosa = 1,將求解問題線性化適合兩幀之間變化小的時候求解,利用線性化求解,求解步驟見附錄 B。

       4、其它衡量標準,例如 L1 模

七、加速算法

       如下圖:

       表示位姿求解的結果

       令

       當兩次變化的角度滿足以下關係時,對於最後三次位姿的移動可以有很好的近似。

       令爲位姿求解後帶入能量函數的殘差, 爲近似的弧線的長度,則利用和可以對上述的曲線做近似爲:

       對於直線近似在和 X 軸交點處,可以給出線性的更新,對於二次曲線在最小值處,給出二次的更新,如下;

       

附錄A

       參考《Evaluation of surface registrationalgorithms for PET motion correction》2010

    利用 SVD分解求解點到點距離平方和最小

待求解的能量函數

       對於匹配點距離的平方和有閉式解,求解時,不需要迭代,算法有 SVD 等算法。

    利用SVD分解求解算法:

     p 和 q 最爲匹配點對

    計算匹配點對的中心座標

       點到中心點的偏差

      找變換 T 使得下面目標函數最小化

      將上式帶入可得

     因爲要最小化誤差,需要將兩組點雲數據的中心點移到一起,滿足下式

     目標函數簡化爲

     定義

    目標函數最小化轉換爲下式最小化

    由柯西不等式得

    由 R 是單位正交矩陣

    對於 N 奇異值分解

    當 R 爲

    RN trace 變爲

  即 R 取上式時目標函數達到最小。

 

 

 

 

附錄B

參考文獻《Linear Least-Squares Optimization for Point-to-Plane ICP SurfaceRegistration》

點到平面距離平方和表達式爲:


其中 M 是歐式變換

       其中


       其中


       由上式可以看出,目標函數是三個旋轉角  和三個位移量  的二次函數,只能用迭代求解的方法(例如LM)。

       線性近似

       當旋轉角  近似爲 0 度,可以讓、,由近似可以得到以下表達式:

       變換矩陣 M 變爲:

       目標函數:

       對於 N 對匹配點,將目標函數變爲:

       變量


       其中


       目標函數變爲



       位姿最優解



注意:

          1、雖然近似的時候,角度不能太大,實際應用的時候,近似的角度甚至可以得到30度(角度的大小和兩組點雲的幾何形狀,和兩組點雲重疊的範圍有關)。


 

附錄C

       按照點對配準的貢獻進行採樣,如圖,採樣如下

算法如下:

利用點到平面距離作爲目標函數最小化,表達式如下:







       


發佈了56 篇原創文章 · 獲贊 70 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章