Filtre de Kalman (KF)
Découvrez comment les filtres de Kalman optimisent l'estimation d'état dans l'IA, le suivi, la fusion de capteurs, la robotique, et plus encore, même avec des données bruitées.
Un filtre de Kalman (KF) est un algorithme puissant utilisé pour estimer l'état d'un système dynamique à partir d'une série de mesures incomplètes et bruitées. Développé par Rudolf E. Kálmán, son objectif initial était la navigation dans le domaine aérospatial, mais il est depuis devenu fondamental dans de nombreux domaines, notamment la robotique, l'économie et, en particulier, la vision par ordinateur (CV). Le filtre fonctionne selon un cycle en deux étapes : il prédit d'abord l'état futur du système et l'incertitude de cette prédiction, puis il met à jour son estimation en intégrant une nouvelle mesure. Ce processus lui permet de produire une estimation précise et fluide de l'état d'un objet, comme sa position et sa vitesse, même lorsque les données du capteur sont imprécises.
Fonctionnement des filtres de Kalman dans l'IA et la vision par ordinateur
Dans le contexte de l'IA, les filtres de Kalman sont principalement utilisés pour le suivi d'objets. Après qu'un modèle de détection d'objets comme Ultralytics YOLO a identifié des objets dans une image, un filtre de Kalman est utilisé pour prédire leurs positions dans l'image suivante. Cette prédiction est basée sur un modèle de mouvement, qui suppose généralement une vitesse constante ou une accélération constante.
Lorsque la trame suivante arrive, le modèle de détection fournit de nouvelles mesures (c'est-à-dire, de nouvelles coordonnées de boîte englobante). Le filtre de Kalman effectue ensuite son étape de "mise à jour", corrigeant sa prédiction initiale sur la base de ces nouvelles données. Ce processus est très efficace pour plusieurs raisons :
- Réduction du bruit : Il lisse les détections nerveuses, ce qui donne des trajectoires de suivi plus stables.
- Gestion de l'occlusion : Si un détecteur ne parvient pas à voir un objet pendant quelques images (par exemple, une voiture passe derrière un arbre), le filtre peut continuer à prédire sa position, ce qui permet au tracker de réidentifier l'objet lorsqu'il réapparaît.
- Estimation d'état : Elle fournit une compréhension plus complète de l'état d'un objet au-delà de sa position actuelle, y compris sa vitesse. Vous pouvez en apprendre davantage sur les concepts de base dans cette introduction visuelle détaillée aux filtres de Kalman.
La capacité du filtre à traiter les mesures de manière récursive le rend efficace sur le plan computationnel et idéal pour l'inférence en temps réel. De nombreux algorithmes de suivi populaires, tels que SORT (Simple Online and Realtime Tracking) et ByteTrack, utilisent un filtre de Kalman comme composant central de prédiction de mouvement. Les modèles Ultralytics comme YOLO11 exploitent ces trackers dans leur mode de suivi.
Applications concrètes
Les filtres de Kalman font partie intégrante d'innombrables systèmes modernes. Voici quelques exemples :
- Véhicules autonomes : Dans les véhicules autonomes, les filtres de Kalman sont essentiels pour la fusion de capteurs. Les données provenant de divers capteurs tels que les caméras, le GPS, le LiDAR et les IMU sont toutes bruitées et ont des taux de mise à jour différents. Le filtre combine ces données pour produire une estimation unique, très précise et fiable de la position, de la vitesse du véhicule et de la trajectoire des autres objets sur la route. Ceci est essentiel pour une navigation et une prise de décision sûres dans nos solutions d'IA pour l'automobile.
- Suivi des piétons pour la surveillance intelligente : Les systèmes de sécurité utilisent souvent le suivi d'objets pour surveiller les espaces publics. Après qu'un modèle YOLO détecte des piétons, un tracker basé sur le filtre de Kalman attribue à chaque personne un ID unique et les suit à travers la vue de la caméra. Cela permet des applications telles que le comptage automatisé d'objets, la détection d'anomalies et la gestion des files d'attente. La capacité de prédiction du filtre garantit que la trace d'une personne n'est pas perdue même si elle est temporairement masquée par d'autres personnes ou objets, une caractéristique clé pour améliorer la surveillance intelligente.
Concepts connexes et distinctions
Il est important de différencier le filtre de Kalman des termes associés :
- Filtre de Kalman étendu (EKF) : Le filtre de Kalman standard suppose que la dynamique du système est linéaire. Cependant, de nombreux systèmes du monde réel (comme une voiture qui tourne) sont non linéaires. L'EKF étend le filtre de Kalman pour gérer les systèmes non linéaires en linéarisant le modèle à chaque étape temporelle.
- Filtre de Kalman non parfumé (UKF) : Pour les systèmes hautement non linéaires où la linéarisation de l'EKF est insuffisante, l'UKF offre une alternative plus précise sans qu'il soit nécessaire de calculer les jacobiennes, comme l'explique cette introduction au filtre de Kalman non parfumé.
- Filtres particulaires : Ce sont une autre alternative pour les systèmes non linéaires et non gaussiens et sont souvent utilisés en robotique pour la localisation et la cartographie. Contrairement aux filtres de Kalman, ils représentent les distributions de probabilité à l'aide d'un ensemble d'échantillons aléatoires (particules).
Au sein du framework Ultralytics, vous pouvez trouver le filtre de Kalman implémenté comme un utilitaire pour nos algorithmes de suivi. Des bibliothèques comme OpenCV fournissent également leur propre implémentation du filtre de Kalman, qui est largement utilisée dans les projets de vision par ordinateur.