Kalman Filter (KF)
Découvre comment le filtre de Kalman estime les états d’un système dans l’incertitude. Apprends à l’utiliser pour le suivi d’objets avec Ultralytics YOLO26 afin d’améliorer la précision de l’IA.
Un filtre de Kalman (KF) est un algorithme mathématique récursif utilisé pour estimer l’état d’un système dynamique au fil du temps. Introduite à l’origine par Rudolf E. Kálmán, cette technique est essentielle pour traiter des données incertaines, imprécises ou comportant des variations aléatoires, souvent appelées « bruit ». En combinant une série de mesures observées au fil du temps et comportant des imprécisions statistiques, le filtre de Kalman produit des estimations de variables inconnues plus précises que celles fondées sur une seule mesure. Dans les domaines de l’apprentissage automatique (ML) et de l’intelligence artificielle (AI), il constitue un outil essentiel de la modélisation prédictive, en lissant les points de données irréguliers pour révéler la tendance sous-jacente réelle.
Fonctionnement du filtre de Kalman#
L’algorithme fonctionne selon un cycle en deux étapes : prédiction et mise à jour (également appelée correction). Il part du principe que le système sous-jacent est linéaire et que le bruit suit une distribution gaussienne (courbe en cloche).
-
Prédiction : le filtre utilise un modèle physique pour projeter l’état actuel dans le futur. Par exemple, si un objet se déplace à vitesse constante, le filtre prédit sa prochaine position à partir des équations cinématiques standard. Cette étape estime également l’incertitude associée à cette prédiction.
-
Mise à jour : lorsqu’une nouvelle mesure arrive d’un capteur, le filtre compare l’état prédit aux données observées. Il calcule une moyenne pondérée — déterminée par le gain de Kalman — qui accorde davantage de confiance à la valeur (prédiction ou mesure) présentant le moins d’incertitude. Le résultat est une estimation d’état affinée, qui sert de référence pour le cycle suivant.
Applications en vision par ordinateur et en IA#
Bien qu’issu à l’origine de la théorie du contrôle et de la navigation aérospatiale, le filtre de Kalman est désormais omniprésent dans les pipelines modernes de vision par ordinateur (CV).
- Suivi d’objets : c’est le cas d’utilisation le plus courant. Lorsqu’un modèle de détection comme YOLO26 identifie un objet dans une image vidéo, il fournit un instantané statique. Pour comprendre le mouvement, des trackers comme BoT-SORT utilisent des filtres de Kalman pour relier les détections entre les images. Si un objet est temporairement occulté (masqué), le filtre utilise sa vitesse précédente pour prédire sa position, empêchant ainsi le système de perdre sa « trajectoire » ou de changer d’identifiant.
- Fusion de capteurs en robotique : en robotique, les machines doivent naviguer à l’aide de plusieurs capteurs bruités. Un robot de livraison peut utiliser le GPS (qui peut dériver), des codeurs de roues (qui peuvent patiner) et des IMUs (qui sont bruitées). Le filtre de Kalman fusionne ces entrées disparates pour fournir une coordonnée unique et fiable pour la navigation, essentielle au fonctionnement sûr des véhicules autonomes.
Distinction entre concepts connexes#
Il est utile de distinguer le filtre de Kalman standard de ses variantes et des solutions alternatives présentes dans l’IA statistique :
- Filtre de Kalman vs. filtre de Kalman étendu (EKF) : le KF standard suppose que le système suit des équations linéaires (des lignes droites). Cependant, les mouvements réels — comme un drone qui s’incline dans un virage — sont souvent non linéaires. L’EKF résout ce problème en linéarisant la dynamique du système à chaque étape à l’aide de dérivées, ce qui le rend adapté aux trajectoires complexes.
- Filtre de Kalman vs. filtre particulaire : alors que les KF reposent sur des hypothèses gaussiennes, les filtres particulaires utilisent un ensemble d’échantillons aléatoires (particules) pour représenter les distributions de probabilité. Les filtres particulaires sont plus flexibles face au bruit non gaussien, mais nécessitent beaucoup plus de puissance de calcul, ce qui peut affecter les vitesses d’inférence en temps réel.
Exemple d’implémentation#
Dans l’écosystème Ultralytics, les filtres de Kalman sont directement intégrés aux algorithmes de suivi. Tu n’as pas besoin d’écrire les équations manuellement ; tu peux les exploiter en activant les modes de suivi. La plateforme Ultralytics te permet de gérer des jeux de données et d’entraîner des modèles qui peuvent être facilement déployés avec ces fonctionnalités de suivi.
Voici un exemple concis utilisant Python pour effectuer un suivi avec Ultralytics YOLO26, où le tracker sous-jacent applique automatiquement un filtrage de Kalman pour lisser les mouvements de la boîte englobante :
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()}")Importance pour la qualité des données#
Lors d’un déploiement dans le monde réel, les données sont rarement parfaites. Les caméras subissent du flou de mouvement et les capteurs sont soumis au bruit du signal. Le filtre de Kalman agit comme un mécanisme sophistiqué de nettoyage des données au sein de la boucle de décision. En affinant continuellement les estimations, il garantit que les agents d’IA fonctionnent sur la base de la réalité la plus probable plutôt que de réagir à chaque perturbation momentanée du flux d’entrée. Cette fiabilité est primordiale pour les applications critiques pour la sécurité, de la surveillance des opérations aéroportuaires à l’automatisation industrielle de précision.









