Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

Фильтр Калмана (ФК)

Узнайте, как фильтры Калмана оптимизируют оценку состояния в ИИ, отслеживании, объединении датчиков, робототехнике и многом другом, даже при наличии зашумленных данных.

Фильтр Калмана (KF) — это мощный рекурсивный математический алгоритм, используемый для оценки состояния динамической системы во времени. Первоначально разработанный Рудольфом Э. Калманом в 1960 году, он работает путем объединения ряда зашумленных, неполных или неточных измерений для получения оценки, которая статистически более точна, чем любое отдельное измерение. В контексте машинного обучения (ML) и искусственного интеллекта (AI) фильтр Калмана имеет основополагающее значение для задач, требующих прогнозного сглаживания, таких как отслеживание объектов в видеопотоках, где он помогает прогнозировать будущее положение объекта на основе его прошлой траектории.

Как работает фильтр Калмана

Основная сила фильтра Калмана заключается в его двухэтапном цикле: прогнозировании и корректировке. Он не просто анализирует текущую точку данных, но и учитывает историю системы, чтобы сделать обоснованное предположение о текущем состоянии.

  1. Этап прогнозирования: алгоритм использует физическую модель (например, стандартные кинематические уравнения) для прогнозирования текущего состояния системы на основе предыдущего состояния. Например, если автомобиль двигался на север со скоростью 60 миль в час одну секунду назад, фильтр прогнозирует, что сейчас он находится дальше на север. Он также оценивает неопределенность или «ковариацию ошибки», связанную с этим прогнозом.
  2. Шаг корректировки (обновления): когда поступает новое измерение — например, от датчика GPS или модели обнаружения объектов — фильтр сравнивает эти наблюдаемые данные со своим прогнозом. Он вычисляет средневзвешенное значение, называемое коэффициентом Калмана, придавая больший вес значению (прогнозу или измерению) с меньшей неопределенностью. В результате получается обновленная, «скорректированная» оценка состояния.

Этот цикл повторяется непрерывно, позволяя фильтру уточнять свои оценки и адаптироваться к изменениям в режиме реального времени.

Приложения в области ИИ и компьютерного зрения

Хотя фильтр Калмана возник в теории управления и аэрокосмической отрасли (он широко использовался в навигационном компьютере «Аполло»), сейчас он является неотъемлемой частью современных конвейеров компьютерного зрения (CV).

  • Отслеживание объектов в видео: передовые алгоритмы отслеживания, такие как BoT-SORT и ByteTrack, используют фильтры Калмана для сохранения идентичности объектов в разных кадрах видео. Когда модель обнаружения, такая как YOLO26, идентифицирует человека или транспортное средство, фильтр Калмана предсказывает, где будет находиться ограничительная рамка в следующем кадре. Если объект временно скрыт (не виден), предсказание фильтра помогает системе «запомнить», где должен находиться объект, предотвращая смену идентификатора.
  • Сенсорная фьюжн для робототехники: в искусственном интеллекте в робототехнике машины часто полагаются на несколько датчиков — камеры, LiDAR и IMU — для навигации. Фильтр Калмана объединяет эти разрозненные источники данных, чтобы уменьшить шум. Например, если датчики колес робота проскальзывают (показывая движение, которого нет), визуальные данные, обработанные алгоритмами SLAM, могут скорректировать оценку положения с помощью фильтра.

Дифференциация смежных понятий

Полезно различать стандартный фильтр Калмана от его вариаций и связанных с ним методов:

  • Фильтр Калмана против расширенного фильтра Калмана (EKF): Стандартный KF предполагает, что система следует линейным уравнениям (прямолинейное движение). Реальные системы, такие как дрон, выполняющий поворот, часто являются нелинейными. EKF обрабатывает их путем линеаризации динамики системы на каждом шаге, что делает его более подходящим для сложной навигации автономных транспортных средств.
  • Фильтр Калмана против фильтра частиц: в то время как фильтры Калмана предполагают, что ошибки следуют гауссовому (колоколообразному) распределению, фильтры частиц используют рой случайных выборок для моделирования вероятности. Фильтры частиц более гибки в отношении негауссовых шумов, но значительно более вычислительно затратны, что влияет на скорость вывода в реальном времени.

Пример реализации

В ultralytics экосистеме, фильтры Калмана интегрированы непосредственно в модули отслеживания. Вы можете без труда воспользоваться этой возможностью, используя track режим с YOLO . Базовый трекер автоматически использует фильтрацию Калмана для сглаживания траекторий обнаруженных объектов.

Вот как начать отслеживание с помощью YOLO26, который неявно использует эти методы оценки:

from ultralytics import YOLO

# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")

# Perform tracking on a video file
# The tracker (e.g., BoT-SORT) uses a Kalman Filter 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()}")

Почему это важно для качества данных

В реальных условиях данные датчиков редко бывают идеальными. Камеры страдают от смазывания изображения при движении, GPS-сигналы дрейфуют, а радары могут быть зашумлены. Фильтр Калмана действует как важный механизм очистки данных в цикле принятия решений. Постоянно уточняя оценки, он гарантирует, что агенты искусственного интеллекта и аналитические системы работают на основе наиболее вероятной реальности, а не сырых, зашумленных входных данных. Эта надежность имеет важное значение для критически важных для безопасности приложений, от мониторинга работы аэропортов до обеспечения точного роботизированного производства.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас