日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

三维点云配准

發(fā)布時(shí)間:2023/12/31 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三维点云配准 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)云數(shù)據(jù)

點(diǎn)云數(shù)據(jù)通常表示為N行,至少3列的矩陣,其中N表示點(diǎn)的數(shù)量,每一行代表一個(gè)點(diǎn)。通常3列分別是點(diǎn)在空間中(x,y,z)的坐標(biāo)。如果點(diǎn)云數(shù)據(jù)有除空間中坐標(biāo)外的附加信息,如來(lái)自LIDAR傳感器的點(diǎn)云數(shù)據(jù),那么它可能具有每個(gè)點(diǎn)的附加值,例如“反射率”,其是在該位置中障礙物反射多少激光光束的量度。 在這種情況下,點(diǎn)云數(shù)據(jù)可能是N×4陣列。

三維點(diǎn)云配準(zhǔn)

點(diǎn)云的配準(zhǔn)過(guò)程,就是求兩個(gè)點(diǎn)云之間的一個(gè)旋轉(zhuǎn)平移矩陣,源點(diǎn)云通過(guò)旋轉(zhuǎn)平移矩陣后,變換成和目標(biāo)點(diǎn)云矩陣相同的矩陣。

可以表示為以下方程:

其中,pt,ps分別是目標(biāo)點(diǎn)云和源點(diǎn)云中的一對(duì)對(duì)應(yīng)點(diǎn)。
R,T就是我們要求的旋轉(zhuǎn)平移矩陣。
但是,我們并不知道兩個(gè)點(diǎn)云中,點(diǎn)與點(diǎn)之間的對(duì)應(yīng)關(guān)系,這也是配準(zhǔn)的核心問題。

三維點(diǎn)云配準(zhǔn)分為粗配準(zhǔn)精配準(zhǔn)兩步。
粗配準(zhǔn)就是在完全不清楚兩個(gè)點(diǎn)云的相對(duì)位置關(guān)系的情況下,找到一個(gè)這兩個(gè)點(diǎn)云近似的旋轉(zhuǎn)平移矩陣(不一定很精確,但是已經(jīng)大概是對(duì)的了)。
精配準(zhǔn)就是在已知一個(gè)旋轉(zhuǎn)平移矩陣的初值的情況下(這個(gè)初值大概已經(jīng)是正確的了),進(jìn)一步計(jì)算得到更加精確的旋轉(zhuǎn)平移矩陣。

配準(zhǔn)的評(píng)價(jià)標(biāo)準(zhǔn):比較通用的是LCP(Largetst Common Pointset)(最大公共點(diǎn)集)。給定兩個(gè)點(diǎn)集P,Q,找到一個(gè)變換T,使得變換后的T(P)與Q的重疊度最大。在變換后的P內(nèi)任意一點(diǎn),如果在容差范圍內(nèi)有另外一個(gè)Q的點(diǎn),則認(rèn)為該點(diǎn)是重合點(diǎn)。重合點(diǎn)占所有點(diǎn)數(shù)量的比例就是重疊度。

(一)粗配準(zhǔn)

(1)暴力配準(zhǔn)

粗配準(zhǔn)中,最簡(jiǎn)單粗暴的一個(gè)方法就是暴力配準(zhǔn)。找到一個(gè)剛體變換需要3對(duì)對(duì)應(yīng)點(diǎn),即在點(diǎn)集P中選取3個(gè)點(diǎn),如果我們能找到它們?cè)邳c(diǎn)集Q中的對(duì)應(yīng)點(diǎn),即能根據(jù)它們的坐標(biāo)求出旋轉(zhuǎn)平移矩陣。(具體怎么求:pass)

暴力配準(zhǔn)步驟:

  • 隨機(jī)在點(diǎn)集P中選取3個(gè)點(diǎn),隨機(jī)在點(diǎn)集Q中選取3個(gè)點(diǎn)。
  • 計(jì)算旋轉(zhuǎn)平移矩陣T
  • 計(jì)算 ||T(P)- Q||<δ\deltaδ的點(diǎn)的個(gè)數(shù)kik_iki?(點(diǎn)集P經(jīng)過(guò)旋轉(zhuǎn)平移矩陣后,點(diǎn)集中與點(diǎn)集Q的點(diǎn)的距離小于給定的閾值δ\deltaδ的點(diǎn)的個(gè)數(shù))
  • 遍歷所有的可能性,選取最高的kik_iki?作為最后的結(jié)果

