31
Kalman-Filter und Target Tracking Peter Poschmann Hochschule für Technik und Wirtschaft Dresden Fakultät Informatik/Mathematik 23. März 2016

Kalman-Filter und Target Tracking

Embed Size (px)

Citation preview

Page 1: Kalman-Filter und Target Tracking

Kalman-Filter und Target Tracking

Peter Poschmann

Hochschule für Technik und Wirtschaft DresdenFakultät Informatik/Mathematik

23. März 2016

Page 2: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Inhalt

1 Kalman-FilterEinleitungEindimensionaler Kalman-FilterMehrdimensionaler Kalman-Filter

2 Erweiterter Kalman-FilterLinearisierungExtended Kalman Filter

3 Target TrackingBewegungsmodelleBeobachtungsmodelleData Association Problem

4 AbschließendesWeitere InformationenPraktikum

1 / 30

Page 3: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Kalman-Filter

1 Kalman-FilterEinleitungEindimensionaler Kalman-FilterMehrdimensionaler Kalman-Filter

2 Erweiterter Kalman-FilterLinearisierungExtended Kalman Filter

3 Target TrackingBewegungsmodelleBeobachtungsmodelleData Association Problem

4 AbschließendesWeitere InformationenPraktikum

2 / 30

Page 4: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Motivation

Roboter soll sich autonom bewegenKollision mit Personen und anderen bewegten ObjektenvermeidenAusreichend Abstand zu Personen einhalten (sollen keineAngst haben)Wo sind Personen/Objekte und wohin bewegen sie sich?

Interaktion mit PersonenWo sind (interaktionsbereite) Personen?

Tracking von Personen/Objekten nötigMesswerte sind fehlerbehaftetKalman-Filter ist eine Methode zur Lösung dieses Problems

Einleitung 3 / 30

Page 5: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Kalman-Filter

Rekursiver ZustandsschätzerBayes-Filterkontinuierlicher (Zustands-)raumModelliert Unsicherheit mittels Normalverteilungbel(x) = N(x;µ, σ2) bzw. bel(x) = N(x;µ,Σ)Zwei Schritte, abwechselnd ausgeführt - analog zu Bayes-Filter

Motion update (prediction)Measurement update (correction)

Voraussetzung/Einschränkung:Zustandsübergang, Beobachtung und Zustand sindnormalverteilt (stochastische Messfehler)Lineare Gleichungen

Einleitung 4 / 30

Page 6: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Eindimensionale Normalverteilung

Oder auch: Gauss-Verteilung, Gauss-KurveUnimodal (nur ein Maximum)p(x) = 1√

2πσ2 exp{− (x−µ)2

2σ2

}µ ... Erwartungswertσ ... Standardabweichungσ2 ... VarianzFläche unter der Kurve ist 1 (wie bei allenWahrscheinlichkeitsdichtefunktionen)Je größer σ bzw. σ2 (höhere Unsicherheit), desto niedrigerund breiter das Maximum

Einleitung 5 / 30

Page 7: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Measurement update

Measurement update / correctionNormalverteilung nach Update

Weniger Unsicherheit als vor UpdateWeniger Unsicherheit als BeobachtungInformationsgewinn

Update (1D):Zustand (z.B. Position): N(µ, σ2)Beobachtung: N(z, r2)K = σ2

σ2+r2 ... Kalman Gainµ′ = µ+K(z − µ)σ′2 = (1−K)σ2

Eindimensionaler Kalman-Filter 6 / 30

Page 8: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Motion update

Motion update / predictionNormalverteilung nach Update

Mehr Unsicherheit als vor UpdateInformationsverlust

Update (1D):Zustand (z.B. Position): N(µ, σ2)Zustandsänderung (z.B. Bewegung/Geschwindigkeit): N(u, q2)µ′ = µ+ uσ′2 = σ2 + q2

Eindimensionaler Kalman-Filter 7 / 30

Page 9: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Zusammenfassung 1D Kalman-Filter

Satzµt = µt−1 + utσ2t = σ2

t−1 + q2t

Kt = σ2t

σ2t +r2

t

µt = µt +Kt(zt − µt)σ2t = (1−Kt)σ2

t

Eindimensionaler Zustandsschätzer mit Modellierung derUnsicherheitVorraussetzung: Control u (Änderung bzw. Bewegung) mussbekannt sein

Beim Tracking typischerweise nicht bekanntMuss mitgeschätzt werdenWeitere Dimension(en)

