Presentation is loading. Please wait.

Presentation is loading. Please wait.

More Mosaic Madness 15-463: Computational Photography Alexei Efros, CMU, Fall 2005 © Jeffrey Martin (jeffrey-martin.com) with a lot of slides stolen from.

Similar presentations


Presentation on theme: "More Mosaic Madness 15-463: Computational Photography Alexei Efros, CMU, Fall 2005 © Jeffrey Martin (jeffrey-martin.com) with a lot of slides stolen from."— Presentation transcript:

1

2 More Mosaic Madness 15-463: Computational Photography Alexei Efros, CMU, Fall 2005 © Jeffrey Martin (jeffrey-martin.com) with a lot of slides stolen from Steve Seitz and Rick Szeliski

3 Homography A: Projective – mapping between any two PPs with the same center of projection rectangle should map to arbitrary quadrilateral parallel lines aren’t but must preserve straight lines same as: project, rotate, reproject called Homography PP2 PP1 Hpp’ To apply a homography H Compute p’ = Hp (regular matrix multiply) Convert p’ from homogeneous to image coordinates

4 Rotational Mosaics Can we say something more about rotational mosaics? i.e. can we further constrain our H?

5 3D → 2D Perspective Projection u (X c,Y c,Z c ) ucuc f K

6 3D Rotation Model Projection equations 1.Project from image to 3D ray (x 0,y 0,z 0 ) = (u 0 -u c,v 0 -v c,f) 2.Rotate the ray by camera motion (x 1,y 1,z 1 ) = R 01 (x 0,y 0,z 0 ) 3.Project back into new (source) image (u 1,v 1 )= (fx 1 /z 1 +u c,fy 1 /z 1 +v c ) Therefore: Our homography has only 3,4 or 5 DOF, depending if focal length is known, same, or different. This makes image registration much better behaved (u,v,f)(x,y,z) f (u,v,f) R

7 Pairwise alignment Procrustes Algorithm [Golub & VanLoan] Given two sets of matching points, compute R p i ’ = R p i with 3D rays p i = N(x i,y i,z i ) = N(u i -u c,v i -v c,f) A = Σ i p i p i ’ T = Σ i p i p i T R T = U S V T = (U S U T ) R T V T = U T R T R = V U T

8 Rotation about vertical axis What if our camera rotates on a tripod? What’s the structure of H?

9 mosaic PP Do we have to project onto a plane?

10 Full Panoramas What if you want a 360  field of view? mosaic Projection Cylinder

11 Map 3D point (X,Y,Z) onto cylinder Cylindrical projection X Y Z unit cylinder unwrapped cylinder Convert to cylindrical coordinates cylindrical image Convert to cylindrical image coordinates

12 Cylindrical Projection Y X

13 Inverse Cylindrical projection X Y Z (X,Y,Z)(X,Y,Z) (sin ,h,cos  )

14 Cylindrical panoramas Steps Reproject each image onto a cylinder Blend Output the resulting mosaic What are the assumptions here?

15 Cylindrical image stitching What if you don’t know the camera rotation? Solve for the camera rotations –Note that a rotation of the camera is a translation of the cylinder!

16 Assembling the panorama Stitch pairs together, blend, then crop

17 Problem: Drift Vertical Error accumulation small (vertical) errors accumulate over time apply correction so that sum = 0 (for 360° pan.) Horizontal Error accumulation can reuse first/last image to find the right panorama radius

18 Full-view (360°) panoramas

19 Spherical projection unwrapped sphere Convert to spherical coordinates spherical image Convert to spherical image coordinates X Y Z Map 3D point (X,Y,Z) onto sphere 

20 Spherical Projection Y X

21 Inverse Spherical projection X Y Z (x,y,z) (sinθcosφ,cosθcosφ,sinφ) cos φ φ cos θ cos φ sin φ

22 3D rotation Rotate image before placing on unrolled sphere X Y Z (x,y,z) (sinθcosφ,cosθcosφ,sinφ) cos φ φ cos θ cos φ sin φ _ p = R p

23 Full-view Panorama + + + +

24 Polar Projection Extreme “bending” in ultra-wide fields of view

25 Other projections are possible You can stitch on the plane and then warp the resulting panorama What’s the limitation here? Or, you can use these as stitching surfaces But there is a catch…

26 f = 180 (pixels) Cylindrical reprojection f = 380f = 280 Image 384x300 top-down view Focal length – the dirty secret…

27 What’s your focal length, buddy? Focal length is (highly!) camera dependant Can get a rough estimate by measuring FOV: Can use the EXIF data tag (might not give the right thing) Can use several images together and try to find f that would make them match Can use a known 3D object and its projection to solve for f Etc. There are other camera parameters too: Optical center, non-square pixels, lens distortion, etc.

28 Distortion Radial distortion of the image Caused by imperfect lenses Deviations are most noticeable for rays that pass through the edge of the lens No distortionPin cushionBarrel

29 Radial distortion Correct for “bending” in wide field of view lenses Use this instead of normal projection

30 Blending the mosaic An example of image compositing: the art (and sometime science) of combining images together…

31 Feathering 0 1 0 1 + = Encoding transparency I(x,y) = (  R,  G,  B,  ) I blend = I left + I right

32 Setting alpha: simple averaging Alpha =.5 in overlap region

33 Image feathering Weight each image proportional to its distance from the edge (distance map [Danielsson, CVGIP 1980] 1. Generate weight map for each image 2. Sum up all of the weights and divide by sum: weights sum up to 1: w i ’ = w i / ( ∑ i w i )

34 Setting alpha: center seam Alpha = logical(dtrans1>dtrans2) Distance transform

35 Setting alpha: blurred seam Alpha = blurred Distance transform

36 Setting alpha: center weighting Alpha = dtrans1 / (dtrans1+dtrans2) Distance transform Ghost!

37 Pyramid Blending For Alpha, use original feather weights to select strongest contributing image Can be implemented using L-∞ norm: ( p = 10 ) w i ’ = [w i p / ( ∑ i w i p )] 1/p

38 Mid-term Tuesday Closed book, closed notes. You are allowed one sheet of paper, both sides


Download ppt "More Mosaic Madness 15-463: Computational Photography Alexei Efros, CMU, Fall 2005 © Jeffrey Martin (jeffrey-martin.com) with a lot of slides stolen from."

Similar presentations


Ads by Google