Фильтр Калмана (ФК)
Узнайте, как фильтры Калмана оптимизируют оценку состояния в ИИ, отслеживании, объединении датчиков, робототехнике и многом другом, даже при наличии зашумленных данных.
Фильтр Калмана (ФК) - это рекурсивный математический алгоритм, используемый для оценки состояния динамической
системы из серии неполных и зашумленных измерений. Первоначально разработанный
Рудольфом Э. Калманом в 1960 году, этот алгоритм стал
стал краеугольным камнем в самых разных областях - от аэрокосмической навигации до
машинного обучения (ML). В контексте
искусственного интеллекта (ИИ), фильтр Калмана
Фильтр Калмана ценится в первую очередь за способность "сглаживать" потоки данных, предсказывая будущее местоположение объекта
на основе его прошлого движения, даже если показания датчиков нестабильны или отсутствуют.
Как работает фильтр Калмана
Фильтр Калмана работает в непрерывном двухшаговом цикле, который со временем уточняет свои оценки:
-
Прогнозирование (обновление времени): Фильтр оценивает текущее состояние системы (например, положение и
скорости) на основе предыдущего состояния и физической модели движения. Он также предсказывает неопределенность (ковариацию)
этой оценки.
-
Обновление (обновление измерений): Когда поступает новое измерение (например, данные с датчика), фильтр
сравнивает его с прогнозом. Он рассчитывает средневзвешенное значение, придавая больший вес источнику с меньшей
неопределенности, чтобы получить скорректированную оценку состояния.
Этот цикл "предсказание-коррекция" позволяет фильтру Калмана действовать как оптимальный оценщик, минимизируя среднюю
среднеквадратичную ошибку отслеживаемых параметров.
Актуальность в области искусственного интеллекта и компьютерного зрения
В современном компьютерном зрении (КЗ) фильтр Калмана является стандартным компонентом.
Фильтр Калмана является стандартным компонентом
систем слежения за объектами. В то время как
модели глубокого обучения, такие как
YOLO11 отлично справляются с
обнаружения объектов в отдельных кадрах, они не
по своей природе не понимают временной непрерывности.
Фильтры Калмана устраняют этот пробел за счет "отслеживания по обнаружению". Как только объект обнаружен, фильтр
создаетtrack" и предсказывает, где
в следующем кадре. Это обеспечивает
два основных преимущества:
-
Сглаживание траекторий: Уменьшает дрожание координат ограничительной рамки, вызванное непоследовательными
обнаружения.
-
Обработка окклюзии: Если объект на короткое время закрыт (окклюзирован) и не обнаружен, фильтр Калмана
продолжает предсказывать его положение, позволяя системе повторно соотнести объект с его идентификатором при повторном появлении.
Сложные трекеры, такие как BoT-SORT и
ByteTrack, используют фильтры Калмана для
моделирования движения.
Применение в реальном мире
Фильтр Калмана широко распространен в технологиях, требующих точной оценки по зашумленным данным.
-
Автономные транспортные средства: Самоуправляемые автомобили используют
слияние датчиков для объединения данных с GPS, LiDAR и
камер. Фильтр Калмана объединяет эти данные для получения единой, высокоточной оценки положения автомобиля и траектории движения близлежащих динамических объектов.
положения автомобиля и траектории движения близлежащих динамических объектов, обеспечивая безопасную
навигацию.
-
Робототехника: в робототехнике KF имеет большое значение
для одновременной локализации и картографирования(SLAM). Роботы используют его для оценки своей ориентации и местоположения на карте с поправкой на проскальзывание колес и дрейф датчиков.
дрейфа.
-
Спортивная аналитика: В
В спортивном анализе на основе искусственного интеллекта фильтры Калмана track мяч и игроков, сглаживая 2D/3D-координаты для расчета скорости, расстояния и тактических
формации.
Реализация фильтра Калмана
В ultralytics пакет, фильтры Калмана интегрированы непосредственно в модули отслеживания. Пользователи могут
использовать этот мощный алгоритм автоматически, включив
режим track.
from ultralytics import YOLO
# Load a YOLO11 model (object detector)
model = YOLO("yolo11n.pt")
# Track objects in a video
# The tracker (e.g., BoT-SORT) uses a Kalman Filter internally to smooth trajectories
results = model.track(source="https://ultralytics.com/images/bus.jpg", tracker="botsort.yaml")
Связанные понятия
Важно отличать стандартный фильтр Калмана от его разновидностей:
-
Расширенный фильтр Калмана (Extended Kalman Filter, EKF):
Стандартный KF предполагает линейную динамику движения. EKF используется для нелинейных систем (например, для робота, движущегося по кривой) путем линеаризации модели вокруг текущей оценки.
робот, движущийся по кривой) путем линеаризации модели вокруг текущей оценки.
-
Фильтр частиц: В отличие от KF, который предполагает гауссовское распределение шума,
фильтры частиц используют набор случайных выборок для
что делает их пригодными для решения нелинейных и негауссовских задач, хотя зачастую это требует больших вычислительных затрат.
хотя зачастую с большими вычислительными затратами.
-
Обнаружение объектов: Обнаружение
определяет , что находится на изображении; отслеживание (с помощью KF) определяет , куда оно перемещается с течением времени.