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