Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Filtre de Kalman étendu (EKF)

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.

Mécanisme et linéarisation

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.

Pertinence dans la vision par ordinateur

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.

Applications concrètes

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 :

  • Véhicules autonomes: Les voitures autonomes s'appuient sur la fusion de capteurs pour naviguer en toute sécurité. Un EKF fusionne différents flux de données provenant des systèmes de positionnement global (GPS), du LiDAR et du radar afin de calculer la position et l'orientation précises du véhicule sur la route, en compensant les pertes de signal ou les bruits environnementaux.
  • Robotique: les robots opérant dans des environnements non structurés utilisent des algorithmes de localisation et de cartographie simultanées (SLAM) . L'EKF aide un robot à construire une carte d'une pièce tout en déterminant simultanément sa propre position sur cette carte, en corrigeant le patinage des roues ou la dérive des capteurs afin de garantir un mouvement précis.
  • Estimation de la pose: dans des applications telles que la réalité virtuelle ou l'analyse sportive, le suivi des articulations humaines nécessite de lisser les points clés instables. Les algorithmes EKF affinent les résultats des modèles d'apprentissage profond afin de créer des animations fluides et naturelles pour les systèmes de reconnaissance des actions.

Comparaison avec des concepts connexes

Il est utile de distinguer le filtre de Kalman étendu des méthodes de filtrage apparentées afin de comprendre son utilité spécifique .

  • EKF vs filtre de Kalman (KF): le KF standard est mathématiquement optimal et moins coûteux en termes de calcul, mais échoue lorsque les systèmes sont fortement non linéaires. L' EKF étend le KF pour fonctionner avec des systèmes non linéaires via l'approximation.
  • EKF vs filtre particulaire: un filtre particulaire gère très bien la non-linéarité et le bruit non gaussien en utilisant de nombreux échantillons aléatoires (particules) pour représenter la probabilité. Cependant, il nécessite une puissance de calcul nettement supérieure, ce qui fait de l'EKF un choix préféré pour les systèmes embarqués aux ressources limitées.
  • EKF vs filtre de Kalman non parfumé (UKF) : le filtre de Kalman non parfumé offre un compromis, utilisant des points d'échantillonnage déterministes pour gérer la non-linéarité sans les calculs complexes requis par l' EKF, bien que ce dernier reste la norme industrielle pour de nombreux systèmes de contrôle.

Exemple de mise en œuvre

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()}")

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant