Lecture 20: Motion estimation Most slides from S. Lazebnik, which - - PowerPoint PPT Presentation

lecture 20 motion estimation
SMART_READER_LITE
LIVE PREVIEW

Lecture 20: Motion estimation Most slides from S. Lazebnik, which - - PowerPoint PPT Presentation

Lecture 20: Motion estimation Most slides from S. Lazebnik, which are based on other slides from S. Seitz, R. Szeliski, M. Pollefeys 1 Announcements PS9 and PS10 deadlines extended to April 21 2 Optical flow What moved where? Source: S.


slide-1
SLIDE 1

1

Lecture 20: Motion estimation

Most slides from S. Lazebnik, which are based on other slides from S. Seitz, R. Szeliski, M. Pollefeys

slide-2
SLIDE 2

2

Announcements

  • PS9 and PS10 deadlines extended to April 21
slide-3
SLIDE 3

Optical flow

3

Source: S. Lazebnik

What moved where?

slide-4
SLIDE 4

Motion is a powerful perceptual cue

4

Source: S. Lazebnik

slide-5
SLIDE 5

Motion is a powerful perceptual cue

5

  • G. Johansson, “Visual Perception of Biological Motion and a Model For Its Analysis",

Perception and Psychophysics 14, 201-211, 1973.

Source: S. Lazebnik

slide-6
SLIDE 6

Motion is a powerful perceptual cue

6

  • G. Johansson, “Visual Perception of Biological Motion and a Model For Its Analysis",

Perception and Psychophysics 14, 201-211, 1973.

Source: S. Lazebnik

slide-7
SLIDE 7

Motion field

7

Source: S. Lazebnik

slide-8
SLIDE 8

Estimating optical flow

8

  • Common assumptions
  • Brightness constancy: projection of the same point looks the

same in every frame

  • Small motion: points do not move very far
  • Spatial coherence: points move like their neighbors

I(x,y,t–1) I(x,y,t)

  • Given two subsequent frames, estimate the motion field u(x,y) and

v(x,y) between them

Source: S. Lazebnik

slide-9
SLIDE 9

The brightness constancy constraint

I(x,y,t–1) I(x,y,t)

Simple loss function [Lucas & Kanade 1981]. Find flow that minimizes:

L(u, v) = X

x,y

[I(x, y, t − 1) − I(x + u(x, y), y + v(x, y), t)]2

<latexit sha1_base64="DhWrnIE7gdWIgy9PNwT2+fX+E=">ACOXicbVBLSwMxEM76tr6qHr0MFqHFWnZV0IsgelHwUMGq0K4lm6YazD5IJsWy9G958V94E7x4UMSrf8BsreBrYMj3fTPDZL4gkUKj6z4Q8Mjo2PjE5O5qemZ2bn8/MKpjo1ivMZiGavzgGouRcRrKFDy80RxGgaSnwX+1n9rMOVFnF0gt2E+yG9jERbMIpWauarjZDiFaMyPeoVTRk6JdiBhjZhM70pQ7dXPyxmbxlwzSvBGlgKq2D6YsmJZ0vgiX/Yr2ZL7gVtx/wF3gDUCDqDbz941WzEzI2Sal3AT9lCoUTPJermE0Tyi7pe8bmFEQ679tH95D1as0oJ2rGxGCH31+0RKQ627YWA7szv171om/lerG2xv+6mIEoM8Yp+L2kYCxpDZC2hOEPZtYAyJexfgV1Rlas3PWBO/3yX/B6XrF26i4x5uF3b2BHRNkiSyTIvHIFtklB6RKaoSRW/JInsmLc+c8Oa/O2frkDOYWSQ/wn/ALA2pq8=</latexit>

Source: S. Lazebnik

