+ All Categories
Home > Documents > Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1....

Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1....

Date post: 12-Oct-2020
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
21
Image Alignment and Stitching Computer Vision CSE576, Spring 2005 Richard Szeliski Richard Szeliski CSE 576 (Spring 2005): Computer Vision 2 Today’s lecture Image alignment and stitching motion models cylindrical and spherical warping point-based alignment global alignment automated stitching (recognizing panoramas) ghost and parallax removal compositing and blending Richard Szeliski CSE 576 (Spring 2005): Computer Vision 3 Readings Szeliski & Shum, SIGGRAPH'97 (Sections 1-4). Szeliski, Image Alignment and Stitching, MSR-TR-2004-92 (Sections 2, 4, 5). Recognizing Panoramas, Brown & Lowe, ICCV’2003 Motion models
Transcript
Page 1: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

1

Image Alignment and Stitching

Computer VisionCSE576, Spring 2005

Richard Szeliski

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 2

Today’s lecture

Image alignment and stitching• motion models• cylindrical and spherical warping• point-based alignment• global alignment• automated stitching (recognizing panoramas)• ghost and parallax removal• compositing and blending

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 3

Readings

• Szeliski & Shum, SIGGRAPH'97(Sections 1-4).

• Szeliski, Image Alignment and Stitching, MSR-TR-2004-92 (Sections 2, 4, 5).

• Recognizing Panoramas, Brown & Lowe, ICCV’2003

Motion models

Page 2: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

2

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 5

Motion models

What happens when we take two images with a camera and try to align them?

• translation?• rotation?• scale?• affine?• perspective?… see interactive demo (VideoMosaic)

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 6

Motion models

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 7

Motion models

Translation

2 unknowns

Affine

6 unknowns

Perspective

8 unknowns

3D rotation

3 unknownsRichard Szeliski CSE 576 (Spring 2005): Computer Vision 8

Homographies

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

=

1yx

*********

wwy'wx'

H pp’To apply a homography H• Compute p’ = Hp (regular matrix multiply)• Convert p’ from homogeneous to image coordinates

– divide by w (third) coordinate

Page 3: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

3

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 9

Plane perspective mosaics

• 8-parameter generalization of affine motion– works for pure rotation or planar surfaces

• Limitations:– local minima – slow convergence– difficult to control interactively

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 10

Rotational mosaics

• Directly optimize rotation and focal length

• Advantages:– ability to build full-view

panoramas– easier to control interactively– more stable and accurate

estimates

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 11

3D → 2D Perspective Projection

u

(Xc,Yc,Zc)

ucf

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 12

3D Rotation Model

Projection equations1. Project from image to 3D ray

(x0,y0,z0) = (u0-uc,v0-vc,f)2. Rotate the ray by camera motion

(x1,y1,z1) = R01 (x0,y0,z0)3. Project back into new (source) image

(u1,v1) = (fx1/z1+uc,fy1/z1+vc)

Page 4: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

4

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 13

Rotations and quaternions

How do we represent rotation matrices?

1. Axis / angle (n,θ)R = I + sinθ [n]× + (1- cosθ) [n]×

2

(Rodriguez Formula), with[n]× = cross product matrix (see paper)

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 14

Rotations and quaternions

How do we represent rotation matrices?

2. Unit quaternions [Shoemake SIGGRAPH’85]q = (n sinθ/2, cosθ/2) = (w,s)

quaternion multiplication (division is easy)q0 q1 = (s1w0+ s0w1, s0 s1-w0·w1)

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 15

Incremental rotation update

1. Small angle approximation∆R = I + sinθ [n]× + (1- cosθ) [n]×

2

≈ θ [n]× = [ω]×linear in ω

2. Update original R matrixR ← R ∆R

Image Mosaics (Stitching)

[Szeliski & Shum, SIGGRAPH’97][Szeliski, MSR-TR-2004-92]

Page 5: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

5

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 17

Image Mosaics (Stitching)

Full screen panoramas (cubic): http://www.panoramas.dk/Mars: http://www.panoramas.dk/fullscreen3/f2_mars97.html

2003 New Years Eve: http://www.panoramas.dk/fullscreen3/f1.html

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 18

Image Mosaics (stitching)

Blend together several overlapping images into one seamless mosaic (composite)

