Computer Vision: Kalman Filter
D. Schlesinger – TUD/INF/KI/IS
D. Schlesinger () Computer Vision: Kalman Filter 1 / 8
Bayesscher Filter
Ein Objekt kann sich in einemZustandx∈ X befinden.
Zum Zeitpunktisei die Wahrscheinlichkeitsverteilungpi(xi) bekannt (Achtung!!! Nicht der Zustandxi, sondern Wahrscheinlichkeitsverteilung).
Gegeben sei ein statistischesBewegungsmodellp(xi+1|xi)
Daraus ergibt sich die (a-priori) Wahrscheinlichkeitsverteilung der Zuständexi+i als pi+1(xi+1)=
P
xipi(xi)·p(xi+1|xi)–Prediction
Gegeben sei einBeobachtungsmodellp(oi+1|xi+1),o∈ O Die Wahrscheinlichkeitsverteilung imi+1 Zeitpunkt ergibt sich als pi+1(xi+1)≡pi+1(xi+1|oi+1)∼pi+1(xi+1)·p(oi+1|xi+1)–Correction
→
Markovsche Ketten
Die ZustandsmengeX ist diskret.
+ ziemlich allgemein, da „beliebige“ diskrete Modelle repräsentiert werden können
−für große Zustandsräume meist nicht geeignet (wegen Zeitkomplexität)
„Markovsche Ketten mit kontinuierlicher Zustandsmenge“ ...
D. Schlesinger () Computer Vision: Kalman Filter 3 / 8
Kalman Filter [Kalman, 1960]
Zustände und Beobachtungen sind Vektorenx∈Rnbzw.o∈Rm Bewegungsmodell und Beobachtungsmodell sind linear
xi+1=A·xi+, oi=B·xi+δ AundBsindn×nbzw.n×mMatrizen
∈Rnundδ∈Rmsind Gaussch verteilte Störungen, d.h.
p() =N(0,Σ)∼exp(−TΣ−1 ), p(δ) =N(0,Σδ)∼exp(−δTΣ−1δ δ) mit Mittelwerten = 0 und Kovarianzmatrizen Σund Σδ
Beispiel: Zustandx= [x,y,vx,vy] beschreibt die Lage (x,y) und die Geschwindigkeit (vx,vy) eines Objektes imR2.
Es gilt für „fast“ gleichförmige Bewegung (Mt ist der Zeitschritt):
xi+1=xi+Mt·vx,i+O(Mt2) yi+1=yi+Mt·vy,i+O(Mt2) vx,i+1=vx,i+O(Mt) vy,i+1=vy,i+O(Mt)
Kalman Filter
In der Matrixform:
xi+1
yi+1
vx,i+1
vy,i+1
=
1 0 Mt 0
0 1 0 Mt
0 0 1 0
0 0 0 1
·
xi
yi
vx,i
vy,i
+Für die Beobachtung analog:
h
ox,i+1
oy,i+1
i
=
h
1 0 0 00 1 0 0
i
·
xi
yi
vx,i
vy,i
+δ(nur die Lage wird beobachtet).
2D→3D (R6)→6D (mit Winkeln) (R12)→...
D. Schlesinger () Computer Vision: Kalman Filter 5 / 8
Kalman Filter
Annahme: im ersten Zeitpunktp(x0) =N(¯x0,Σ0) 1) Prediction ist die Faltung zweier Gaussiane
pi+1(xi+1) =
Z
pi(xi)·p(xi+1|xi)dxi∼
∼
Z
exp
−(xi−¯xi)TΣ−1i (xi−¯xi)
·
·exp
−(xi+1−Axi)TΣ−1 (xi+1−Axi)
dxi
⇒Ergebnis – wieder ein GaussianN(¯xi+10 ,Σ0i+1).
2) Correction ist komponentenweise Multiplikation zweier Gaussiane pi+1(xi+1|oi+1) =pi+1(xi+1)·p(oi+1|xi+1)∼
∼exp
−(xi+1−¯xi+10 )TΣ0−1i+1(xi+1−¯x0i+1)
·
·exp
−(oi+1−Bxi+1)TΣ−1δ (oi+1−Bxi+1)
⇒Ergebnis – wieder ein GaussianN(¯xi+1,Σi+1).
Die Wahrscheinlichkeitsverteilungen werden nicht explizit neu berechnet, sondern dieParameter(Mittelwerte und Kovarianzmatrizen) werden propagiert.
Kalman Filter – Anwendungsbeispiel
[Yedidya, Hartley, 2008]
„Verfolgung“ von Blutgefäßen:
Gesucht wird eine Trajektorie
Ein Objekt bewegt sich entlang einer Bahn (Blutgefäß) und wird dabei verfolgt
„Zustand“ beschreibt Position, Geschwindigkeit, Dicke, unterwegs gesehene Grauwerte usw.
D. Schlesinger () Computer Vision: Kalman Filter 7 / 8
Partikel Filter
Nachteil des Kalman Filters: nur Gaussiane – für komplizierte Zustandsräume ungeeignet.
(i) Besser – Mischungen von Gaussianen, z.B.p() =
P
kwkN(µk,Σk).
Das Problem – die Anzahl der Komponenten wächst (selbst bei linearen Modellen).
P
i·
P
j =
P
ij6=
P
i – kann nicht parametrisch propagiert werden.
Ausweg: man approximiere ständig durch Mischung
mit konstanter Anzahl der Komponenten (nachχ2, Likelihood etc.).
(ii) Allgemeinere Fälle – nicht lineare Bewegungsmodelle, d.h.
Axwird zua(x) undBxwird zub(x) – z.B. lokal linearisieren ...
Zu (i) und (ii) – man approximiere die Berechnungen durch Sampling:
– würfelex0entsprechendpi(xi) – propagierex00=a(x0)
– berechnep(oi+1|x00) (vergleicheoi+1mitb(x00))
– entscheide, obx00in die Lernstichprobe aufgenommen wird (accept/reject)
→so generierte Lernstichprobe vonx00gehorchtpi+1(xi+1)
Manchmal ist es gar nicht nötig, die Wahrscheinlichkeitsverteilung zu spezifizieren – gearbeitet wird immer mit den Samples.
CONDENSATION (Conditional Density Propagation) – eine bestimmte Art davon.