Découvrez le filtre de Kalman étendu (EKF) pour l'estimation d'état non linéaire. Apprenez comment il améliore le suivi d'objets dans Ultralytics et les systèmes autonomes.
Le filtre de Kalman étendu (EKF) est un algorithme mathématique robuste conçu pour estimer l'état d'un système dynamique qui se comporte de manière non linéaire. Alors que le filtre de Kalman standard (KF) fournit une solution optimale pour les systèmes se déplaçant en ligne droite ou suivant des équations linéaires simples, la physique du monde réel est rarement aussi prévisible. La plupart des objets physiques, tels qu'un drone luttant contre la résistance au vent ou un bras robotique tournant sur plusieurs axes, suivent des trajectoires courbes ou complexes. L'EKF répond à cette complexité en créant une approximation linéaire du système à un moment donné, ce qui permet aux ingénieurs et aux scientifiques des données d'appliquer des techniques de filtrage efficaces aux tâches de modélisation prédictive, même lorsque la mécanique sous-jacente est compliquée.
Pour gérer des dynamiques complexes, l'EKF utilise un processus mathématique appelé linéarisation, qui estime essentiellement la pente d'une fonction au point de fonctionnement actuel. Cela implique souvent de calculer une matrice jacobienne pour estimer comment le système change sur de courts intervalles. L'algorithme fonctionne dans une boucle récursive composée de deux phases principales : la prédiction et la mise à jour. Dans la phase de prédiction, le filtre projette l'état actuel vers l'avant à l'aide d'un modèle physique de mouvement. Dans la phase de mise à jour, il corrige cette projection à l'aide de nouvelles données, souvent bruitées, provenant de capteurs tels que des gyroscopes ou des accéléromètres. Ce cycle continu de prédiction et de correction permet de réduire le bruit des données et fournit une estimation plus fluide et plus précise de l'état réel que ne pourrait le faire un seul capteur.
Dans le domaine de la vision par ordinateur (CV), le filtre de Kalman étendu joue un rôle essentiel dans le maintien de l'identité des objets en mouvement. Les modèles avancés tels que YOLO26 sont exceptionnels pour détecter des objets dans des images individuelles, mais ils ne comprennent pas intrinsèquement la continuité du mouvement dans le temps. En intégrant un EKF ou une logique similaire, un système de suivi d'objets peut prédire où un cadre de sélection devrait apparaître dans l'image vidéo suivante en fonction de sa vitesse et de sa trajectoire précédentes. Ceci est particulièrement utile pour gérer les occlusions, où un objet est temporairement masqué ; le filtre maintient la «track » active en estimant la position de l'objet jusqu'à ce qu' il redevienne visible, une technique essentielle pour un suivi multi-objets (MOT) robuste.
La polyvalence de l'EKF en fait une technologie fondamentale dans diverses industries de haute technologie où l'apprentissage automatique (ML) croise le matériel physique :
Il est utile de distinguer le filtre de Kalman étendu des méthodes de filtrage apparentées afin de comprendre son utilité spécifique .
In the ultralytics paquet, les algorithmes de suivi utilisent en interne les concepts de filtrage de Kalman pour lisser les
trajectoires et associer les détections entre les images. Bien que vous ne codiez pas manuellement les mathématiques de la matrice EKF lorsque vous utilisez des
outils de haut niveau, comprendre que cela alimente le tracker aide à configurer les paramètres pour le
Plate-forme Ultralytics.
Voici comment lancer un tracker avec un YOLO , qui utilise ces techniques de filtrage pour l'estimation d'état :
from ultralytics import YOLO
# Load the latest YOLO26 model (nano version for speed)
model = YOLO("yolo26n.pt")
# Track objects in a video source
# Trackers like BoT-SORT or ByteTrack use Kalman filtering logic 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()}")