+ + … + =

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 19

Mosaics for Video Coding

Convert masked images into a background sprite for content-based coding

+ + +

=

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 20

Establishing correspondences

1. Direct method:• Use generalization of affine motion model

[Szeliski & Shum ’97]2. Feature-based method

• Compute feature-based correspondence[Lowe ICCV’99; Schmid ICCV’98,Brown&Lowe ICCV’2003]

• Compute R from correspondences(absolute orientation)

Page 6: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

6

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 21

Stitching demo

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 22

Panoramas

What if you want a 360° field of view?

mosaic Projection Cylinder

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 23

Cylindrical panoramas

Steps• Reproject each image onto a cylinder• Blend • Output the resulting mosaic

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 24

f = 180 (pixels)

Cylindrical Panoramas

Map image to cylindrical or spherical coordinates• need known focal length

Image 384x300 f = 380f = 280

Page 7: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

7

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 25

• Map 3D point (X,Y,Z) onto cylinder

Cylindrical projection

XY

Z

unit cylinder

unwrapped cylinder

• Convert to cylindrical coordinates

cylindrical image

• Convert to cylindrical image coordinates

– s defines size of the final image

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 26

Cylindrical warpingGiven focal length f and image center (xc,yc)

X

YZ

(X,Y,Z)

(sinθ,h,cosθ)

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 27

Spherical warpingGiven focal length f and image center (xc,yc)

X

YZ

(x,y,z)

(sinθcosφ,cosθcosφ,sinφ)

cos φφ

cos θ cos φsin φ

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 28

3D rotationRotate image before placing on unrolled sphere

XYZ

(x,y,z)

(sinθcosφ,cosθcosφ,sinφ)

cos φφ

cos θ cos φsin φ

_ _

_ _

p = R p

Page 8: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

8

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 29

Radial distortion

Correct for “bending” in wide field of view lenses

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 30

Fisheye lens

Extreme “bending” in ultra-wide fields of view

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 31

Inverse Warping

Get each pixel I0(u0) from its corresponding location u1 = h(u0) in I1(u1)

I1(u1) I0(u0)x1 x0

h(u0)

• What if pixel comes from “between” two pixels?• Answer in next lecture…

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 32

Image Stitching

1. Align the images over each other• camera pan ↔ translation on cylinder!

2. Blend the images together (demo)

Page 9: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

9

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 33

Project 2 – image stitching

1. Take pictures on a tripod (or handheld)2. Warp images to spherical coordinates3. Extract features4. Align neighboring pairs using RANSAC5. Write out list of neighboring translations6. Correct for drift7. Read in warped images and blend them8. Crop the result and import into a viewer

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 34

Matching features

What do we do about the “bad” matches?

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 35

RAndom SAmple Consensus

Select one match, count inliers

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 36

RAndom SAmple Consensus

Select one match, count inliers

Page 10: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

10

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 37

Least squares fit

Find “average” translation vector

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 38

Assembling the panorama

Stitch pairs together, blend, then crop

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 39

Problem: Drift

Error accumulation• small (vertical) errors accumulate over time• apply correction so that sum = 0 (for 360° pan.)

Full-view (360° spherical) panoramas

Page 11: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

11

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 41

Full-view Panoramas

++++

++

++

==

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 42

Global alignment

• Register all pairwise overlapping images• Use a 3D rotation model (one R per image)• Use feature based registration of unwarped

images• Discover which images overlap other images

using feature selection (RANSAC)• Chain together inter-frame rotations• Optimize all R estimates together (next time)

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 43

3D Rotation Model

Projection equations1. Project from image to 3D ray

(x0,y0,z0) = (u0-uc,v0-vc,f)2. Rotate the ray by camera motion

(x1,y1,z1) = R01 (x0,y0,z0)3. Project back into new (source) image

(u1,v1) = (fx1/z1+uc,fy1/z1+vc)

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 44

Absolute orientation

[Arun et al., PAMI 1987] [Horn et al., JOSA A 1988]Procrustes Algorithm [Golub & VanLoan]

Given two sets of matching points, compute Rpi’ = R pi with 3D rays

pi = (xi,yi,zi) = (ui-uc,vi-vc,f)A = Σi pi pi’T = Σi pi pi

