1. 經典RANSAC
由Fischer和Bolles在1981年的文章[1]中首先提出,簡要的說經典RANSAC的目標是不斷嘗試不同的目標空間參數,使得目標函數 C 最大化的過程。這個過程是隨機(Random)、數據驅動(data-driven)的過程。通過反復的隨機選擇數據集的子空間來產生一個模型估計,然后利用估計出來的模型,使用數據集剩余的點進行測試,獲得一個得分,最終返回一個得分最高的模型估計作為整個數據集的模型。
1.1 目標函數
在經典的RANSAC流程中,目標函數C 可以被看作:在第k次迭代過程中,在當前變換參數作用下,數據集
中滿足變換參數的點的個數,也就是在當前變換條件下類內點的個數,而RANSAC就是最大化 C 的的過程。而判斷當前某個點是否為類內需要一個閾值t。
1.2 子集大小


按照參考文獻[1]中的說明,在置信度為的條件下,在循環過程中,至少有一次采樣,使得采樣出的m 個點均為類內點,這樣才能保證在循環的過程中,至少有一次采樣能取得目標函數的最大值。因此,采樣次數k應該滿足以下條件:
這里除了置信度外,m 為子集大小,ε 為類內點在
中的比例,其中置信度一般設置為[0.95, 0.99]的范圍內。然而在一般情況下,ε 顯然是未知的,因此 ε 可以取最壞條件下類內點的比例,或者在初始狀態下設置為最壞條件下的比例,然后隨着迭代次數,不斷更新為當前最大的類內點比例。
另外一種循環終止條件可以將選取的子集看做為“全部是類內點”或“不全部是類內點”這兩種結果的二項分布,而前者的概率為。對於 p 足夠小的情況下,可以將其看作為一種泊松分布,因此,在 k 次循環中,有 n個“子集全部是類內點”的概率可以表達為:
λ 表示在 k 次循環中,“子集全都是類內點”的選取次數的期望。例如在RANSAC中,我們希望在這k次循環中所選子集“沒有一個全是類內點”的概率小於某個置信度,即:,以置信度為95%為例,λ約等於3,表示在95%置信度下,在 k 次循環中,平局可以選到3次“好”的子集。
1.4 判斷閾值的選取


