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