国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

點(diǎn)云配準(zhǔn)(三) 傳統(tǒng)點(diǎn)云配準(zhǔn)算法概述

這篇具有很好參考價(jià)值的文章主要介紹了點(diǎn)云配準(zhǔn)(三) 傳統(tǒng)點(diǎn)云配準(zhǔn)算法概述。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一.點(diǎn)云配準(zhǔn)介紹

1.點(diǎn)云配準(zhǔn)的概念

???????? 圖像配準(zhǔn)是圖像處理研究領(lǐng)域中的一個(gè)典型問(wèn)題和技術(shù)難點(diǎn),其目的在于比較或融合針對(duì)同一對(duì)象在不同條件下獲取的圖像,例如圖像會(huì)來(lái)自不同的采集設(shè)備,取自不同的時(shí)間,不同的拍攝視角等等,有時(shí)也需要用到針對(duì)不同對(duì)象的圖像配準(zhǔn)問(wèn)題。具體地說(shuō),對(duì)于一組圖像數(shù)據(jù)集中的兩幅圖像,通過(guò)尋找一種空間變換把一幅圖像映射到另一幅圖像,使得兩圖中對(duì)應(yīng)于空間同一位置的點(diǎn)一一對(duì)應(yīng)起來(lái),從而達(dá)到信息融合的目的。 一個(gè)經(jīng)典的應(yīng)用是場(chǎng)景的重建,比如說(shuō)一張茶幾上擺了很多杯具,用深度攝像機(jī)進(jìn)行場(chǎng)景的掃描,通常不可能通過(guò)一次采集就將場(chǎng)景中的物體全部掃描完成,只能是獲取場(chǎng)景不同角度的點(diǎn)云,然后將這些點(diǎn)云融合在一起,獲得一個(gè)完整的場(chǎng)景。

點(diǎn)云配準(zhǔn)算法,算法,圖像處理,計(jì)算機(jī)視覺(jué)

? ? ? ? 簡(jiǎn)單點(diǎn)說(shuō),點(diǎn)云配準(zhǔn)(Point Cloud Registration)指的是輸入兩幅點(diǎn)云?(source) 和?(target) ,輸出一個(gè)變換使得和的重合程度盡可能高?;蛘哒f(shuō),對(duì)于兩個(gè)不同視角下的坐標(biāo)系,比如世界坐標(biāo)系和相機(jī)坐標(biāo)系,我們需要求出一個(gè)變換使得兩個(gè)坐標(biāo)系變換到統(tǒng)一視角下。我們這里只考慮剛性變換,即變換只包括旋轉(zhuǎn)、平移。

2.點(diǎn)云配準(zhǔn)的過(guò)程

? ? ? ? 目前,傳統(tǒng)的主流點(diǎn)云配準(zhǔn)技術(shù)主要包括粗配準(zhǔn)精配準(zhǔn)兩個(gè)階段。粗配準(zhǔn)階段的目的是,對(duì)于任意初始狀態(tài)的兩片點(diǎn)云,使得兩片點(diǎn)云大致對(duì)齊,給旋轉(zhuǎn)矩陣R和平移向量T提供初值。而精配準(zhǔn)是在粗配準(zhǔn)的基礎(chǔ)上,進(jìn)行更精確、更細(xì)化的配準(zhǔn)??偠灾?,點(diǎn)云配準(zhǔn)的過(guò)程就是矩陣變換的過(guò)程。

二.點(diǎn)云粗配準(zhǔn)算法

????????點(diǎn)云粗配準(zhǔn)又被稱為點(diǎn)云初始配準(zhǔn),旨在對(duì)任意初始位置的兩片點(diǎn)云進(jìn)行粗略的配準(zhǔn),使其大致對(duì)齊,從而為點(diǎn)云的精配準(zhǔn)提供良好的初始位置。點(diǎn)云粗配準(zhǔn)算法主要分為兩大類,分別是基于全局搜索思想的配準(zhǔn)方法基于幾何特征描述的配準(zhǔn)方法。

1.基于全局搜索思想的配準(zhǔn)方法

