RANSAC算法MATLAB實驗

    RANSAC是“RANdom SAmple Consensus(隨機抽樣一致)”的縮寫。它可以從一組包含“局外點”的觀測數據集中,通過迭代方式估計數學模型的參數。它是一種不確定的算法——它有一定的概率得出一個合理的結果;爲了提高概率必須提高迭代次數。該算法最早由Fischler和Bolles於1981年提出。
    RANSAC的基本假設是:
(1)數據由“局內點”組成,例如:數據的分佈可以用一些模型參數來解釋;
(2)“局外點”是不能適應該模型的數據;
(3)除此之外的數據屬於噪聲。
    局外點產生的原因有:噪聲的極值;錯誤的測量方法;對數據的錯誤假設。

    RANSAC也做了以下假設:給定一組(通常很小的)局內點,存在一個可以估計模型參數的過程;而該模型能夠解釋或者適用於局內點。


MATLAB實驗:一組二維點,包含誤差很大的點,如果直接用最小二乘法,求出的模型是不對的。而一個好的方法就是用RANSAC算法剔除誤差較大的點,獲得最大的支持集合,用此最大支持集合求出最佳的模型。

下圖是二維點集合:


如下是用最小二乘法直接求模型的結果(藍線):


下邊用ransac算法剔除誤差較大的點(紅線):


源代碼連接:http://download.csdn.net/detail/freecloud_insky/8550179;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章