点云配准1:配准基础及icp算法
目錄
- 點云配準(point set registration)
- 點云配準系列
- icp算法原理
- 算法優缺點
- 算法原理
- 配準實現
- 參考及感謝
- papers
- blogs
- 完
點云配準(point set registration)
對于一個目標,諸如激光雷達掃描儀(LIDAR)、影像重建等往往不能一次獲得其整個的點云。例如激光雷達掃描儀需要從多個角度掃描才能得到一把椅子或者整個建筑的全部點云,而這些點云可能并不是處在同一坐標系下的,存在著空間旋轉平移關系。只存在空間旋轉平移變換的配準問題稱為剛體配準(rigid registration),存在縮放、變形、仿射變換(scale、deformation、affine)的配準問題稱為非剛體配準(non-rigid registration)。顯然,非剛體配準的難度大于剛體配準。
剛體變換點云配準的基本問題是尋找最優的空間平移變換矩陣,使得兩點云能很好地配準在一起。
另外,非同源數據點云的配準也是一個研究點。例如可以對一個建筑進行無人機影像三維重建(sfm是大家比較熟知的影像重建算法,常用成熟軟件有Pix4D,Smart3D等)獲取三維點云,并進行地基激光雷達掃描。顯然對建筑頂面來說,影像重建的點云是優于LIDAR點云的,而就得到的建筑側面的點云來說,LIDAR點云要優于影像重建點云。這就涉及到影像點云與LIDAR點云配準的問題,并且往往兩點云是部分重疊的。
Stanford Bunny配準實例:后續將有此實例實現的詳細講解
點云配準系列
點云配準1:配準基礎及icp算法
點云配準2:icp算法在PCL1.10.0上的實現+源碼解析
點云配準3:3d-ndt算法在pcl上的實現以及參數設置
點云配準4:cloudcompare的使用以及點云配準功能
點云配準5:4pcs算法在pcl上的實現
點云配準6:tricp算法在pcl上的實現
點云配準論文閱讀筆記–Efficient Variants of the ICP Algorithm
點云配準論文閱讀筆記–Comparing ICP variants on real-world data sets
點云配準論文閱讀筆記–(4PCS)4-Points Congruent Sets for Robust Pairwise Surface Registration
點云配準論文閱讀筆記–3d-dnt博士論文
icp算法原理
算法優缺點
icp(Iterative Closest Point,迭代最近鄰點)算法是點云配準的經典算法,精度高,不需要提取特征點;但是需要在icp使用之前兩點云已經完成粗配準,否則容易陷入局部最優;算法只適用于剛體配準;算法不適用于部分重疊點云的配準。
算法原理
假設點云{Q}為目標點云(參考點云),{P}為源點云(待配準的點云),pi(i∈1,2,...N)p_i(i\in1,2,...N)pi?(i∈1,2,...N)是{S}中的一個點,qiq_iqi?是{E}中與pip_ipi?距離最近的點。
我們需要計算從{P }到{Q }的RT變換矩陣,即旋轉矩陣R和平移矩陣T。如果變換參數是準確的,那么點云{P }中的每一個點pip_ipi?,經過變換后應該與點云{Q}中的點qiq_iqi?完全重合,
即:qi=Rpi+Tq_i=Rp_i+Tqi?=Rpi?+T。但由于有噪聲的存在,不可能所有點都完全重合,所以我們定義目標函數:
使目標函數最小的R,T即為所求變換參數。F其實就是參考點云{Q } 與 已經進行R,T矩陣空間變換的{P’} 之間的平均距離。
計算方法:
首先,對{P}中的每個點pip_ipi?,尋找其在{Q}中的最近點qiq_iqi?(利用kd樹最近鄰查找算法可實現),組成一一對應的點對
計算兩組點云的質心,分別記為up,uqu_p,u_qup?,uq?:
對兩組點云進行去質心,得到:
構建矩陣H:
對H矩陣進行SVD分解:
(SVD(奇異值分解)是一種常用的矩陣重要特征計算工具,我們只是借助它計算RT矩陣,在此暫不必深究)
得到R與T:
得到R,T矩陣以后,用其對待配準空間進行空間變換得到新的點集,并代入目標函數:
若如果新的變換點集與參考點集滿足兩點集的平均距離小于某一給定閾值,則停止迭代計算,否則新的變換點集作為新的{P_i }繼續迭代,直到達到目標函數的要求。
總結ICP算法:
1、計算{P}中的每一個點在{Q}點集中的對應近點;
2、求得使上述對應點對平均距離最小的剛體變換,求得平移參數和旋轉參數;
3、對{P}使用上一步求得的平移和旋轉矩陣進行空間變換,得到新的變換點集{P’};
4、如果新的變換點集與參考點集滿足兩點集的平均距離小于某一給定閾值,或者迭代次數達到設定的最大值,則停止迭代計算,否則新的變換點集作為新的{P}繼續迭代,直到達到目標函數的要求。
在“Recent developments and trends in point set registration methods”中:
作者總結了最近鄰點查找選擇,點匹配,配對權重,離群點去除,誤差最小化是icp的主要問題,且學者們已經做了大量的改進。
點云濾和采樣方法:隨機、統一、法向空間、基于相關性的和約束對齊
在離群點去除階段,Tricp算法去除那些可能會影響最小化過程的點對。tricp作為icp的改進算法,能夠對部分重疊點云進行配準。
作者將icp算法過程總結如下:
(圖摘自Recent developments and trends in point set registration methods)
配準實現
點云配準二:icp算法在PCL1.10.0上的實現+源碼解析
參考及感謝
papers
Maiseli, Baraka, et al. “Recent Developments and Trends in Point Set Registration Methods.” Journal of Visual Communication and Image Representation, vol. 46, no. 46, 2017, pp. 95–106.
Paul J. Besl, Neil D. McKay. A method for registration of 3-D shapes[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1992. 14(2): 239-256.
上述文章下載:share_noel/papers
https://blog.csdn.net/qq_41102371/article/details/125646840
blogs
ICP算法(迭代最近點算法)詳細推導
特別推薦:利用SVD求得兩個對應點集合的旋轉矩陣R和轉移矩陣t的數學推導
vs2019配置pcl1.10.0+點云可視化示例
完
邊學邊用,如有錯漏,敬請指正
--------------------------------------------------------------------------------------------諾有缸的高飛鳥202011
--------------------------------------------------------------------------------------------更新于202012
總結
以上是生活随笔為你收集整理的点云配准1:配准基础及icp算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows 一些恶搞的bat小脚本
- 下一篇: librtmp读包阻塞问题修复