Узнайте, как фильтры Калмана оптимизируют оценку состояния в ИИ, отслеживании, объединении датчиков, робототехнике и многом другом, даже при наличии зашумленных данных.
Фильтр Калмана (KF) — это мощный рекурсивный математический алгоритм, используемый для оценки состояния динамической системы во времени. Первоначально разработанный Рудольфом Э. Калманом в 1960 году, он работает путем объединения ряда зашумленных, неполных или неточных измерений для получения оценки, которая статистически более точна, чем любое отдельное измерение. В контексте машинного обучения (ML) и искусственного интеллекта (AI) фильтр Калмана имеет основополагающее значение для задач, требующих прогнозного сглаживания, таких как отслеживание объектов в видеопотоках, где он помогает прогнозировать будущее положение объекта на основе его прошлой траектории.
Основная сила фильтра Калмана заключается в его двухэтапном цикле: прогнозировании и корректировке. Он не просто анализирует текущую точку данных, но и учитывает историю системы, чтобы сделать обоснованное предположение о текущем состоянии.
Этот цикл повторяется непрерывно, позволяя фильтру уточнять свои оценки и адаптироваться к изменениям в режиме реального времени.
Хотя фильтр Калмана возник в теории управления и аэрокосмической отрасли (он широко использовался в навигационном компьютере «Аполло»), сейчас он является неотъемлемой частью современных конвейеров компьютерного зрения (CV).
Полезно различать стандартный фильтр Калмана от его вариаций и связанных с ним методов:
В 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-сигналы дрейфуют, а радары могут быть зашумлены. Фильтр Калмана действует как важный механизм очистки данных в цикле принятия решений. Постоянно уточняя оценки, он гарантирует, что агенты искусственного интеллекта и аналитические системы работают на основе наиболее вероятной реальности, а не сырых, зашумленных входных данных. Эта надежность имеет важное значение для критически важных для безопасности приложений, от мониторинга работы аэропортов до обеспечения точного роботизированного производства.