|
1
|
- Project 1 artifact voting
- Project 2 out today
- panorama signup
- help session at end of class
- Guest lectures next week: Li
Zhang, Jiwon Kim
|
|
2
|
- Today’s Readings
- Szeliski and Shum paper (sections 1 and 2, skim the rest)
- http://www.acm.org/pubs/citations/proceedings/graph/258734/p251-szeliski/
|
|
3
|
|
|
4
|
- Basic Procedure
- Take a sequence of images from the same position
- Rotate the camera about its optical center
- Compute transformation between second image and first
- Lucas & Kanade registration
- Shift the second image to overlap with the first
- Blend the two together to create a mosaic
- If there are more images, repeat
|
|
5
|
- How to account for warping?
- Translations are not enough to align the images
- Photoshop demo
|
|
6
|
- The mosaic has a natural interpretation in 3D
- The images are reprojected onto a common plane
- The mosaic is formed on this plane
|
|
7
|
- Basic question
- How to relate two images from the same camera center?
- how to map a pixel from PP1 to PP2
|
|
8
|
- Observation
- Rather than thinking of this as a 3D reprojection, think of it as a 2D
image warp from one image to another
|
|
9
|
- Perspective projection of a plane
- Lots of names for this:
- homography, texture-map, colineation, planar projective map
- Modeled as a 2D warp using homogeneous coordinates
|
|
10
|
|
|
11
|
- What if you want a 360° field
of view?
|
|
12
|
- Map 3D point (X,Y,Z) onto cylinder
|
|
13
|
- How to map from a cylinder to a planar image?
|
|
14
|
- Map image to cylindrical coordinates
- need to know the focal length
|
|
15
|
- Steps
- Reproject each image onto a cylinder
- Blend
- Output the resulting mosaic
|
|
16
|
- What if you don’t know the camera rotation?
- Solve for the camera rotations
- Note that a pan (rotation) of the camera is a translation of the
cylinder!
- Use Lukas-Kanade to solve for translations of cylindrically-warped
images
|
|
17
|
- Stitch pairs together, blend, then crop
|
|
18
|
- Error accumulation
- small errors accumulate over time
|
|
19
|
- Solution
- add another copy of first image at the end
- this gives a constraint: yn
= y1
- there are a bunch of ways to solve this problem
- add displacement of (y1 – yn)/(n -1) to each
image after the first
- compute a global warp: y’ = y +
ax
- run a big optimization problem, incorporating this constraint
- best solution, but more complicated
- known as “bundle adjustment”
|
|
20
|
|
|
21
|
|
|
22
|
- Take pictures on a tripod (or handheld)
- Warp to cylindrical coordinates
- Automatically compute pair-wise alignments
- Correct for drift
- Blend the images together
- Crop the result and import into a viewer
|
|
23
|
|
|
24
|
|
|
25
|
|
|
26
|
|
|
27
|
|
|
28
|
|
|
29
|
|
|
30
|
- For more info: Perez et al,
SIGGRAPH 2003
- http://research.microsoft.com/vision/cambridge/papers/perez_siggraph03.pdf
|
|
31
|
- Given a coordinate transform (x’,y’) = h(x,y) and a source image f(x,y),
how do we compute a transformed image g(x’,y’) = f(h(x,y))?
|
|
32
|
- Send each pixel f(x,y) to its corresponding location
- (x’,y’) = h(x,y) in the
second image
|
|
33
|
- Send each pixel f(x,y) to its corresponding location
- (x’,y’) = h(x,y) in the
second image
|
|
34
|
- Get each pixel g(x’,y’) from its corresponding location
- (x,y) = h-1(x’,y’)
in the first image
|
|
35
|
- Get each pixel g(x’,y’) from its corresponding location
- (x,y) = h-1(x’,y’)
in the first image
|
|
36
|
- Q: which is better?
- A: usually inverse—eliminates
holes
- however, it requires an invertible warp function—not always possible...
|
|
37
|
- Can mosaic onto any surface if you know the geometry
- See NASA’s Visible Earth project for some stunning earth mosaics
- http://earthobservatory.nasa.gov/Newsroom/BlueMarble/
|
|
38
|
- Method so far is not completely automatic
- need to know which pairs fit together
- need to initialize Lukas-Kanade to get good results
- Newer methods are fully automatic
- AutoStitch, by Matthew Brown and David Lowe:
- http://www.cs.ubc.ca/~mbrown/autostitch/autostitch.html
- Based on feature matching techniques (next lecture)
|