Announcements
Questions on the project?
New turn-in info online
Demos this Friday, 12-1:30

Motion Estimation
Today’s Readings
Watt, 10.3-10.4 (handout)
Trucco & Verri, 8.3 – 8.4 (skip 8.3.3, read only top half of p. 199) (handout)

Why estimate motion?
Lots of uses
Track object behavior
Correct for camera jitter (stabilization)
Align images (mosaics)
3D shape reconstruction
Special effects

Optical flow

Problem definition:  optical flow
How to estimate pixel motion from image H to image I?

Optical flow constraints (grayscale images)
Let’s look at these constraints more closely

Optical flow equation
Combining these two equations

Optical flow equation
Q:  how many unknowns and equations per pixel?

Aperture problem

Aperture problem

Solving the aperture problem
How to get more equations for a pixel?
Basic idea:  impose additional constraints
most common is to assume that the flow field is smooth locally
one method:  pretend the pixel’s neighbors have the same (u,v)
If we use a 5x5 window, that gives us 25 equations per pixel!

Lukas-Kanade flow
Prob:  we have more equations than unknowns

Conditions for solvability
Optimal (u, v) satisfies Lucas-Kanade equation

Eigenvectors of ATA

Edge

Low texture region

High textured region

Observation
This is a two image problem BUT
Can measure sensitivity by just looking at one of the images!
This tells us which pixels are easy to track, which are hard
very useful later on when we do feature tracking...

Errors in Lukas-Kanade
What are the potential causes of errors in this procedure?
Suppose ATA is easily invertible
Suppose there is not much noise in the image

Improving accuracy
Recall our small motion assumption

Iterative Refinement

Revisiting the small motion assumption
Is this motion small enough?
Probably not—it’s much larger than one pixel
How might we solve this problem?

Reduce the resolution!

Coarse-to-fine optical flow estimation

Coarse-to-fine optical flow estimation

Optical flow result

Motion tracking
Suppose we have more than two images
How to track a point through all of the images?

Feature Detection

Tracking features
Feature tracking
Compute optical flow for that feature for each consecutive H, I

Handling large motions
L-K requires small motion
If the motion is much more than a pixel, use discrete search instead
Given window W in H, find best matching window in I
Minimize sum squared difference (SSD) of pixels in window
Solve by doing a search over a specified range of (u,v) values
this (u,v) range defines the search window

Tracking Over Many Frames
Feature tracking with m frames
Select features in first frame
Given feature in frame i, compute position in i+1
Select more features if needed
i = i + 1
If i < m, go to step 2

Incorporating Dynamics
Idea
Can get better performance if we know something about the way points move
Most approaches assume constant velocity
or constant acceleration
Use above to predict position in next frame, initialize search

Feature tracking demo
http://www.toulouse.ca/?/CamTracker/?/CamTracker/FeatureTracking.html

Image alignment
Goal:  estimate single (u,v) translation for entire image
Easier subcase:  solvable by pyramid-based Lukas-Kanade

Summary
Things to take away from this lecture
Optical flow problem definition
Aperture problem and how it arises
Assumptions
Brightness constancy, small motion, smoothness
Derivation of optical flow constraint equation
Lukas-Kanade equation
Derivation
Conditions for solvability
meanings of eigenvalues and eigenvectors
Iterative refinement
Newton’s method
Coarse-to-fine flow estimation
Feature tracking
Harris feature detector
L-K vs. discrete search method
Tracking over many frames
Prediction using dynamics
Applications
MPEG video compression
Image alignment