???????? 基于全局搜索思想的配準(zhǔn)方法通常從源數(shù)據(jù)中隨機(jī)地選擇幾個(gè)點(diǎn)(通常是三個(gè)),并根據(jù)對(duì)目標(biāo)數(shù)據(jù)的窮舉搜索從目標(biāo)數(shù)據(jù)中找到對(duì)應(yīng)的點(diǎn),計(jì)算所有可能的變換矩陣,通過(guò)投票的方式或者選取誤差函數(shù)最小的方式確定最優(yōu)變換。這種通過(guò)考慮所有可能的對(duì)應(yīng)關(guān)系,可以得到較好的配準(zhǔn)效果,但往往會(huì)產(chǎn)生很大的計(jì)算負(fù)荷。其中最常用的算法框架是RANSAC(隨機(jī)采樣一致性)算法。

1.1 RANSAC點(diǎn)云配準(zhǔn)算法

????????RANSAC 算法最早是在數(shù)學(xué)/統(tǒng)計(jì)學(xué)領(lǐng)域提出,它是一種利用隨機(jī)采集的樣本來(lái)準(zhǔn)確擬合出整體數(shù)學(xué)模型參數(shù)的方法。它的主要思想是從給定的樣本集中隨機(jī)選取一些樣本并估計(jì)一個(gè)數(shù)學(xué)模型,將樣本中的其余樣本帶入該數(shù)學(xué)模型中驗(yàn)證,如果有足夠多的樣本誤差在給定范圍內(nèi),則該數(shù)學(xué)模型最優(yōu),否則繼續(xù)循環(huán)該步驟。
? ? ? ? 后來(lái),RANSAC算法被引入三維點(diǎn)云配準(zhǔn)領(lǐng)域,產(chǎn)生了基于RANSAC思想的RANSAC點(diǎn)云配準(zhǔn)算法,其算法過(guò)程主要如下:

點(diǎn)云配準(zhǔn)算法,算法,圖像處理,計(jì)算機(jī)視覺(jué)

? ? ? ? ?其本質(zhì)就是不斷的對(duì)源點(diǎn)云進(jìn)行隨機(jī)樣本采樣并求出對(duì)應(yīng)的變換模型,接著對(duì)每一次隨機(jī)變換模型進(jìn)行測(cè)試,并不斷循環(huán)該過(guò)程直到選出最優(yōu)的變換模型作為最終結(jié)果。根據(jù)大數(shù)定律,可知道在進(jìn)行大量重復(fù)采樣實(shí)驗(yàn)的情況之下,隨機(jī)模擬可以近似地將正確結(jié)果求解出來(lái)。 當(dāng)然,RANSAC配準(zhǔn)算法也存在著有限次隨機(jī)性帶來(lái)的不穩(wěn)定配準(zhǔn)和計(jì)算量大等弊端。

1.2 4PCS算法

? ? ? ? 4PCS算法全稱為 4-Points Congruent Sets 即 4點(diǎn)全等集配準(zhǔn)算法。該算法也是基于RANSAC算法框架,對(duì)兩片點(diǎn)云的初始姿態(tài)不做約束針對(duì)搜索對(duì)應(yīng)點(diǎn)的策略進(jìn)行了優(yōu)化,將基本的三組對(duì)應(yīng)點(diǎn)擴(kuò)展到了四組具有一定約束性的對(duì)應(yīng)點(diǎn)集,大大增加了算法的魯棒性,提高了算法的搜索效率,算法的時(shí)間復(fù)雜度約為點(diǎn)云配準(zhǔn)算法,算法,圖像處理,計(jì)算機(jī)視覺(jué)。該算法的核心思想就是利用剛體變換中的幾何不變性(向量/線段比例、點(diǎn)間歐幾里得距離),根據(jù)剛性變換后交點(diǎn)所占線段比例不變以及點(diǎn)之間的歐幾里得距離不變的特性,在目標(biāo)點(diǎn)云中盡可能尋找4個(gè)近似共面點(diǎn)(近似全等四點(diǎn)集)與之對(duì)應(yīng),從而利用最小二乘法計(jì)算得到變換矩陣,基于RANSAC算法框架迭代選取多組基,根據(jù)最大公共點(diǎn)集(LCP)的評(píng)價(jià)準(zhǔn)則進(jìn)行比較得到最優(yōu)變換。

(1)全等四點(diǎn)集

