RANSANC算法
1.提出問題
???????模型參數(shù)估計(jì)方法,如經(jīng)典的最小二乘法,可以根據(jù)某種給定的目標(biāo)方程估計(jì)并優(yōu)化模型參數(shù)以使其最大程度適應(yīng)于所有給定的數(shù)據(jù)集。這些方法都沒有包含檢測并排除異常數(shù)據(jù)的方法,他們都基于平滑假設(shè):忽略給定的數(shù)據(jù)集的大小,總有足夠多的準(zhǔn)確數(shù)據(jù)值來消除異常數(shù)據(jù)的影響。但是在很多實(shí)際情況下,平滑假設(shè)無法成立,數(shù)據(jù)中可能包含無法得到補(bǔ)償?shù)膰?yán)重錯誤數(shù)據(jù),這時候此類模型參數(shù)估計(jì)方法將無法使用。例如如下情況:要求用直線擬合圖1.1中的綠色點(diǎn),顯然,如果用最小二乘法擬合肯定不能得到準(zhǔn)確的解,因?yàn)殄e誤數(shù)據(jù)太多。如1.2中的藍(lán)色點(diǎn)就是經(jīng)過RANSAC算法后得到的可靠數(shù)據(jù)點(diǎn)。這個例子就有點(diǎn)類似直線的hough變換,選擇一組投票率最高的點(diǎn)集作為直線擬合的候選數(shù)據(jù)。
圖1.1????????????????????????????????? ?????????????????????????????????????????????????????????????? 圖1.2
2.算法基本思想
?????? RANSAC為RANdom SAmple Consensus(隨機(jī)采樣一致性)的縮寫,它是根據(jù)一組包含異常數(shù)據(jù)的樣本數(shù)據(jù)集,計(jì)算出數(shù)據(jù)的數(shù)學(xué)模型參數(shù),得到有效樣本數(shù)據(jù)的算法。它于1981年由Fischler和Bolles最先提出[1]。
??????RANSAC算法的基本假設(shè)是樣本中包含正確數(shù)據(jù)(inliers,可以被模型描述的數(shù)據(jù)),也包含異常數(shù)據(jù)(Outliers,偏離正常范圍很遠(yuǎn)、無法適應(yīng)數(shù)學(xué)模型的數(shù)據(jù)),即數(shù)據(jù)集中含有噪聲。這些異常數(shù)據(jù)可能是由于錯誤的測量、錯誤的假設(shè)、錯誤的計(jì)算等產(chǎn)生的。同時RANSAC也假設(shè),給定一組正確的數(shù)據(jù),存在可以計(jì)算出符合這些數(shù)據(jù)的模型參數(shù)的方法。
??????RANSAC基本思想描述如下:
??????①考慮一個最小抽樣集的勢為n的模型(n為初始化模型參數(shù)所需的最小樣本數(shù))和一個樣本集P,集合P的樣本數(shù)#(P)>n,從P中隨機(jī)抽取包含n個樣本的P的子集S初始化模型M;
??????②余集SC=P\S中與模型M的誤差小于某一設(shè)定閾值t的樣本集以及S構(gòu)成S*。S*認(rèn)為是內(nèi)點(diǎn)集,它們構(gòu)成S的一致集(Consensus Set);
??????③若#(S*)≥N,認(rèn)為得到正確的模型參數(shù),并利用集S*(內(nèi)點(diǎn)inliers)采用最小二乘等方法重新計(jì)算新的模型M*;重新隨機(jī)抽取新的S,重復(fù)以上過程。
??????④在完成一定的抽樣次數(shù)后,若為找到一致集則算法失敗,否則選取抽樣后得到的最大一致集判斷內(nèi)外點(diǎn),算法結(jié)束。
??????由上可知存在兩個可能的算法優(yōu)化策略。①如果在選取子集S時可以根據(jù)某些已知的樣本特性等采用特定的選取方案或有約束的隨機(jī)選取來代替原來的完全隨機(jī)選取;②當(dāng)通過一致集S*計(jì)算出模型M*后,可以將P中所有與模型M*的誤差小于t的樣本加入S*,然后重新計(jì)算M*。
??????RANSAC算法包括了3個輸入的參數(shù):①判斷樣本是否滿足模型的誤差容忍度t。t可以看作為對內(nèi)點(diǎn)噪聲均方差的假設(shè),對于不同的輸入數(shù)據(jù)需要采用人工干預(yù)的方式預(yù)設(shè)合適的門限,且該參數(shù)對RANSAC性能有很大的影響;②隨機(jī)抽取樣本集S的次數(shù)。該參數(shù)直接影響SC中樣本參與模型參數(shù)的檢驗(yàn)次數(shù),從而影響算法的效率,因?yàn)榇蟛糠蛛S機(jī)抽樣都受到外點(diǎn)的影響;③表征得到正確模型時,一致集S*的大小N。為了確保得到表征數(shù)據(jù)集P的正確模型,一般要求一致集足夠大;另外,足夠多的一致樣本使得重新估計(jì)的模型參數(shù)更精確。
??????RANSAC算法經(jīng)常用于計(jì)算機(jī)視覺中,主要解決特征點(diǎn)的匹配中的錯配問題。
轉(zhuǎn)載于:https://www.cnblogs.com/wl-v/p/5820481.html
總結(jié)
- 上一篇: C#与C++的几个不同之处知识点
- 下一篇: py8.29