Zunächst müssen Sie ein Bewegungsmodell annehmen. Angenommen, Sie möchten einen Ball verfolgen, der durch die Luft fliegt. Der Ball hat aufgrund der Schwerkraft eine Beschleunigung nach unten von 9,8 m / s ^ 2. In diesem Fall ist also das Bewegungsmodell mit konstanter Beschleunigung geeignet.
Unter diesem Modell ist Ihr Zustand Position, Geschwindigkeit und Beschleunigung. Unter Berücksichtigung des vorherigen Zustands können Sie den nächsten leicht vorhersagen.
Sie haben auch eine Vorstellung von Erkennung. Sie haben ein Video, in dem sich der Ball bewegt, und Sie müssen den Ball in jedem Videoframe irgendwie erkennen (z. B. mithilfe der Hintergrundsubtraktion).
Ihre Erkennungen sind laut. Außerdem passt die Bewegung des Balls aufgrund des Luftwiderstands, des Windes, der kosmischen Strahlung usw. nicht genau zum Konstantbeschleunigungsmodell. Der Kalman-Filter benötigt zwei Matrizen, die dies beschreiben: Eine ist die Kovarianz des Messrauschens (Ihre Detektionsungenauigkeit). und eine für die Kovarianz des Prozessrauschens (wie die Bewegung der Kugel von dem von Ihnen angegebenen Modell abweicht).
Wenn Sie ein einzelnes Objekt verfolgen, können Sie mit dem Kalman-Filter das Rauschen etwas glätten und auch vorhersagen, wo sich das Objekt befindet, wenn eine Erkennung fehlt (z. B. wenn das Objekt verdeckt ist). Hier ist ein Beispiel für die Verfolgung eines einzelnen Objekts mit einem Kalman-Filter mithilfe der Computer Vision System Toolbox für MATLAB.
Wenn Sie mehrere Objekte verfolgen, können Sie mit den Kalman-Filtervorhersagen entscheiden, welche Erkennung zu welchem Objekt gehört. Ein guter Weg, dies zu tun, besteht darin, die logarithmische Wahrscheinlichkeit der Erkennung zu verwenden, wenn die Fehlerkovarianz der Vorhersage gegeben ist. Hier ist ein Beispiel für die Verfolgung mehrerer Objekte mit einem Kalman-Filter .