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 .