Intuitive Erklärung der Verfolgung mit Kalman-Filtern

17

Ich würde mich sehr über eine intuitive Erklärung für das (visuelle) Tracking mit Kalman-Filtern freuen. was ich weiß:

Vorhersageschritt:

  • Dynamischer Systemzustand : Zielort zum Zeitpunkt txtt
  • Messung : das Bild zum Zeitpunkt t (??)ztt

Basierend auf Bildern / Messungen möchte ich den Zustand x t vorhersagen ? (mit dynamischer Gleichung) Stimmt das?1(t-1)xt

Wie kann ich den Korrekturschritt in diese Begriffe (Bild, Zielort) interpretieren?

matlabit
quelle

Antworten:

13

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 .

Dima
quelle
1
Gute Antwort. Eine Notiz. Die Zustände sind nur die Position und Geschwindigkeit
aiao
@aiao, für das Bewegungsmodell mit konstanter Beschleunigung ist die Beschleunigung Teil des Zustands. Für das Konstantgeschwindigkeitsmodell ist dies nicht der Fall.
Dima
7

Dieser Online-Kurs ist sehr einfach und unkompliziert zu verstehen und hat mir Kalman-Filter sehr gut erklärt.

Es heißt "Programming a Robotic Car" und behandelt drei Lokalisierungsmethoden: Monte-Carlo-Lokalisierung, Kalman-Filter und Partikelfilter. Es konzentriert sich zwar auf Sonarinformationen als Beispiel, aber die Erklärung ist einfach genug, dass Sie "Sonar" einfach durch "visuelle Informationen" ersetzen könnten, und es wäre alles immer noch sinnvoll.

Der von einem Stanford-Professor unterrichtete Kurs ist komplett kostenlos (er ist jetzt beendet, Sie können also nicht aktiv teilnehmen, aber Sie können die von mir angenommenen Vorlesungen noch sehen).

Penelope
quelle
1
Es ist immer noch aktiv. Sie erhalten weiterhin Zertifikate für die Durchführung der Kursarbeit. Sie können weiterhin aktiv teilnehmen und Ihre Fragen in den Foren beantworten.
Naresh
5

Wenn Sie eine visuelle Verfolgung durchführen, benötigen Sie ein Modell , das eine mathematische Darstellung eines realen Prozesses ist. Dieses Modell gibt den Messdaten einen Sinn, verbindet die eingegebenen Zahlen und verlässt das System.

Ein Modell ist jedoch eine Vereinfachung der Realität, da Sie weniger Parameter verwenden. Was Sie über das System nicht wissen, nennt man Rauschen oder Unsicherheit. Es ist genauso wichtig wie das, was Sie wissen. Da wir ein System nicht perfekt beschreiben können, benötigen wir Messungen aus der realen Welt, um zu sagen, was mit dem System passiert, das wir modellieren.

Kalman ist ein Werkzeug, um das, was wir schätzen, mit unserem Modell und dem, was wir aus der Welt messen, zu kombinieren, indem wir beides in einem gewichteten Sinne kombinieren.

Sie werden jeden Schritt einen Zustand berechnen . Das wissen Sie aktuell über das System. Der Zustand wird durch die Prozessgleichung und die Messgleichung beeinflusst . Beide Gleichungen haben unterschiedliche Rauschkovarianzen. Kalman entscheidet, welcher der beiden Schritte mehr Einfluss hat, indem er die Kalman-Verstärkung anpasst.

So denke ich darüber, wenn ich nicht tief in Formeln eintauchen will.

Jav_Rock
quelle
4

Das Kalman-Filter liefert rekursiv die optimale lineare Abschätzung eines durch AWGN gestörten Signals. In Ihrem Fall wird der Status (was Sie schätzen möchten) vom Zielort angegeben. Die Messungen werden von Ihrem Algorithmus bestimmt.

Wenn Sie den Wikipedia-Artikel gelesen haben, möchten Sie diese Präsentation möglicherweise visuell verfolgen. Hast du irgendwelche Bücher?

Emre
quelle