? ? ? ? 在4PCS算法中,我們將局部配準(zhǔn)點(diǎn)云由三個(gè)點(diǎn)擴(kuò)展為四個(gè)點(diǎn),并且這四個(gè)點(diǎn)具有一定的附加約束,如果能夠在目標(biāo)點(diǎn)云中也找到相應(yīng)的近似滿足約束的四點(diǎn)集,我們就將這兩個(gè)對(duì)應(yīng)四點(diǎn)集稱為全等四點(diǎn)集,用于求解點(diǎn)云變換。相比傳統(tǒng)的RANSAC配準(zhǔn)算法中完全隨機(jī)采樣的方式,通過(guò)全等四點(diǎn)集的應(yīng)用,一方面算法減少了計(jì)算量,提高了效率,使得全局搜索更有目標(biāo)性;另一方面算法使用帶有約束的局部四點(diǎn)配準(zhǔn),準(zhǔn)確性和魯棒性更高。四點(diǎn)集的選擇和約束標(biāo)準(zhǔn)如下:

點(diǎn)云配準(zhǔn)算法,算法,圖像處理,計(jì)算機(jī)視覺(jué)

  • 首先在源點(diǎn)云中隨機(jī)選擇三個(gè)點(diǎn),要求這三點(diǎn)所構(gòu)成的三角形面積盡量的大(三點(diǎn)確定一個(gè)平面,向量叉積可以計(jì)算面積),但是三點(diǎn)間的距離不能超過(guò)一定的閾值上限,該上限由兩片點(diǎn)云的給定重疊率 f 確定。因?yàn)槿c(diǎn)之間距離越大,配準(zhǔn)的魯棒性越高;但距離過(guò)大,三點(diǎn)均在兩點(diǎn)云的重疊區(qū)域之外了,配準(zhǔn)效果又不好。因此需要在滿足上限的基礎(chǔ)之上,盡可能保證大的三級(jí)形面積。若沒(méi)有給定點(diǎn)云重疊率f,則可以進(jìn)行f=1.0,0.75,0.5...重疊率遞減測(cè)試,選擇最優(yōu)變換。
  • 確定三點(diǎn)后,源點(diǎn)云四點(diǎn)集中第四點(diǎn)的選擇方式為:遍歷源點(diǎn)云中所有的點(diǎn),對(duì)每一個(gè)點(diǎn)進(jìn)行計(jì)算驗(yàn)證選擇最優(yōu)的第四點(diǎn)。第四點(diǎn)需要與其他三點(diǎn)組成的平面盡可能的共面(即不強(qiáng)制要求四點(diǎn)共面,但第四點(diǎn)到其他三點(diǎn)平面的距離盡可能?。⑶业谒狞c(diǎn)與其他三點(diǎn)的距離也要滿足距離閾值范圍(不能太近不能太遠(yuǎn))。
  • 源點(diǎn)云中的四點(diǎn)集選擇完成后,就可以計(jì)算其四點(diǎn)構(gòu)成的兩線段交點(diǎn)的變換不變比,根據(jù)不變比在目標(biāo)點(diǎn)云中遍歷搜索對(duì)應(yīng)的滿足該約束所有四點(diǎn)集用于配準(zhǔn)計(jì)算,這就是(近似)全等四點(diǎn)集。

(2)4PCS算法流程

點(diǎn)云配準(zhǔn)算法,算法,圖像處理,計(jì)算機(jī)視覺(jué)

? ? ? ? ?在了解了全等四點(diǎn)集這一核心概念之后,我們來(lái)介紹一下基于全等四點(diǎn)集尋找對(duì)應(yīng)點(diǎn)的4PCS的算法步驟如下:

  • STEP1:在源點(diǎn)云P中,使用上述的四點(diǎn)集的選擇方法隨機(jī)選擇一個(gè)四點(diǎn)集B={b1,b2,b3,b4},其中(b1,b2)確定線段1,(b3,b4)確定線段2。接著去計(jì)算不變量d1=|b1-b2|,d2=|b3-b4|,不變比r1=|b1-e|/|b1-b2|,r2=|b3-e|/|b3-b4|。注意因?yàn)樗狞c(diǎn)不一定共面,兩條線段也不一定相交,所以可以使用連接兩個(gè)線段的最近點(diǎn)的中心點(diǎn)作為“交點(diǎn)”。
  • STEP2:在目標(biāo)點(diǎn)云Q中,遍歷所有的點(diǎn)對(duì),篩選滿足第一個(gè)約束(線段長(zhǎng)度在d1或d2誤差范圍內(nèi))的點(diǎn)對(duì)集合R1,R2。其表示為:

點(diǎn)云配準(zhǔn)算法,算法,圖像處理,計(jì)算機(jī)視覺(jué)

  • STEP3:遍歷點(diǎn)對(duì)集合R1中的所有點(diǎn)對(duì)元素,計(jì)算其線段上滿足不變比r1的目標(biāo)交點(diǎn),然后將所有計(jì)算結(jié)果e存入搜索樹ANN Tree(近似最鄰近搜索樹,最常見(jiàn)的是K-D Tree算法),并構(gòu)建相應(yīng)的映射
  • STEP4:遍歷點(diǎn)對(duì)集合R2中的所有點(diǎn)對(duì)元素,計(jì)算其線段上滿足不變比r2的目標(biāo)交點(diǎn),并構(gòu)建相應(yīng)的映射。然后遍歷所有的點(diǎn),在之前構(gòu)建的ANN Tree中搜索可接受誤差范圍內(nèi)的重合點(diǎn),若可找到則說(shuō)明能在Q中找到一個(gè)對(duì)應(yīng)的近似全等四點(diǎn)集。最終求得所有的近似全等四點(diǎn)集
  • STEP5:遍歷所有的近似全等四點(diǎn)集,對(duì)每一個(gè),通過(guò)最小二乘法計(jì)算其與B的對(duì)應(yīng)變換矩陣。然后使用該變換矩陣對(duì)源點(diǎn)云P進(jìn)行變換得到P',統(tǒng)計(jì)P'與Q中的最大公共點(diǎn)集(LCP),記max(LCP)的變換矩陣為本次迭代的最優(yōu)變換矩陣T并保留。
  • STEP6:不斷迭代這個(gè)過(guò)程,記錄最優(yōu)的變換。迭代結(jié)束后得到的變換矩陣即為最優(yōu)變換矩陣。原論文算法框架如下:

點(diǎn)云配準(zhǔn)算法,算法,圖像處理,計(jì)算機(jī)視覺(jué)

注意:該算法的實(shí)現(xiàn)過(guò)程中還使用了一些增強(qiáng)方法。比如在上述不變量的基礎(chǔ)上,添加了對(duì)應(yīng)點(diǎn)的法向量計(jì)算,只有滿足線段長(zhǎng)度近似相等且端點(diǎn)法向量夾角也近似相等的前提下,才認(rèn)為是一對(duì)對(duì)應(yīng)線段/向量,進(jìn)一步加強(qiáng)搜索條件,減少了搜索數(shù)量。

(3)原論文及代碼地址

  • 論文地址:4-points Congruent Sets for Robust Surface Registration (stanford.edu)
  • 代碼地址:http://vecg.cs.ucl.ac.uk/Projects/SmartGeometry/fpcs/paper_docs/4pcs_1.3.tar.gz

2.基于幾何特征描述的配準(zhǔn)方法

待補(bǔ)。

2.1 FPFH算法

待補(bǔ)。

三.點(diǎn)云精配準(zhǔn)算法

????????經(jīng)過(guò)粗配準(zhǔn)之后,兩片點(diǎn)云的重疊部分已經(jīng)可以大致對(duì)齊,但精度還遠(yuǎn)遠(yuǎn)達(dá)不到我們的要求。精配準(zhǔn)算法就是在粗配準(zhǔn)的基礎(chǔ)上再進(jìn)行進(jìn)一步的配準(zhǔn),提升配準(zhǔn)的精度。目前精配準(zhǔn)算法中主流的是ICP(Iterative Closest Point,迭代最近點(diǎn))算法。

1.ICP算法

????????ICP算法要求待配準(zhǔn)的兩片點(diǎn)云具有較好的初始位置(初始變換R和T),即要求兩片點(diǎn)云大致對(duì)齊。其基本思想是選取兩片點(diǎn)云中距離最近的點(diǎn)作為對(duì)應(yīng)點(diǎn),通過(guò)所有對(duì)應(yīng)點(diǎn)對(duì)求解旋轉(zhuǎn)和平移變換矩陣,并通過(guò)不斷迭代的方式使兩片點(diǎn)云之間的誤差越來(lái)越小,直至滿足我們提前設(shè)定的閾值要求或迭代次數(shù)。 ICP算法的算法框架如下:

