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

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

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

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

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

    • предыдущее состояние (так что я думаю, что это позиция, скорость, ускорение... объекта в предыдущем кадре) → Хорошо, это хорошо для меня.
    • измерение текущего состояния: вот что я не могу понять. Какими могут быть измерения?           - Позиция объекта в текущем кадре? Это смешно, потому что, если я знаю позицию объекта, все, что мне нужно, это просто нарисовать простой ограничивающий прямоугольник вокруг объекта. Почему мне сейчас нужен фильтр Калмана? Поэтому невозможно определить положение объекта в текущем кадре в качестве значения измерения.          - "Отслеживание на основе фильтра Kalman в системе видеонаблюдения" гласит:

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

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

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

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

4b9b3361

Ответ 1

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

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

ОК, но как это связано с фильтром Калмана?

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

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

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

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

Ответ 2

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

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

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

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

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

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

Ответ 3

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

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

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

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

Ответ 4

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

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

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

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

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

Ответ 5

У меня был этот вопрос несколько недель назад. Надеюсь, этот ответ поможет другим людям.

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

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

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

Ответ 6

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