Learn how the Kalman Filter (KF) enhances [object tracking](https://docs.ultralytics.com/models/yolo26/) by estimating system states and reducing noise. Discover how to use [YOLO26](https://docs.ultralytics.com/models/yolo26/) with trackers like BoT-SORT on the [Ultralytics Platform](https://platform.ultralytics.com) for precise, real-time AI.
Un filtro di Kalman (KF) è un algoritmo matematico ricorsivo utilizzato per stimare lo stato di un sistema dinamico nel tempo. Introdotta originariamente da Rudolf E. Kálmán, questa tecnica è essenziale per l'elaborazione di dati incerti, imprecisi o che contengono variazioni casuali, spesso denominate "rumore". Combinando una serie di misurazioni osservate nel tempo che contengono imprecisioni statistiche, il filtro di Kalman produce stime di variabili sconosciute più precise di quelle basate su una singola misurazione. Nei campi dell' apprendimento automatico (ML) e dell' intelligenza artificiale (AI), funge da strumento fondamentale per la modellazione predittiva, livellando i punti dati irregolari per rivelare la vera tendenza sottostante.
L'algoritmo opera su un ciclo in due fasi: previsione e aggiornamento (noto anche come correzione). Presuppone che il sistema sottostante sia lineare e che il rumore segua una distribuzione gaussiana (curva a campana).
Sebbene originariamente radicato nella teoria del controllo e nella navigazione aerospaziale, il filtro di Kalman è ora onnipresente nelle moderne pipeline di visione artificiale (CV).
È utile distinguere il filtro di Kalman standard dalle sue varianti e alternative presenti nell' intelligenza artificiale statistica:
Ultralytics , i filtri di Kalman sono integrati direttamente negli algoritmi di tracciamento. Non è necessario scrivere le equazioni manualmente; è possibile sfruttarle abilitando le modalità di tracciamento. Ultralytics consente di gestire set di dati e modelli di addestramento che possono essere facilmente implementati con queste funzionalità di tracciamento.
Ecco un esempio conciso che utilizza Python eseguire il tracciamento con YOLO26, dove il tracker sottostante applica automaticamente il filtro di Kalman per smussare i movimenti del riquadro di delimitazione:
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()}")
Nell'implementazione nel mondo reale, i dati sono raramente perfetti. Le telecamere soffrono di sfocatura dovuta al movimento e i sensori subiscono rumore di segnale . Il filtro di Kalman agisce come un sofisticato meccanismo di pulizia dei dati all'interno del ciclo decisionale. Raffinando continuamente le stime, garantisce che gli agenti di IA operino sulla base della realtà più probabile anziché reagire a ogni momentaneo glitch nel flusso di input. Questa affidabilità è fondamentale per le applicazioni critiche per la sicurezza, dal monitoraggio delle operazioni aeroportuali alla precisa automazione industriale.