Eindimensionaler Kalman-Filter 8 / 30

Page 10: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Multivariate Normalverteilung

Multivariat = mehrdimensionalp(x) = 1

(2π)k/2|Σ|1/2 exp{−1

2(x− µ)TΣ−1(x− µ)}

µ ∈ Rk ... ErwartungswertvektorΣ ∈ Rk×k ... Kovarianzmatrixk ... Anzahl Dimensionen

Mehrdimensionaler Kalman-Filter 9 / 30

Page 11: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Mehrdimensionaler Kalman-Filter

Beobachtbare und versteckte ZuständeInteragieren miteinanderBeobachtbare Zustände geben Information über versteckteZuständeKalman-Filter kann versteckte Zustände schätzen (auch andereFilter, wie z.B. Partikelfilter, können das)

Prozessmodell mit normalverteiltem Prozessrauschenxt = Atxt−1 +Btut + εt with εt ∼ N(0, Qt)Beim Target Tracking ist Steuervektor ut meist unbekannt,Term Btut fällt dann raus

Messmodell mit normalverteiltem Messrauschenzt = Ctxt + δt with δt ∼ N(0, Rt)Transformiert Zustand in (erwartete) BeobachtungEntfernt im wesentlichen versteckte Zustände (z.B.Geschwindigkeit, nur Position bleibt übrig)

Mehrdimensionaler Kalman-Filter 10 / 30

Page 12: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Kalman-Filter Algorithmus (1)

Satzµt = Atµt−1 +BtutΣt = AtΣt−1A

Tt +Qt oder Σt = AtΣt−1A

Tt +BtQtB

Tt

yt = zt − CtµtSt = CtΣtC

Tt +Rt

Kt = ΣtCTt S−1t

µt = µt +KtytΣt = (I −KtCt)Σt = Σt −KtStK

Tt

Wenn Unsicherheit Qt im Zustandsraum, dann:Σt = AtΣt−1A

Tt +Qt

Wenn Unsicherheit Qt im Steuerraum, dann in Zustandsraumtransformieren: Σt = AtΣt−1A

Tt +BtQtB

Tt

Mehrdimensionaler Kalman-Filter 11 / 30

Page 13: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Kalman-Filter Algorithmus (2)

Definitionenµ ... Systemvektor (Zustand)Σ ... Kovarianzmatrix (Unsicherheit) des ZustandsA ... Systemmatrix / state transition matrixu ... Steuervektor (Änderung von außen)B ... SteuermatrixQ ... Kovarianzmatrix (Unsicherheit) der Änderungz ... Messvektor (Beobachtung)R ... Kovarianzmatrix (Unsicherheit) der BeobachtungC ... Messmatrix / measurement transformation matrixy ... ResiduumvektorS ... Kovarianzmatrix des ResiduumsK ... Kalmanverstärkungsmatrix / Kalman GainI ... Einheitsmatrix

Mehrdimensionaler Kalman-Filter 12 / 30

Page 14: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Zusammenhang zwischen Bayes-Filter und Kalman-Filter

State transition function with white Gaussian noise:xt = Atxt−1 +Btut + εt with εt ∼ N(0, Qt)Prediction: bel(xt) =

´p(xt|ut, xt−1)bel(xt−1)dxt−1

bel(xt) = N(xt; µt, Σt) ... prior (belief after prediction)bel(xt−1) = N(xt−1;µt−1,Σt−1) ... previous beliefp(xt|ut, xt−1) = N(xt;Atxt−1 +Btut, Qt) ... state transitionprobability

Measurement function with white Gaussian noise:zt = Ctxt + δt with δt ∼ N(0, Rt)Correction: bel(xt) = η p(zt|xt)bel(xt)

bel(xt) = N(xt;µt,Σt) ... posterior (belief after correction)bel(xt) = N(xt; µt, Σt) ... prior (belief before correction)p(zt|xt) = N(zt;Ctxt, Rt) ... measurement probability

Mehrdimensionaler Kalman-Filter 13 / 30

Page 15: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Anwendungen

Selbstlokalisierung des RobotersSLAMPersonentrackingPositions- und Orientierungsbestimmung von FlugzeugenSchätzung von Fahrzeugdynamik und -masseGanz allgemein

Zustandsschätzer für dynamische SystemeSchätzung nicht-beobachtbarer Zustände

Mehrdimensionaler Kalman-Filter 14 / 30

