1
|
|
2
|
- Today’s Readings
- Trucco & Verri, 8.3 – 8.4 (skip 8.3.3, read only top half of p.
199)
- Supplemental:
- R. Bergen, P. Anandan, K.J. Hanna, and R. Hingorani. Hierarchical
model-based motion estimation. European Conf. on Computer Vision
(ECCV), 1992
- http://www.cs.washington.edu/education/courses/576/03sp/readings/bergen_eccv92.pdf
- Numerical Recipes (Newton-Raphson), 9.4 (first four pages)
- http://www.ulib.org/webRoot/Books/Numerical_Recipes/bookcpdf/c9-4.pdf
|
3
|
- Lots of uses
- Track object behavior
- Correct for camera jitter (stabilization)
- Align images (mosaics)
- 3D shape reconstruction
- Special effects
|
4
|
|
5
|
- How to estimate pixel motion from image H to image I?
|
6
|
- Let’s look at these constraints more closely
|
7
|
- Combining these two equations
|
8
|
- Q: how many unknowns and
equations per pixel?
|
9
|
|
10
|
|
11
|
- Basic idea: assume motion field
is smooth
- Horn & Schunk: add smoothness
term
- Lukas & Kanade: assume
locally constant motion
- pretend the pixel’s neighbors have the same (u,v)
- If we use a 5x5 window, that gives us 25 equations per pixel!
- works better in practice than Horn & Schunk
- Many other methods exist. Here’s
an overview:
- Barron, J.L., Fleet, D.J., and Beauchemin, S, Performance of optical
flow techniques, International Journal of Computer Vision, 12(1):43-77,
1994.
- http://www.cs.washington.edu/education/courses/576/03sp/readings/barron92performance.pdf
|
12
|
- 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!
|
13
|
- 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!
|
14
|
- Prob: we have more equations than
unknowns
|
15
|
- Optimal (u, v) satisfies Lucas-Kanade equation
|
16
|
|
17
|
|
18
|
|
19
|
|
20
|
- 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...
|
21
|
- What are the potential causes of errors in this procedure?
- Suppose ATA is easily invertible
- Suppose there is not much noise in the image
|
22
|
- Recall our small motion assumption
|
23
|
|
24
|
- Is this motion small enough?
- Probably not—it’s much larger than one pixel (2nd order
terms dominate)
- How might we solve this problem?
|
25
|
|
26
|
|
27
|
|
28
|
|
29
|
- L-K minimizes a sum-of-squares error metric
- least squares techniques overly sensitive to outliers
|
30
|
- Robust Horn & Schunk
- Robust Lukas & Kanade
|
31
|
- Suppose we have more than two images
- How to track a point through all of the images?
|
32
|
|
33
|
- Feature tracking
- Compute optical flow for that feature for each consecutive H, I
|
34
|
- 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
|
35
|
- 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
|
36
|
- Idea
- Can get better performance if we know something about the way points
move
- Most approaches assume constant velocity
- Use above to predict position in next frame, initialize search
|
37
|
- http://www.toulouse.ca/?/CamTracker/?/CamTracker/FeatureTracking.html
|
38
|
- Goal: estimate single (u,v)
translation for entire image
- Easier subcase: solvable by
pyramid-based Lukas-Kanade
|