У меня проблема понимания всех параметров backgroundsubtractormog2.
Я посмотрел в коде (находится в bfgf_gaussmix2.cpp
), но не вижу связи с упомянутой статьей. Например, Tb = varThreshold, но как называется Tb в статье?
Меня особенно интересует жирный помеченный параметр.
Давайте начнем с простого параметра [мои замечания]:
int nmixtures
Максимально допустимое количество компонентов смеси. Фактическое число определяется динамически на пиксель.
[установить 0 для GMG]
Учарь nShadowDetection
Значение для маркировки теневых пикселей в выходной маске переднего плана. Значение по умолчанию 127.
поплавок тау
Теневой порог. Тень обнаруживается, если пиксель является более темной версией фона. Тау — это порог, определяющий, насколько темнее может быть тень. Тау = 0,5 означает, что если пиксель более чем в два раза темнее, то это не тень.
Теперь о тех, кого я не понимаю:
поплавок backgroundRatio
Порог, определяющий, является ли компонент достаточно значимым для включения в фоновую модель (соответствует TB = 1-cf из статьи «какая бумага»). cf = 0.1 => TB = 0.9 по умолчанию. Для альфа = 0,001 это означает, что режим должен существовать приблизительно 105 кадров, прежде чем он будет считаться передним планом.
поплавок varThresholdGen
Порог для квадрата расстояния Махаланобиса, который помогает определить, когда образец близок к существующим компонентам (соответствует Tg). Если это не близко к любому компоненту, новый компонент генерируется. 3 сигма => Tg = 3 * 3 = 9 по умолчанию. Меньшее значение Tg генерирует больше компонентов. Более высокое значение Tg может привести к небольшому количеству компонентов, но они могут стать слишком большими. [Я не понимаю ни слова об этом]
В конструкторе переменная varThreshold используется. Это так же, как varThresholdGen?
Порог на квадрате расстояния Махаланобиса, чтобы решить, хорошо ли он описан фоновой моделью (см. Cthr ??). Этот параметр не влияет на фоновое обновление. Типичное значение может быть 4 сигма, то есть varThreshold = 4 * 4 = 16; (см. Tb ??).
float fVarInit
Начальная дисперсия для вновь созданных компонентов. Это влияет на скорость адаптации. Значение параметра основано на вашей оценке типичного стандартного отклонения от изображений. OpenCV использует 15 в качестве разумного значения.
float fVarMin
Параметр используется для дальнейшего управления дисперсией.
float fVarMax
Параметр используется для дальнейшего управления дисперсией.
поплавок FCT
Параметр снижения сложности. Этот параметр определяет количество выборок, необходимых для подтверждения существования компонента. CT = 0,05 — это значение по умолчанию для всех образцов. Установив CT = 0, вы получите алгоритм, очень похожий на стандартный Stauffer&Алгоритм Гримсона.
Кто-то задал почти такой же вопрос на сайте OpenCV, но без ответа.
Ну, я не думаю, что кто-то может сказать вам, какой параметр есть, если вы не знаете подробностей алгоритма, который вы используете. Кроме того, вам не нужно, чтобы кто-то говорил вам, какой параметр имеет значение, если вы знаете детали алгоритма. Я говорю это для подробных параметров (fCT, fVarMax и т. Д.), А не для простых (nmixtures, nShadowDetection и т. Д.).
Итак, я думаю, что вы должны прочитать документы, на которые есть ссылки в документации. Вот ссылки на документы 1, 2, 3.
А также вы должны прочитать этот бумага, которая является началом оценки фона.
После прочтения этих статей и проверки кода с помощью, я уверен, вы поймете, что это за параметры.
Удачи!
Других решений пока нет …