MSER 特徴検出の仕組みの基本を知っていることを前提としています (そうでない場合は、ウィキペディアと短い要約が続きます)。
正と負の 2 種類の MSER 領域があります。
最初のタイプでは、すべての強度でしきい値処理を行います (グレースケール イメージの場合は0
まで255
)。たとえば、しきい値の場合T = 100
、強度を持つすべてのピクセルには または< 100
が割り当てられ、すべてのピクセルの強度はまたはに割り当てられます。black
foreground
>= 100
white
background
ここで、特定のピクセルを観察していると想像してくださいp
。あるしきい値で、それを と呼びましょう。T1
フォアグラウンドに属し始め、 までそのままになりT=255
ます。ピクセルはT1
コンポーネントに属しますCC_T1(p)
。5
グレー レベルは後でコンポーネントに属しますCC_(T1+5)(p)
。
すべてのしきい値について得られたこれらの連結成分はすべて、MSER の潜在的な候補です。black/foreground
(しきい値設定のために myとwhite/background
割り当てを逆にすると、他のタイプのコンポーネントが取得されます)。
パラメータは、潜在的な候補が実際に最大に安定しているかどうかを判断するのに役立ちます。
デルタ
すべての地域について、変動が測定されます。
V_T = (size(CC_T(p))-size(CC_{T-delta}(p)))/size(CC_{T-delta}(p))
可能なすべてのしきい値に対してTi
。ピクセルのこの変動が変動の局所的最小値、つまり である場合V_T < V_{T-1}
、V_T < V_{T+1}
その領域は最大安定です。
パラメータdeltaは、領域が最大に安定していると見なされるためには、領域が安定している必要がある異なるグレー レベルの数を示します。デルタが大きいほど、得られるリージョンは少なくなります。
注: MSER 領域を紹介する元の論文では、実際の式は次のとおりです。
V_T = (size(CC_{T+delta}(p))-size(CC_{T-delta}(p)))/size(CC_T(p))
OpenCV の実装では、わずかに異なる式を使用して特徴抽出を高速化しています。
最小面積、最大面積
領域が最大限に安定している場合でも、 minAreaピクセル未満または maxArea ピクセルを超える場合は拒否できます。
最大変動
ポイント 1 からの変動に戻ります (デルタと同じ関数): 領域が最大限に安定している場合でも、領域の変動がmaxVariationよりも大きい場合は拒否できます。
つまり、リージョンが「比較的」安定している (隣接するリージョンよりも安定している) 場合でも、「絶対に」十分に安定しているとは限りません。maxVariationが小さいほど、得られる領域が少なくなります
最小多様性
このパラメーターは、類似しすぎる領域 (たとえば、数ピクセルのみが異なる) を削除するために存在します。
最大限に安定している領域CC_T1(p)
についてはCC_T2(p)
、「親の最大限に安定した領域」である領域を見つけます。つまりT2 > T1
、CC_T2(p)
は最大安定領域であり、最大安定領域は存在しませT2 > Tx > T1
んCC_Tx(p)
。ここで、親がどれだけ大きいかを比較します。
diversity = (size(CC_T2(p)) - size(CC_T1(p))) / size(CC_T1(p))
これdiversity
がmaxDiversityより小さい場合は、領域を削除します。多様性が大きいほど、得られる地域は少なくなります。CC_T1(p)
(このパラメーターの正確な式については、プログラム コードを掘り下げる必要がありました)