暴力配準(zhǔn)的缺點(diǎn):時(shí)間復(fù)雜度高。

假設(shè)點(diǎn)集P的大小為n,點(diǎn)集Q的大小為m,分別隨機(jī)選取3個(gè)點(diǎn)組成關(guān)聯(lián)對(duì),則在選取3個(gè)點(diǎn)時(shí)就分別有An3A_{n}^{3}An3?Am3A_{m}^{3}Am3?種可能,點(diǎn)集P中選取的任意一種可能,均需遍歷點(diǎn)集Q中的所有可能。因此,完成整個(gè)算法共需遍歷An3×Am3=n(n?1)(n?2)m(m?1)(m?2)A_{n}^{3}\times A_{m}^{3}=n(n-1)(n-2)m(m-1)(m-2)An3?×Am3?=n(n?1)(n?2)m(m?1)(m?2)種可能。因此,暴力配準(zhǔn)的時(shí)間復(fù)雜度為O(n3m3)O(n^3m^3)O(n3m3)。(當(dāng)n,m足夠大時(shí),-1,-2等都失去了意義)

(2)4PCS(4-Points Congruent Sets)(4點(diǎn)全等集)

4PCS的核心原理在于,在剛性變換中,同一平面上的4個(gè)點(diǎn),在經(jīng)過(guò)剛性變換后,其某些比率是穩(wěn)定不變的。

如圖,{a,b,c,d}四點(diǎn)共面,其中兩條直線的交點(diǎn)為e。在剛性變換中,r1,r2是穩(wěn)定不變的。

4PCS步驟:

  • 在點(diǎn)集P中選取共面四點(diǎn)對(duì)作為base B={a,b,c,d}

  • 計(jì)算比率r1r_1r1?r2r_2r2?

  • 點(diǎn)集Q(n個(gè)點(diǎn))中,每?jī)蓚€(gè)點(diǎn)組成一對(duì)(Cn2C_{n}^{2}Cn2?),對(duì)于每一對(duì)點(diǎn)q1q_1q1?q2q_2q2?,計(jì)算他們的中間點(diǎn)
    e1=q1+r1(q2?q1)e_1=q_1+r_1(q_2-q_1) e1?=q1?+r1?(q2??q1?)e2=q1+r2(q2?q1)e_2=q_1+r_2(q_2-q_1) e2?=q1?+r2?(q2??q1?)

    如圖,每一對(duì)點(diǎn)都可以計(jì)算出兩個(gè)中間點(diǎn)e1,e2e_1,e_2e1?,e2?

  • 若點(diǎn)集Q中,任意兩對(duì)點(diǎn),一對(duì)由r1r_1r1?計(jì)算得到的中間點(diǎn)e1e_1e1?和另一對(duì)由r2r_2r2?計(jì)算得到的中間點(diǎn)e2e_2e2?的距離在允許范圍內(nèi),那么可以認(rèn)為這兩對(duì)點(diǎn)可能是base B={a,b,c,d}的仿射對(duì)應(yīng)點(diǎn)。

    如圖,此時(shí)可認(rèn)為點(diǎn)集{q1q_1q1?q2q_2q2?q3q_3q3?q4q_4q4?}是base B={a,b,c,d}的仿射對(duì)應(yīng)點(diǎn)

  • 可能存在k個(gè)這樣的點(diǎn)集,這k個(gè)點(diǎn)集再作如下處理:
    (1)根據(jù)每個(gè)點(diǎn)集與base B,計(jì)算出旋轉(zhuǎn)平移矩陣T
    (2)計(jì)算 ||T(P)- Q||<δ\deltaδ的點(diǎn)的個(gè)數(shù)kik_iki?(點(diǎn)集P經(jīng)過(guò)旋轉(zhuǎn)平移矩陣后,點(diǎn)集T(P)與點(diǎn)集Q,距離小于給定的閾值δ\deltaδ的點(diǎn)的個(gè)數(shù))
    (3)遍歷所有k個(gè)點(diǎn)集,選取最高的kik_iki?作為最后的結(jié)果

