1. 程式人生 > >MSER仿射不變特徵匹配演算法

MSER仿射不變特徵匹配演算法

MSER原理簡述

  
  
  區域檢測(Region Detection)方法是根據影象中具有某種同類性質的像元進行分類(例如相同畫素值大小的點),然後把具有相同性質的像元合併成區域,實現區域的檢測即影象分割。MSER(Maximally Stable Extremal Regions最大極值區域檢測)方法與一般的區域檢測方法有所不同:首先MSER檢測到的極值區域具有旋轉、尺度以及仿射不變的適應能力。其次MSER檢測影象中顯著性特徵區域(最為穩定的區域)。2002年Matas提出MSER演算法採用分水嶺演算法來區域影象中穩定的區域。

  MSER運算元的主要思想為:設定一系列的閾值引數

的範圍[0 255]進行分割操作,高於閾值引數∆的影象畫素設定為白色,相反低於的設定為黑色。在閾值引數不斷改變過程中,會逐漸出現閉合區域。最後,在設定閾值引數的浮動範圍內的極值點區域面積變化最小的判定為最大穩定極值區域。由於MSER只能單方面計算最大穩定極值區域,所以Matas提出通過影象反相來求取最小極值穩定區域。

MSER運算元公式如下:

Qratio(i)=|Qi+Qi||Qi|  上式引數Qi代表閾值為i時連通區域大小,為閾值變化係數,Qratio是區域Qi2範圍內的變換率。當Qratio的比率值很小時,可以得出Qi在變化範圍2為最大穩定極值區域。MSER採取分水嶺區域增長演算法進行斑塊極值輪廓的提取,同時MSER在區域提取閾值引數增長的過程中類似多尺度檢測,不同閾值檢測出不同的大小結構。由於MSER演算法效率較低,2008年David Nister等提出改進MSER演算法,藉助於改進分水嶺演算法的理論,加快MSER演算法檢測效率。
圖1 MSER區域檢測示意圖

  從圖1示意圖顯示MSER演算法檢測機制區域經過橢圓擬合以後的示意圖,最小極值區域引數為100,最大極值區域引數為1000。圖1中間顯示穩定極大值區域檢測,圖1右邊顯示穩定極小值檢測。那麼上面的MSER檢測到的極值區域是如何擬合成為橢圓的?

圖2 區域擬合橢圓示意圖

MSER仿射不變區域擬合

  下面首先介紹一下橢圓一般代數方程求取橢圓長短半軸(a,b),中心點(xcenter,ycenter),方向角度θ的求解公式。假設橢圓一般代數式如下:

g(A,B,C,D,E,F)=Ax2+Bxy+Cy2+Dx+Ey+F
圖3 橢圓示意圖

那麼根據橢圓一般方程式求取中心點座標(xcenter,ycenter)計算公式:xcenter=BE2CD4ACB2 ycenter=BD2AE4ACB2
長半軸a計算公式:a=22FA+CB2+(ACF)2