Подтвердить что ты не робот

Точное значение параметров, заданных для инициализации MSER в OpenCV 2.4.x?

Справочное руководство OpenCV (2.4.x) утверждает, что конструктор, который инициализирует MSER, требует следующих параметров:

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

Я имею дело с изображениями в оттенках серого. Каково использование параметров "delta", "max_variation" и "min_diversity"? Какое свойство MSER поддерживает эти параметры?

Я много пробовал найти точный ответ на этот вопрос, и я мог найти только небольшую информацию на следующих страницах (ни одна из которых не была особенно полезной для того, чтобы сказать мне, что именно эти 3 параметра контролируют): 1. OpenCV wiki 2. Википедия описание MSER 3. qaru.site/info/tagged/...

Пожалуйста, помогите!

4b9b3361

Ответ 1

Я предполагаю, что вы знаете основы того, как работает обнаружение функции MSER (если нет, Wikipedia, а краткое изложение следует).

У вас есть два типа зон 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 и 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

    Если область максимально стабильна, ее все равно можно отбросить, если она имеет меньше, чем minArea пикселей или больше, чем maxArea пикселей.

  • maxVariation

    Вернемся к варианту из точки 1 (та же функция, что и для дельта): если область максимально стабильна, ее можно все же отбросить, если изменение областей больше, чем maxVariation.

    То есть, даже если регион "относительно" устойчив (более стабилен, чем районы соседей), он может быть недостаточно "абсолютно" достаточно стабильным. Для меньшего maxVariation вы получите меньше регионов.

  • minDiversity

    Этот параметр существует для обрезки регионов, которые слишком похожи (например, отличаются только на несколько пикселей).

    Для области 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). Для большего разнообразия вы получите меньше регионов.

    (Для точной формулы для этого параметра мне пришлось прорыть код программы)

Ответ 2

  • Delta​​strong > delta, в коде он сравнивает   (size_{i}-size_{i-delta})/size_{i-delta}. по умолчанию 5.
  • MinArea обрезает область, которая меньше minArea. по умолчанию 60.
MaxArea обрезает область, которая больше, чем maxArea. по умолчанию 14400. Максимальное отклонение Сокращение площади имеет размер для своих детей. default 0.25 MinDiversity трассирует назад, чтобы отключить mser с разнесением < min_diversity. значение по умолчанию 0.2. MaxEvolution для цветного изображения, этапов эволюции. по умолчанию 200. AreaThreshold порог области, вызывающий повторную инициализацию. по умолчанию 1.01. MinMargin игнорировать слишком малый запас. по умолчанию 0.003. EdgeBlurSize размер диафрагмы для размытия края. по умолчанию 5. Маска. Дополнительная маска ввода, которая отмечает области, где мы должны обнаруживать  функции

Ответ 3

Я нашел ответ на свой вопрос благодаря этой ссылке.

MSER получают путем изменения порога интенсивности T от 0 до 255. Delta решает наименьшее количество этого изменения. Таким образом, размер {i} означает размер или область области с интенсивностью я в полутоновом изображении.

Скоро вернется объяснение MaxVariation и MinDiversity.

Ответ 4

Matlab имеет почти идентичную функцию MSER. В Mathworks вы можете очень хорошо объяснить, каковы эти параметры, на мой взгляд.

Я скопирую 2 определения входов, которые вы запрашиваете (для цветных изображений нет параметров в Matlab):

  • _delta​​STRONG > . Размер шага между пороговыми уровнями интенсивности, указанными как пара, разделенная запятыми, состоящая из "ThresholdDelta" и числового значения в диапазоне (0,100). Это значение выражается в процентах от диапазона типов входных данных, используемых при выборе экстремальных областей при тестировании для их стабильности. Уменьшите это значение, чтобы вернуть больше регионов. Типичные значения варьируются от 0,8 до 4.

  • _max_variation. Максимальное изменение площади между экстремальными областями при изменяющихся порогах интенсивности, заданное как пара, разделенная запятой, состоящая из "MaxAreaVariation" и положительного скалярного значения. Увеличение этого значения приводит к увеличению числа регионов, но они могут быть менее стабильными. Стабильные области очень похожи по размеру с различными порогами интенсивности. Типичные значения варьируются от 0,1 до 1,0.

Однако, как пишет penelope, оригинальная статья очень полезна для более глубокого понимания полного процесса. Кроме того, я даю эту ссылку на очень интересное сравнение между хорошо известными детекторами функций.