matlab學習筆記(九) RANSAC

2021-09-26 01:33:25 字數 1446 閱讀 6885

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

多檢視幾何p73

1、思想:隨機選擇兩點,定義一條直線,該線的支集由一定距離閾值內的點數目來度量。重複多次這樣的隨機選擇,具有最大支集的線被認為是魯棒擬合,在距離閾值以內的點稱為內點(組成一致集),反之稱為野值。

2、演算法框圖

目標乙個模型與含有野值的資料集s的擬合

演算法(1)隨機地從s中選擇s個資料點,組成乙個樣本模型;

(2)確定在模型距離閾值t內的資料點集si(內點,一致集);

(3)如果si的大小(內點的數目)大於某個閾值t,用si的所有點重估計模型並結束;

(4)否則,選擇乙個新的子集並重複上面過程;

(5)經過n次試驗,選擇最大一致集si,並用si的所有點重估計模型。

(1)如何選取距離閾值?

希望選擇的距離閾值t使點成為內點的概率是α

\alpha

α,通常α

\alpha

α取0.95。

(2)取樣多少次為宜?

保證由s個點組成的隨機樣本中至少有一次沒有野值的概率為p,通常p取0.99,假定ω

\omega

ω是任意選擇的資料點為內點的概率,ε=1

−ω

\varepsilon = 1-\omega

ε=1−

ω,是其為野值的概率,那麼至少需要n次選擇(每次s個點),其中(1−

ωs)n

=1−p

(1-\omega^)^=1-p

(1−ωs)

n=1−

p,從而n=l

og(1

−p)/

log(

1−(1

−ε)s

)n=log(1-p)/log(1-(1-\varepsilon)^)

n=log(

1−p)

/log

(1−(

1−ε)

s)。自適應地決定取樣次數

通常資料中野值所佔比例ε

\varepsilon

ε是未知的,對此情形,演算法從ε

\varepsilon

ε的最壞估計開始,當發現更大的一致集時就把原估計更新。例如,如果最壞估計是ε

=0.5

\varepsilon=0.5

ε=0.

5,但一旦發現內點的一致集佔資料的80%,那麼估計更新為ε

=0.2

\varepsilon=0.2

ε=0.2。

(3)一致集為多大為宜?

在給定野值的假定比例後,如果一致集大小接近於期望屬於該資料集的內點數時迭代就停止,即對n個資料,t=(

1−ε)

nt=(1-\varepsilon)n

t=(1−ε

)n,ε

\varepsilon

ε是野值所佔的比例。

matlab學習筆記第九章 變換

1.拉普拉斯變換 時間函式f t 的拉普拉斯變換用下面的積分式定義 l 0 f t e stdt,我們通常把f t 的拉普拉斯變換寫f s 在matlab計算拉普拉斯變換,我們要呼叫laplace f t 它做的是符號計算。l tn n sn 1 要計算拉普拉斯逆變換,我們輸入ilaplace 2....

matlab練習程式(隨機抽樣一致RANSAC)

ransac在影象拼接中有所使用,有時候也在影象理解的相關演算法中有所使用。演算法簡介如下 摘自 影象處理 分析與機器視覺 第3版 1.假設我們要將n個資料點x 擬合為乙個由至少m個點決定的模型 m n,對於直線,m 2 我這裡實際是兩個不同均值 協方差高斯分布產生的資料 2.設迭代計數k 1。3....

matlab練習程式(隨機抽樣一致RANSAC)

ransac在影象拼接中有所使用,有時候也在影象理解的相關演算法中有所使用。演算法簡介如下 摘自 影象處理 分析與機器視覺 第3版 1.假設我們要將n個資料點x 擬合為乙個由至少m個點決定的模型 m n,對於直線,m 2 我這裡實際是兩個不同均值 協方差高斯分布產生的資料 2.設迭代計數k 1。3....