點集配準與ICP演算法 一

2021-06-23 06:03:13 字數 1068 閱讀 4129

一圖勝千言,古人喜歡從畫中尋覓詩意,妙不可言;現代科學則希望從理解世界的視角來分析影象,於是計算機影象學、計算機視覺風生水起。

我有幸在一所西部高校裡做機械人方便的研究,得以接觸大量的影象資料,這些影象中既有普通的二維影象(由工業相機採集),也有三維影象(由雷射感測器採集)。最近做了的專案裡,我要計算出每張影象所對應的位姿資料:所謂的位姿,由兩部分組成:位置資訊(x, y, z )和角度資訊(三個尤拉角),這個問題(pose estimation)有趣但很有挑戰性,首先我要解決兩個點集的配準問題。

由於理解力有限,我無法從高度抽象的角度來描述什麼叫點集配準,所以我從自己碰到的問題出發,盡量把點集配準的概念表述清楚。

有兩個點集,model-point-set和data-point-set,固定model-point-set,對data-point-set進行旋轉(rotation)和平移(translation)甚至加上尺度(scale)變換,使得data-point-set上的點盡量和model-point-set上的點盡最大可能的重合,這變換的過程就叫點集配準。

上面的表述中有兩個地方要格外注意:一、模型點集是固定不變的,資料點集要經過旋轉平移盡量接近模型點集,而rt變換是一步到位還是慢慢接近?二、「重合」的定義,即如何計算兩個點集a和b之間的距離。

對於第二點,我們通常採用對應點對之間的歐式距離和來表示兩個點集的距離;對於第一點,當我們採用歐氏距離時,會發現配準問題可以化最小二乘優化問題,可以使用一般的優化方法如梯度下降、粒子群演算法等求解,也可以一步到位,用svd分解求解。

在實際應用中,會發現點集配準有好多問題要解決,首當其衝的是兩個點集的對應關係是不知道的,1)因為視角不同,點集a和點集b可能只有部分點重合2)即使同一視角,a和b所代表的點是由不同的柵格化方法產生的,而且還有雜訊。3)沒有雜訊的情況下,點對的對應關係也不明確。

目前最好的點集配準方法是icp,iterativeclosest points,該方法利用迭代一步步地算出正確對應關係。icp是在90年代提出的,已經有20多年的歷史,廣泛地應用於模型重建、多視角配準、地圖建立等領域,個人感覺icp作為一種演算法框架無疑是很成功的,其變種之多類似於進化演算法,在應用時要選擇具體方法,我會研讀分析幾篇經典的**,和大家分享討論。

點雲(剛性)配準 icp

二 解讀 提到配準演算法,icp認第二,沒哪種演算法敢認第一,可見,icp這道坎是繞不過去的,在本文中,會重點介紹icp的原理與實現方案,同時,也會結合pcl中的 進行詳細介紹。從本質上講,icp類演算法的基本原理是 對於兩組點雲p和q,計算旋轉矩陣r與旋轉矩陣t,使目標函式e最小 e 1 2 fr...

基於ICP演算法點雲部分與整體的配準

pcl點雲庫提供了完整的icp演算法,能完成點雲的配準,但是能找到的例子都是書上的demo 乙個完整點雲,使用旋轉矩陣旋轉了乙個角度,然後利用icp迭代了幾次可以實現完美的配準,這是因為本來就是乙個點雲,選點集座標都一樣,這樣的例子沒有代表性,也解決不了實際的例子 我遇到的問題是這樣的 乙個物體由掃...

ICP點雲配準原理及優化

icp演算法簡介 根據點雲資料所包含的空間資訊,可以直接利用點雲資料進行配準。主流演算法為最近迭代演算法 icp,iterative closest point 該演算法是根據點雲資料首先構造區域性幾何特徵,然後再根據區域性幾何特徵進行點雲資料重定位。假設兩個點雲資料集合p和g,要通過p轉換到g 假...