點(diǎn)云配準(zhǔn)算法,算法,圖像處理,計(jì)算機(jī)視覺(jué)

? ? ? ? ?可以看到,整個(gè)ICP算法迭代可以拆解為兩個(gè)核心子問(wèn)題,即尋找匹配最近點(diǎn)計(jì)算最優(yōu)變換。接下來(lái)我們將對(duì)這兩個(gè)核心問(wèn)題分別進(jìn)行說(shuō)明。

1.1 ICP算法核心說(shuō)明

(1)尋找匹配最近點(diǎn)

????????利用初始變換? 、或上一次迭代得到的變換,對(duì)初始點(diǎn)云P進(jìn)行變換,得到一個(gè)臨時(shí)的變換點(diǎn)云P'。然后用這個(gè)點(diǎn)云P'和目標(biāo)點(diǎn)云Q進(jìn)行匹配,找出源點(diǎn)云中每一個(gè)點(diǎn)在目標(biāo)點(diǎn)云中的最近鄰點(diǎn)作為對(duì)應(yīng)點(diǎn),為接下來(lái)的計(jì)算最優(yōu)變換做準(zhǔn)備。常見(jiàn)的最鄰近點(diǎn)匹配方法有:

  • 暴力循環(huán)法:對(duì)兩點(diǎn)云分別進(jìn)行雙重循環(huán),遍歷匹配每一個(gè)點(diǎn)對(duì),計(jì)算其歐氏距離,選擇距離最近的作為該點(diǎn)的對(duì)應(yīng)點(diǎn)并保存。該方法的復(fù)雜度為
  • ANN(Approximate Nearest Neighbor) 搜索:使用近似最近鄰搜索算法,將點(diǎn)插入搜索樹結(jié)構(gòu)上,最常見(jiàn)的搜索樹結(jié)構(gòu)算法是K-D Tree,加速搜索匹配過(guò)程,該方法的復(fù)雜度為。我們主要使用該KD Tree算法進(jìn)行查找加速。

(2)計(jì)算最優(yōu)變換

? ? ? ? 在找到最近匹配對(duì)應(yīng)點(diǎn)之后,我們需要計(jì)算使得兩片對(duì)應(yīng)點(diǎn)云配準(zhǔn)的最優(yōu)變換參數(shù)R和T。假設(shè)分別表示源點(diǎn)云和目標(biāo)點(diǎn)云,則我們的目標(biāo)優(yōu)化函數(shù)為最小化變換后對(duì)應(yīng)點(diǎn)之間的距離,即 :

點(diǎn)云配準(zhǔn)算法,算法,圖像處理,計(jì)算機(jī)視覺(jué)

? ? ? ? ?在這里我們將使用SVD奇異值分解來(lái)計(jì)算最優(yōu)變換參數(shù),下面給出最終計(jì)算公式結(jié)果。關(guān)于該定理的證明可以參考我之前的博客或文章:?https://zhuanlan.zhihu.com/p/104735380

點(diǎn)云配準(zhǔn)算法,算法,圖像處理,計(jì)算機(jī)視覺(jué)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-787296.html

1.2 ICP算法代碼實(shí)現(xiàn)

import numpy as np
#計(jì)算最優(yōu)變換參數(shù)R、T(SVD奇異值分解)
def best_fit_transform(A, B):
    '''
    Calculates the least-squares best-fit transform between corresponding 3D points A->B
    Input:
      A: Nx3 numpy array of corresponding 3D points
      B: Nx3 numpy array of corresponding 3D points
    Returns:
      T: 4x4 homogeneous transformation matrix 齊次坐標(biāo)
      R: 3x3 rotation matrix
      t: 3x1 column vector
    '''

    assert len(A) == len(B)

    # translate points to their centroids
    # 求點(diǎn)云質(zhì)心,并變換坐標(biāo),消除平移的影響
    centroid_A = np.mean(A, axis=0)
    centroid_B = np.mean(B, axis=0)
    AA = A - centroid_A
    BB = B - centroid_B

    # rotation matrix
    # 變換后的坐標(biāo)對(duì)應(yīng)點(diǎn)相乘得到W
    W = np.dot(BB.T, AA)
    U, s, VT = np.linalg.svd(W) #對(duì)W進(jìn)行SVD分解,得到矩陣
    R = np.dot(U, VT) #最優(yōu)旋轉(zhuǎn)矩陣=UV^T

    # special reflection case
    # 反射特殊情況考慮
    if np.linalg.det(R) < 0:
       VT[2,:] *= -1
       R = np.dot(U, VT)


    # translation
    # 最優(yōu)平移
    t = centroid_B.T - np.dot(R,centroid_A.T)

    # homogeneous transformation
    # 構(gòu)造齊次坐標(biāo)
    T = np.identity(4)
    T[0:3, 0:3] = R
    T[0:3, 3] = t

    return T, R, t

