В приложении для зрения часто используются результаты каждого кадра в качестве измерения, например, расположение шара в каждом кадре является хорошим измерением.

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

С помощью некоторых алгоритмов (цветовой анализ, оптический поток ...) я могу получить двоичное изображение каждого видеокадра, в котором есть объект отслеживания (белые пиксели) и фон (черные пиксели) -> я знаю размер объекта , центроид объекта, положение объекта -> Просто нарисуйте ограничивающую рамку вокруг объекта -> Готово. Зачем мне здесь использовать фильтр Калмана?

Хорошо, кто-то сказал мне, что, поскольку я не могу обнаружить объект в каждом видеокадре из-за шума, мне нужно использовать фильтр Калмана для оценки положения объекта. Хорошо. Но, как я знаю, мне нужно предоставить вход для фильтра Калмана. Это предыдущее состояние и измерение.

предыдущее состояние (так что я думаю, что это позиция, скорость, ускорение ... объекта в предыдущем кадре) -> Хорошо, это нормально для меня.

измерение о текущем состоянии: вот что я не могу понять. Каким может быть измерение? - положение объекта в текущем кадре? Это забавно, потому что, если я знаю положение объекта, все, что мне нужно, это просто нарисовать простой ограничивающий прямоугольник (прямоугольник) вокруг объекта. Зачем мне здесь фильтр Калмана? Следовательно, невозможно принять положение объекта в текущем кадре в качестве значения измерения. - В статье «Отслеживание на основе фильтров Калмана в системе видеонаблюдения» говорится

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

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

Я думаю, что я сейчас в курсе. Я хочу использовать фильтр Калмана для отслеживания положения объекта, но мне нужно знать положение этого объекта в качестве входных данных фильтра Калмана. Что происходит?

И еще 1 вопрос, я не понимаю термин "число фильтра Калмана". В видеопоследовательности, если есть 2 объекта, нужно отслеживать -> нужно использовать 2 фильтра Калмана? Это что значит?

 Royi01 мар. 2015 г., 18:53
Джон, похоже, ты занят обработкой изображений - не могли бы вы помочь нам открыть эту специальную группу:area51.stackexchange.com/proposals/66531/computer-vision/72084 Просто проголосуйте на вопросы, набрав менее 10 голосов. Благодарю.

Ответы на вопрос(6)

чтобы дать вам начальную оценку чего-либо; Вы используете это, чтобы дать вамулучшенная оценка на основе ряда шумных оценок.

Чтобы это было легче понять, представьте, что вы измеряете что-то не динамическое, например рост взрослого человека. Вы измеряете один раз, но вы не уверены в точности результата, поэтому вы измеряете снова в течение 10 дней подряд, и каждое измерение немного отличается, скажем, с интервалом в несколько миллиметров. Итак, какое измерение вы должны выбрать в качестве наилучшего значения? Я думаю, что легко увидеть, что принимаясредний даст вам более точную оценку истинного роста человека, чем при использовании одного измерения.

Хорошо, но какое это имеет отношение к фильтру Калмана?

Фильтр Калмана в среднем принимает серию измерений, как указано выше, но длядинамические системы, Например, предположим, что вы измеряете положение марафонца на гоночной трассе, используя информацию, предоставленную GPS + передатчиком, прикрепленным к бегуну. GPS дает вам одно чтение в минуту. Но эти показания неточны, и вы хотите улучшить свои знания о текущей позиции бегуна. Вы можете сделать это следующим образом:

Шаг 1) Используя последние несколько показаний, вы можете оценить скорость бегуна и оценить, где он будет в любое время в будущем (этопрогнозирование часть фильтра Калмана).

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

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

 John20 янв. 2011 г., 18:27
Спасибо за хороший пример. Но что я не понимаю, так это об уравнении измерения фильтра Калмана при рассмотрении конкретной проблемы (отслеживание местоположения объекта в видеопоследовательности). Буду признателен, если вы сможете это объяснить. Спасибо
 Pruthvi P17 мая 2014 г., 12:36
очень красиво объяснил @carnieri

что этот ответ поможет другим людям.

Если вы можете получить хорошую сегментацию в каждом кадре (весь шар), вам не нужно использовать фильтр Калмана. Носегментация может дать вам набор несвязанных капель (только несколько частей шара). Проблема состоит в том, чтобы узнать, какие части (пятна) относятся к объекту или являются просто шумом. Используя фильтр Калмана, мы можем назначить капли около предполагаемой позиции как части объекта. Например. если радиус имеет радиус 10 пикселей, капли с расстоянием выше 15 не должны рассматриваться как часть объекта.Фильтр Калмана использует предыдущее состояние для прогнозирования текущего состояния. Но,использует текущее измерение (текущее положение объекта), чтобы улучшить свой следующий прогноз, Например. если транспортное средство находится в положении 10 (предыдущее состояние) и движется со скоростью 5 м / с, фильтр Калмана предсказывает следующую позицию в положении 15. Но если мы измерим положение объекта, мы обнаружим, что объект находится в позиция 18. Чтобы улучшить оценку, фильтр Калмана обновляет скорость до 8 м / с.

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

