computer vision i - tracking (part i)ds24/lehre/cv1_ws_2014/vl12.pdf · computer vision i -...

37
Computer Vision I - Tracking (Part I) Carsten Rother Computer Vision I: Tracking (Part I) 24/01/2015 24/01/2015 [slide credits: Alex Krull]

Upload: others

Post on 07-Jul-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Computer Vision I -Tracking (Part I)

Carsten Rother

Computer Vision I: Tracking (Part I)24/01/2015

24/01/2015

[slide credits: Alex Krull]

Page 2: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

What is Tracking?

• „Tracking an object in an image sequence means continuously identifying its location when either the object or the camera are moving“ [Lepetit and Fua 2005]

• This can mean estimating in each frame:

• 2D location or window

• 6D rigid body transformation

• More complex parametric models• Active Appearance Models

• Skeleton for human pose etc.

24/01/2015 Computer Vision I: Tracking (Part I) 2

Page 3: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

What is Tracking?

• „Tracking an object in an image sequence means continuously identifying its location when either the object or the camera are moving“ [Lepetit and Fua 2005]

• This can mean estimating in each frame:

• 2D location or window

• 6D rigid body transformation

• More complex parametric models• Active Appearance Models

• Skeleton for human pose etc.

24/01/2015 Computer Vision I: Tracking (Part I) 3

Page 4: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

What is Tracking?

• „Tracking an object in an image sequence means continuoslyidentifying its location when either the object or the camera aremoving“ [Lepetit and Fua 2005]

• This can mean estimating in each frame:

• 2D location or window

• 6D rigid body transformation

• More complex parametric models• Active Appearance Models

• Skeleton for human pose etc.

24/01/2015 Computer Vision I: Tracking (Part I) 4

Page 5: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Tracking vs Localization

• Tracking of objects is closely related to:

• camera pose estimation in a known environment

• localization of agents (eg. Robots) in a known environment

• Reminder: SLAM has unknown location (agent, camera) and unknown environment

24/01/2015 Computer Vision I: Tracking (Part I) 5

Page 6: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Outline

• This lecture• The Bayes Filter

• Explained for localization

• Next lecture• The Particle Filter

• The Kalman Filter

• Pros and Cons

• Beyond tracking and localization

• Case study: • 6-DOF Model Based Tracking via Object Coordinate Regression

24/01/2015 Computer Vision I: Tracking (Part I) 6

Page 7: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Probabilities - Reminder

• A random variable is denoted with 𝑥 ∈ {0,… , 𝐾}

• Discrete probability distribution: 𝑝(𝑥) satisfies 𝑥 𝑝(𝑥) = 1

• Joint distribution of two random variables: 𝑝(𝑥, 𝑧)

• Conditional distribution: 𝑝 𝑥 𝑧

• Sum rule (marginal distribution): 𝑝 𝑧 = 𝑥 𝑝(𝑥, 𝑧)

• Independent probability distribution: 𝑝 𝑥, 𝑧 = 𝑝 𝑧 𝑝 𝑥

• Product rule: 𝑝 𝑥, 𝑧 = 𝑝 𝑧 𝑥 𝑝(𝑥)

• Bayes’ rule: 𝑝 𝑥|𝑧 =𝑝(𝑧|𝑥)𝑝 𝑥

𝑝(𝑧)

24/01/2015 7Intelligent Systems: Undirected Graphical Models

Page 8: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

The Bayes Filter / Convolute and Multiply

24/01/2015 Computer Vision I: Tracking (Part I) 8

• We have:

• Probabilistic model for movement

• Probabilistic model formeasurement• Based on map of the environment

• Where is the ship?

• Using all previous andcurrent observations

Page 9: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

1tztz

1txtx

The Hidden Markov Model

24/01/2015 Computer Vision I: Tracking (Part I) 9

Observations:Depth measurement

States:Positions

time

Page 10: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

The Hidden Markov Model

24/01/2015 Computer Vision I: Tracking (Part I) 10

Observation Model:What is the likelihoodof an observation, given a state?

𝑝 𝑧𝑡 𝑥𝑡 =1

𝑐𝑒− 𝑧𝑡−𝑑 𝑥𝑡

2/(2𝜎2)

1tztz

1txtx

time

𝑑 𝑥𝑡 is the known true depth

Page 11: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

The Hidden Markov Model

24/01/2015 Computer Vision I: Tracking (Part I) 11

Motion Model:Probability forstate transition

𝑝 𝑥𝑡+1 𝑥𝑡

1tztz

1txtx

time

Page 12: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Probability distribution for the state given all previous and currentobservations:

• This is what we are interested in

• Eg. use maximum as current estimate