#尋找最近匹配點(diǎn)(暴力二重循環(huán)法),可以使用NearestNeighbors替換搜索
def nearest_neighbor(src, dst):
    '''
    Find the nearest (Euclidean) neighbor in dst for each point in src
    Input:
        src: Nx3 array of points
        dst: Nx3 array of points
    Output:
        distances: Euclidean distances (errors) of the nearest neighbor
        indecies: dst indecies of the nearest neighbor
    '''

    indecies = np.zeros(src.shape[0], dtype=np.int)
    distances = np.zeros(src.shape[0])
    for i, s in enumerate(src):
        min_dist = np.inf
        for j, d in enumerate(dst):
            dist = np.linalg.norm(s-d)
            if dist < min_dist:
                min_dist = dist
                indecies[i] = j
                distances[i] = dist    
    return distances, indecies

#ICP算法迭代
def icp(A, B, init_pose=None, max_iterations=50, tolerance=0.001):
    '''
    The Iterative Closest Point method
    Input:
        A: Nx3 numpy array of source 3D points 原點(diǎn)云
        B: Nx3 numpy array of destination 3D point 目標(biāo)點(diǎn)云
        init_pose: 4x4 homogeneous transformation 初始變換參數(shù)
        max_iterations: exit algorithm after max_iterations 最大迭代次數(shù)
        tolerance: convergence criteria 收斂誤差
    Output:
        T: final homogeneous transformation 齊次坐標(biāo)變換矩陣
        distances: Euclidean distances (errors) of the nearest neighbor 誤差
    '''

    # make points homogeneous, copy them so as to maintain the originals
    src = np.ones((4,A.shape[0]))
    dst = np.ones((4,B.shape[0]))
    src[0:3,:] = np.copy(A.T)
    dst[0:3,:] = np.copy(B.T)

    # apply the initial pose estimation
    # 點(diǎn)云初始變換
    if init_pose is not None:
        src = np.dot(init_pose, src)

    prev_error = 0

    for i in range(max_iterations):
        # find the nearest neighbours between the current source and destination points
        #1.找最近匹配點(diǎn)對(duì)應(yīng)
        distances, indices = nearest_neighbor(src[0:3,:].T, dst[0:3,:].T)
        
       
        # compute the transformation between the current source and nearest destination points
        #2.計(jì)算最優(yōu)變換參數(shù)(SVD)
        T,_,_ = best_fit_transform(src[0:3,:].T, dst[0:3,indices].T)

        # update the current source
    # refer to "Introduction to Robotics" Chapter2 P28. Spatial description and transformations
    	#3.更新變換點(diǎn)云
        src = np.dot(T, src)

        # check error
        #4.檢查誤差是否收斂 MSELoss
        mean_error = np.sum(distances) / distances.size
        if abs(prev_error-mean_error) < tolerance:
            break
        prev_error = mean_error

    # calculcate final tranformation
    #5.迭代結(jié)束或誤差收斂后,計(jì)算最終的變換參數(shù)(初始A->當(dāng)前src,因?yàn)樽儞QT沒(méi)有迭代累計(jì))
    T,_,_ = best_fit_transform(A, src[0:3,:].T)

    return T, distances
    
if __name__ == "__main__":
    A = np.random.randint(0,101,(20,3))    # 20 points for test 隨機(jī)源點(diǎn)云
    
    rotz = lambda theta: np.array([[np.cos(theta),-np.sin(theta),0],
                                       [np.sin(theta),np.cos(theta),0],
                                       [0,0,1]])
    trans = np.array([2.12,-0.2,1.3])
    B = A.dot(rotz(np.pi/4).T) + trans #隨即擾動(dòng)->目標(biāo)點(diǎn)云
    
    T, distances = icp(A, B) #ICP算法計(jì)算得到最優(yōu)參數(shù)

    np.set_printoptions(precision=3,suppress=True)
    print T