T RT = U S VT = (U S UT) RT

VT = UT RT

R = V UT

Page 12: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

12

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 45

Stitching demo

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 46

Texture Mapped Model (sphere)

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 47

Texture Mapped Model (cubical)

Recognizing Panoramas

Matthew Brown & David LoweICCV’2003

Page 13: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

13

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 49

Recognizing Panoramas

[Brown & Lowe, ICCV’03]

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 50

Finding the panoramas

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 51

Finding the panoramas

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 52

Finding the panoramas

Page 14: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

14

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 53

Finding the panoramas

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 54

Fully automated 2D stitching

Demo

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 55

Get you own copy!

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 56

System components

Feature detection and description• more uniform point density

Fast matching (hash table)RANSAC filtering of matchesIntensity-based verificationIncremental bundle adjustment

[Brown, Szeliski, Winder, CVPR’05]

Page 15: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

15

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 57

Multi-Scale Oriented Patches

Interest points• Multi-scale Harris corners• Orientation from blurred gradient• Geometrically invariant to similarity transforms

Descriptor vector• Bias/gain normalized sampling of local patch (8x8)• Photometrically invariant to affine changes in

intensity

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 58

Feature irregularitiesDistribute points evenly over the image

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 59

Descriptor Vector

Orientation = blurred gradientSimilarity Invariant Frame

• Scale-space position (x, y, s) + orientation (θ)

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 60

Probabilistic Feature Matching

Page 16: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

16

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 61

RANSAC motion model

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 62

RANSAC motion model

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 63

RANSAC motion model

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 64

Probabilistic model for verification

Page 17: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

17

How well does this work?

Test on 100s of examples…

How well does this work?

Test on 100s of examples…

…still too many failures (5-10%)for consumer application

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 67

Matching Mistakes: False Positive

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 68

Matching Mistakes: False Positive

Page 18: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

18

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 69

Matching Mistakes: False Negative

Moving objects: large areas of disagreement

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 70

Matching Mistakes

Accidental alignment• repeated / similar regions

Failed alignments• moving objects / parallax• low overlap• “feature-less” regions

(more variety?)No 100% reliable algorithm?

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 71

How can we fix these?

Tune the feature detectorTune the feature matcher (cost metric)Tune the RANSAC stage (motion model)Tune the verification stageUse “higher-level” knowledge

• e.g., typical camera motions

→ Sounds like a big “learning” problem• Need a large training/test data set (panoramas)

Deghosting and blending

(optional material)

Page 19: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

19

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 73

Local alignment (deghosting)

Use local optic flow to compensate for small motions [Shum & Szeliski, ICCV’98]

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 74

Local alignment (deghosting)

Use local optic flow to compensate for radial distortion [Shum & Szeliski, ICCV’98]

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 75

Image feathering

Weight each image proportional to its distance from the edge(distance map [Danielsson, CVGIP 1980]

Cut out the appropriate region from each imageand then blend together

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 76

Region-based de-ghosting

Select only one image in regions-of-differenceusing weighted vertex cover [Uyttendaele et al., CVPR’01]

Page 20: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

20

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 77

Region-based de-ghostingSelect only one image in regions-of-difference using weighted vertex cover [Uyttendaele et al., CVPR’01]

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 78

Cutout-based de-ghosting•Select only one image per output pixel, using spatial continuity •Blend across seams using gradient continuity (“Poisson blending”)

[Agarwala et al., SG’2004]

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 79

Cutout-based compositing

Photomontage [Agarwala et al., SG’2004]• Interactively blend different images:

group portraits

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 80

Cutout-based compositing

Photomontage [Agarwala et al., SG’2004]• Interactively blend different images:

focus settings

Page 21: Today’s lecture Image Alignment and Stitching€¦ · 3D Rotation Model Projection equations 1. Project from image to 3D ray (x0,y0,z0) = (u0-uc,v0-vc,f) 2. Rotate the ray by camera

21

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 81

Cutout-based compositing

Photomontage [Agarwala et al., SG’2004]• Interactively blend different images:

people’s faces

Richard Szeliski CSE 576 (Spring 2005): Computer Vision 82

Final thought: What is a “panorama”?

Tracking a subject

Repeated (best) shots

Multiple exposures

“Infer” what photographer wants?


Recommended