α為置信概率,若 α=0.95,那么一個真實的類內點被誤分類為類外點的概率為5%。
經典RANSAC算法的流程如下圖所示:
2. Universal-RANSAC
經典RANSAC有以下三個主要的局限性:
(1) 效率:經典方法效率與子集大小、類內點比例以及數據集大小有關,因此在某些場景下效率較低。
(2) 精度:經典方法計算參數時選取最小子集是從效率的角度考慮,往往得到的是非最佳參數,在應用產參數 之前還需要再經過細化處理。
(3) 退化:經典方法的目標函數求取最大化的過程基於一個假設:“選取的最小子集中如果有類外點,那么在這種情況下估計的參數獲得的目標函數(數據集中點的個數)往往較少“但這種情況在退化發生時有可能是不對的。
針對經典方法的這幾項局限性,有很多改進,在這里提出了一種全局RANSAC(Universal-RANSAC)的結構圖,每一種改進方法都可以看做是這種USAC的特例,如下圖所示。
輸入數據集,
含有 N 個點,在這一步中,SCRNMSAC[3],用一個一致性濾波器對初始的數據集進行濾波減少數量,然后將數據根據梯度排序。
對進行采樣時,經典算法采用完全隨機的方式,這種方式的前提是我們對數據的情況完全不知道,在實際應用中,很多情況對數據的先驗知識是了解的,這對減少采樣次數,尤其是類內點比例較低的數據集,有很大幫助,以下是幾種在最小集采樣當中對經典算法進行改進的方法。
Stage 1.a 采樣
2.2.1 NAPSAC[4]
N-Adjacent points sample consensus(NAPSAC)算法認為:”數據集中,一個類內點與數據集中其他類內點的距離比類外點要近。”在一個n維空間中,假定:將數據集的n維空間看做一個超球面,隨着半徑的減少,類外點減少的速度比類內點要快(類外點距離球心更遠)。這種算法可以描述為:
a. 中隨機選取一個點 x ,設定一個半徑 r,以 x 為中心 r 為半徑建立超球面;
b. 超球面內包裹的點少於最小數據集的個數?返回 a,否則c
c. 均勻的從球體內取點,直至滿足最小集中的個數。
這種方法對高維、類內點比例低的數據集效果明顯,但是容易產生退化,且對於距離都很近的數據集效果差。
2.2.2 PROSAC[5]
2.2.3 GroupSAC[6]
與NAPSAC類似,GroupSAC認為類內點更加的“相似”,根據某種相似性將數據集中的點分組。以圖像匹配為例,分組可以基於光流聚類(optical flow-based clustering)、圖像分割等,然后按照PROSAC思想,采樣可以從最大的聚類開始,因為這里應該有更高的類內點比例。但是這種方法首先要保證有一種先驗知識可以用於分類,還有就是要保證分類算法的有效性和實時性。
Stage 1.b 采樣驗證
Stage 2.a 模型計算
在這一步驟根據上一步選取的最小集計算參數,獲得模型。
Stage 2.b 模型驗證
還是利用先驗知識,比如點集與圓形匹配,驗證時候沒必要將數據集中所有的點進行驗證,而只是在得到模型(圓)的一個半徑范圍左右驗證即可。
2.4 驗證參數(Stage 3)
傳統的方法在得到最小集產生的參數后計算全部集合中滿足參數點的個數(目標函數),在此,加兩步驗證,分為兩點:第一,驗證當前的模型是否可能獲得最大的目標函數。第二,當前模型是非退化的。
Stage 3.a 可能性驗證
2.4.1 T(d,d)測試[5]
選取遠小於數據集綜述的 d 個點作為測試,只有當這 d 個點全都為類內點時,再對剩余的點進行測試,否則拋棄當前的模型。具體選取辦法見論文[5].
2.4.2 Bail-Out測試[7]
選取集合中的若干點進行測試,若類內點的比例顯著低於當前最佳模型類內點的比例,拋棄此模型。
2.4.3 SPRT測試[8,9]
挨個點測試,表示隨機選取一個點符合當前模型的概率(good),
為“bad”的概率。根據以下公式,當閾值λ超過某閾值的時候拋棄當前模型。
2.4.4 Preemptive測試[10]
ARRSAC算法[11],首先產生多個模型,而不是產生一個后即對其評價,然后根據選取的一部分子集對所產生的模型按照目標函數得分排序,選取前若干個,做若干輪類似排序,選取最佳模型。
Stage 3.b 退化驗證
數據退化的意思是無法提供足夠的限制條件產生唯一解。傳統RANSAC即沒有這種安全的保障。
2.5 模型細化(Stage 4)
含有噪聲的數據集有兩個重要特點:1,即使子集中全都是類內點,產生的模型也並不一定適用於數據集中所有的類內點,這個現象增加了迭代的次數;2,最終收斂的RANSAC結果可能受到噪聲未完全清理的影響,並不是全局最優的結果。
第一個影響往往被忽略,因為雖然增加了迭代次數,但是仍然返回的是一個准確的模型。而第二種影響就要增加一種模型細化的后處理。
2.5.1 局部最優化[12]
Lo-RANSAC,局部最優RANSAC。在迭代過程中,出現當前最優解,進行Lo-RANSAC。一種方法是從返回結果的類內點中再進行采樣計算模型,設置一個固定的迭代次數(10-20次)然后選取最優的局部結果作為改進的結果,另一種方法是設置一個優化參數K(2~3),選取結果中判斷閾值(t)小於等於Kt 的結果作為優化結果,K 減小,直至減小至 t 終止。
2.5.1 錯誤傳播法[13]
思想與Lo-RANSAC一致,但是更為直接,因為初始的RANSAC結果產生自含有噪聲的數據集,因此這個錯誤“傳播”到了最終的模型,協方差可以看做是估計兩個數據集關系是一種不確定的信息(而如上所述,判斷閾值的計算是固定的)。具體方法參見文獻[13]。
2.6 最終方案--USAC-1.0
最終選取的結果如下圖所示:
stage1: 最小集采樣方法采用2.2.2節中的PROSAC。
stage3: 模型(參數)驗證采用2.4.3的SPRT測試。
stage4: 產生最終模型,采用2.5.1介紹的Lo-RANSAC。
論文翻譯自:文獻[0]。
----------------------------參考文獻---------------------------
[0] Raguram R, Chum O, Pollefeys M, et al. USAC: A Universal Framework for Random Sample Consensus[J]. Pattern Analysis & Machine Intelligence IEEE Transactions on, 2013, 35(8):2022-2038.
[1] M.A. Fischler and R.C. Bolles, “Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography,” Comm. ACM, vol. 24, no. 6, pp. 381- 395,1981.
[2] R.I. Hartley and A. Zisserman, Multiple View Geometry in Computer Vision. Cambridge Univ. Press, 2000
[3] T. Sattler, B. Leibe, and L. Kobbelt, “SCRAMSAC: Improving RANSAC’s Efficiency with a Spatial Consistency Filter,” Proc. 12th IEEE Int’l Conf. Computer Vision, 2009.
[4] D.R. Myatt, P.H.S. Torr, S.J. Nasuto, J.M. Bishop, and R. Craddock,“NAPSAC: High Noise, High Dimensional Robust Estimation,”Proc. British Machine Vision Conf., pp. 458-467, 2002.
[5] O. Chum and J. Matas, “Matching with PROSAC—Progressive Sample Consensus,” Proc. IEEE Conf. Computer Vision and Pattern Recognition, 2005.
[6] K. Ni, H. Jin, and F. Dellaert, “GroupSAC: Efficient Consensus in the Presence of Groupings,” Proc. 12th IEEE Int’l Conf. Computer Vision, Oct. 2009.
[7] D. Capel, “An Effective Bail-Out Test for RANSAC Consensus Scoring,” Proc. British Machine Vision Conf., 2005.
[8] O. Chum and J. Matas, “Optimal Randomized RANSAC,” IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 30, no. 8,pp. 1472-1482, Aug. 2008.
[9] J. Matas and O. Chum, “Randomized RANSAC with Sequential Probability Ratio Test,” Proc. 10th IEEE Int’l Conf. Computer Vision,vol. 2, pp. 1727-1732, Oct. 2005.
[10] D. Niste´r, “Preemptive RANSAC for Live Structure and Motion Estimation,” Proc. Ninth IEEE Int’l Conf. Computer Vision, 2003.
[11] R. Raguram, J.-M. Frahm, and M. Pollefeys, “A Comparative Analysis of RANSAC Techniques Leading to Adaptive Real-Time Random Sample Consensus,” Proc. European Conf. Computer Vision, pp. 500- 513. 2008,
[12] O. Chum, J. Matas, and J. Kittler, “Locally Optimized RANSAC,”Proc. DAGM-Symp. Pattern Recognition, pp. 236-243, 2003.
[13] R. Raguram, J.-M Frahm, and M. Pollefeys, “Exploiting Uncertainty in Random Sample Consensus,” Proc. 12th IEEE Int’l Conf. Computer Vision, Oct. 2009.
注:轉自 http://blog.csdn.net/tianwaifeimao/article/details/48543361