Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Kalman Filter (KF)

Un filtre de Kalman estime un état évolutif, comme la position et la vitesse d’un objet, en combinant les prédictions d’un modèle avec des mesures bruitées. Découvre les mathématiques et le code.

Un filtre de Kalman (KF) est un algorithme récursif qui estime l’état caché d’un système en évolution, par exemple la position et la vitesse d’un objet, à partir d’un flux de mesures bruitées. À chaque pas de temps, il prédit l’état suivant à partir d’un modèle du mouvement du système, puis corrige cette prédiction à l’aide de la nouvelle mesure, en pondérant chacune selon son degré d’incertitude. Rudolf E. Kálmán a publié cette méthode en 1960 ; pour les systèmes linéaires avec un bruit gaussien, elle fournit l’estimation de l’erreur quadratique moyenne minimale. Elle est utilisée dans les récepteurs GPS, la navigation aérienne et spatiale, la localisation robotique et presque tous les suiveurs multi-objets en vision par ordinateur, où elle lisse les détections instables et prédit où chaque objet apparaîtra ensuite.

Fonctionnement du filtre de Kalman#

Le filtre conserve deux quantités : une estimation d’état x, par exemple la position et la vitesse, et une matrice de covariance P qui décrit l’incertitude associée à cette estimation. Chaque cycle comporte deux étapes :

  1. Prédiction : Un modèle de mouvement F projette l’état vers l’avant, x = F x, et l’incertitude augmente en raison du bruit de processus Q, qui représente les mouvements que le modèle ne prend pas en compte : P = F P Fᵀ + Q.
  2. Mise à jour : Une nouvelle mesure z arrive ; elle est liée à l’état par le modèle de mesure H. Le filtre calcule le résidu z − H x et le gain de Kalman K = P Hᵀ (H P Hᵀ + R)⁻¹, où R correspond au bruit de mesure. L’état corrigé est x + K (z − H x) et l’incertitude diminue jusqu’à (I − K H) P.

Le gain de Kalman définit l’équilibre entre le modèle et le capteur. Lorsque les mesures sont précises par rapport à la prédiction, le gain approche de 1 et l’estimation suit la mesure ; lorsqu’elles sont bruitées, le gain approche de 0 et l’estimation suit la prédiction. Comme l’état peut inclure des quantités qui ne sont jamais mesurées directement, le filtre les estime aussi : un suiveur qui n’observe que les positions estime tout de même la vitesse. Lorsqu’une mesure manque, le filtre ignore la mise à jour et poursuit son estimation à partir de la prédiction :

Filtres de Kalman pour le suivi d’objets#

En suivi d’objets, chaque trajectoire possède son propre filtre de Kalman. L’état contient le centre et la taille de la boîte englobante, ainsi que leurs vitesses ; un modèle à vitesse constante prédit où se trouvera la boîte dans l’image suivante. Ces prédictions sont associées aux nouvelles détections par l’intersection sur union (IoU), et chaque détection associée devient la mesure qui met à jour sa trajectoire. Lorsqu’un objet est masqué pendant quelques images, la trajectoire continue de suivre le chemin prédit. La détection qui réapparaît se trouve alors assez près de sa prédiction pour conserver l’ancien identifiant.

Tous les suiveurs du mode suivi d’Ultralytics YOLO fonctionnent ainsi : le KalmanFilterXYAH de ByteTrack suit un état à 8 dimensions comprenant le centre de la boîte, le rapport hauteur-largeur, la hauteur et leurs vitesses ; BoT-SORT et TrackTrack utilisent une variante fondée sur la largeur et la hauteur, et tous deux ajustent leur bruit à la taille de la boîte afin que les grands objets proches tolèrent des sauts de pixels plus importants. Les mêmes étapes de prédiction et de mise à jour se résument à quelques lignes de NumPy pour une coordonnée du centre d’une boîte :

import numpy as np

F = np.array([[1.0, 1.0], [0.0, 1.0]])  # constant-velocity model, state = [position, velocity]
H = np.array([[1.0, 0.0]])  # the detector measures position only
Q = 0.001 * np.eye(2)  # process noise: how far real motion may stray from the model
R = np.array([[25.0]])  # measurement noise: detections jitter by about 5 px

rng = np.random.default_rng(0)
truth = 100 + 3.0 * np.arange(60)  # box center moving 3 px per frame
z = truth + rng.normal(0, 5.0, truth.size)  # noisy detections

x, P = np.array([z[0], 0.0]), np.diag([25.0, 100.0])  # start from the first detection
estimates = [x[0]]
for measurement in z[1:]:
    x, P = F @ x, F @ P @ F.T + Q  # predict
    K = P @ H.T @ np.linalg.inv(H @ P @ H.T + R)  # Kalman gain
    x = x + K @ (measurement - H @ x)  # update with the weighted residual
    P = (np.eye(2) - K @ H) @ P
    estimates.append(x[0])

print(f"Detection error: {np.sqrt(np.mean((z - truth) ** 2)):.2f} px")
print(f"Kalman error: {np.sqrt(np.mean((np.array(estimates) - truth) ** 2)):.2f} px")
print(f"Estimated velocity: {x[1]:.2f} px/frame")

Le programme affiche une erreur quadratique moyenne de 4.50 px pour les détections brutes et de 2.48 px pour les estimations filtrées, ainsi qu’une vitesse estimée de 2.98 px par image, proche de la valeur réelle de 3 px, même si la vitesse n’a jamais été mesurée.

Le filtre de Kalman standard suppose que les modèles de mouvement et de mesure sont linéaires et que le bruit est gaussien. Ses variantes assouplissent ces hypothèses :

  • Filtre de Kalman étendu (EKF) : Linéarise les modèles non linéaires autour de l’estimation actuelle au moyen de jacobiennes à chaque étape. C’est le choix standard pour le GPS et la navigation inertielle.
  • Filtre de Kalman non parfumé (UKF) : Fait passer un petit ensemble de points d’échantillonnage soigneusement choisis à travers le modèle non linéaire. Cette méthode est généralement plus précise que la linéarisation et ne nécessite pas de dérivées.
  • Filtre particulaire : Représente la distribution de l’état avec de nombreux échantillons aléatoires pondérés. Il peut ainsi gérer des distributions non gaussiennes et multimodales, comme l’incertitude d’un robot qui ne sait pas dans lequel de deux couloirs il se trouve, au prix d’un coût de calcul bien plus élevé.
  • Modèle de Markov caché (HMM) : Utilise la même récursion de prédiction et de mise à jour pour des états discrets ; le filtre de Kalman en est l’équivalent pour les états continus à distribution linéaire gaussienne.

Applications au-delà du suivi#

  • Robotique et fusion de capteurs : Les robots combinent l’odométrie des roues, les IMU, le lidar et les caméras en une seule estimation de pose ; les méthodes fondées sur l’EKF constituent une approche classique de la localisation et de la cartographie simultanées.
  • Réalité augmentée : Les casques filtrent les mesures de pose de la tête afin de stabiliser les objets virtuels avec une faible latence.
  • Économie et traitement du signal : Les analystes utilisent le lissage de Kalman pour estimer les tendances non observées à partir de séries temporelles bruitées.
  • Navigation : Les avions, les navires, les drones et les téléphones combinent le GPS aux capteurs inertiels pour maintenir une position stable entre les corrections satellitaires. La navigation a aussi été la première grande application du filtre : au début des années 1960, Stanley F. Schmidt, de la NASA Ames, l’a adapté à l’estimation de trajectoires non linéaires pour l’ordinateur de navigation d’Apollo.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique