Extended Kalman Filter (EKF)
Изучи расширенный фильтр Калмана (EKF) для оценки нелинейных состояний. Узнай, как он улучшает трекинг объектов в Ultralytics YOLO26 и автономных системах.
Расширенный фильтр Калмана (EKF) — это надежный математический алгоритм, предназначенный для оценки состояния динамической системы, поведение которой носит нелинейный характер. Хотя стандартный фильтр Калмана (KF) обеспечивает оптимальное решение для систем, движущихся по прямым линиям или подчиняющихся простым линейным уравнениям, физика реального мира редко бывает настолько предсказуемой. Большинство физических объектов, например дрон, преодолевающий сопротивление ветра, или роботизированная рука, вращающаяся по нескольким осям, движутся по криволинейным или сложным траекториям. EKF справляется с этой сложностью, создавая линейное приближение системы в определенный момент времени, что позволяет инженерам и специалистам по данным применять эффективные методы фильтрации в задачах предиктивного моделирования, даже когда лежащие в основе процессы имеют сложную механику.
Механизм и линеаризация#
Для работы со сложной динамикой EKF использует математический процесс, называемый линеаризацией, который по сути оценивает наклон функции в текущей рабочей точке. Часто это предполагает вычисление матрицы Якоби для приближенной оценки изменений системы за короткие интервалы времени. Алгоритм работает в рекурсивном цикле, состоящем из двух основных этапов: прогнозирования и обновления. На этапе прогнозирования фильтр проецирует текущее состояние вперед с помощью физической модели движения. На этапе обновления он корректирует этот прогноз, используя новые, часто зашумленные данные с таких датчиков, как гироскопы или акселерометры. Этот непрерывный цикл прогнозирования и корректировки помогает уменьшить шум данных и обеспечивает более плавную и точную оценку истинного состояния, чем любой отдельный датчик по отдельности.
Применение в компьютерном зрении#
В области компьютерного зрения (CV) расширенный фильтр Калмана играет важную роль в сохранении идентичности движущихся объектов. Продвинутые модели, такие как YOLO26, превосходно обнаруживают объекты на отдельных кадрах, но сами по себе не понимают непрерывность движения во времени. При интеграции EKF или аналогичной логики система отслеживания объектов может предсказать, где должна появиться ограничивающая рамка на следующем кадре видео, исходя из предыдущей скорости и траектории объекта. Это особенно полезно при работе с перекрытиями, когда объект временно закрыт от наблюдения: фильтр поддерживает «трек», оценивая положение объекта до тех пор, пока он снова не станет видимым. Этот метод необходим для надежного отслеживания множества объектов (MOT).
Практические применения#
Универсальность EKF делает его ключевой технологией в различных высокотехнологичных отраслях, где машинное обучение (ML) пересекается с физическим оборудованием:
- Автономные транспортные средства: Беспилотные автомобили полагаются на объединение данных с датчиков для безопасной навигации. EKF объединяет отдельные потоки данных от глобальных систем позиционирования (GPS), LiDAR и радара, чтобы вычислить точное положение и ориентацию автомобиля на дороге, компенсируя перебои сигнала и шум окружающей среды.
- Робототехника: Роботы, работающие в неструктурированных средах, используют алгоритмы одновременной локализации и построения карты (SLAM). EKF помогает роботу строить карту помещения и одновременно определять собственное местоположение на этой карте, компенсируя проскальзывание колес или дрейф датчиков для обеспечения точного перемещения.
- Оценка позы: В таких приложениях, как виртуальная реальность или спортивная аналитика, отслеживание суставов человека требует сглаживания нестабильных ключевых точек. Алгоритмы EKF уточняют выходные данные моделей глубокого обучения, создавая плавные и естественные анимации движений для систем распознавания действий.
Сравнение со связанными концепциями#
Чтобы понять особенности применения расширенного фильтра Калмана, полезно отличать его от связанных методов фильтрации:
- EKF и фильтр Калмана (KF): Стандартный KF математически оптимален и требует меньше вычислительных ресурсов, но не справляется с системами, обладающими высокой нелинейностью. EKF расширяет возможности KF, позволяя работать с нелинейными системами посредством приближения.
- EKF и фильтр частиц: Фильтр частиц хорошо работает с нелинейностью и негауссовским шумом, используя множество случайных выборок (частиц) для представления вероятности. Однако он требует значительно большей вычислительной мощности, поэтому EKF часто выбирают для встраиваемых систем с ограниченными ресурсами.
- EKF и несцентированный фильтр Калмана (UKF): Несцентированный фильтр Калмана представляет собой промежуточный вариант: он использует детерминированные точки выборки для работы с нелинейностью без сложных вычислений, необходимых EKF, хотя EKF остается отраслевым стандартом для многих систем управления.
Пример реализации#
В пакете ultralytics алгоритмы отслеживания используют концепции фильтрации Калмана для внутреннего сглаживания траекторий и сопоставления обнаружений между кадрами. При использовании высокоуровневых инструментов тебе не нужно вручную программировать математические операции с матрицами EKF, но понимание того, что именно на нем работает трекер, помогает настраивать параметры платформы Ultralytics.
Вот как запустить трекер с помощью модели YOLO, которая использует эти методы фильтрации для оценки состояния:
from ultralytics import YOLO
# Load the latest YOLO26 model (nano version for speed)
model = YOLO("yolo26n.pt")
# Track objects in a video source
# Trackers like BoT-SORT or ByteTrack use Kalman filtering logic internally
results = model.track(source="https://ultralytics.com/images/bus.jpg", tracker="botsort.yaml")
# Print the ID of the tracked objects
for r in results:
if r.boxes.id is not None:
print(f"Track IDs: {r.boxes.id.numpy()}")








