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 mathématique récursif utilisé pour estimer l'état d'un système dynamique à partir d'une série de mesures incomplètes et bruyantes.
dynamique à partir d'une série de mesures incomplètes et bruyantes. Développé à l'origine par
Rudolf E. Kálmán en 1960, cet algorithme est devenu une
est devenu une pierre angulaire dans des domaines allant de la navigation aérospatiale à l'apprentissage automatique.
l'apprentissage automatique (ML). Dans le contexte de
l'intelligence artificielle (IA), le filtre de Kalman
est principalement apprécié pour sa capacité à "lisser" les flux de données, en prédisant l'emplacement futur d'un objet sur la base de ses mouvements passés, même lorsque les données ne sont pas disponibles.
d'un objet sur la base de ses mouvements passés, même lorsque les relevés des capteurs sont erratiques ou manquants.
Fonctionnement du filtre de Kalman
Le filtre de Kalman fonctionne selon un cycle continu en deux étapes qui affine ses estimations au fil du temps :
-
Prédiction (mise à jour temporelle) : Le filtre estime l'état actuel du système (par exemple, la position et la vitesse) sur la base de l'état précédent et d'un modèle de mouvement physique.
position et vitesse) sur la base de l'état précédent et d'un modèle de mouvement physique. Il prédit également l'incertitude (covariance) de cette estimation.
cette estimation.
-
Mise à jour (mise à jour des mesures) : Lorsqu'une nouvelle mesure arrive (par exemple, les données d'un capteur), le filtre la compare à la prédiction.
la compare à la prédiction. Il calcule une moyenne pondérée - en donnant plus de poids à la source présentant moins d'incertitude - pour produire une estimation corrigée de l'état.
pour produire une estimation corrigée de l'état.
Cette boucle "prédire-corriger" permet au filtre de Kalman d'agir comme un estimateur optimal, en minimisant l'erreur quadratique moyenne des paramètres qu'il suit.
erreur quadratique moyenne des paramètres qu'il suit.
Pertinence dans le domaine de l'IA et de la vision par ordinateur
Dans le domaine de la vision artificielle moderne, le filtre de Kalman
est un composant standard des systèmes de
systèmes de suivi d'objets. Alors que les
modèles d'apprentissage profond tels que
YOLO11 excellent dans la
détection d'objets dans des images individuelles, ils ne
comprennent pas intrinsèquement la continuité temporelle.
Les filtres de Kalman comblent cette lacune grâce au "suivi par détection". Une fois qu'un objet est détecté, le filtre
crée unetrack" et prédit l'emplacement de la
la boîte de délimitation dans l'image suivante. Cela offre
deux avantages majeurs :
-
Lissage des trajectoires : Il réduit l'instabilité des coordonnées de la boîte englobante causée par des détections incohérentes.
incohérentes.
-
Traitement des occlusions : Si un objet est brièvement bloqué (occulté) et n'est pas détecté, le filtre de Kalman
continue à prédire sa position, ce qui permet au système de réassocier l'objet à son identifiant lorsqu'il réapparaît.
Les trackers sophistiqués tels que BoT-SORT et
ByteTrack s'appuient sur les filtres de Kalman pour cette
modélisation du mouvement.
Applications concrètes
Le filtre de Kalman est omniprésent dans les technologies qui nécessitent une estimation précise à partir de données bruitées.
-
Véhicules autonomes : Les voitures autonomes utilisent la fusion de capteurs pour combiner des données provenant de GPS, de LiDAR et d'autres sources.
la fusion de capteurs pour combiner les données provenant du GPS, du LiDAR et des caméras.
caméras. Un filtre de Kalman fusionne ces données pour générer une estimation unique et très précise de la position du véhicule et de la trajectoire des objets dynamiques à proximité.
de la position du véhicule et de la trajectoire des objets dynamiques proches, garantissant ainsi une navigation sûre.
la sécurité de la navigation.
-
Robotique : dans le domaine de la robotique, la KF est essentielle
pour la localisation et la cartographie simultanées(SLAM). Les robots l'utilisent pour estimer leur orientation et leur emplacement sur une carte tout en corrigeant le patinage des roues et la dérive des capteurs.
de la dérive des capteurs.
-
L'analyse sportive : Dans l'analyse sportive alimentée par l'IA
Dans l'analyse sportive assistée par l'IA, les filtres de Kalman track ballon et les joueurs, en lissant les coordonnées 2D/3D pour calculer la vitesse, la distance et les formations tactiques.
tactiques.
Mise en œuvre du filtre de Kalman
Dans le cadre de la ultralytics les filtres de Kalman sont intégrés directement dans les modules de suivi. Les utilisateurs peuvent
utiliser automatiquement ce puissant algorithme en activant les filtres de Kalman.
mode track.
from ultralytics import YOLO
# Load a YOLO11 model (object detector)
model = YOLO("yolo11n.pt")
# Track objects in a video
# The tracker (e.g., BoT-SORT) uses a Kalman Filter internally to smooth trajectories
results = model.track(source="https://ultralytics.com/images/bus.jpg", tracker="botsort.yaml")
Concepts connexes
Il est important de distinguer le filtre de Kalman standard de ses variantes :
-
Filtre de Kalman étendu (EKF):
Le KF standard suppose une dynamique de mouvement linéaire. L'EKF est utilisé pour les systèmes non linéaires (par exemple, un robot se déplaçant dans une courbe) en linéarisant le modèle autour de l'estimation actuelle.
robot se déplaçant dans une courbe) en linéarisant le modèle autour de l'estimation actuelle.
-
Filtre à particules : Contrairement au KF, qui suppose des distributions de bruit gaussiennes,
les filtres particulaires utilisent un ensemble d'échantillons aléatoires pour
pour représenter la probabilité, ce qui les rend adaptés aux problèmes hautement non linéaires et non gaussiens, bien qu'à un coût de calcul souvent plus élevé.
coût de calcul plus élevé.
-
Détection d'objets: La détection
identifie ce qui se trouve dans une image ; le suivi (à l'aide de KF) identifie l'emplacement de l'objet dans le temps.