Exact Meaning of the parameters given to initialize MSER in OpenCV 2.4.x? -


opencv reference manual (2.4.x) states constructor initializes mser requires following parameters:

delta, min_area, max_area, max_variation, min_diversity, max_evolution, area_threshold, min_margin, edge_blur_size.

i dealing grayscale images. use of parameters "delta", "max_variation" , "min_diversity"? property of mser these parameters control?

i have tried lot find exact answer , find little information on following pages (none of particularly useful in telling me these 3 parameters control): 1. opencv wiki 2. wikipedia description of mser 3. mser questions on stackoverflow

please help!

i going presume know basics of how mser feature detection works (if not, wikipedia, , short recap follows).

you have 2 types of mser regions, positive , negative.

first type, thresholding intensities (for grayscale images, 0 255). e.g. threshold t = 100, pixels intensity <= 100 assigned black, or foreground, , pixels > 100 intensity white or background.

now, imagine you're observing specific pixel p. @ threshold, let's call t1, start belonging foreground , stay way until t=255. @ t1 pixel belong component cc_t1(p). 5 gray levels later, belong component cc_(t1+5)(p).

all of these connected components, obtained thresholds, potential candidates mser. (other type of components obtained if reverse black/foreground , white/background assignments thresholding).

parameters decide potential candidates indeed maximally stable:

  • delta

    for every region, variation measured:

    v_t = (size(cc_t(p))-size(cc_{t-delta}(p)))/size(cc_{t-delta}(p))

    for every possible threshold ti. if variation pixels local minimum of variation, is, v_t > v_{t-1} , v_t > v_{t+1}, region is maximally stable.

    the parameter delta indicates through how many different gray levels region need stable considered maximally stable. larger delta, less regions.

    note: in original paper introducing mser regions, actual formula is:

    v_t = (size(cc_{t+delta}(p))-size(cc_{t-delta}(p)))/size(cc_t(p))

    the opencv implementation uses different formula speed feature extraction.

  • minarea, maxarea

    if region maximally stable, can still rejected if has less minarea pixels or more maxarea pixels.

  • maxvariation

    back variation point 1 (the same function delta): if region maximally stable, can still rejected if the regions variation bigger maxvariation.

    that is, if region "relatively" stable (more stable neigbouring regions), may not "absolutely" stable enough. smaller maxvariation, less regions

  • mindiversity

    this parameter exists prune regions similar (e.g. differ few pixels).

    for region cc_t1(p) is maximally stable, find region cc_t2(p) "parent maximally stable region". means, t2 > t1, cc_t2(p) maximally stable region , there no t2 > tx > t1 such cc_tx(p) maximally stable. now, compare how bigger parent is:

    diversity = (size(cc_t2(p)) - size(cc_t1(p))) / size(cc_t1(p))

    if diversity smaller maxdiversity, remove region cc_t1(p). larger diversity, less regions.

    (for exact formula parameter had dig through program code)


Comments