Коррекция измерения, состояния и состояния ошибки расчета ковариации
Объект фильтра Калмана предназначен для отслеживания. Можно использовать его, чтобы предсказать будущее местоположение физического объекта, уменьшить шум в обнаруженном местоположении или помочь связать несколько физических объектов с их соответствующими треками. Объект фильтра Калмана может быть сконфигурирован для каждого физического объекта для сопровождения нескольких объектов. Чтобы использовать фильтр Калмана, объект должен двигаться с постоянной скоростью или постоянным ускорением.
Алгоритм фильтра Калмана включает два шага, предсказание и коррекцию (также известный как шаг обновления). Первый шаг использует предыдущие состояния, чтобы предсказать текущее состояние. Второй шаг использует текущее измерение, такое как расположение объекта, чтобы исправить состояние. Фильтр Калмана реализует дискретное время, линейную Систему в пространстве состояний.
Примечание
Чтобы облегчить настройку фильтра Калмана, можно использовать configureKalmanFilter
объект для настройки фильтра Калмана. Он настраивает фильтр для отслеживания физического объекта в Декартовой системе координат, перемещаясь с постоянной скоростью или постоянным ускорением. Статистика одинаковая по всем размерностям. Если вам нужно сконфигурировать фильтр Калмана с различными допущениями, не используйте функцию, используйте этот объект непосредственно.
В системе пространства состояний модель перехода состояния, A и модель измерения, H, заданы следующим образом:
Переменная | Значение |
---|---|
A | [1 1 0 0; 0 1 0 0; 0 0 1 1; 0 0 0 1] |
H | [1 0 0 0; 0 0 1 0] |
возвращает фильтр Калмана для системы дискретного времени, постоянной скорости.kalmanFilter
= vision.KalmanFilter
дополнительно конфигурирует модель управления, B.kalmanFilter
= vision.KalmanFilter(StateTransitionModel
,MeasurementModel
)
конфигурирует свойства объекта фильтра Калмана, заданные как один или несколько kalmanFilter
= vision.KalmanFilter(StateTransitionModel
,MeasurementModel
,ControlModel
,Name,Value
)Name,Value
аргументы в виде пар. Неопределенные свойства имеют значения по умолчанию.
Используйте predict
и correct
функции, основанные на результатах обнаружения. Используйте distance
функция для поиска наилучших соответствий.
Когда отслеживаемый объект обнаруживается, используйте predict
и correct
функции с объектом фильтра Калмана и измерение обнаружения. Вызовите функции в следующем порядке:
[...] = predict(kalmanFilter
); [...] = correct(kalmanFilter
,measurement);
Когда отслеживаемый объект не обнаружен, вызовите predict
функцию, но не correct
функция. Когда отслеживаемый объект отсутствует или закрыт, измерение не доступно. Настройте функции с помощью следующей логики:
[...] = predict(kalmanFilter
); If measurement exists [...] = correct(kalmanFilter
,measurement); end
Если отслеживаемый объект становится доступным после отсутствия в течение последних t -1 непрерывных временных шагов, можно вызвать predict
функция t раз. Этот синтаксис особенно полезен для обработки асинхронного видео. Для примера,
for i = 1:k [...] = predict(kalmanFilter); end [...] = correct(kalmanFilter,measurement)
[1] Уэлч, Грег и Гэри Бишоп, введение в фильтр Калмана, TR 95-041. Университет Северной Каролины в Чапел-Хилл, департамент компьютерных наук.
[2] Blackman, S. Multi-Target Tracking with Radar Applications. Artech House, Inc., pp. 93, 1986.