隨機抽樣一致演算法(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....