Extended Kalman Filter (EKF)
Исследуй расширенный фильтр Калмана (EKF) для оценки нелинейного состояния. Узнай, как он улучшает отслеживание объектов в Ultralytics YOLO26 и автономных системах.
Расширенный фильтр Калмана (EKF) — это надежный математический алгоритм, предназначенный для оценки состояния динамической системы, поведение которой является нелинейным. В то время как стандартный фильтр Калмана (KF) предоставляет оптимальное решение для систем, движущихся по прямым линиям или следующих простым линейным уравнениям, реальная физика редко бывает настолько предсказуемой. Большинство физических объектов, таких как дрон, сопротивляющийся ветру, или робот-манипулятор, вращающийся по нескольким осям, следуют по криволинейным или сложным траекториям. EKF решает эту проблему сложности, создавая линейную аппроксимацию системы в конкретный момент времени, что позволяет инженерам и специалистам по анализу данных применять эффективные методы фильтрации в задачах прогнозного моделирования даже в тех случаях, когда базовая механика системы сложна.
Link to this sectionМеханизм и линеаризация#
Для работы со сложной динамикой EKF использует математический процесс, называемый линеаризацией, который по сути оценивает наклон функции в текущей рабочей точке. Часто это подразумевает вычисление матрицы Якоби для аппроксимации того, как система изменяется на коротких интервалах. Алгоритм работает в рекурсивном цикле, состоящем из двух основных фаз: прогнозирование и обновление. На фазе прогнозирования фильтр проецирует текущее состояние вперед, используя физическую модель движения. На фазе обновления он корректирует эту проекцию, используя новые, часто зашумленные данные от датчиков, таких как гироскопы или акселерометры. Этот непрерывный цикл прогнозирования и коррекции помогает уменьшить шум данных и предоставляет более плавную и точную оценку истинного состояния, чем мог бы обеспечить любой отдельный датчик в одиночку.
Link to this sectionАктуальность в компьютерном зрении#
В области компьютерного зрения (CV) расширенный фильтр Калмана играет важнейшую роль в сохранении идентификации движущихся объектов. Передовые модели, такие как YOLO26, исключительно хорошо справляются с обнаружением объектов на отдельных кадрах, но они не обладают врожденным пониманием непрерывности движения во времени. Интегрируя EKF или аналогичную логику, система отслеживания объектов может предсказать, где должен появиться bounding box на следующем кадре видео, основываясь на предыдущей скорости и траектории объекта. Это особенно полезно для обработки перекрытий, когда объект временно скрыт из виду; фильтр сохраняет «трек» активным, оценивая положение объекта до тех пор, пока он снова не станет видимым — метод, необходимый для надежного многообъектного отслеживания (MOT).
Link to this sectionРеальные приложения#
Универсальность EKF делает его фундаментальной технологией в различных высокотехнологичных отраслях, где машинное обучение (ML) пересекается с физическим оборудованием:
- Автономные транспортные средства: Беспилотные автомобили полагаются на сенсорную интеграцию (sensor fusion) для безопасного передвижения. EKF объединяет различные потоки данных от глобальных систем позиционирования (GPS), LiDAR и радаров для вычисления точного положения и ориентации автомобиля на дороге, компенсируя пропадание сигнала или окружающий шум.
- Робототехника: Роботы, работающие в неструктурированных средах, используют алгоритмы одновременной локализации и построения карты (SLAM). EKF помогает роботу строить карту помещения и одновременно определять свое местоположение на этой карте, корректируя погрешности из-за проскальзывания колес или дрейфа датчиков для обеспечения точного движения.
- Оценка позы: В таких приложениях, как виртуальная реальность или спортивная аналитика, отслеживание суставов человека требует сглаживания «дрожащих» ключевых точек. Алгоритмы EKF дорабатывают выходные данные моделей глубокого обучения для создания плавных и естественных анимаций движения в системах распознавания действий.
Link to this sectionСравнение со смежными концепциями#
Полезно отличать расширенный фильтр Калмана от родственных методов фильтрации, чтобы понять его специфическую пользу:
- EKF против фильтра Калмана (KF): Стандартный KF математически оптимален и вычислительно дешевле, но он терпит неудачу, когда системы сильно нелинейны. EKF расширяет возможности KF для работы с нелинейными системами посредством аппроксимации.
- EKF против частичного фильтра (Particle Filter): Частичный фильтр отлично справляется с нелинейностью и негауссовым шумом, используя множество случайных выборок (частиц) для представления вероятности. Однако он требует значительно больших вычислительных мощностей, что делает EKF предпочтительным выбором для встроенных систем с ограниченными ресурсами.
- EKF против непахучего фильтра Калмана (UKF): Непахучий фильтр Калмана предлагает промежуточное решение, используя детерминированные точки выборки для обработки нелинейности без сложных вычислений, требуемых для EKF, хотя EKF остается промышленным стандартом для многих систем управления.
Link to this sectionПример реализации#
В пакете ultralytics алгоритмы отслеживания внутренне используют концепции фильтрации Калмана для сглаживания траекторий и сопоставления обнаружений между кадрами. Хотя ты не кодируешь матричную математику EKF вручную при использовании высокоуровневых инструментов, понимание того, что именно этот алгоритм обеспечивает работу трекера, помогает в настройке параметров для платформы Ultralytics (Ultralytics Platform).
Вот как инициализировать трекер с моделью 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()}")





