[TOC]
1. RANSA 是一種隨機參數估計算法
- 抽出樣本子集→估計模型參數→計算偏差→閾值比較→重復迭代→評判因子→迭代結束
1. 具體使用過程:
RANSAC從樣本中隨機抽選出一個樣本子集,
使用最小方差估計算法對這個子集計算模型參數,
然后計算所有樣本與該模型的偏差,
再使用一個預先設定好的閡值與偏差比較(當偏差小于閡值時,該樣本點屬于模型內樣本點(inliers),文中簡稱局內點或內點,否則為模型外樣木點(outliers))
記錄下當前的inliers的個數,然后重復這一過程。
每一次重復都記錄當前最佳的模型參數(所謂最佳即是inl}ers的個數最多,此時對應的inliers個數為best_ ninliers)
計算一個迭代結束評判因子,據此決定是否迭代結束(每次迭代的末尾都會根據期望的誤差率、best_ninliers ,總樣本個數、當前迭代次數)
迭代結束后,最佳模型參數就是最終的模型參數估計值。
2. 缺點
理論上可以剔除outliers的影響,并得到全局最優的參數估計。
1.缺點 需要設定閾值
當模型具有明顯的物理意義時,這個閡值還比較容易設定,
但是若模型比較抽象時,這個闌值就不那么容易設定了,
而且固定閉值不適用于樣本動態變化的應用
- 缺點 迭代運行次數由運行期決定
不能預知迭代的確切次數(當然迭代次數的范圍是可以預測的)。
除此之外,RANSAC只能從一個特定數據集中估計一個模型,當兩個(或者更多個)模型存在時,RANSAC不能找到別的模型。