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