The Posterior distribution

24/01/2015 Computer Vision I: Tracking (Part I) 12

tz

tx

1tz

1tx

0z

0x

...

...

𝑝 𝑥𝑡 𝑧0:𝑡

𝑥𝑡∗ = 𝑎𝑟𝑚𝑎𝑥𝑥𝑡

𝑝 𝑥𝑡 𝑧0:𝑡

Page 13: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

The Prior distribution

24/01/2015 Computer Vision I: Tracking (Part I) 13

1txtx

1tz

1tx

0z

0x

...

...

𝑝 𝑥𝑡+1 𝑧0:𝑡

Probability distribution for the next state given only previousobservations:

• Intermediate step for calculating the next posterior

tz

Page 14: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Important Distributions

24/01/2015 Computer Vision I: Tracking (Part I) 14

𝑝 𝑥𝑡+1 𝑧0:𝑡

1txtx

1tz

1tx

0z

0x

0X

...

0X0X

tx

1tz

1tx

0z

0x

0X

...

𝑝 𝑥𝑡 𝑧0:𝑡

1txtx

tz

tx

𝑝 𝑧𝑡 𝑥𝑡𝑝 𝑥𝑡+1 𝑥𝑡

Observation Model: Motion Model:

Posterior: Prior:

• Likelihood ofobservation givenstate

• Continuous Gaussianaround real depth

• Probability of newstate given old one

• Discrete Gaussian

• Probability of state given previousand current observations

• Probability of state given onlyprevious observations

Page 15: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Step by Step

24/01/2015 Computer Vision I: Tracking (Part I) 15

𝑡 = 0

• Assume prior for first frame:

• Make first measurement: 𝑧0

𝑝(𝑥0)

Page 16: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Step by Step

24/01/2015 Computer Vision I: Tracking (Part I) 16

𝑡 = 0

• Calculate likelihood 𝑝(𝑧0|𝑥0) for every possible state 𝑥0:

Page 17: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Step by Step

24/01/2015 Computer Vision I: Tracking (Part I) 17

𝑡 = 0

• Calculate the posterior by• multiplying with prior• Normalizing

• Reducing uncertainty𝑝 𝑥0 𝑧0 =

𝑝(𝑥0)𝑝(𝑧0|𝑥0)

𝑥 𝑝(𝑥0 = 𝑥)𝑝(𝑧0|𝑥0 = 𝑥)

Page 18: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

The Bayes Filter / Convolute and Multiply

24/01/2015 Computer Vision I: Tracking (Part I) 18

𝑡 = 0

𝑝 𝑥1 𝑧0 =

𝑥

𝑝 𝑥0 = 𝑥 𝑧0 𝑝 𝑥1 𝑥0 = 𝑥

• Calculate the prior by Convolutionwith motion model

• Adding uncertainty

Page 19: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

The Bayes Filter / Convolute and Multiply

24/01/2015 Computer Vision I: Tracking (Part I) 19

𝑡 = 1

• Make new measurement: 𝑧1

Page 20: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

The Bayes Filter / Convolute and Multiply

24/01/2015 Computer Vision I: Tracking (Part I) 20

𝑡 = 1

• Calculate likelihood 𝑝(𝑧1|𝑥1) for every possible state 𝑥1:

Page 21: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

The Bayes Filter / Convolute and Multiply

24/01/2015 Computer Vision I: Tracking (Part I) 21

𝑡 = 1

• Calculate the posterior by• multiplying with prior• Normalizing

• Reducing uncertainty𝑝 𝑥1 𝑧0:1 =

𝑝(𝑥1|𝑧0)𝑝(𝑧1|𝑥1)

𝑥 𝑝(𝑥1 = 𝑥|𝑧0)𝑝(𝑧1|𝑥1 = 𝑥)

Page 22: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

The Bayes Filter / Convolute and Multiply

24/01/2015 Computer Vision I: Tracking (Part I) 22

𝑡 = 1

• Calculate the prior by Convolutionwith motion model

• Adding uncertainty

𝑝 𝑥2 𝑧0:1 =

𝑥

𝑝 𝑥1 = 𝑥 𝑧0:1 𝑝(𝑥2|𝑥1 = 𝑥)

Page 23: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

The Bayes Filter / Convolute and Multiply

24/01/2015 Computer Vision I: Tracking (Part I) 23

𝑡 = 2

• Make new measurement: 𝑧2

Page 24: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

The Bayes Filter / Convolute and Multiply

24/01/2015 Computer Vision I: Tracking (Part I) 24

𝑡 = 2

• Calculate likelihood 𝑝(𝑧2|𝑥2) for every possible state 𝑥2:

