Explication intuitive du suivi avec les filtres de Kalman

17

J'apprécierais beaucoup une explication intuitive du suivi (visuel) avec des filtres de Kalman. ce que je sais:

Étape de prédiction:

  • État du système dynamique : emplacement cible au temps tXtt
  • Mesure : l'image à l'indice de temps (??) tztt

Basé sur des images / mesures Je veux prédire l'état ? (en utilisant l'équation dynamique) Est-ce correct?x t1(t-1)Xt

Comment puis-je interpréter l'étape de correction dans ces termes (image, emplacement cible)?

matlabit
la source

Réponses:

13

Vous devez d'abord assumer un modèle de mouvement. Disons que vous souhaitez suivre une balle volant dans les airs. Le ballon a une accélération vers le bas en raison de la gravité de 9,8 m / s ^ 2. Donc, dans ce cas, le modèle de mouvement à accélération constante est approprié.

Sous ce modèle, votre état est la position, la vitesse et l'accélération. Étant donné l'état précédent, vous pouvez facilement prédire l'état suivant.

Vous avez également une notion de détection. Vous avez une vidéo de la balle en mouvement, et vous devez en quelque sorte détecter la balle dans chaque image vidéo (par exemple en utilisant la soustraction d'arrière-plan).

Vos détections sont bruyantes. De plus, le mouvement de la balle ne correspond pas exactement au modèle d'accélération constante en raison de la résistance de l'air, du vent, des rayons cosmiques, etc. Le filtre de Kalman a besoin de deux matrices décrivant cela: l'une est la covariance du bruit de mesure (votre inexactitude de détection), et un pour la covariance du bruit du processus (comment le mouvement de la balle s'écarte du modèle que vous avez spécifié).

Si vous suivez un seul objet, le filtre de Kalman vous permet de lisser une partie du bruit et de prédire également où se trouve l'objet lorsqu'une détection est manquante (par exemple, si l'objet est occlus). Voici un exemple de suivi d'un seul objet avec un filtre de Kalman à l'aide de Computer Vision System Toolbox for MATLAB.

Si vous suivez plusieurs objets, les prédictions du filtre de Kalman vous permettent de décider quelle détection va avec quel objet. Une bonne façon de le faire consiste à utiliser la probabilité logarithmique de la détection compte tenu de la covariance d'erreur de la prédiction. Voici un exemple de suivi de plusieurs objets avec un filtre de Kalman .

Dima
la source
1
Bonne réponse. Une note cependant. Les états sont uniquement la position et la vitesse
aiao
@aiao, pour le modèle de mouvement à accélération constante, l'accélération fait partie de l'état. Pour le modèle à vitesse constante, ce n'est pas le cas.
Dima
7

Ce cours en ligne est très facile et simple à comprendre et pour moi, il explique très bien les filtres Kalman.

Cela s'appelle "Programmer une voiture robotique", et il parle de trois méthodes de localisation: la localisation de Monte Carlo, les filtres de Kalman et les filtres à particules. Il se concentre sur les informations du sondeur à titre d'exemple, mais l'explication est suffisamment simple pour que vous puissiez simplement remplacer «sonar» par «informations visuelles» et tout cela aurait toujours du sens.

Le cours est entièrement gratuit (il est maintenant terminé, vous ne pouvez donc pas participer activement mais vous pouvez toujours regarder les conférences que je présume), enseigné par un professeur de Stanford.

Pénélope
la source
1
C'est toujours actif. Vous obtenez toujours des certificats pour terminer les cours. Vous pouvez toujours participer activement et obtenir des réponses à vos questions sur les forums.
Naresh
5

Lorsque vous effectuez un suivi visuel, vous avez besoin d'un modèle , qui est une représentation mathématique d'un processus réel. Ce modèle donnera du sens à toutes les données obtenues à partir des mesures, connectera les chiffres dans lesquels nous entrerons et nous sortirons du système.

Mais un modèle est une simplification de la réalité car vous utiliserez un nombre réduit de paramètres. Ce que vous ne savez pas sur le système s'appelle le bruit ou l'incertitude. C'est aussi important que ce que vous savez. Comme nous ne pouvons pas décrire un système parfaitement, nous avons besoin de mesures du monde réel pour nous dire ce qui se passe avec le système que nous modélisons.

Kalman est un outil pour combiner ce que nous estimons, avec notre modèle, et ce que nous mesurons à partir du monde, en combinant les deux dans un sens pondéré.

Vous calculerez un état à chaque étape. C'est ce que vous savez actuellement sur le système. L'état est influencé par l' équation du processus et l' équation de mesure . Les deux équations ont des covariances de bruit différentes. Kalman décidera lequel des deux a le plus d'influence à chaque étape en ajustant le gain de Kalman.

C'est ainsi que je pense à ce sujet quand je ne veux pas approfondir les formules.

Jav_Rock
la source
4

Le filtre de Kalman fournit récursivement l'estimation linéaire optimale d'un signal perturbé par l'AWGN. Dans votre cas, l'état (ce que vous voulez estimer) sera donné par l'emplacement cible. Les mesures seront déterminées par votre algorithme.

Si vous avez lu l'article Wikipedia, vous aimerez peut-être voir cette présentation sur le suivi visuel. Avez-vous des livres?

Emre
la source