機器視覺之 ICP演算法和RANSAC演算法

2022-02-17 17:32:07 字數 2542 閱讀 7830

臨時研究了下機器視覺兩個基本演算法的演算法原理 ,可能有理解錯誤的地方,希望發現了告訴我一下

主要是了解思想,就不寫具體的計算公式之類的了

(一) icp演算法(iterative closest point迭代最近點)

icp(iterative closest point迭代最近點)演算法是一種點集對點集配準方法,如下圖1

如下圖,假設pr(紅色塊)和rb(藍色塊)是兩個點集,該演算法就是計算怎麼把pb平移旋轉,使pb和pr盡量重疊,建立模型的

(圖1)

icp是改進自對應點集配準演算法的

對應點集配準演算法是假設乙個理想狀況,將乙個模型點雲資料x(如上圖的pb)利用四元數

旋轉,並平移

得到點雲p(類似於上圖的pr)。而對應點集配準演算法主要就是怎麼計算出qr和qt的,知道這兩個就可以匹配點雲了。

但是對應點集配準演算法的前提條件是計算中的點雲資料pb和pr的元素一一對應,這個條件在現實裡因誤差等問題,不太可能實線,所以就有了icp演算法

icp演算法是從源點雲上的(pb)每個點 先計算出目標點雲(pr)的每個點的距離,使每個點和目標雲的最近點匹配,(記得這種對映方式叫滿射吧)

這樣滿足了對應點集配準演算法的前提條件、每個點都有了對應的對映點,則可以按照對應點集配準演算法計算,但因為這個是假設,所以需要重複迭代執行上述過程,直到均方差誤差小於某個閥值。

也就是說 每次迭代,整個模型是靠近一點,每次都重新找最近點,然後再根據對應點集批准演算法算一次,比較均方差誤差,如果不滿足就繼續迭代

(二)ransac演算法(random sample consensus隨機抽樣一致)

它可以從一組包含「局外點」的觀測資料集中,通過迭代方式估計數學模型的引數。它是一種不確定的演算法——它有一定的概率得出乙個合理的結果;為了提高概率必須提高迭代次數。該演算法最早由fischler和bolles於2023年提出。

光看文字還是太抽象了,我們再用圖描述

ransac的基本假設是:

(1)資料由「局內點」組成,例如:資料的分布可以用一些模型引數來解釋;

(2)「局外點」是不能適應該模型的資料;

(3)除此之外的資料屬於雜訊。

而下圖二裡面、藍色部分為局內點,而紅色部分就是局外點,而這個演算法要算出的就是藍色部分那個模型的引數

(圖二)

ransac演算法的輸入是一組觀測資料,乙個可以解釋或者適應於觀測資料的引數化模型,一些可信的引數。

在上圖二中  左半部分灰色的點為觀測資料,乙個可以解釋或者適應於觀測資料的引數化模型 我們可以在這個圖定義為一條直線,如y=kx + b;

一些可信的引數指的就是指定的局內點範圍。而k,和b就是我們需要用ransac演算法求出來的

ransac通過反覆選擇資料中的一組隨機子集來達成目標。被選取的子集被假設為局內點,並用下述方法進行驗證:

1.有乙個模型適應於假設的局內點,即所有的未知引數都能從假設的局內點計算得出。

2.用1中得到的模型去測試所有的其它資料,如果某個點適用於估計的模型,認為它也是局內點。

3.如果有足夠多的點被歸類為假設的局內點,那麼估計的模型就足夠合理。

4.然後,用所有假設的局內點去重新估計模型,因為它僅僅被初始的假設局內點估計過。

5.最後,通過估計局內點與模型的錯誤率來評估模型。

這個過程被重複執行固定的次數,每次產生的模型要麼因為局內點太少而被捨棄,要麼因為比現有的模型更好而被選用。

這個演算法用圖二的例子說明就是先隨機找到內點,計算k1和b1,再用這個模型算其他內點是不是也滿足y=k1x+b2,評估模型

再跟後面的兩個隨機的內點算出來的k2和b2比較模型評估值,不停迭代最後找到最優點

我再用圖一的模型說明一下ransac演算法

(圖1)

ransac演算法的輸入是一組觀測資料,乙個可以解釋或者適應於觀測資料的引數化模型,一些可信的引數。

模型對應的是空間中乙個點雲資料到另外乙個點雲資料的旋轉以及平移。

第一步隨機得到的是乙個點雲中的點對作 ,利用其不變特徵(兩點距離,兩點法向量夾角)作為雜湊表的索引值搜尋另乙個點雲中的一對對應點對,然後計算得到旋轉及平移的引數值。

然後適用變換,找到其他局內點,並在找到局內點之後重新計算旋轉及平移為下乙個狀態。

然後迭代上述過程,找到最終的位置

其中觀測資料就是pb,乙個可以解釋或者適應於觀測資料的引數化模型是 四元數

旋轉,並平移

可信的引數是兩個點對的不變特徵(兩點距離,兩點法向量夾角)

也就是說用ransac演算法是 從pb找乙個隨機的點對計算不變特徵,找目標點雲pr裡特徵最像的來匹配,計算qr和qt

ransac演算法成立的條件裡主要是先要有乙個模型和確定的特徵,用確定的特徵計算模型的具體引數

ransac演算法貌似可以應用很多地方,這個相比icp演算法,更接近於一種演算法思想吧

12 視覺里程計1 ICP演算法

icp的英文全稱為iterative closest point,即為迭代最近點。它在雷射雷達應用頻率很高,主要是在點雲配準領域。icp演算法在是是視覺slam中應用也非常多,這個演算法還是很重要。我們下面的討論還是基於視覺slam,好了我們開始吧!icp演算法顧名思義,就是找最近點。演算法流程如下...

機器視覺演算法提綱

影象增強演算法 1,2,3,4,5 對比度增強 空間濾波 彩色變換 多光譜變換 影象運算 幾何變換演算法 6 仿射變換原理 投影變換原理 影象變換原理 極座標變換原理 影象分割演算法 7 閾值分割與亞畫素閾值分割 提取影象連通區域 特徵提取演算法 8 區域特徵 灰度值特徵 輪廓特徵 形態學演算法 9...

機器視覺演算法 筆記

影象的預處理 影象增強技術 空間域和頻率域 點運算 影象灰度化,直方圖均衡化,和區域性統計法。領域運算 影象平滑,影象銳化 頻率域 高低通濾波 影象的邊緣和雜訊對應於傅利葉變換的高頻部分,低通濾波可平滑影象去除雜訊。灰度變換 1.線性變換 適用於 不足或過度的影象 2.分段線性變換 突出影象中感興趣...