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

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

最小中值法(LMedS)

 


 

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

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

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

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

M估計(M-estimators)

 


 

對於含有外點的數據,若是對全部樣本點使用同樣的權重,在擬合模型時外點對模型會有較大的干擾,由此爲出發點想到,若是下降外點的權重,則能夠下降外點對模型的影響,這也就是M估計的一個思想。但問題是咱們怎麼知道哪些是外點呢,M估計中將與所估計模型誤差大的點視爲外點,下降與模型誤差越大的點的權重。atom

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

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

通常的爲了下降誤差大的點的影響,ρ(μ,σ)ρ(μ,σ)函數隨着μμ的增長變平。經常使用的選擇是:xml

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

σσ參數是控制函數變平點的變量,下圖是當σ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這幾個參數的肯定,下面就怎麼肯定參數作簡單的討論。

1、最少點數nn的肯定

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

2、迭代次數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取一個較大的值。

3、內外點距離閾值dd的肯定

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

4、一致性集合大小閾值tt的肯定

令數據點集中外點的機率爲yy,咱們須要選擇tt個點使得ytyt很小(好比小於0.05)。yy一般是沒法精確的估計,若是真實模型中內點佔優點,通過隨機採樣後yy通常比(1w)(1−w)要小,便可由y(1w)y≤(1−w)。

肯定這些參數後就能夠用RANSAC算法估計模型參數了。

相關文章
相關標籤/搜索