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