Коррекция ковариации ошибок измерения, состояния и оценки состояния
Объект фильтра Калмана предназначен для отслеживания. Его можно использовать для прогнозирования будущего местоположения физического объекта, уменьшения шума в обнаруженном местоположении или для облегчения связывания нескольких физических объектов с соответствующими дорожками. Для каждого физического объекта можно настроить объект фильтра Калмана для отслеживания нескольких объектов. Для использования фильтра Калмана объект должен двигаться с постоянной скоростью или постоянным ускорением.
Алгоритм фильтра Калмана включает два этапа, прогнозирование и коррекцию (также известный как этап обновления). На первом шаге для прогнозирования текущего состояния используются предыдущие состояния. На втором этапе для коррекции состояния используется текущее измерение, например местоположение объекта. Фильтр Калмана реализует дискретную временную линейную систему State-Space System.
Примечание
Чтобы упростить настройку фильтра Калмана, можно использовать 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
дополнительно конфигурирует модель управления, В.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] Блэкман, С. Слежение за несколькими целями с применением радаров. Artech House, Inc., стр. 93, 1986.