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

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

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

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

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

Алгоритм работает по двухэтапному циклу: прогнозирование и обновление (также известное как коррекция). Он предполагает, что базовая система является линейной, а шум подчиняется гауссовому распределению (колоколообразная кривая).

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

Применение в компьютерном зрении и искусственном интеллекте

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

  • Отслеживание объектов: это наиболее распространенный случай использования. Когда модель обнаружения, такая как YOLO26, идентифицирует объект в кадре видео, она предоставляет статический снимок. Чтобы понять движение, трекеры, такие как BoT-SORT, используют фильтры Калмана для связывания обнаружения в разных кадрах. Если объект временно закрыт (не виден), фильтр использует предыдущую скорость объекта для прогнозирования его местоположения, предотвращая потерюtrack системой или переключение идентификаторов.
  • Сенсорная фьюжн в робототехнике: в робототехнике машины должны перемещаться с помощью нескольких шумовых датчиков. Робот-доставщик может использовать GPS (который может дрейфовать), кодировщики колес (которые могут проскальзывать) и IMU (которые являются шумовыми). Фильтр Калмана объединяет эти разрозненные входы, чтобы обеспечить единые, надежные координаты для навигации, необходимые для безопасной эксплуатации автономных транспортных средств.

Различение смежных понятий

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

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

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

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

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

from ultralytics import YOLO

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

# Run tracking on a video source
# The 'botsort' tracker uses Kalman Filters internally for state estimation
results = model.track(source="traffic_video.mp4", tracker="botsort.yaml")

# Process results
for result in results:
    # Access the tracked IDs (assigned and maintained via KF logic)
    if result.boxes.id is not None:
        print(f"Tracked IDs in frame: {result.boxes.id.cpu().numpy()}")

Важность для качества данных

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

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

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

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