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

2021-09-19 08:02:24 字數 1324 閱讀 6546

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

我遇到的問題是這樣的:乙個物體由掃瞄器掃瞄後重取樣,重取樣的間距一定,造成前端和後端兩個部位的點雲密度與其他部位不同,點雲缺失,點雲後端只有一圈兩圈這樣的資料點,在應用分割演算法的時候,這裡會出現分割不出來的情況,需要將後端這部分補全;思路就是將物體的後端重新掃瞄提取一部分,然後將這部分點雲配準回原點雲上去,實現整體與部分點雲的配準,然後再做重影消除,下取樣等演算法處理,然後完成分割演算法。

這裡分享乙個在源**上稍作修改的方法,當然不能算是改進icp了

首先熟悉一下icp的原理

乙個是source點雲乙個是target點雲,實際就是求兩片點雲的旋轉矩陣、平移向量,構成乙個目標函式,把source點雲能經過旋轉平移重合到target點雲上去;

知道原理之後,先來看圖一是target

下圖為source點雲

source點雲是重新掃瞄得到的,和target在乙個座標系下如下圖左,俯檢視兩個點雲的關係是如圖左的。經過處理是粗配準了一下,如下圖右,明顯能看見不重合,造成了點雲的重影。

給target點雲乙個特寫,能看到為什麼要做配準,由於端部是缺少點的。

經過我演算法的精配準如下圖,已經不存在重影的問題了

再給target點雲乙個特寫,可以看到缺少的部位已經補全了

下面有個嚴重的問題就是這個點雲配准後還是有一定的重影問題,原因是掃瞄器的誤差,配準演算法的誤差等,畢竟這兩個點雲是分別掃瞄的,相當於兩個點雲點雲的數量級也不相同,所以多少還是有一些的誤差,下面就是要把這些誤差消除,又用到我另乙個演算法也是基於開源庫,在開源庫上稍作修改的演算法。。。下次有時間再來更新吧。

點雲匹配介紹與ICP演算法

點雲匹配 影象配準目的在於比較或融合。針對同一物件在不同條件下獲取的影象,因為雷射掃瞄光束受物體遮擋的原因,不可能通過一次掃瞄完成對整個物體的三維點雲的獲取。因此需要從不同的位置和角度對物體進行掃瞄。三維匹配的目的就是把相鄰掃瞄的點雲資料拼接在一起。三維匹配重點關注匹配演算法,常用的演算法有最近點迭...

icp點雲匹配迭代最近鄰演算法

一 含義 1.icp演算法能夠使兩個不同座標系下的點集匹配到乙個座標系中,這個過程就是配準,配準的操作就是找到從座標系1變換到座標系2的剛性變換。2.icp的本質就是配準,但有不同的配準方案,icp演算法本質是基於最小二乘的最優配準方法。該方法重複進行選擇對應關係對,計算最優剛體變換,直到滿足正確配...

點集配準與ICP演算法 一

一圖勝千言,古人喜歡從畫中尋覓詩意,妙不可言 現代科學則希望從理解世界的視角來分析影象,於是計算機影象學 計算機視覺風生水起。我有幸在一所西部高校裡做機械人方便的研究,得以接觸大量的影象資料,這些影象中既有普通的二維影象 由工業相機採集 也有三維影象 由雷射感測器採集 最近做了的專案裡,我要計算出每...