RANSAC演算法理解與應用

2021-10-05 02:14:56 字數 682 閱讀 1504

ransac核心思想就是隨機性和假設性,隨機性用於減少計算,迴圈次數是利用正確資料出現的概率。而假設性,就是說隨機抽出來的資料都認為是正確的,並以此去計算其他點,獲得其他滿足變換關係的點,然後利用投票機制,選出獲票最多的那乙個變換。

具體的流程:

1、在可以有(也可以沒有,主要看應用場景)條件限制(比如選的子集裡的點不能過遠等)的情況下,隨機選取子集,並假設為局內點。子集的大小,主要取決於要擬合模型的複雜度。

2、用局內點擬合乙個模型,此模型適應於假設的局內點,所有的未知引數都能從假設的局內點計算得出。

3、 用2中得到的模型去測試整個資料中其他資料,如果某個點適用於估計的模型,認為它也是局內點,將局內點擴充。

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

5、用所有擴充後的局內點去重新估計模型。

6、通過估計局內點與模型的錯誤率來評估模型。

7、如果當前模型效果比最好模型更好而被選用為最好模型,否則拋棄當前模型。至此完成乙個迭代,然後從第1步開始乙個新的迭代。

其實我們看完這個流程,其實ransca的思路通俗的說,就是在一定的條件下(不是沒有限制的隨機),去試,試的多了找到正確或者好的可能行就大了。整個思路很樸素,其實通過概率分析,其實他的得到好的結果的計算量,沒有你想想的那麼大,當然其還是有一定的概率會計算錯。

ransac特徵匹配案例解析

直線擬合

RANSAC演算法理解

1 最小二乘法法,即,擬合 y ax b中的a和b 2 檢測點是否在直線上,也就是計算點到直線的距離是否小於我們設定的閾值。具體做法,取直線的法向量為 p為待測點到直線上任一點的向量 3 ransac匹配 1 在所有的資料點中隨機取m m 2 個點,使用最小二乘法擬合一條直線 2 在剩餘點中,檢測到...

RANSAC演算法應用

在對資料進行建模時,我們往往會遇到資料中存在異常資料 outlier,一般稱為外點 的情況,如圖,用一條直線擬合圖中的點,其中左下和右上的點明顯是外點。此時使用最小二乘法,則會由於外點的存在偏離正確模型較多,如下圖,因此我們需要找出並剔除這些外點,從而得到乙個較好的模型。ransac random ...

RANSAC演算法應用

在對資料進行建模時,我們往往會遇到資料中存在異常資料 outlier,一般稱為外點 的情況,如圖,用一條直線擬合圖中的點,其中左下和右上的點明顯是外點。此時使用最小二乘法,則會由於外點的存在偏離正確模型較多,如下圖,因此我們需要找出並剔除這些外點,從而得到乙個較好的模型。ransac random ...