|
臨時研究了下機器視覺兩個基本算法的算法原理 ,可能有理解錯誤的地方,希望發(fā)現(xiàn)了告訴我一下 主要是了解思想,就不寫具體的計算公式之類的了 (一) ICP算法(Iterative Closest Point迭代最近點) ICP(Iterative Closest Point迭代最近點)算法是一種點集對點集配準方法,如下圖1 如下圖,假設(shè)PR(紅色塊)和RB(藍色塊)是兩個點集,該算法就是計算怎么把PB平移旋轉(zhuǎn),使PB和PR盡量重疊,建立模型的
ICP是改進自對應(yīng)點集配準算法的 對應(yīng)點集配準算法是假設(shè)一個理想狀況,將一個模型點云數(shù)據(jù)X(如上圖的PB)利用四元數(shù) 但是對應(yīng)點集配準算法的前提條件是計算中的點云數(shù)據(jù)PB和PR的元素一一對應(yīng),這個條件在現(xiàn)實里因誤差等問題,不太可能實線,所以就有了ICP算法
ICP算法是從源點云上的(PB)每個點 先計算出目標點云(PR)的每個點的距離,使每個點和目標云的最近點匹配,(記得這種映射方式叫滿射吧) 這樣滿足了對應(yīng)點集配準算法的前提條件、每個點都有了對應(yīng)的映射點,則可以按照對應(yīng)點集配準算法計算,但因為這個是假設(shè),所以需要重復(fù)迭代運行上述過程,直到均方差誤差小于某個閥值。
也就是說 每次迭代,整個模型是靠近一點,每次都重新找最近點,然后再根據(jù)對應(yīng)點集批準算法算一次,比較均方差誤差,如果不滿足就繼續(xù)迭代
(二)RANSAC算法(RANdom SAmple Consensus隨機抽樣一致) 它可以從一組包含“局外點”的觀測數(shù)據(jù)集中,通過迭代方式估計數(shù)學模型的參數(shù)。它是一種不確定的算法——它有一定的概率得出一個合理的結(jié)果;為了提高概率必須提高迭代次數(shù)。該算法最早由Fischler和Bolles于1981年提出。 光看文字還是太抽象了,我們再用圖描述 RANSAC的基本假設(shè)是: 而下圖二里面、藍色部分為局內(nèi)點,而紅色部分就是局外點,而這個算法要算出的就是藍色部分那個模型的參數(shù)
RANSAC算法的輸入是一組觀測數(shù)據(jù),一個可以解釋或者適應(yīng)于觀測數(shù)據(jù)的參數(shù)化模型,一些可信的參數(shù)。 在上圖二中 左半部分灰色的點為觀測數(shù)據(jù),一個可以解釋或者適應(yīng)于觀測數(shù)據(jù)的參數(shù)化模型 我們可以在這個圖定義為一條直線,如y=kx + b; 一些可信的參數(shù)指的就是指定的局內(nèi)點范圍。而k,和b就是我們需要用RANSAC算法求出來的 RANSAC通過反復(fù)選擇數(shù)據(jù)中的一組隨機子集來達成目標。被選取的子集被假設(shè)為局內(nèi)點,并用下述方法進行驗證: 1.有一個模型適應(yīng)于假設(shè)的局內(nèi)點,即所有的未知參數(shù)都能從假設(shè)的局內(nèi)點計算得出。 這個算法用圖二的例子說明就是先隨機找到內(nèi)點,計算k1和b1,再用這個模型算其他內(nèi)點是不是也滿足y=k1x+b2,評估模型 再跟后面的兩個隨機的內(nèi)點算出來的k2和b2比較模型評估值,不停迭代最后找到最優(yōu)點
我再用圖一的模型說明一下RANSAC算法
RANSAC算法的輸入是一組觀測數(shù)據(jù),一個可以解釋或者適應(yīng)于觀測數(shù)據(jù)的參數(shù)化模型,一些可信的參數(shù)。 模型對應(yīng)的是空間中一個點云數(shù)據(jù)到另外一個點云數(shù)據(jù)的旋轉(zhuǎn)以及平移。
第一步隨機得到的是一個點云中的點對作
,利用其不變特征(兩點距離,兩點法向量夾角)作為哈希表的索引值搜索另一個點云中的一對對應(yīng)點對,然后計算得到旋轉(zhuǎn)及平移的參數(shù)值。
然后適用變換,找到其他局內(nèi)點,并在找到局內(nèi)點之后重新計算旋轉(zhuǎn)及平移為下一個狀態(tài)。
然后迭代上述過程,找到最終的位置
其中觀測數(shù)據(jù)就是PB,一個可以解釋或者適應(yīng)于觀測數(shù)據(jù)的參數(shù)化模型是 四元數(shù)
旋轉(zhuǎn),并平移![]() 可信的參數(shù)是兩個點對的不變特征(兩點距離,兩點法向量夾角)
也就是說用RANSAC算法是 從PB找一個隨機的點對計算不變特征,找目標點云PR里特征最像的來匹配,計算qR和qT
RANSAC算法成立的條件里主要是先要有一個模型和確定的特征,用確定的特征計算模型的具體參數(shù)
RANSAC算法貌似可以應(yīng)用很多地方,這個相比ICP算法,更接近于一種算法思想吧
|
|
|