slide-10
SLIDE 10

) , ( ) 1 , , (

), , ( ) , ( t y x y x

v y u x I t y x I + + = − ) , ( ) , ( ) , , ( ) 1 , , ( y x v I y x u I t y x I t y x I

y x

+ + ≈ −

Linearizing the right side using Taylor expansion:

The brightness constancy constraint

10

I(x,y,t–1) I(x,y,t)

≈ + +

t y x

I v I u I

Hence,

Brightness Constancy Equation: Derivative in y direction

Source: S. Lazebnik

slide-11
SLIDE 11

The brightness constancy constraint

11

  • How many equations and unknowns per pixel?
  • One equation, two unknowns
  • What does this constraint mean?
  • The component of the flow perpendicular to the gradient (i.e.,

parallel to the edge) is unknown!

= + +

t y x

I v I u I

) , ( = + ⋅ ∇

t

I v u I

) ' , ' ( = ⋅ ∇ v u I

edge (u,v) (u’,v’) gradient (u+u’,v+v’)

If (u, v) satisfies the equation, 
 so does (u+u’, v+v’) if

Source: S. Lazebnik

slide-12
SLIDE 12

The aperture problem

12

Perceived motion

Source: S. Lazebnik

slide-13
SLIDE 13

The aperture problem

13

Actual motion

Source: S. Lazebnik

slide-14
SLIDE 14

The barber pole illusion

14

http://en.wikipedia.org/wiki/Barberpole_illusion

Source: S. Lazebnik

slide-15
SLIDE 15

The barber pole illusion

15

http://en.wikipedia.org/wiki/Barberpole_illusion

Source: S. Lazebnik

slide-16
SLIDE 16
  • How to get more equations for a pixel?
  • Spatial coherence constraint: assume the pixel’s

neighbors have the same (u,v)

  • E.g., if we use a 5x5 window, that gives us 25 equations per pixel

Solving the aperture problem

16

) ( ] , [ ) ( = + ⋅ ∇

i t i

I v u I x x

⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (

2 1 2 2 1 1 n t t t n y n x y x y x

I I I v u I I I I I I x x x x x x x x x

… …

[Lucas & Kanade 1981]

Source: S. Lazebnik

slide-17
SLIDE 17

Lucas-Kanade flow

17

When is this system solvable?

⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (

2 1 2 2 1 1 n t t t n y n x y x y x

I I I v u I I I I I I x x x x x x x x x

  • [Lucas & Kanade 1981]

Least squares problem:

… … …

Source: S. Lazebnik

slide-18
SLIDE 18

Lucas-Kanade optical flow

18

(summations are over all pixels in the window)

  • Solution given by

⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (

2 1 2 2 1 1 n t t t n y n x y x y x

I I I v u I I I I I I x x x x x x x x x

  • 1

1 2 2 × × ×

=

n n

b d A

b A A)d A

T T

= (

⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ − = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡

∑ ∑ ∑ ∑ ∑ ∑

t y t x y y y x y x x x

I I I I v u I I I I I I I I

M = ATA is the “second moment” matrix

[Lucas & Kanade 1981] … … …

Source: S. Lazebnik

slide-19
SLIDE 19

Analyzing the second moment matrix

19

λ1 λ2 “Corner”
 λ1 and λ2 are large,


λ1 ~ λ2

λ1 and λ2 are small “Edge” 
 λ1 >> λ2 “Edge” 
 λ2 >> λ1 “Flat” region

  • Estimation of optical flow is well-conditioned

precisely for regions with high “cornerness”:

Eigenvalues

Source: S. Lazebnik

slide-20
SLIDE 20

Conditions for solvability

20

Source: S. Lazebnik

slide-21
SLIDE 21

Conditions for solvability

21

Source: S. Lazebnik

slide-22
SLIDE 22

Lucas-Kanade flow example

22

Input frames Output

Source: MATLAB Central File Exchange

Source: S. Lazebnik

slide-23
SLIDE 23

Fixing the errors in Lucas-Kanade

23

  • The motion is large (larger than a pixel)
  • Iterative refinement
  • Multi-resolution (coarse-to-fine) estimation

  • Local ambiguity
  • Smooth using graphical model refinement

Source: S. Lazebnik

slide-24
SLIDE 24

Large motions

24

Source: Khurram Hassan-Shafique CAP5415 Computer Vision 2003

slide-25
SLIDE 25

Initialize flow: u0(x, y) = v0(x, y) = 0 For each iteration i:

  • 1. Linearize around current solution. Find an update for problem:



 
 by solving linear least squares problem for each pixel:

  • 2. Apply updates: and

Idea #1: iterative estimation

Goal: minimize matching error

Iterative algorithm:

L(u, v) = X

x,y x+N

X

x0=xN y+N

X

y0=yN

[I(x0, y0, t − 1) − I(x0 + u(x, y), y0 + v(x, y), t)]2

<latexit sha1_base64="zfbDWYdQoYWCP76UN8puK4w3Luo=">ACcHicbZFda9swFIZlt1vb7CtbgrbmLYwmqxtsNtCd1MI3c0GY2SwJIXEDbKitKLyB9JRsDG+7v/rX9Eb/oLJjsebMkOCL96n3Ns6bUfC67Ace4te239ydONza3as+cvXr6qb+8MVKQlZX0aiUhe+EQxwUPWBw6CXcSkcAXbOjfCn4cM6k4lH4C9KYeQG5CvmMUwLGmtRvxwGBa0pE9j1v6QM8b+MzPFY6mGTJAU7zSu4ZN8GH+Ed+mSV43zyrprQgaUXSkoy+tZI9M2sWHLptwrDIN0qXtkukNnN/+yg7V0eTepNp+OUhVeFW4kmqo3qd+NpxHVAQuBCqLUyHVi8DIigVPB8tpYKxYTekOu2MjIkARMeVkZWI4/GmeKZ5E0KwRcun9PZCRQKg1801nEo5ZYf6PjTMPnsZD2MNLKSLD820wBDhIn085ZJREKkRhEpuzorpNZGEgvlHNROCu3zlVTE46rjHefnSbN7XsWxiV6jD6iFXHSKugr6qE+oujBalhvrLfWo71rv7PfL1ptq5poH/K/vQbOZqyVw=</latexit>

where the window width/height is 2N+1 = min

∆u,∆v L

<latexit sha1_base64="Qkl9WMgwENX6LB/zqQY/s3CH2gw=">ACQ3icbVDNS8MwHE39nPOr6tFLcAgTZbQq6EUY6sGDhwnuA7dR0izbwtK0JGlhlP5vXvwHvPkPePGgiFfBdCs4Nx8EXt57P5LfcwNGpbKsF2NufmFxaTm3kl9dW9/YNLe2a9IPBSZV7DNfNFwkCaOcVBVjDQCQZDnMlJ3B1epX4+IkNTn92oYkLaHepx2KUZKS4750LomTCEYHsGMRfACtjzKnXjWSrSDVB8jFt8mxdCh8BD+pqLJe3TgmAWrZI0AZ4mdkQLIUHM51bHx6FHuMIMSdm0rUC1YyQUxYwk+VYoSYDwAPVIU1OPCLb8aiDBO5rpQO7vtCHKzhSJydi5Ek59FydTFeQ014q/uc1Q9U9b8eUB6EiHI8f6oYMKh+mhcIOFQrNtQEYUH1XyHuI4Gw0rXndQn29MqzpHZcsk9K1t1poXyZ1ZEDu2APFIENzkAZ3IAKqAIMHsEreAcfxpPxZnwaX+PonJHN7IA/ML5/APHGreo=</latexit>

argmin

<latexit sha1_base64="JpAZROnxUJQuL+uBgau4ATh7Oe8=">AB9HicbVDLSgMxFL3js9ZX1aWbYBFclRkVdFl047KCfUA7lEyaUPzGJNMsQz9DjcuFHrx7jzb0zbWjrgQuHc+5N7j1Rwpmxv/trayurW9sFraK2zu7e/ulg8OGUakmtE4UV7oVYUM5k7RumeW0lWiKRcRpMxreTv3miGrDlHyw4SGAvclixnB1klhR0TqKcO6L5icdEtlv+LPgJZJkJMy5Kh1S1+dniKpoNISjo1pB35iQ/ecZYTSbGTGpgMsR92nZUYkFNmM2WnqBTp/RQrLQradFM/T2RYWHMWESuU2A7MIveVPzPa6c2vg4zJpPUknmH8UpR1ahaQKoxzQlo8dwUQztysiA6wxsS6nogshWDx5mTOK8Fxb+/LFdv8jgKcAwncAYBXEV7qAGdSDwCM/wCm/eyHvx3r2PeuKl8cwR94nz9vZ5KG</latexit>

n

v L(ui + ∆u, vi + ∆v)

<latexit sha1_base64="Qkl9WMgwENX6LB/zqQY/s3CH2gw=">ACQ3icbVDNS8MwHE39nPOr6tFLcAgTZbQq6EUY6sGDhwnuA7dR0izbwtK0JGlhlP5vXvwHvPkPePGgiFfBdCs4Nx8EXt57P5LfcwNGpbKsF2NufmFxaTm3kl9dW9/YNLe2a9IPBSZV7DNfNFwkCaOcVBVjDQCQZDnMlJ3B1epX4+IkNTn92oYkLaHepx2KUZKS4750LomTCEYHsGMRfACtjzKnXjWSrSDVB8jFt8mxdCh8BD+pqLJe3TgmAWrZI0AZ4mdkQLIUHM51bHx6FHuMIMSdm0rUC1YyQUxYwk+VYoSYDwAPVIU1OPCLb8aiDBO5rpQO7vtCHKzhSJydi5Ek59FydTFeQ014q/uc1Q9U9b8eUB6EiHI8f6oYMKh+mhcIOFQrNtQEYUH1XyHuI4Gw0rXndQn29MqzpHZcsk9K1t1poXyZ1ZEDu2APFIENzkAZ3IAKqAIMHsEreAcfxpPxZnwaX+PonJHN7IA/ML5/APHGreo=</latexit>

Ad = b

<latexit sha1_base64="GEWDZ3DKwQvNp7MnOTiBcu96RZw=">AB7XicbVBNSwMxEJ2tX7V+VT16CRbBU9nVgl6EqhePFewHtEvJZrNtbDZkqxQlv4HLx4U8er/8ea/MW3oK0PBh7vzTAzL0g408Z1v53Cyura+kZxs7S1vbO7V94/aGmZKkKbRHKpOgHWlDNBm4YZTjuJojgOG0Ho9up36iSjMpHsw4oX6MB4JFjGBjpdZ1iK5Q0C9X3Ko7A1omXk4qkKPRL3/1QknSmApDONa67mJ8TOsDCOcTkq9VNMEkxEe0K6lAsdU+9ns2gk6sUqIqlsCYNm6u+JDMdaj+PAdsbYDPWiNxX/87qpiS79jIkNVSQ+aIo5chINH0dhUxRYvjYEkwUs7ciMsQKE2MDKtkQvMWXl0nrOqdV937WqV+k8dRhCM4hlPw4ALqcAcNaAKBR3iGV3hzpPivDsf89aCk8cwh84nz85l48</latexit>

u, vi+1 = vi + ∆v

<latexit sha1_base64="C5PIuWdVvaLQozB1Sa57SeARXk=">ACHicbVDLSsNAFJ34rPUVdelmsAhCpSRW0I1Q1IXLCvYBbQiT6bQdOpmEeQRK6Ie48VfcuFDEjQvBv3HaBqmtBy4czrmXe+8JYkalcpxva2l5ZXVtPbeR39za3tm19/brMtICkxqOWCSaAZKEU5qipGmrEgKAwYaQSDm7HfSIiQNOIPahgTL0Q9TrsUI2Uk3y5rP6VFdwSvoPYpLML2LWEKQX0Kk18nmXUS6NsFp+RMABeJm5ECyFD17c92J8I6JFxhqRsuU6svBQJRTEjo3xbSxIjPEA90jKUo5BIL508N4LHRunAbiRMcQUn6uxEikIph2FgOkOk+nLeG4v/eS2tupdeSnmsFeF4uqirGVQRHCcFO1QrNjQEIQFNbdC3EcCYWXyzJsQ3PmXF0n9rOSWS879eaFyncWRA4fgCJwAF1yACrgDVADGDyCZ/AK3qwn68V6tz6mrUtWNnMA/sD6+gEQTp48</latexit>

ui+1 = ui + ∆u,

<latexit sha1_base64="C5PIuWdVvaLQozB1Sa57SeARXk=">ACHicbVDLSsNAFJ34rPUVdelmsAhCpSRW0I1Q1IXLCvYBbQiT6bQdOpmEeQRK6Ie48VfcuFDEjQvBv3HaBqmtBy4czrmXe+8JYkalcpxva2l5ZXVtPbeR39za3tm19/brMtICkxqOWCSaAZKEU5qipGmrEgKAwYaQSDm7HfSIiQNOIPahgTL0Q9TrsUI2Uk3y5rP6VFdwSvoPYpLML2LWEKQX0Kk18nmXUS6NsFp+RMABeJm5ECyFD17c92J8I6JFxhqRsuU6svBQJRTEjo3xbSxIjPEA90jKUo5BIL508N4LHRunAbiRMcQUn6uxEikIph2FgOkOk+nLeG4v/eS2tupdeSnmsFeF4uqirGVQRHCcFO1QrNjQEIQFNbdC3EcCYWXyzJsQ3PmXF0n9rOSWS879eaFyncWRA4fgCJwAF1yACrgDVADGDyCZ/AK3qwn68V6tz6mrUtWNnMA/sD6+gEQTp48</latexit>
slide-26
SLIDE 26

Idea #2: Multi-scale estimation

26

Source: Khurram Hassan-Shafique CAP5415 Computer Vision 2003

slide-27
SLIDE 27

For each iteration i:

  • 1. Linearize around current solution. Find an update for problem:



 
 by solving linear least squares problem for each pixel:

  • 2. Apply updates: and

Idea #2: Multi-scale estimation

= min

∆u,∆v L

<latexit sha1_base64="Qkl9WMgwENX6LB/zqQY/s3CH2gw=">ACQ3icbVDNS8MwHE39nPOr6tFLcAgTZbQq6EUY6sGDhwnuA7dR0izbwtK0JGlhlP5vXvwHvPkPePGgiFfBdCs4Nx8EXt57P5LfcwNGpbKsF2NufmFxaTm3kl9dW9/YNLe2a9IPBSZV7DNfNFwkCaOcVBVjDQCQZDnMlJ3B1epX4+IkNTn92oYkLaHepx2KUZKS4750LomTCEYHsGMRfACtjzKnXjWSrSDVB8jFt8mxdCh8BD+pqLJe3TgmAWrZI0AZ4mdkQLIUHM51bHx6FHuMIMSdm0rUC1YyQUxYwk+VYoSYDwAPVIU1OPCLb8aiDBO5rpQO7vtCHKzhSJydi5Ek59FydTFeQ014q/uc1Q9U9b8eUB6EiHI8f6oYMKh+mhcIOFQrNtQEYUH1XyHuI4Gw0rXndQn29MqzpHZcsk9K1t1poXyZ1ZEDu2APFIENzkAZ3IAKqAIMHsEreAcfxpPxZnwaX+PonJHN7IA/ML5/APHGreo=</latexit>

argmin

<latexit sha1_base64="JpAZROnxUJQuL+uBgau4ATh7Oe8=">AB9HicbVDLSgMxFL3js9ZX1aWbYBFclRkVdFl047KCfUA7lEyaUPzGJNMsQz9DjcuFHrx7jzb0zbWjrgQuHc+5N7j1Rwpmxv/trayurW9sFraK2zu7e/ulg8OGUakmtE4UV7oVYUM5k7RumeW0lWiKRcRpMxreTv3miGrDlHyw4SGAvclixnB1klhR0TqKcO6L5icdEtlv+LPgJZJkJMy5Kh1S1+dniKpoNISjo1pB35iQ/ecZYTSbGTGpgMsR92nZUYkFNmM2WnqBTp/RQrLQradFM/T2RYWHMWESuU2A7MIveVPzPa6c2vg4zJpPUknmH8UpR1ahaQKoxzQlo8dwUQztysiA6wxsS6nogshWDx5mTOK8Fxb+/LFdv8jgKcAwncAYBXEV7qAGdSDwCM/wCm/eyHvx3r2PeuKl8cwR94nz9vZ5KG</latexit>

n

v L(ui + ∆u, vi + ∆v)

<latexit sha1_base64="Qkl9WMgwENX6LB/zqQY/s3CH2gw=">ACQ3icbVDNS8MwHE39nPOr6tFLcAgTZbQq6EUY6sGDhwnuA7dR0izbwtK0JGlhlP5vXvwHvPkPePGgiFfBdCs4Nx8EXt57P5LfcwNGpbKsF2NufmFxaTm3kl9dW9/YNLe2a9IPBSZV7DNfNFwkCaOcVBVjDQCQZDnMlJ3B1epX4+IkNTn92oYkLaHepx2KUZKS4750LomTCEYHsGMRfACtjzKnXjWSrSDVB8jFt8mxdCh8BD+pqLJe3TgmAWrZI0AZ4mdkQLIUHM51bHx6FHuMIMSdm0rUC1YyQUxYwk+VYoSYDwAPVIU1OPCLb8aiDBO5rpQO7vtCHKzhSJydi5Ek59FydTFeQ014q/uc1Q9U9b8eUB6EiHI8f6oYMKh+mhcIOFQrNtQEYUH1XyHuI4Gw0rXndQn29MqzpHZcsk9K1t1poXyZ1ZEDu2APFIENzkAZ3IAKqAIMHsEreAcfxpPxZnwaX+PonJHN7IA/ML5/APHGreo=</latexit>

Ad = b

<latexit sha1_base64="GEWDZ3DKwQvNp7MnOTiBcu96RZw=">AB7XicbVBNSwMxEJ2tX7V+VT16CRbBU9nVgl6EqhePFewHtEvJZrNtbDZkqxQlv4HLx4U8er/8ea/MW3oK0PBh7vzTAzL0g408Z1v53Cyura+kZxs7S1vbO7V94/aGmZKkKbRHKpOgHWlDNBm4YZTjuJojgOG0Ho9up36iSjMpHsw4oX6MB4JFjGBjpdZ1iK5Q0C9X3Ko7A1omXk4qkKPRL3/1QknSmApDONa67mJ8TOsDCOcTkq9VNMEkxEe0K6lAsdU+9ns2gk6sUqIqlsCYNm6u+JDMdaj+PAdsbYDPWiNxX/87qpiS79jIkNVSQ+aIo5chINH0dhUxRYvjYEkwUs7ciMsQKE2MDKtkQvMWXl0nrOqdV937WqV+k8dRhCM4hlPw4ALqcAcNaAKBR3iGV3hzpPivDsf89aCk8cwh84nz85l48</latexit>

u, vi+1 = vi + ∆v

<latexit sha1_base64="C5PIuWdVvaLQozB1Sa57SeARXk=">ACHicbVDLSsNAFJ34rPUVdelmsAhCpSRW0I1Q1IXLCvYBbQiT6bQdOpmEeQRK6Ie48VfcuFDEjQvBv3HaBqmtBy4czrmXe+8JYkalcpxva2l5ZXVtPbeR39za3tm19/brMtICkxqOWCSaAZKEU5qipGmrEgKAwYaQSDm7HfSIiQNOIPahgTL0Q9TrsUI2Uk3y5rP6VFdwSvoPYpLML2LWEKQX0Kk18nmXUS6NsFp+RMABeJm5ECyFD17c92J8I6JFxhqRsuU6svBQJRTEjo3xbSxIjPEA90jKUo5BIL508N4LHRunAbiRMcQUn6uxEikIph2FgOkOk+nLeG4v/eS2tupdeSnmsFeF4uqirGVQRHCcFO1QrNjQEIQFNbdC3EcCYWXyzJsQ3PmXF0n9rOSWS879eaFyncWRA4fgCJwAF1yACrgDVADGDyCZ/AK3qwn68V6tz6mrUtWNnMA/sD6+gEQTp48</latexit>

ui+1 = ui + ∆u,

<latexit sha1_base64="C5PIuWdVvaLQozB1Sa57SeARXk=">ACHicbVDLSsNAFJ34rPUVdelmsAhCpSRW0I1Q1IXLCvYBbQiT6bQdOpmEeQRK6Ie48VfcuFDEjQvBv3HaBqmtBy4czrmXe+8JYkalcpxva2l5ZXVtPbeR39za3tm19/brMtICkxqOWCSaAZKEU5qipGmrEgKAwYaQSDm7HfSIiQNOIPahgTL0Q9TrsUI2Uk3y5rP6VFdwSvoPYpLML2LWEKQX0Kk18nmXUS6NsFp+RMABeJm5ECyFD17c92J8I6JFxhqRsuU6svBQJRTEjo3xbSxIjPEA90jKUo5BIL508N4LHRunAbiRMcQUn6uxEikIph2FgOkOk+nLeG4v/eS2tupdeSnmsFeF4uqirGVQRHCcFO1QrNjQEIQFNbdC3EcCYWXyzJsQ3PmXF0n9rOSWS879eaFyncWRA4fgCJwAF1yACrgDVADGDyCZ/AK3qwn68V6tz6mrUtWNnMA/sD6+gEQTp48</latexit>

Initialize flow: u0(x, y) = v0(x, y) = 0 For each scale s: Initialize flow from previous (coarser) scale

  • 3. Extra trick for smoother flow: apply median filter to ui+1 and vi+1

2x scale 2x flow magnitude

slide-28
SLIDE 28

Example

28

Flow visualization Coarse-to-fine LK with median filtering Coarse-to-fine LK Input two frames

Source: Ce Liu

slide-29
SLIDE 29

Smoothness assumption

X

x,y

[I(x, y, t − 1) − I(u(x), v(y), t)]2 +

<latexit sha1_base64="cKZIZpY+43RA+yj7rcnx5s64hVI=">ACYHicbVFBT9swFHYCjNLBKOM2Lk+rJhKtVAkgbUe0XeAyMWkFpCZUjuCheNE9ktHFOVPcthl/0SnDaTGOxJ9v0vfZfp+TXAqDQfDLcVdW16tdza6rze3mz3dt5emKzQjI9YJjN9lVDpVB8hAIlv8o1p2ki+WVy97WpX865NiJTP7DMeZzSGyVmglG01KT3MzJFOqnuB1DW4zOvyQPAg9CHAzjzCu/eH8DcK+2Ofnx9CB9hKcjrv2AfIqEgSineMiqrb3UNVpc3B9i07/sLlTdfUvOWmvT6wTBYBLwEYQv6pI3zSe8hmasSLlCJqkx4zDIMa6oRsEkr7tRYXhO2R294WMLFU25iauFQTV8sMwUZpm2SyEs2KeKiqbGlGliO5s5zPNaQ/6vNi5w9jmuhMoL5IotL5oVEjCDxm2YCs0ZytICyrSwbwV2SzVlaP+ka0In4/8ElwcDsOjYfD9uH/ypbWjQ/bIe+KRkHwiJ+SUnJMRYeS3s+JsOlvOH7fjbrs7y1bXaTW75J9w3z0CWeOtTQ=</latexit>

Goal: minimize matching error + smoothness [Horn and Schunck 1981]

)]2 + X

p

X

p02N

(u(p) − u(p0))2 + (v(p) − v(p0))2

<latexit sha1_base64="cKZIZpY+43RA+yj7rcnx5s64hVI=">ACYHicbVFBT9swFHYCjNLBKOM2Lk+rJhKtVAkgbUe0XeAyMWkFpCZUjuCheNE9ktHFOVPcthl/0SnDaTGOxJ9v0vfZfp+TXAqDQfDLcVdW16tdza6rze3mz3dt5emKzQjI9YJjN9lVDpVB8hAIlv8o1p2ki+WVy97WpX865NiJTP7DMeZzSGyVmglG01KT3MzJFOqnuB1DW4zOvyQPAg9CHAzjzCu/eH8DcK+2Ofnx9CB9hKcjrv2AfIqEgSineMiqrb3UNVpc3B9i07/sLlTdfUvOWmvT6wTBYBLwEYQv6pI3zSe8hmasSLlCJqkx4zDIMa6oRsEkr7tRYXhO2R294WMLFU25iauFQTV8sMwUZpm2SyEs2KeKiqbGlGliO5s5zPNaQ/6vNi5w9jmuhMoL5IotL5oVEjCDxm2YCs0ZytICyrSwbwV2SzVlaP+ka0In4/8ElwcDsOjYfD9uH/ypbWjQ/bIe+KRkHwiJ+SUnJMRYeS3s+JsOlvOH7fjbrs7y1bXaTW75J9w3z0CWeOtTQ=</latexit>

where p and p’ are neighboring pixels

Ed(u, v)

<latexit sha1_base64="sc5VAOaN+H2EFYASkBhsf6NihAM=">AB8HicbVBNSwMxEJ2tX7V+VT16CRahgpRdFfRYFMFjBfsh7VKy2bQNTbJLki2Upb/CiwdFvPpzvPlvTNs9aOuDgcd7M8zMC2LOtHdbye3srq2vpHfLGxt7+zuFfcPGjpKFKF1EvFItQKsKWeS1g0znLZiRbEIOG0Gw9up3xRpVkH804pr7Afcl6jGBjpae7blhOztDotFsuRV3BrRMvIyUIEOtW/zqhBFJBJWGcKx123Nj46dYGUY4nRQ6iaYxJkPcp21LJRZU+ns4Ak6sUqIepGyJQ2aqb8nUiy0HovAdgpsBnrRm4r/e3E9K79lMk4MVS+aJewpGJ0PR7FDJFieFjSzBRzN6KyArTIzNqGBD8BZfXiaN84p3UXEfLkvVmyOPBzBMZTBgyuowj3UoA4EBDzDK7w5ynlx3p2PeWvOyWYO4Q+czx9F1Y9m</latexit>

match cost

Es(u, v)

<latexit sha1_base64="zfkdUhFxAHyDIyD5yo08dJ74y4c=">AB8HicbVBNSwMxEJ2tX7V+VT16CRahgpRdFfRYFMFjBfsh7VKyabYNTbJLki2Upb/CiwdFvPpzvPlvTNs9aOuDgcd7M8zMC2LOtHdbye3srq2vpHfLGxt7+zuFfcPGjpKFKF1EvFItQKsKWeS1g0znLZiRbEIOG0Gw9up3xRpVkH804pr7AfclCRrCx0tNdV5eTMzQ67RZLbsWdAS0TLyMlyFDrFr86vYgkgkpDONa67bmx8VOsDCOcTgqdRNMYkyHu07alEguq/XR28ASdWKWHwkjZkgbN1N8TKRZaj0VgOwU2A73oTcX/vHZiwms/ZTJODJVkvihMODIRmn6PekxRYvjYEkwUs7ciMsAKE2MzKtgQvMWXl0njvOJdVNyHy1L1JosjD0dwDGXw4AqcA81qAMBAc/wCm+Ocl6cd+dj3pzsplD+APn8wdc6491</latexit>

smoothness

  • This is a probabilistic graphical model!
  • Can solve using least squares (as in Lucas-Kanade)
  • Or using discrete optimization (e.g. belief propagation)
slide-30
SLIDE 30

30

Flow visualization Coarse-to-fine LK Input two frames Horn-Schunck

Smoothness assumption

Source: Ce Liu

slide-31
SLIDE 31

Flow networks

[Sun et al., “PWC-Net”, 2018]

Traditional coarse-to-fine flow PWC-net

slide-32
SLIDE 32

Simple application: slow motion

  • Flow used in lots of familiar places!
  • E.g., video compression,

denoising, action recognition, …


  • One application: use flow to

estimate where pixel will be between frames


  • Synthesize intermediate frames

(x, y) at time t-1 (x + u, y + v) at time t

slide-33
SLIDE 33
slide-34
SLIDE 34

34

Next lecture: light and color