Page 25: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

The Bayes Filter / Convolute and Multiply

24/01/2015 Computer Vision I: Tracking (Part I) 25

𝑡 = 2

• Calculate the posterior by• multiplying with prior• Normalizing

• Reducing uncertainty𝑝 𝑥2 𝑧0:2 =

𝑝(𝑥2|𝑧0:1)𝑝(𝑧2|𝑥2)

𝑥 𝑝(𝑥2 = 𝑥|𝑧0:1)𝑝(𝑧2|𝑥2 = 𝑥)

Page 26: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

The Bayes Filter / Convolute and Multiply

24/01/2015 Computer Vision I: Tracking (Part I) 26

𝑡 = 2

Page 27: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

The Bayes Filter / Convolute and Multiply

24/01/2015 Computer Vision I: Tracking (Part I) 27

Algorithm:

1. Make observation

2. Calculate likelihood for every position

3. Multiply with last prior and normalize

• Calculate posterior

4. Convolution with motion model

• Calculate new prior

5. Go to 1.

Page 28: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

𝑝 𝑥0 𝑧0

Calculating the Posterior

24/01/2015 Computer Vision I: Tracking (Part I) 28

𝑝(𝑥0)

0z

1x0x

1z

...

=𝑝(𝑥0)𝑝(𝑧0|𝑥0)

𝑥 𝑝(𝑥0 = 𝑥)𝑝(𝑧0|𝑥0 = 𝑥)

(Multiply and normalize)Observation model

(see proof 1)

Page 29: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Proof 1

24/01/2015 Computer Vision I: Tracking (Part I) 29

Page 30: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Calculating the next Prior

24/01/2015 Computer Vision I: Tracking (Part I) 30

𝑝(𝑥0)

𝑝 𝑥0 𝑧0

𝑝 𝑥1 𝑧0

...

=

𝑥

𝑝 𝑥0 = 𝑥 𝑧0 𝑝 𝑥1 𝑥0 = 𝑥

(Convolution)

Observation model

0z

1x0x

1z

(see proof 2)

Page 31: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Proof 2

24/01/2015 Computer Vision I: Tracking (Part I) 31

Page 32: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Calculating the Posterior

24/01/2015 Computer Vision I: Tracking (Part I) 32

𝑝(𝑥0)

𝑝 𝑥0 𝑧0

𝑝 𝑥1 𝑧0

...

Observation model

1x0x

Observation model

𝑝 𝑥1 𝑧0:1 =𝑝(𝑥1|𝑧0)𝑝(𝑧1|𝑥1)

𝑥 𝑝(𝑥1 = 𝑥)𝑝(𝑧1|𝑥1 = 𝑥)

1z0z

Page 33: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

𝑝 𝑥𝑡 𝑧0:𝑡

Calculating the Posterior (General Case)

24/01/2015 Computer Vision I: Tracking (Part I) 33

𝑝(𝑥𝑡|𝑧0:𝑡−1)

tz

1txtx

1tz

...

=𝑝(𝑥𝑡|𝑧0:𝑡−1)𝑝(𝑧𝑡|𝑥𝑡)

𝑥 𝑝(𝑥𝑡 = 𝑥|𝑧0:𝑡−1)𝑝(𝑧𝑡|𝑥𝑡 = 𝑥)

(Multiply and normalize)Observation model

...

(see proof 3)

Page 34: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Proof 3

24/01/2015 Computer Vision I: Tracking (Part I) 34

Page 35: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Calculating the next Prior (General Case)

24/01/2015 Computer Vision I: Tracking (Part I) 35

𝑝(𝑥𝑡|𝑧0:𝑡−1)

𝑝 𝑥𝑡 𝑧0:𝑡

𝑝 𝑥𝑡+1 𝑧0:𝑡

...

=

𝑥

𝑝 𝑥𝑡 = 𝑥 𝑧0:𝑡 𝑝(𝑥𝑡+1|𝑥𝑡 = 𝑥)

(Convolution)

Observation model

...

tz

1txtx

1tz

(see proof 4)

Page 36: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Proof 4

24/01/2015 Computer Vision I: Tracking (Part I) 36

Page 37: Computer Vision I - Tracking (Part I)ds24/lehre/cv1_ws_2014/VL12.pdf · Computer Vision I - Tracking (Part I) Carsten Rother 24/01/2015 Computer Vision I: Tracking (Part I) 24/01/2015

Particle Filter

• How to apply it in continuous space?

• Two popular alternatives:

• Particle filter• Represent distributions with samples

• Kalman Filter • Represent distributions as Gaussians

24/01/2015 Computer Vision I: Tracking (Part I) 37