RANSAC的基本假設是:
(1)數據由“局內點”組成,例如:數據的分佈可以用一些模型參數來解釋;
(2)“局外點”是不能適應該模型的數據;
(3)除此之外的數據屬於噪聲。
局外點產生的原因有:噪聲的極值;錯誤的測量方法;對數據的錯誤假設。
RANSAC也做了以下假設:給定一組(通常很小的)局內點,存在一個可以估計模型參數的過程;而該模型能夠解釋或者適用於局內點。
MATLAB實驗:一組二維點,包含誤差很大的點,如果直接用最小二乘法,求出的模型是不對的。而一個好的方法就是用RANSAC算法剔除誤差較大的點,獲得最大的支持集合,用此最大支持集合求出最佳的模型。
下圖是二維點集合:
如下是用最小二乘法直接求模型的結果(藍線):
下邊用ransac算法剔除誤差較大的點(紅線):
源代碼連接:http://download.csdn.net/detail/freecloud_insky/8550179;