Notes
Slide Show
Outline
1
Motion Estimation
  • Today’s Readings
    • Trucco & Verri, 8.3 – 8.4 (skip 8.3.3, read only top half of p. 199)
    • Numerical Recipes (Newton-Raphson), 9.4 (first four pages)
      • http://www.library.cornell.edu/nr/bookcpdf/c9-4.pdf

2
Why estimate motion?
  • Lots of uses
    • Track object behavior
    • Correct for camera jitter (stabilization)
    • Align images (mosaics)
    • 3D shape reconstruction
    • Special effects
3
Optical flow
4
Problem definition:  optical flow
  • How to estimate pixel motion from image H to image I?
5
Optical flow constraints (grayscale images)
  • Let’s look at these constraints more closely
6
Optical flow equation
  • Combining these two equations
7
Optical flow equation
  • Q:  how many unknowns and equations per pixel?
8
Aperture problem
9
Aperture problem
10
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!
11
RGB version
  • 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*3 equations per pixel!
12
Lukas-Kanade flow
  • Prob:  we have more equations than unknowns
13
Conditions for solvability
    • Optimal (u, v) satisfies Lucas-Kanade equation
14
Eigenvectors of ATA
15
Edge
16
Low texture region
17
High textured region
18
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...
19
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

20
Improving accuracy
  • Recall our small motion assumption
21
Iterative Refinement
22
Revisiting the small motion assumption
  • Is this motion small enough?
    • Probably not—it’s much larger than one pixel (2nd order terms dominate)
    • How might we solve this problem?
23
Reduce the resolution!
24
Coarse-to-fine optical flow estimation
25
Coarse-to-fine optical flow estimation
26
Optical flow result
27
Motion tracking
  • Suppose we have more than two images
    • How to track a point through all of the images?
28
Feature Detection
29
Tracking features
  • Feature tracking
    • Compute optical flow for that feature for each consecutive H, I


30
Handling large motions
  • L-K requires small motion
    • If the motion is much more than a pixel, use discrete search instead






    • Given feature 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
31
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
32
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
33
Feature tracking demo


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