Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Image Stitching

Содержание

Combine two or more overlapping images to make one larger imageAdd exampleSlide credit: Vaibhav Vaish
Image StitchingAli FarhadiCSE 455	Several slides from Rick Szeliski, Steve Seitz, Derek Hoiem, and Ira Kemelmacher Combine two or more overlapping images to make one larger imageAdd exampleSlide credit: Vaibhav Vaish How to do it?Basic ProcedureTake a sequence of images from the same 1. Take a sequence of images from the same position Rotate the 2. Compute transformation between imagesExtract interest pointsFind MatchesCompute transformation? 3. Shift the images to overlap 4. Blend the two together to create a mosaic 5. Repeat for all images How to do it?Basic ProcedureTake a sequence of images from the same Compute TransformationsExtract interest pointsFind good matches Compute transformation✓Let’s assume we are given Image reprojectionThe mosaic has a natural interpretation in 3DThe images are reprojected ExampleCamera Center Image reprojectionObservationRather than thinking of this as a 3D reprojection, think of Motion modelsWhat happens when we take two images with a camera and try to align them?translation?rotation?scale?affine?Perspective? Recall: Projective transformations(aka homographies) Parametric (global) warpingExamples of parametric warps:translationrotationaspectaffineperspective 2D coordinate transformationstranslation:		x’ = x + t		 x = (x,y)rotation:		x’ = R Image WarpingGiven a coordinate transform x’ = h(x) and a source image Forward WarpingSend each pixel f(x) to its corresponding location x’ = h(x) Forward WarpingSend each pixel f(x) to its corresponding location x’ = h(x) Richard SzeliskiImage StitchingInverse WarpingGet each pixel g(x’) from its corresponding location x’ Richard SzeliskiImage StitchingInverse WarpingGet each pixel g(x’) from its corresponding location x’ InterpolationPossible interpolation filters:nearest neighborbilinearbicubic (interpolating) Motion models Finding the transformationTranslation 	= 	2 degrees of freedomSimilarity 	= 	4 degrees of Plane perspective mosaics8-parameter generalization of affine motionworks for pure rotation or planar Simple case: translations Simple case: translations Simple case: translationsSystem of linear equationsWhat are the knowns? Unknowns?How many unknowns? Simple case: translationsProblem: more equations than unknowns“Overdetermined” system of equationsWe will find the least squares solution Least squares formulationFor each pointwe define the residuals as Least squares formulationGoal: minimize sum of squared residuals“Least squares” solutionFor translations, is equal to mean displacement Least squaresFind t that minimizes To solve, form the normal equations Solving for translationsUsing least squares Affine transformationsHow many unknowns?How many equations per match?How many matches do we need? Affine transformationsResiduals:Cost function: Affine transformationsMatrix form Solving for homographies Solving for homographies Direct Linear TransformsDefines a least squares problem:Since    is only Richard SzeliskiImage StitchingMatching featuresWhat do we do about the “bad” matches? Richard SzeliskiImage StitchingRAndom SAmple ConsensusSelect one match, count inliers Richard SzeliskiImage StitchingRAndom SAmple ConsensusSelect one match, count inliers Richard SzeliskiImage StitchingLeast squares fitFind “average” translation vector RANSAC for estimating homographyRANSAC loop:Select four feature pairs (at random)Compute homography H Simple example: fit a lineRather than homography H (8 numbers)  fit Simple example: fit a linePick 2 pointsFit lineCount inliers3 inliers Simple example: fit a linePick 2 pointsFit lineCount inliers4 inliers Simple example: fit a linePick 2 pointsFit lineCount inliers9 inliers Simple example: fit a linePick 2 pointsFit lineCount inliers8 inliers Simple example: fit a lineUse biggest set of inliersDo least-square fit RANSACRed: 	rejected by 2nd nearest neighbor criterionBlue:	Ransac outliersYellow:	inliers How many rounds? If we have to choose s samples each timewith Richard SzeliskiImage StitchingRotational mosaicsDirectly optimize rotation and focal lengthAdvantages:ability to build full-view Richard SzeliskiImage StitchingRotational mosaicProjection equationsProject from image to 3D ray	(x0,y0,z0) 	= (u0-uc,v0-vc,f)Rotate Computing homographyAssume we have four matched points: How do we compute homography Computing homographyAssume we have matched points with outliers: How do we compute Automatic Image StitchingCompute interest points on each imageFind candidate matchesEstimate homography H RANSAC for HomographyInitial Matched Points RANSAC for HomographyFinal Matched Points RANSAC for Homography
Слайды презентации