到了這里,關(guān)于點(diǎn)云配準(zhǔn)(三) 傳統(tǒng)點(diǎn)云配準(zhǔn)算法概述的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于深度學(xué)習(xí)方法的點(diǎn)云算法1——PointNetLK(點(diǎn)云配準(zhǔn))

    基于深度學(xué)習(xí)方法的點(diǎn)云算法1——PointNetLK(點(diǎn)云配準(zhǔn))

    請(qǐng)點(diǎn)點(diǎn)贊,會(huì)持續(xù)更新?。?! 基于深度學(xué)習(xí)方法的點(diǎn)云算法2——PointNet(點(diǎn)云分類分割) 基于深度學(xué)習(xí)方法的點(diǎn)云算法3——PointNet++(點(diǎn)云分類分割) 基于深度學(xué)習(xí)方法的點(diǎn)云算法4——PCT: Point Cloud Transformer(點(diǎn)云分類分割) 作者將PointNet看成一個(gè)可學(xué)習(xí)的成像函數(shù)(learn

    2024年02月10日
    瀏覽(27)
  • 【PCL】—— 點(diǎn)云配準(zhǔn)ICP(Iterative Closest Point)算法

    【PCL】—— 點(diǎn)云配準(zhǔn)ICP(Iterative Closest Point)算法

    ? ????由于三維掃描儀設(shè)備受到測(cè)量方式和被測(cè)物體形狀的條件限制,一次掃描往往只能獲取到局部的點(diǎn)云信息,進(jìn)而需要進(jìn)行多次掃描,然后每次掃描時(shí)得到的點(diǎn)云都有獨(dú)立的坐標(biāo)系,不可以直接進(jìn)行拼接。在逆向工程、計(jì)算機(jī)視覺(jué)、文物數(shù)字化等領(lǐng)域中,由于點(diǎn)云的

    2024年02月13日
    瀏覽(34)
  • [點(diǎn)云配準(zhǔn)]LCD(2D-3D特征配準(zhǔn)算法)例程align_point_cloud.py解析

    [點(diǎn)云配準(zhǔn)]LCD(2D-3D特征配準(zhǔn)算法)例程align_point_cloud.py解析

    跨域描述符LCD可以實(shí)現(xiàn)二維圖片特征點(diǎn)到三維點(diǎn)云特征點(diǎn)的配準(zhǔn),是個(gè)具有通用性的深度學(xué)習(xí)特征描述子。(圖片來(lái)源于論文 LCD: Learned Cross-Domain Descriptors for 2D-3D Matching ) 在Github開(kāi)源的源碼里面給出了利用LCD進(jìn)行 三維點(diǎn)云配準(zhǔn) 的例程。align_point_cloud.py,這里對(duì)例程如何使用

    2024年02月08日
    瀏覽(28)
  • 點(diǎn)云配準(zhǔn)--對(duì)稱式ICP

    點(diǎn)云配準(zhǔn)--對(duì)稱式ICP

    對(duì)稱式ICP 針對(duì)于局部平面不完美的情況,提出了一種對(duì)稱式ICP目標(biāo)函數(shù),相較于傳統(tǒng)的ICP方法,增大了收斂域,提高了收斂速度。論文理論說(shuō)明不甚清楚,實(shí)驗(yàn)較少,但代碼開(kāi)源。 對(duì)稱目標(biāo)函數(shù) 在icp中對(duì)于一對(duì)對(duì)應(yīng)點(diǎn)p,q:在點(diǎn)到法線的度量中: ( p ? q ) ? n q (3) (p-q) cd

    2024年02月06日
    瀏覽(26)
  • PCL - 3D點(diǎn)云配準(zhǔn)(registration)介紹

    PCL - 3D點(diǎn)云配準(zhǔn)(registration)介紹

    前面多篇博客都提到過(guò),要善于從官網(wǎng)去熟悉一樣?xùn)|西。API部分詳細(xì)介紹見(jiàn) Point Cloud Library (PCL): Module registration 這里博主主要借鑒Tutorial里內(nèi)容(博主整體都有看完) Introduction — Point Cloud Library 0.0 documentation 接下來(lái)主要跑下Registration中的sample例子 一.直接運(yùn)行下How to use iter

    2024年02月12日
    瀏覽(26)
  • CVPR2023最佳論文候選:3D點(diǎn)云配準(zhǔn)新方法

    CVPR2023最佳論文候選:3D點(diǎn)云配準(zhǔn)新方法

    文章:3D Registration with Maximal Cliques 作者:Xiyu Zhang Jiaqi Yang* Shikun Zhang Yanning Zhang 編輯:點(diǎn)云PCL 代碼: https://github.com/zhangxy0517/3D-Registration-with-Maximal-Cliques.git 歡迎各位加入知識(shí)星球,獲取PDF論文,歡迎轉(zhuǎn)發(fā)朋友圈。文章僅做學(xué)術(shù)分享,如有侵權(quán)聯(lián)系刪文。 公眾號(hào)致力于點(diǎn)云處

    2024年02月08日
    瀏覽(22)
  • 點(diǎn)云配準(zhǔn)--gicp原理與其在pcl中的使用

    點(diǎn)云配準(zhǔn)--gicp原理與其在pcl中的使用

    總結(jié):gicp引入了概率信息(使用協(xié)方差陣),提出了icp的統(tǒng)一模型,既可以解釋點(diǎn)到點(diǎn)和點(diǎn)到面的icp,也在新模型理論的基礎(chǔ)上,提出了一種面到面的icp。 論文原文:《Generalized-ICP》 在概率模型中假設(shè)存在配準(zhǔn)中兩個(gè)點(diǎn)集, A ^ = { a i ^ } hat{A}=left{hat{a_{i}}right} A ^ = { a i ?

    2024年01月19日
    瀏覽(22)
  • MATLAB 基于NDT的點(diǎn)云配準(zhǔn)實(shí)驗(yàn)(不同參數(shù)效果) (25)

    MATLAB 基于NDT的點(diǎn)云配準(zhǔn)實(shí)驗(yàn)(不同參數(shù)效果) (25)

    NDT點(diǎn)云配準(zhǔn)與ICP一樣,都是經(jīng)典的點(diǎn)云配準(zhǔn)算法,這里使用MATLAB進(jìn)行ndt點(diǎn)云配準(zhǔn),對(duì)配準(zhǔn)結(jié)果進(jìn)行顯示,并嘗試不同參數(shù),得到較好的實(shí)驗(yàn)結(jié)果。具體原理請(qǐng)自行查閱相關(guān)論文和原論文,這里重在使用。

    2024年02月15日
    瀏覽(42)
  • CVPR2023新作:3D點(diǎn)云配準(zhǔn)--3D Registration with Maximal Cliques

    Title: 3D Registration with Maximal Cliques Affiliation: School of Computer Science, Northwestern Polytechnical University, China Authors: Xiyu Zhang, Jiaqi Yang, Shikun Zhang, Yanning Zhang Keywords: 3D point cloud registration, maximal cliques, graph theory, SVD algorithm, deep learning Summary: (1): 本文主要解決3D點(diǎn)云配準(zhǔn)的問(wèn)題,并針對(duì)現(xiàn)有

    2024年02月15日
    瀏覽(26)
  • KSS-ICP: 基于形狀分析技術(shù)的點(diǎn)云配準(zhǔn)方法

    KSS-ICP: 基于形狀分析技術(shù)的點(diǎn)云配準(zhǔn)方法

    目錄 1. 概述 2. 算法實(shí)現(xiàn) 3. 實(shí)驗(yàn)結(jié)果 總結(jié) Reference 三維點(diǎn)云配準(zhǔn)是三維視覺(jué)領(lǐng)域一個(gè)經(jīng)典問(wèn)題,涉及三維重建,定位,SLAM等具體應(yīng)用問(wèn)題。傳統(tǒng)的配準(zhǔn)可以被分為兩條技術(shù)路線,即基于全局姿態(tài)匹配的方法以及基于特征點(diǎn)對(duì)應(yīng)的方法。全局姿態(tài)匹配通過(guò)在全局范圍查找變換矩

    2023年04月08日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包