Descubre cómo el filtro de Kalman estima los estados del sistema en condiciones de incertidumbre. Aprende a utilizarlo para el seguimiento de objetos con Ultralytics y mejora la precisión de la IA.
Un filtro de Kalman (KF) es un algoritmo matemático recursivo que se utiliza para estimar el estado de un sistema dinámico a lo largo del tiempo. Introducida originalmente por Rudolf E. Kálmán, esta técnica es esencial para procesar datos que son inciertos, inexactos o contienen variaciones aleatorias, a menudo denominadas «ruido». Al combinar una serie de mediciones observadas a lo largo del tiempo que contienen imprecisiones estadísticas, el filtro de Kalman produce estimaciones de variables desconocidas que son más precisas que las basadas en una sola medición. En los campos del aprendizaje automático (ML) y la inteligencia artificial (IA), actúa como una herramienta fundamental para la modelización predictiva, suavizando los puntos de datos irregulares para revelar la verdadera tendencia subyacente.
El algoritmo opera en un ciclo de dos pasos: predicción y actualización (también conocida como corrección). Se parte de la base de que el sistema subyacente es lineal y que el ruido sigue una distribución gaussiana (curva de campana).
Aunque originalmente tiene sus raíces en la teoría de control y la navegación aeroespacial, el filtro de Kalman es ahora omnipresente en los modernos procesos de visión por computadora (CV).
Es útil diferenciar el filtro de Kalman estándar de sus variaciones y alternativas que se encuentran en la IA estadística:
En el Ultralytics , los filtros de Kalman se integran directamente en los algoritmos de seguimiento. No es necesario escribir las ecuaciones manualmente; se pueden aprovechar activando los modos de seguimiento. La Ultralytics permite gestionar conjuntos de datos y entrenar modelos que se pueden implementar fácilmente con estas capacidades de seguimiento.
Aquí hay un ejemplo conciso que utiliza Python realizar el seguimiento con YOLO26, donde el rastreador subyacente aplica automáticamente el filtrado de Kalman para suavizar los movimientos del cuadro delimitador:
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()}")
En la implementación en el mundo real, los datos rara vez son perfectos. Las cámaras sufren desenfoque por movimiento y los sensores experimentan ruido de señal . El filtro de Kalman actúa como un sofisticado mecanismo de limpieza de datos dentro del bucle de decisión. Al refinar continuamente las estimaciones, garantiza que los agentes de IA operen basándose en la realidad más probable en lugar de reaccionar a cada fallo momentáneo en el flujo de entrada. Esta fiabilidad es fundamental para aplicaciones críticas para la seguridad, desde la supervisión de las operaciones aeroportuarias hasta la automatización industrial de precisión.