因此,4PCS算法的時(shí)間復(fù)雜度包括兩部分,點(diǎn)集Q(n個(gè)點(diǎn))中任意選取兩個(gè)點(diǎn)組成一對(duì),計(jì)算e1,e2e_1,e_2e1?,e2?,需作An2=n(n?1)次A_{n}^{2}=n(n-1)次An2?=n(n?1),在找出的kkk個(gè)可能是base B的仿射對(duì)應(yīng)點(diǎn)的四點(diǎn)集中,遍歷檢查,獲得最好的旋轉(zhuǎn)平移矩陣T。O(n2+k)O(n^2+k)O(n2+k)

(二)精配準(zhǔn)
精配準(zhǔn)的模式基本已固定為使用ICP算法(Iterative Closest Point)(最近點(diǎn)迭代法)及其各種變種。
ICP算法的步驟:

  • (1)ICP算法的核心是最小化一個(gè)目標(biāo)函數(shù):f(R,T)=1Np∑i=1NP∣pti?R?psi?T∣2f(R,T)=\frac{1}{N_p}\sum_{i=1}^{N_P}|p_t^i-R·p_s^i-T|^2f(R,T)=Np?1?i=1NP??pti??R?psi??T2
    pti,psip_t^i,p_s^ipti?psi?是一對(duì)對(duì)應(yīng)點(diǎn),總共有NpN_pNp?對(duì)對(duì)應(yīng)點(diǎn),這個(gè)目標(biāo)函數(shù)實(shí)際上是找到旋轉(zhuǎn)平移矩陣R,T,使得所有對(duì)應(yīng)點(diǎn)之間的歐式距離的平方和最小。

  • (2)尋找對(duì)應(yīng)點(diǎn)。起初并不知道有哪些對(duì)應(yīng)點(diǎn),因此,在有粗配準(zhǔn)獲得的旋轉(zhuǎn)平移矩陣的初值下,用此旋轉(zhuǎn)平移矩陣對(duì)源點(diǎn)云進(jìn)行變換,得到一個(gè)變換后的點(diǎn)云,將這個(gè)變換后的點(diǎn)云與目標(biāo)點(diǎn)云進(jìn)行比較,只要兩個(gè)點(diǎn)云中存在距離小于一定閾值(ICP算法的一個(gè)參數(shù))的點(diǎn),就認(rèn)為這兩個(gè)點(diǎn)是對(duì)應(yīng)點(diǎn)。(最鄰近點(diǎn))

  • (3)R,T優(yōu)化。有了對(duì)應(yīng)點(diǎn)后,根據(jù)目標(biāo)函數(shù)優(yōu)化R,T。

  • (4)迭代。優(yōu)化得到了新的R,T,導(dǎo)致變換后的點(diǎn)云的一些點(diǎn)的位置發(fā)生了變化,一些最近鄰點(diǎn)對(duì)也相應(yīng)地發(fā)生了變化,回到步驟(2)中重新尋找對(duì)應(yīng)點(diǎn)。迭代(2)(3)步驟,直到滿足迭代終止條件,如R,T的變化量小于一定值,或目標(biāo)函數(shù)的變化小于一定值,或最近鄰點(diǎn)對(duì)不再改變等(ICP算法的另一個(gè)參數(shù))

  • (5)迭代終止后,最終獲得精配準(zhǔn)的R,T

ICP算法的參數(shù):
(1)距離閾值。兩個(gè)點(diǎn)云中距離小于距離閾值的點(diǎn),才算作對(duì)應(yīng)點(diǎn)。
(2)迭代的終止條件。

至此,完成點(diǎn)云數(shù)據(jù)的配準(zhǔn)。



參考文獻(xiàn):
[1] Aiger D, Mitra N J, Cohen-Or D. 4-points congruent sets for robust pairwise surface registration[J]. Acm Transactions on Graphics, 2008, 27(3):85.
[2]https://blog.csdn.net/u011600592/article/details/70258097

總結(jié)

以上是生活随笔為你收集整理的三维点云配准的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。