Page 16: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Erweiterter Kalman-Filter

1 Kalman-FilterEinleitungEindimensionaler Kalman-FilterMehrdimensionaler Kalman-Filter

2 Erweiterter Kalman-FilterLinearisierungExtended Kalman Filter

3 Target TrackingBewegungsmodelleBeobachtungsmodelleData Association Problem

4 AbschließendesWeitere InformationenPraktikum

15 / 30

Page 17: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Nichtlinearität

Funktionen sind häufig nichtlinearTransformation von kartesischen Koordinaten (x, y) zuPolarkoordinaten (LRF-Messungen) (ϕ, r)

ϕ = tan−1 yx

r =√x2 + y2

Kann nicht in Form z′ = Cx dargestellt werden

Angabe der Bewegung in Form von Richtung θ und Distanz dx′ = x+ d cos θy′ = y + d sin θKann nicht in Form x′ = Ax +Bu dargestellt werden

Lösung: LinearisierungFinden einer linearen Funktion, die der tatsächlichen Funktionmöglichst nahe kommt

Linearisierung 16 / 30

Page 18: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Taylor-Entwicklung

Taylor-Reihe von f an Stelle a: P (x)= f(a)+ f ′(a)

1! (x−a)+ f ′′(a)2! (x−a)2+. . .+ f (n)(a)

n! (x−a)n+. . .=

∑∞n=0

f (n)(a)n! (x− a)n

Nutzung der ersten beiden Terme und Weglassen derRestlichen ergibt lineare Funktion

Linearisierung von f an Stelle aT1(x) = f(a) + f ′(a) · (x− a)An Stelle a stimmen f und T1 übereinAn Stelle a stimmen Anstiege von f und T1übereinJe größer der Abstand zu Stelle a, desto größer derUnterschied zwischen f und T1 (typischerweise)

Extended Kalman-Filter nutzt Taylor-Entwicklung ersterOrdnung, um Funktionen zu linearisieren

Linearisierung 17 / 30

Page 19: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Linearisierung der Funktionen

Prozessmodellxt = Atxt−1 +Btut + εt wird zu xt = g(ut, xt−1) + εtLinearisierung an ut und µt−1g(ut, xt−1) ≈ g(ut, µt−1) + g′(ut, µt−1)(xt−1 − µt−1)Gt = ∂g(ut,xt−1)

∂xt−1... Gegenstück zu At

Vt = ∂g(ut,xt−1)∂ut

... Gegenstück zu BtGt / Vt enthalten partielle Ableitungen von g nach xt−1 / ut

Messmodellzt = Ctxt + δt wird zu zt = h(xt) + δtLinearisierung an Stelle µth(xt) ≈ h(µt) + h′(µt)(xt − µt)h′(µt) = ∂h(µ)

∂xt= Ht ... Gegenstück zu Ct

Ht enthält partielle Ableitungen von h nach xtGt, Vt, Ht ... Jacobi-Matritzen

Linearisierung 18 / 30

Page 20: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Jacobi-Matrix

Vektor Funktionen f =

f1(x)f2(x)...

fm(x)

Jacobi-Matrix Fx =

∂f1∂x1

∂f1∂x2

· · · ∂f1∂xn

∂f2∂x1

∂f2∂x2

· · · ∂f2∂xn... ... . . . ...

∂fm

∂x1∂fm

∂x2· · · ∂fm

∂xn

m ... Anzahl der Funktionen in fn ... Anzahl der Variablen, nach denen abgeleitet wird

Linearisierung 19 / 30

Page 21: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Extended Kalman-Filter

Satzµt = g(ut, µt−1)Σt = GtΣt−1G

Tt +Qt oder Σt = GtΣt−1G

Tt + VtQtV

Tt

yt = zt − h(µt)St = HtΣtH

Tt +Rt

Kt = ΣtHTt S−1t

µt = µt +KtytΣt = (I −KtHt)Σt

Wenn Unsicherheit Qt im Zustandsraum, dann:Σt = GtΣt−1G

Tt +Qt

Wenn Unsicherheit Qt im Steuerraum, dann in Zustandsraumtransformieren: Σt = GtΣt−1G

Tt + VtQtV

Tt

Extended Kalman Filter 20 / 30

Page 22: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

EKF: Zusammenfassung

