ICP点云配准
配準定義
給定兩個來自不同坐標系的三維數(shù)據(jù)點集,找到兩個點集空間的變換關系,使得兩個點集能統(tǒng)一到同一坐標系統(tǒng)中,即配準過程。
ICP配準
ICP本質(zhì)上是基于最小二乘法的最優(yōu)配準方法,精度高,不需要提取特征點;但是需要在icp使用之前兩點云已經(jīng)完成粗配準,否則容易陷入局部最優(yōu)。該算法重復進行選擇對應關系點對,計算最優(yōu)剛體變換這一過程,直到滿足正確配準的收斂精度要求。ICP是一個廣泛使用的配準算法,主要目的就是找到旋轉(zhuǎn)和平移參數(shù),將兩個不同坐標系下的點云,以其中一個點云坐標系為全局坐標系,另一個點云經(jīng)過旋轉(zhuǎn)和平移后兩組點云重合部分完全重疊。算法只適用于剛體配準;算法不適用于部分重疊點云的配準。
算法的輸入:參考點云和目標點云,停止迭代的標準。
算法的輸出:旋轉(zhuǎn)和平移矩陣,即轉(zhuǎn)換矩陣。
?
ICP算法原理
?
得到R,T矩陣以后,用其對待配準空間進行空間變換得到新的點集,并代入目標函數(shù);
若如果新的變換點集與參考點集滿足兩點集的平均距離小于某一給定閾值,則停止迭代計算,否則新的變換點集作為新的{P_i }繼續(xù)迭代,直到達到目標函數(shù)的要求。
ICP算法總結
(1)計算{P}中的每一個點在{Q}點集中的對應近點;
(2)求得使上述對應點對平均距離最小的剛體變換,求得平移參數(shù)和旋轉(zhuǎn)參數(shù);
(3)對{P}使用上一步求得的平移和旋轉(zhuǎn)矩陣進行空間變換,得到新的變換點集{P’};
(4)如果新的變換點集與參考點集滿足兩點集的平均距離小于某一給定閾值,或者迭代次數(shù)達到設定的最大值,則停止迭代計算,否則新的變換點集作為新的{P}繼續(xù)迭代,直到達到目標函數(shù)的要求。
?
ICP算法問題
(1)算法收斂于局部最小誤差。
(2)噪聲或異常數(shù)據(jù)可能導致算法無法收斂或錯誤。
(3)在進行ICP算法第一步要確定一個迭代初值,選取的初值將對最后配準結果產(chǎn)生重要的影響,如果初值選擇不合適,算法可能就會限入局部最優(yōu),使得迭代不能收斂到正確的配準結果。
ICP常用參數(shù)
????
icp.setMaximumIterations(1000); //最大迭代次數(shù) icp.setEuclideanFitnessEpsilon(0.5);//前后兩次迭代誤差的差值 icp.setTransformationEpsilon(1e-10); //上次轉(zhuǎn)換與當前轉(zhuǎn)換的差值; icp.setMaxCorrespondenceDistance(0.7); //忽略在此距離之外的點,對配準影響較大?
?
總結
- 上一篇: 服务器被攻击ip显示国外,服务器被不同的
- 下一篇: 流媒体-RTMP协议-librtmp库学