Изучите расширенный фильтр Калмана (EKF) для нелинейной оценки состояния. Узнайте, как он улучшает отслеживание объектов в Ultralytics и автономных системах.
Расширенный фильтр Калмана (EKF) — это надежный математический алгоритм, предназначенный для оценки состояния динамической системы, которая ведет себя нелинейно. В то время как стандартный фильтр Калмана (KF) обеспечивает оптимальное решение для систем, движущихся по прямой линии или следующих простым линейным уравнениям, реальная физика редко бывает настолько предсказуемой. Большинство физических объектов, таких как дрон, борющийся с сопротивлением ветра, или роботизированная рука, вращающаяся по нескольким осям, следуют по кривым или сложным траекториям. EKF решает эту сложность путем создания линейной аппроксимации системы в определенный момент времени, что позволяет инженерам и специалистам по обработке данных применять эффективные методы фильтрации к задачам прогнозного моделирования, даже когда базовая механика сложна.
Для обработки сложной динамики EKF использует математический процесс, называемый линеаризацией, который по сути оценивает наклон функции в текущей рабочей точке. Это часто включает в себя вычисление матрицы Якоби для приблизительной оценки того, как система изменяется за короткие промежутки времени. Алгоритм работает в рекурсивном цикле, состоящем из двух основных фаз: прогнозирования и обновления. На фазе прогнозирования фильтр проецирует текущее состояние вперед, используя физическую модель движения. На этапе обновления он корректирует эту проекцию, используя новые, часто зашумленные данные с датчиков, таких как гироскопы или акселерометры. Этот непрерывный цикл прогнозирования и корректировки помогает уменьшить шумы в данных и обеспечивает более плавную и точную оценку истинного состояния, чем может обеспечить любой отдельный датчик в одиночку.
В области компьютерного зрения (CV) расширенный фильтр Калмана играет важную роль в поддержании идентичности движущихся объектов. Передовые модели, такие как YOLO26, отлично справляются с обнаружением объектов в отдельных кадрах, но по своей сути не понимают непрерывность движения во времени. Благодаря интеграции EKF или аналогичной логики, система отслеживания объектов может предсказать, где должна появиться ограничительная рамка в следующем видеокадре, исходя из предыдущей скорости и траектории объекта. Это особенно полезно для обработки окклюзий, когда объект временно скрыт от вида; фильтр сохраняетtrack, оценивая положение объекта до тех пор, пока он не станет снова видимым, что является важной техникой для надежного отслеживания нескольких объектов (MOT).
Универсальность EKF делает его основополагающей технологией в различных высокотехнологичных отраслях, где машинное обучение (ML) пересекается с физическим оборудованием:
Чтобы понять специфическую полезность расширенного фильтра Калмана, полезно отличать его от связанных методов фильтрации :
In the 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()}")