Nichtlineare Funktionen (Zustandsübergang und/oderBeobachtung)Linearisierung mittels Taylor-Reihe erster OrdnungGradient im mehrdimensionalen Fall gegeben durchJacobi-MatrixJe höher die Unsicherheit, desto mehr liegt Linearisierungdaneben

Extended Kalman Filter 21 / 30

Page 23: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Target Tracking

1 Kalman-FilterEinleitungEindimensionaler Kalman-FilterMehrdimensionaler Kalman-Filter

2 Erweiterter Kalman-FilterLinearisierungExtended Kalman Filter

3 Target TrackingBewegungsmodelleBeobachtungsmodelleData Association Problem

4 AbschließendesWeitere InformationenPraktikum

22 / 30

Page 24: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Bewegungsmodelle

Im Target Tracking ist Control u nicht bekanntKompensation durch BewegungsmodelleBrownian Motion

Wenn Bewegung kaum vorhersagbar, stark zufällig/chaotischNur Position wird geschätztPositions-Erwartungswert bleibt konstant in VorhersageVorhersage erhöht lediglich die Unsicherheit

Constant VelocityGeschwindigkeit wird mitgeschätztVorhersage ändert Position anhand GeschwindigkeitGeschwindigkeits-Erwartungswert bleibt konstant in Vorhersage

Constant AccelerationGeschwindigkeit und Beschleunigung wird mitgeschätztVorhersage ändert Position anhand Geschw. und Beschl.Vorhersage ändert Geschwindigkeit anhand BeschleunigungBeschleunigungs-Erwartungswert bleibt konstant in Vorhersage

Bewegungsmodelle 23 / 30

Page 25: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Beobachtungsmodelle

Am Beispiel PersonentrackingBackground subtraction

LRF: Umgebung statisch, Karte vorhandenKamera: Hintergrund statisch, Bild ohne Personen vorhanden

MustererkennungLRF: z.B. Minima im Scan, Clustering & AnalyseKamera: z.B. mit Klassifikation auf extrahierten Features(Gesichtsdetektion, ...)

Beobachtungsmodelle 24 / 30

Page 26: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Zuordnungsprobleme

Data Association ProblemMehrere Tracking Targets, mehrere BeobachtungenWelche Beobachtung wurde von welchem Target generiert?Zusätzliche Probleme

Sensor NoiseFalsche DetektionenFehlende Detektionen

LösungsansätzeGutes BewegungsmodellMerkmale, die Identifikation/Unterscheidung ermöglichenMehrere Varianten berücksichtigen

Data Association Problem 25 / 30

Page 27: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Abschließendes

1 Kalman-FilterEinleitungEindimensionaler Kalman-FilterMehrdimensionaler Kalman-Filter

2 Erweiterter Kalman-FilterLinearisierungExtended Kalman Filter

3 Target TrackingBewegungsmodelleBeobachtungsmodelleData Association Problem

4 AbschließendesWeitere InformationenPraktikum

26 / 30

Page 28: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Weitere Informationen

Kurs „Programming a Robotic Car“ von Udacityhttps://www.youtube.com/playlist?list=PLAwxTw4SYaPkCSYXw6-a_aAoXVKLDwnHK(ab Video Nummer 77 - „Tracking Intro“)

Vorlesungsfolien der Arbeitsgruppe Autonome IntelligenteSysteme der Universität Freiburg

http://ais.informatik.uni-freiburg.de/teaching/ss13/robotics/(Kalman Filter und Extended Kalman Filter)http://ais.informatik.uni-freiburg.de/teaching/ws11/robotics2/(Target Tracking)

Weitere Informationen 27 / 30

Page 29: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Praktikumsaufgabe Kalman-Filter

Tracking eines einzelnen Objekts mittels LRFConstant velocity modelZustand x = (x, y, x, y)T

Beobachtung z = (x, y)T

Vanilla Kalman-FilterIm Wesentlichen: Implementierung des Algorithmus,Aufstellen der Matritzen

Praktikum 28 / 30

Page 30: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Praktikumsaufgabe Partikel-Filter

Lokalisierung des RobotersPartikelfilterVorgegebene StartpositionGridkarte der UmgebungLRFIm Wesentlichen: Implementierung von Algorithmus,Bewegungsmodell, Beobachtungsmodell (Partikel bewerten)

Praktikum 29 / 30

Page 31: Kalman-Filter und Target Tracking

Kalman-Filter Erweiterter Kalman-Filter Target Tracking Abschließendes

Das wars.

Fragen?

Praktikum 30 / 30