RANSAC 剔除錯誤匹配 估計模型


隨機抽樣一致,這個算法,我以前一直都沒有理解透徹。只知道可以用來直線擬合,網上大多數中文博客也都是寫直線擬合的,但是用來匹配二維特征的時候,總還是沒弄明白。

基本概念參考 http://www.cnblogs.com/xrwang/archive/2011/03/09/ransac-1.html

寫得已經夠清楚了。

現在我來說說它在匹配特征時候的應用。

 

————————————————————————————————————————————

假如我有兩組數據,M和T,其中T是由M經過一個旋轉和一個平移得來的。

          T=R*T+t

          R=[cos(sita) -sin(sita); sin(sita) cos(sita)]

          t=[tx;ty]

我現在已經大概知道了M的每組數與T的每組數據的對應關系 match,

          match=[1 2; 3 4;5 6;……]

意思是:M的第1個  對應T的第2個;

    M的第3個  對應T的第4個;

其中有一些對應錯了。並且我不知道這個模型是啥。

我現在要做的,就是對這些東東進行ransac算法,找出這些錯誤的對應 outlier  ,找到其中正確的對應,並求出這個模型 R 、t

————————————————————————————————————————————

算法如下

1. 從match 里面,隨機找出n組(n>=2,因為是三個未知數 sita tx ty,每組數可以列倆方程,所以四個方程已經夠求三個未知數了)

2. 對這n組,求出R t, 具體方法可以使用svd法求剛體最小二乘轉置 http://blog.csdn.net/kfqcome/article/details/9358853

3. 對這個求出來的R t,應用到T上,得到T';結合match,找出T’中,不靠譜的(自己設一個閾值),就是outliers,靠譜的inliers

4. 對inliers的點,如2一樣,求出新的R t

5. 評價這個模型,比如再進行一下3,求出inlier,inlier數目作為評價標准;或者inlier對M的誤差作為標准。如果這個模型好 R_best=R   t_best=t

6.重復以上過程k次,最后的R_best  t_best就是結果了。

—————————————————————————————————————————————

就這樣,可能哪里理解的不對,以后再改吧。目前來看,效果還是不錯的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM