Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck...

46
Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University

Transcript of Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck...

Page 1: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Optical Flow: Horn-Schunck16-385 Computer Vision (Kris Kitani)

Carnegie Mellon University

Page 2: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Horn-Schunck Optical Flow (1981)

Lucas-KanadeOptical Flow (1981)

‘constant’ flow(flow is constant for all pixels)

‘smooth’ flow(flow can vary from pixel to pixel)

brightness constancymethod of differences

global method (dense)

local method (sparse)

small motion

Page 3: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Optical Flow (Problem definition)

Estimate the motion (flow) between these

two consecutive images

I(x, y, t)I(x, y, t0)

How is this different from estimating a 2D transform?

Page 4: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Key Assumptions (unique to optical flow)

Color Constancy(Brightness constancy for intensity images)

Small Motion(pixels only move a little bit)

Implication: allows for pixel to pixel comparison (not image features)

Implication: linearization of the brightness constancy constraint

Page 5: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Approach

I(x, y, t)I(x, y, t0)

Look for nearby pixels with the same color(small motion) (color constancy)

Page 6: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Brightness constancy

I(x, y, t)

(x, y)

(x+ u�t, y + v�t)

(x, y)

(u, v) (�x, �y) = (u�t, v�t)Optical flow (velocities): Displacement:

I(x+ u�t, y + v�t, t+ �t) = I(x, y, t)

I(x, y, t+ �t)

For a really small time step…

Page 7: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Optical Flow Constraint equationI(x+ u�t, y + v�t, t+ �t) = I(x, y, t)

I(x, y, t) +@I

@x

�x+@I

@y

�y +@I

@t

�t = I(x, y, t)

Ix

u+ Iy

v + It

= 0

@I

@x

dx

dt

+@I

@y

dy

dt

+@I

@t

= 0

Page 8: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Ix

u+ Iy

v + It

= 0

u

v

Solution lies on a straight line

The solution cannot be determined uniquely with a single constraint (a single pixel)

Page 9: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Where can we get an additional constraint?

Page 10: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Horn-Schunck Optical Flow (1981)

Lucas-KanadeOptical Flow (1981)

‘constant’ flow(flow is constant for all pixels)

‘smooth’ flow(flow is smooth from pixel to pixel)

brightness constancymethod of differences

global method local method

small motion

Page 11: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Smoothness

most objects in the world are rigid or deform elastically

moving together coherently

we expect optical flow fields to be smooth

Page 12: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Key idea (of Horn-Schunck optical flow)

Enforce brightness constancy

Enforce smooth flow field

to compute optical flow

Page 13: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Key idea (of Horn-Schunck optical flow)

Enforce brightness constancy

Enforce smooth flow field

to compute optical flow

Page 14: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Enforce brightness constancy

Ix

u+ Iy

v + It

= 0

minu,v

Ix

uij

+ Iy

vij

+ It

�2For every pixel,

Page 15: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Ix

u+ Iy

v + It

= 0

minu,v

Ix

uij

+ Iy

vij

+ It

�2For every pixel,

lazy notation for Ix

(i, j)

Enforce brightness constancy

Page 16: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Ix

Iy

changes these

displacement of object

u v changes these

It

+ =

Find the optical flow such that it satisfies:

Page 17: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Key idea (of Horn-Schunck optical flow)

Enforce brightness constancy

Enforce smooth flow field

to compute optical flow

Page 18: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Enforce smooth flow field

uij ui+1,jui�1,j

ui,j+1

ui,j�1

minu

(ui,j � ui+1,j)2

u-component of flow

Page 19: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Which flow field optimizes the objective?

X

ij

(uij � ui+1,j)2

X

ij

(uij � ui+1,j)2?

minu

(ui,j � ui+1,j)2

Page 20: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

smallbig

Which flow field optimizes the objective? minu

(ui,j � ui+1,j)2

Page 21: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Key idea (of Horn-Schunck optical flow)

Enforce brightness constancy

Enforce smooth flow field

to compute optical flow

bringing it all together…

Page 22: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Horn-Schunck optical flow

minu,v

X

i,j

⇢Es(i, j) + �Ed(i, j)

�smoothness brightness constancy

weight

Page 23: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

HS optical flow objective function

Brightness constancy

Smoothness

(uij � ui+1,j)

ij

i, j + 1

i+ 1, j ij

i, j + 1

i+ 1, ji� 1, j

i, j � 1

i� 1, j

i, j � 1

(uij � ui,j+1)

ij

i, j + 1

i+ 1, j ij

i, j + 1

i+ 1, ji� 1, j

i, j � 1

i� 1, j

i, j � 1

(vij � vi+1,j) (vij � vi,j+1)

Ed

(i, j) =

Ix

uij

+ Iy

vij

+ It

�2

Es(i, j) =1

4

(uij � ui+1,j)

2 + (uij � ui,j+1)2 + (vij � vi+1,j)

2 + (vij � vi,j+1)2

why not all four neighbors?

Page 24: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

How do we solve this minimization problem?

minu,v

X

i,j

⇢Es(i, j) + �Ed(i, j)

Page 25: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Compute partial derivative, derive update equations (gradient decent!)

minu,v

X

i,j

⇢Es(i, j) + �Ed(i, j)

How do we solve this minimization problem?

Page 26: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Compute the partial derivatives of this huge sum!

X

ij

(1

4

(u

ij

� ui+1,j)

2 + (uij

� ui,j+1)

2 + (vij

� vi+1,j)

2 + (vij

� vi,j+1)

2

�+ �

Ix

uij

+ Iy

vij

+ It

�2)

smoothness term brightness constancy

Page 27: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Compute the partial derivatives of this huge sum!

X

ij

(1

4

(u

ij

� ui+1,j)

2 + (uij

� ui,j+1)

2 + (vij

� vi+1,j)

2 + (vij

� vi,j+1)

2

�+ �

Ix

uij

+ Iy

vij

+ It

�2)

@E

@ukl

= 2(ukl

� ukl

) + 2�(Ix

ukl

+ Iy

vkl

+ It

)Ix

it’s not so bad…

how many u terms depend on k and l?

Page 28: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Compute the partial derivatives of this huge sum!

X

ij

(1

4

(u

ij

� ui+1,j)

2 + (uij

� ui,j+1)

2 + (vij

� vi+1,j)

2 + (vij

� vi,j+1)

2

�+ �

Ix

uij

+ Iy

vij

+ It

�2)

@E

@ukl

= 2(ukl

� ukl

) + 2�(Ix

ukl

+ Iy

vkl

+ It

)Ix

it’s not so bad…

how many u terms depend on k and l?ONE from brightness constancyFOUR from smoothness

Page 29: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Compute the partial derivatives of this huge sum!

X

ij

(1

4

(u

ij

� ui+1,j)

2 + (uij

� ui,j+1)

2 + (vij

� vi+1,j)

2 + (vij

� vi,j+1)

2

�+ �

Ix

uij

+ Iy

vij

+ It

�2)

@E

@ukl

= 2(ukl

� ukl

) + 2�(Ix

ukl

+ Iy

vkl

+ It

)Ix

it’s not so bad…

how many u terms depend on k and l?ONE from brightness constancyFOUR from smoothness

Page 30: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Compute the partial derivatives of this huge sum!

X

ij

(1

4

(u

ij

� ui+1,j)

2 + (uij

� ui,j+1)

2 + (vij

� vi+1,j)

2 + (vij

� vi,j+1)

2

�+ �

Ix

uij

+ Iy

vij

+ It

�2)

(uij � ui+1,j)

ij

i, j + 1

i+ 1, ji� 1, j

i, j � 1

(u2ij � 2uijui+1,j + u2

i+1,j) (u2ij � 2uijui,j+1 + u2

i,j+1)

(variable will appear four times in sum)

Page 31: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Compute the partial derivatives of this huge sum!

X

ij

(1

4

(u

ij

� ui+1,j)

2 + (uij

� ui,j+1)

2 + (vij

� vi+1,j)

2 + (vij

� vi,j+1)

2

�+ �

Ix

uij

+ Iy

vij

+ It

�2)

(uij � ui+1,j)

ij

i, j + 1

i+ 1, ji� 1, j

i, j � 1

@E

@vkl

= 2(vkl

� vkl

) + 2�(Ix

ukl

+ Iy

vkl

+ It

)Iy

@E

@ukl

= 2(ukl

� ukl

) + 2�(Ix

ukl

+ Iy

vkl

+ It

)Ix

uij =1

4

⇢ui+1,j + ui�1,j + ui,j+1 + ui,j�1

�short hand for local average

(u2ij � 2uijui+1,j + u2

i+1,j) (u2ij � 2uijui,j+1 + u2

i,j+1)

(variable will appear four times in sum)

Page 32: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

@E

@vkl

= 2(vkl

� vkl

) + 2�(Ix

ukl

+ Iy

vkl

+ It

)Iy

@E

@ukl

= 2(ukl

� ukl

) + 2�(Ix

ukl

+ Iy

vkl

+ It

)Ix

Where are the extrema of E?

Page 33: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

@E

@vkl

= 2(vkl

� vkl

) + 2�(Ix

ukl

+ Iy

vkl

+ It

)Iy

@E

@ukl

= 2(ukl

� ukl

) + 2�(Ix

ukl

+ Iy

vkl

+ It

)Ix

Where are the extrema of E?

(set derivatives to zero and solve for unknowns u and v)

�Ix

Iy

ukl

+ (1 + �I2y

)vkl

= vkl

� �Iy

It

(1 + �I2x

)ukl

+ �Ix

Iy

vkl

= ukl

� �Ix

It

Page 34: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

@E

@vkl

= 2(vkl

� vkl

) + 2�(Ix

ukl

+ Iy

vkl

+ It

)Iy

@E

@ukl

= 2(ukl

� ukl

) + 2�(Ix

ukl

+ Iy

vkl

+ It

)Ix

Where are the extrema of E?

(set derivatives to zero and solve for unknowns u and v)

Ax = b

how do you solve this?

�Ix

Iy

ukl

+ (1 + �I2y

)vkl

= vkl

� �Iy

It

(1 + �I2x

)ukl

+ �Ix

Iy

vkl

= ukl

� �Ix

It

this is a linear system

Page 35: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

ok, take a step back, why are we doing all this math?

Page 36: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

X

ij

(1

4

(u

ij

� ui+1,j)

2 + (uij

� ui,j+1)

2 + (vij

� vi+1,j)

2 + (vij

� vi,j+1)

2

�+ �

Ix

uij

+ Iy

vij

+ It

�2)

We are solving for the optical flow (u,v) given two constraints

smoothness brightness constancy

We need the math to minimize this (back to the math)

Page 37: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

@E

@vkl

= 2(vkl

� vkl

) + 2�(Ix

ukl

+ Iy

vkl

+ It

)Iy

@E

@ukl

= 2(ukl

� ukl

) + 2�(Ix

ukl

+ Iy

vkl

+ It

)Ix

Where are the extrema of E?

(set derivatives to zero and solve for unknowns u and v)

Ax = b

how do you solve this?

�Ix

Iy

ukl

+ (1 + �I2y

)vkl

= vkl

� �Iy

It

(1 + �I2x

)ukl

+ �Ix

Iy

vkl

= ukl

� �Ix

It

Partial derivatives of Horn-Schunck objective function E:

Page 38: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

x = A�1b =

adjA

detAb

Recall

�Ix

Iy

ukl

+ (1 + �I2y

)vkl

= vkl

� �Iy

It

(1 + �I2x

)ukl

+ �Ix

Iy

vkl

= ukl

� �Ix

It

Page 39: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

x = A�1b =

adjA

detAb

Recall

(det A)

�Ix

Iy

ukl

+ (1 + �I2y

)vkl

= vkl

� �Iy

It

(1 + �I2x

)ukl

+ �Ix

Iy

vkl

= ukl

� �Ix

It

Same as the linear system:{1 + �(I2

x

+ I2y

)}ukl

= (1 + �I2x

)ukl

� �Ix

Iy

vkl

� �Ix

It

{1 + �(I2x

+ I2y

)}vkl

= (1 + �I2y

)vkl

� �Ix

Iy

ukl

� �Iy

It

(det A)

Page 40: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Rearrange to get update equations:

new value

old average

{1 + �(I2x

+ I2y

)}ukl

= (1 + �I2x

)ukl

� �Ix

Iy

vkl

� �Ix

It

{1 + �(I2x

+ I2y

)}vkl

= (1 + �I2y

)vkl

� �Ix

Iy

ukl

� �Iy

It

ukl

= ukl

� Ix

ukl

+ Iy

vkl

+ It

��1 + I2x

+ I2y

Ix

vkl

= vkl

� Ix

ukl

+ Iy

vkl

+ It

��1 + I2x

+ I2y

Iy

Page 41: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

new value

old average

ukl

= ukl

� Ix

ukl

+ Iy

vkl

+ It

��1 + I2x

+ I2y

Ix

vkl

= vkl

� Ix

ukl

+ Iy

vkl

+ It

��1 + I2x

+ I2y

Iy

When lambda is small (lambda inverse is big)…

minu,v

X

i,j

⇢Es(i, j) + �Ed(i, j)

�Recall:

Page 42: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

new value

old average

ukl

= ukl

� Ix

ukl

+ Iy

vkl

+ It

��1 + I2x

+ I2y

Ix

vkl

= vkl

� Ix

ukl

+ Iy

vkl

+ It

��1 + I2x

+ I2y

Iy

When lambda is small (lambda inverse is big)…goes to

zero

goes to zero

minu,v

X

i,j

⇢Es(i, j) + �Ed(i, j)

�Recall:

Page 43: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

new value

old average

ukl

= ukl

� Ix

ukl

+ Iy

vkl

+ It

��1 + I2x

+ I2y

Ix

vkl

= vkl

� Ix

ukl

+ Iy

vkl

+ It

��1 + I2x

+ I2y

Iy

When lambda is small (lambda inverse is big)…goes to

zero

goes to zero

…we only care about smoothness.

minu,v

X

i,j

⇢Es(i, j) + �Ed(i, j)

�Recall:

Page 44: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

ok, take a step back, why did we do all this math?

Page 45: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

X

ij

(1

4

(u

ij

� ui+1,j)

2 + (uij

� ui,j+1)

2 + (vij

� vi+1,j)

2 + (vij

� vi,j+1)

2

�+ �

Ix

uij

+ Iy

vij

+ It

�2)

We are solving for the optical flow (u,v) given two constraints

smoothness brightness constancy

We needed the math to minimize this (now to the algorithm)

Page 46: Optical Flow: Horn-Schunck16385/s17/Slides/14.3_OF__HornSchunck.pdf · Optical Flow: Horn-Schunck 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University. Horn-Schunck Optical

Horn-Schunck Optical Flow Algorithm

1. Precompute image gradients

2. Precompute temporal gradients

3. Initialize flow field

4. While not converged Compute flow field updates for each pixel:

Ix

Iy

It

u = 0

v = 0

ukl

= ukl

� Ix

ukl

+ Iy

vkl

+ It

��1 + I2x

+ I2y

Ix

vkl

= vkl

� Ix

ukl

+ Iy

vkl

+ It

��1 + I2x

+ I2y

Iy

Just 8 lines of code!