理解圖像配准中的LMeds、M-estimators與RANSAC算法


           圖像配准對於運動平台(無人機,移動機器人)上的視覺處理有着極其重要的作用。配准算法的第一步通常是找到兩幅圖像中一一對應的匹配點對(特征點提取、描述、點對匹配),然后通過匹配點對求取變換矩陣。在圖像特征點匹配之KD-Tree一文中講了配准中第一步中的點對匹配方法,本文將集中討論配准第二步。在獲得匹配點對后,我們需要從中選取一定的匹配正確的點對計算變換矩陣,對於透射變換,需要選取4組點對,對於仿射變換,需要選取3組。但現在的問題是,我們獲得的匹配點對中不能保證所有的匹配都是正確的,如何從中選取正確的匹配點對來計算變換矩陣,這就需要利用下面要講到的匹配對提純的問題。匹配對提純算法可分為兩類:比值提純法與一致提純法。比值提純法就是在圖像特征點匹配之KD-Tree一文中進行最近鄰查詢的時候,也對次近鄰的距離進行查詢,最后保留最近鄰>=次近鄰*THR(一般取THR=0.49)的匹配點對來進行提純,不予細述。。下面將對一致提純法進行詳述,主要介紹常用的最小中值法(LMedS)、M估計(M-estimators)與隨機采樣一致算法(RANSAC)。

最小中值法(LMedS)

 


 

LMedS的做法很簡單,就是從樣本中隨機抽出N個樣本子集,使用最大似然(通常是最小二乘)對每個子集計算模型參數和該模型的偏差,記錄該模型參數及子集中所有樣本中偏差居中的那個樣本的偏差(即Med偏差),最后選取N個樣本子集中Med偏差最小的所對應的模型參數作為我們要估計的模型參數。

最小中值法可用數學表達簡練的表達為:

θ=argθminmediNri(xi,θ)θ=argθminmedi∈Nri(xi,θ)

θθ為擬合模型參數,ri(xi,θ)ri(xi,θ)是模型第i個點的殘留誤差,N是我們隨機抽出的樣本子集,medmed為中值操作。

M估計(M-estimators)

 


 

對於含有外點的數據,如果對所有樣本點使用一樣的權重,在擬合模型時外點對模型會有較大的干擾,由此為出發點想到,如果降低外點的權重,則可以降低外點對模型的影響,這也就是M估計的一個思想。但問題是我們怎么知道哪些是外點呢,M估計中將與所估計模型偏差大的點視為外點,降低與模型偏差越大的點的權重。

一個M估計通過最小化下面的表達式來估計參數:

θ=argθiρ(ri(xi,θ);σ)θ=argθ∑iρ(ri(xi,θ);σ)

一般的為了降低偏差大的點的影響,ρ(μ,σ)ρ(μ,σ)函數隨着μμ的增加變平。常用的選擇是:

ρ(μ,σ)=μ2σ2+μ2ρ(μ,σ)=μ2σ2+μ2

σσ參數是控制函數變平點的變量,下圖是當σ2=0.1,1,10σ2=0.1,1,10時畫的rho(x,σ)=x2σ2+x2rho(x,σ)=x2σ2+x2

通過引入ρρ,M估計可以保證外點作用被衰減的程度要比它們產生平方誤差的程度要高。

從M估計的數學表達可以看出,問題是非線性的,必須迭代求解,下面是具體求解算法:

算法1 用M估計擬合概率模型參數

對於ss從1到kk

  均勻隨機抽取rr個不同點組成樣本子集

  用最大似然(通常是最小二乘)對抽取的點集進行擬合獲得θ0sθs0

  用θn1sθsn−1估計σn1sσsn−1,一個流行的估計式是:σn1=1.4826mediani|rn1i;θn1|σn−1=1.4826mediani|rin−1;θn−1|

  直到收斂(|θnsθn1s||θsn−θsn−1|非常小)

    用最小化方法通過θn1s,σn1sθsn−1,σsn−1得到θnsθsn

    計算σnsσsn

  End

End

使用殘差的中值作為准則獲得這個集合的最好擬合,用最好擬合的參數作為模型的參數

隨機采樣一致算法(RANSAC)

 


 

M估計計算復雜性較高。另外一種最常用的方法是隨機采樣一致算法(RANSAC,Random Sample Consensus)。它的基本思路是隨機選擇一個小的數據點子集,然后對其進行擬合,查看有多少其他點匹配到擬合的模型上,迭代這個過程直至有較大的概率找到我們想要擬合的模型。

我們先看下RANSAC的算法流程,然后對其中的步驟進行詳細闡述。

算法2 用隨機采樣一致(RANSAC)擬合概率模型參數

確定:

  nn——所需要的最少點數

  kk——需要的迭代次數

  dd——判斷一個點是否擬合的很好的閾值,也稱內外點距離閾值

  tt——判斷一個模型是否擬合的很好所需要的鄰近點數目,也稱一致性集合大小閾值

直到kk次迭代完成

  從數據中均勻的采樣nn個點

  對這nn個點進行模型擬合

  對於采樣外的每個點

    用dd比較點到擬合模型的距離,如果距離小於dd,則認為點是靠近的

  End

  如果有tt個或者更多的點靠近模型,則認為該擬合是個好的擬合,重新用這些點和靠近的點擬合模型。

End

使用擬合誤差最小的所對應的參數作為該模型的估計參數。

RANSAC的難點是n,k,d,tn,k,d,t這幾個參數的確定,下面就怎么確定參數做簡單的討論。

一、最少點數nn的確定

相對比較容易,根據要擬合的模型確定。例,如果擬合一天直線,最少需要兩個點;對於圖片配准,擬合透射變換矩陣最少需要4組點對,擬合仿射變換,最少需要3組點對。

二、迭代次數kk的確定

ww為數據是真實數學模型內點的概率,則一次估計中所有nn個點(確定模型參數的最小點數)都為內點的概率為wnwn。我們需要保證kk次迭代中至少一次估計中所有數據點都是內點的概率pp較大,則kk需要滿足:

1p=(1wn)kk=log(1p)log(1wn)1−p=(1−wn)k⇒k=log(1−p)log(1−wn)

其中pp取一個較大的值。

三、內外點距離閾值dd的確定

這個閾值用來判斷數據點是內點或是外點,沒有一個統一的方法,只能通過實驗得到。

四、一致性集合大小閾值tt的確定

令數據點集中外點的概率為yy,我們需要選擇tt個點使得ytyt很小(比如小於0.05)。yy通常是無法精確的估計,如果真實模型中內點占優勢,經過隨機采樣后yy一般比(1w)(1−w)要小,即可由y(1w)y≤(1−w)。

確定這些參數后就可以用RANSAC算法估計模型參數了。


免責聲明!

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



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