Слайд 2 Combine two or more overlapping images to make

Combine two or more overlapping images to make one larger imageAdd exampleSlide credit: Vaibhav Vaish

one larger image
Add example
Slide credit: Vaibhav Vaish


Слайд 3 How to do it?
Basic Procedure
Take a sequence of

How to do it?Basic ProcedureTake a sequence of images from the

images from the same position
Rotate the camera about its

optical center
Compute transformation between second image and first
Shift the second image to overlap with the first
Blend the two together to create a mosaic
If there are more images, repeat

Слайд 4 1. Take a sequence of images from the

1. Take a sequence of images from the same position Rotate

same position
Rotate the camera about its optical center


Слайд 5 2. Compute transformation between images
Extract interest points
Find Matches
Compute

2. Compute transformation between imagesExtract interest pointsFind MatchesCompute transformation?

transformation
































?


Слайд 6 3. Shift the images to overlap

3. Shift the images to overlap

Слайд 7 4. Blend the two together to create a

4. Blend the two together to create a mosaic

mosaic


Слайд 8 5. Repeat for all images

5. Repeat for all images

Слайд 9 How to do it?
Basic Procedure
Take a sequence of

How to do it?Basic ProcedureTake a sequence of images from the

images from the same position
Rotate the camera about its

optical center
Compute transformation between second image and first
Shift the second image to overlap with the first
Blend the two together to create a mosaic
If there are more images, repeat



Слайд 10 Compute Transformations
Extract interest points
Find good matches
Compute transformation

Let’s

Compute TransformationsExtract interest pointsFind good matches Compute transformation✓Let’s assume we are

assume we are given a set of good matching

interest points



Слайд 11 Image reprojection
The mosaic has a natural interpretation in

Image reprojectionThe mosaic has a natural interpretation in 3DThe images are

3D
The images are reprojected onto a common plane
The mosaic

is formed on this plane

Слайд 12 Example
Camera Center

ExampleCamera Center

Слайд 13 Image reprojection
Observation
Rather than thinking of this as a

Image reprojectionObservationRather than thinking of this as a 3D reprojection, think

3D reprojection, think of it as a 2D image

warp from one image to another

Слайд 14 Motion models
What happens when we take two images

Motion modelsWhat happens when we take two images with a camera and try to align them?translation?rotation?scale?affine?Perspective?

with a camera and try to align them?
translation?
rotation?
scale?
affine?
Perspective?


Слайд 15 Recall: Projective transformations
(aka homographies)

Recall: Projective transformations(aka homographies)

Слайд 16 Parametric (global) warping
Examples of parametric warps:
translation
rotation
aspect
affine
perspective

Parametric (global) warpingExamples of parametric warps:translationrotationaspectaffineperspective

Слайд 17 2D coordinate transformations
translation: x’ = x + t x

2D coordinate transformationstranslation:		x’ = x + t		 x = (x,y)rotation:		x’ =

= (x,y)
rotation: x’ = R x + t
similarity: x’ = s

R x + t
affine: x’ = A x + t
perspective: x’ ≅ H x x = (x,y,1) (x is a homogeneous coordinate)

Слайд 18 Image Warping
Given a coordinate transform x’ = h(x)

Image WarpingGiven a coordinate transform x’ = h(x) and a source

and a source image f(x), how do we compute

a transformed image g(x’) = f(h(x))?

f(x)

g(x’)

x

x’




h(x)


Слайд 19 Forward Warping
Send each pixel f(x) to its corresponding

Forward WarpingSend each pixel f(x) to its corresponding location x’ =

location x’ = h(x) in g(x’)
f(x)
g(x’)
x
x’



h(x)
What if pixel lands

“between” two pixels?

Слайд 20 Forward Warping
Send each pixel f(x) to its corresponding

Forward WarpingSend each pixel f(x) to its corresponding location x’ =

location x’ = h(x) in g(x’)
f(x)
g(x’)
x
x’



h(x)
What if pixel lands

“between” two pixels?

Answer: add “contribution” to several pixels, normalize later (splatting)


Слайд 21 Richard Szeliski
Image Stitching
Inverse Warping
Get each pixel g(x’) from

Richard SzeliskiImage StitchingInverse WarpingGet each pixel g(x’) from its corresponding location

its corresponding location x’ = h(x) in f(x)
f(x)
g(x’)
x
x’



h-1(x)
What if

pixel comes from “between” two pixels?

Слайд 22 Richard Szeliski
Image Stitching
Inverse Warping
Get each pixel g(x’) from

Richard SzeliskiImage StitchingInverse WarpingGet each pixel g(x’) from its corresponding location

its corresponding location x’ = h(x) in f(x)
What if

pixel comes from “between” two pixels?

Answer: resample color value from interpolated source image

f(x)

g(x’)

x

x’




h-1(x)


Слайд 23 Interpolation
Possible interpolation filters:
nearest neighbor
bilinear
bicubic (interpolating)

InterpolationPossible interpolation filters:nearest neighborbilinearbicubic (interpolating)

Слайд 24 Motion models

Motion models

Слайд 25 Finding the transformation
Translation = 2 degrees of freedom
Similarity

Finding the transformationTranslation 	= 	2 degrees of freedomSimilarity 	= 	4 degrees

= 4 degrees of freedom
Affine = 6 degrees of

freedom
Homography = 8 degrees of freedom

How many corresponding points do we need to solve?

Слайд 26 Plane perspective mosaics
8-parameter generalization of affine motion
works for

Plane perspective mosaics8-parameter generalization of affine motionworks for pure rotation or

pure rotation or planar surfaces
Limitations:
local minima
slow convergence
difficult to

control interactively

Слайд 27 Simple case: translations

Simple case: translations

Слайд 28
Simple case: translations

Simple case: translations

Слайд 29 Simple case: translations
System of linear equations
What are the

Simple case: translationsSystem of linear equationsWhat are the knowns? Unknowns?How many

knowns? Unknowns?
How many unknowns? How many equations (per match)?


Слайд 30 Simple case: translations
Problem: more equations than unknowns
“Overdetermined” system

Simple case: translationsProblem: more equations than unknowns“Overdetermined” system of equationsWe will find the least squares solution

of equations
We will find the least squares solution


Слайд 31 Least squares formulation
For each point



we define the residuals

Least squares formulationFor each pointwe define the residuals as

Слайд 32 Least squares formulation
Goal: minimize sum of squared residuals




“Least

Least squares formulationGoal: minimize sum of squared residuals“Least squares” solutionFor translations, is equal to mean displacement

squares” solution
For translations, is equal to mean displacement


Слайд 33 Least squares
Find t that minimizes


To solve, form

Least squaresFind t that minimizes To solve, form the normal equations

the normal equations


Слайд 34 Solving for translations
Using least squares

Solving for translationsUsing least squares

Слайд 35 Affine transformations
How many unknowns?
How many equations per match?
How

Affine transformationsHow many unknowns?How many equations per match?How many matches do we need?

many matches do we need?


Слайд 36 Affine transformations
Residuals:



Cost function:

Affine transformationsResiduals:Cost function:

Слайд 37 Affine transformations
Matrix form

Affine transformationsMatrix form

Слайд 38 Solving for homographies

Solving for homographies

Слайд 39 Solving for homographies

Solving for homographies

Слайд 40 Direct Linear Transforms
Defines a least squares problem:
Since

Direct Linear TransformsDefines a least squares problem:Since  is only defined

is only defined up to scale, solve

for unit vector
Solution: = eigenvector of with smallest eigenvalue
Works with 4 or more points

Слайд 41 Richard Szeliski
Image Stitching
Matching features
What do we do about

Richard SzeliskiImage StitchingMatching featuresWhat do we do about the “bad” matches?

the “bad” matches?


Слайд 42 Richard Szeliski
Image Stitching
RAndom SAmple Consensus
Select one match, count

Richard SzeliskiImage StitchingRAndom SAmple ConsensusSelect one match, count inliers

inliers


Слайд 43 Richard Szeliski
Image Stitching
RAndom SAmple Consensus
Select one match, count

Richard SzeliskiImage StitchingRAndom SAmple ConsensusSelect one match, count inliers

inliers


Слайд 44 Richard Szeliski
Image Stitching
Least squares fit
Find “average” translation vector

Richard SzeliskiImage StitchingLeast squares fitFind “average” translation vector