И для вас последний вопрос, вы правы. Это соответствует количеству отслеживаемых объектов (один фильтр Калмана на объект).

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

Вот некоторые из матриц, которые вам понадобятся, и я думаю, что они будут для вас. Поскольку положение мяча по осям x и y не зависит, я думаю, что проще иметь два фильтра, по одному для каждого. Оба будут выглядеть примерно так:

х = [позиция; скорость] // Это выход фильтра P = [1, 0; 0, 1] // Это неопределенность оценки, я не совсем уверен, с чего вам начинать, но она сойдет после того, как фильтр запустится. F = [1, дт; 0,1], когда вы делаете x * F, это будет предсказывать следующее местоположение мяча. Обратите внимание, что это предполагает, что мяч продолжает двигаться с той же скоростью, что и раньше, и просто обновляет позицию. Q = [0,0; 0, vSigma ^ 2] Это «шум процесса». Это одна из матриц, которые вы настраиваете, чтобы сделать фильтр преформ хорошо. В вашей системе скорость может измениться в любое время, но положение никогда не изменится, если скорость не изменила ее. Это смущает. Значение должно быть стандартным отклонением того, какими могут быть эти изменения скорости. z = [позиция в x или y] Это ваше измерение H = [1,0; 0,0] Это то, как ваши измерения применяются к вашему текущему состоянию. Поскольку вы измеряете только позицию, у вас есть только 1 в первом ряду. R = [?] Я думаю, вам понадобится только скаляр для R, что является ошибкой в ​​ваших измерениях.

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

Несколько хороших вещей для чтения:Кальман фильтрующий демо Еще один замечательный способ, прочитайте страницу, на которую ссылается третий абзац

измерениях. В вашем случае, измерение - это позиция x, y объекта, который был сегментирован вне кадра. Если вы можете идеально разделить шарик и только шарик от фона для каждого кадра, вам не понадобится фильтр Калмана, так как ваши измерения фактически не содержат шума.

В большинстве случаев идеальные измерения не могут быть гарантированы по ряду причин (изменение освещения, изменение фона, других движущихся объектов и т. Д.), Поэтому необходимо использовать способ фильтрации измерений для получения наилучшей оценки истинного трека. ,

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

Модель может быть любой, которая моделирует систему, которую вы пытаетесь отслеживать. Обычная модель - это модель с постоянной скоростью, которая предполагает, что объект будет продолжать двигаться с той же скоростью, что и в предыдущей оценке. Это не означает, что эта модель не будет отслеживать что-либо с изменяющейся скоростью, поскольку измерения будут отражать изменение скорости и влиять на оценку.

Существует несколько способов решить проблему отслеживания нескольких объектов одновременно. Самый простой способ - использовать независимый фильтр Калмана для каждой дорожки. Вот где фильтр Калмана действительно начинает окупаться, потому что, если вы используете простой подход, состоящий только в использовании центроида ограничивающей рамки, что произойдет, если два объекта пересекаются друг с другом? Можете ли вы еще раз отличить, какой объект, который после того, как они отделяются? С фильтром Калмана у вас есть модель и прогноз, которые помогут сохранить правильность пути, когда другие объекты мешают.

Есть также более продвинутые способы совместного отслеживания нескольких объектов, таких какJPDAF.

 John20 янв. 2011 г., 17:56
Здравствуйте, спасибо за объяснение. Не могли бы вы объяснить часть "ИЗМЕРЕНИЕ текущего состояния ....." в моем опубликованном вопросе.

качестве измерения, например, расположение шара в каждом кадре является хорошим измерением.

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

Измерение не должно быть положением, скоростью или ускорением. Измерением может быть любая величина, которую вы можете наблюдать за один раз. Если вы можете определить модель, которая будет предсказывать ваше измерение в следующий момент времени, учитывая текущее измерение, фильтр Калмана может помочь вам уменьшить шум.

Я бы посоветовал вам ознакомиться с более вводными материалами по обработке изображений и компьютерному зрению. Эти материалы почти всегда будут покрывать фильтр Калмана.

Вот курс SIGGRAPH по трекерам. Это не вводный, но должен дать вам более глубокий взгляд на тему.http://www.cs.unc.edu/~tracker/media/pdf/SIGGRAPH2001_CoursePack_08.pdf

 John20 янв. 2011 г., 18:20
Здравствуйте, спасибо за объяснение. Мне интересен ваш ответ. Если уравнение состояния имеет вид x (k) = A.x (k-1) + B.u (k-1) + noise; и уравнение измерения - это y (k) = B.u (k) + шум. И если измерение - это число больших двоичных объектов, можете ли вы привести простой пример уравнения измерения? (Предполагается, что состояние системы - это положение, скорость, ускорение). Большое спасибо.

Ваш ответ на вопрос