Слайд 46 RANSAC for estimating homography
RANSAC loop:
Select four feature pairs

RANSAC for estimating homographyRANSAC loop:Select four feature pairs (at random)Compute homography

(at random)
Compute homography H (exact)
Compute inliers where ||pi’, H

pi|| < ε
Keep largest set of inliers
Re-compute least-squares H estimate using all of the inliers

CSE 576, Spring 2008

Structure from Motion




Слайд 47 Simple example: fit a line
Rather than homography H

Simple example: fit a lineRather than homography H (8 numbers) fit

(8 numbers) fit y=ax+b (2 numbers a, b) to

2D pairs













Слайд 48 Simple example: fit a line
Pick 2 points
Fit line
Count

Simple example: fit a linePick 2 pointsFit lineCount inliers3 inliers

inliers












3 inliers


Слайд 49 Simple example: fit a line
Pick 2 points
Fit line
Count

Simple example: fit a linePick 2 pointsFit lineCount inliers4 inliers

inliers











4 inliers


Слайд 50 Simple example: fit a line
Pick 2 points
Fit line
Count

Simple example: fit a linePick 2 pointsFit lineCount inliers9 inliers

inliers











9 inliers


Слайд 51 Simple example: fit a line
Pick 2 points
Fit line
Count

Simple example: fit a linePick 2 pointsFit lineCount inliers8 inliers

inliers











8 inliers


Слайд 52 Simple example: fit a line
Use biggest set of

Simple example: fit a lineUse biggest set of inliersDo least-square fit

inliers
Do least-square fit












Слайд 53 RANSAC
Red:
rejected by 2nd nearest neighbor criterion
Blue:
Ransac outliers
Yellow:
inliers

RANSACRed: 	rejected by 2nd nearest neighbor criterionBlue:	Ransac outliersYellow:	inliers

Слайд 54 How many rounds?
If we have to choose

How many rounds? If we have to choose s samples each

s samples each time
with an outlier ratio e
and we

want the right answer with probability p

Слайд 55 Richard Szeliski
Image Stitching
Rotational mosaics
Directly optimize rotation and focal

Richard SzeliskiImage StitchingRotational mosaicsDirectly optimize rotation and focal lengthAdvantages:ability to build

length
Advantages:
ability to build full-view panoramas
easier to control interactively
more stable

and accurate estimates

Слайд 56 Richard Szeliski
Image Stitching
Rotational mosaic
Projection equations
Project from image to

Richard SzeliskiImage StitchingRotational mosaicProjection equationsProject from image to 3D ray	(x0,y0,z0) 	=

3D ray
(x0,y0,z0) = (u0-uc,v0-vc,f)
Rotate the ray by camera motion
(x1,y1,z1)

= R01 (x0,y0,z0)
Project back into new (source) image
(u1,v1) = (fx1/z1+uc,fy1/z1+vc)


Слайд 57 Computing homography
Assume we have four matched points: How

Computing homographyAssume we have four matched points: How do we compute

do we compute homography H?

Normalized DLT
Normalize coordinates for each

image
Translate for zero mean
Scale so that average distance to origin is ~sqrt(2)

This makes problem better behaved numerically

Compute using DLT in normalized coordinates
Unnormalize:




Слайд 58 Computing homography
Assume we have matched points with outliers:

Computing homographyAssume we have matched points with outliers: How do we

How do we compute homography H?

Automatic Homography Estimation with

RANSAC
Choose number of samples N
Choose 4 random potential matches
Compute H using normalized DLT
Project points from x to x’ for each potentially matching pair:
Count points with projected distance < t
E.g., t = 3 pixels
Repeat steps 2-5 N times
Choose H with most inliers






HZ Tutorial ‘99



Слайд 59 Automatic Image Stitching

Compute interest points on each image

Find

Automatic Image StitchingCompute interest points on each imageFind candidate matchesEstimate homography

candidate matches

Estimate homography H using matched points and RANSAC

with normalized DLT

Project each image onto the same surface and blend


Слайд 60 RANSAC for Homography
Initial Matched Points

RANSAC for HomographyInitial Matched Points

Слайд 61 RANSAC for Homography
Final Matched Points

RANSAC for HomographyFinal Matched Points

  • Имя файла: image-stitching.pptx
  • Количество просмотров: 136
  • Количество скачиваний: 0