Download Introduction - Dunn

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Cartesian coordinate system wikipedia , lookup

Line (geometry) wikipedia , lookup

Transcript
776 Computer Vision
Jan-Michael Frahm, Enrique Dunn
Spring 2013
Previous Class
Model Estimation
RANSAC
RECON
Hough Transform
2nd Assigment
Due next week
Single-view geometry
Odilon Redon, Cyclops, 1914
Our goal: Recovery of 3D structure
• Recovery of structure from one image is
inherently ambiguous
X?
x
X?
X?
Our goal: Recovery of 3D structure
• Recovery of structure from one image is
inherently ambiguous
Our goal: Recovery of 3D structure
• Recovery of structure from one image is
inherently ambiguous
Ames Room
http://en.wikipedia.org/wiki/Ames_room
Our goal: Recovery of 3D structure
• We will need multi-view geometry
Recall: Pinhole camera model
• Principal axis: line from the camera center
perpendicular to the image plane
• Normalized (camera) coordinate system: camera
center is at the origin and the principal axis is the z-axis
Recall: Pinhole camera model
( X ,Y , Z )  ( f X / Z , f Y / Z )
X
   f X f
 
Y  
Z  fY 
   Z  
1
 
f
X
0  
Y 

0  
Z
1 0 
1
x  PX
Principal point
py
px
• Principal point (p): point where principal axis intersects the
image plane (origin of normalized coordinate system)
• Normalized coordinate system: origin is at the principal point
• Image coordinate system: origin is in the corner
• How to go from normalized coordinate system to image
coordinate system?
Principal point offset
principal point:
py
( px , p y )
px
( X , Y , Z )  ( f X / Z  px , f Y / Z  p y )
X
   f X  Z px   f
 
Y  
 Z    f Y  Z py   
 
  
Z
 
1
 
px
f
py
1
X
0  
Y 

0  
Z
0 
1
Principal point offset
principal point:
 f X  Zp x   f

 
 f Y  Zp y   

 
Z

 
f
K  

f
f
( px , p y )
X
p x  1
0  
Y 



py  1
0  
Z
1  
1 0 
1
px 
p y  calibration matrix
1 
P  KI | 0
Pixel coordinates
1
1

Pixel size:
mx m y
mx pixels per meter in horizontal direction,
my pixels per meter in vertical direction
 mx
K  

my
pixels/m
 f


1 
f
m
px   x
p y   
y
1  
pixels
x 
 y 
1 
Camera rotation and translation
• In general, the camera
coordinate frame will
be related to the world
coordinate frame by a
rotation and a
translation

~
~ ~
Xcam  R X - C
coords. of point
in camera frame

coords. of camera center
in world frame
coords. of a point
in world frame (nonhomogeneous)
Camera rotation and translation
In non-homogeneous
coordinates:

~
~ ~
Xcam  R X - C
X cam
x  KI | 0Xcam
R

0


~ ~
~
 RC X  R  RC
   
X
1  1   0
1 

~
 K R | RC X
P  KR | t ,
~
t  RC
Note: C is the null space of the camera projection matrix (PC=0)
Effect Camera Calibration Matrix
Viewing Rays to Image Points
(u, v ,w)T = K (xcam, ycam, zcam) T
Imaging Geometry
Image Points to Viewing Rays
(xcam, ycam, zcam) T
rspective projection
λ
= K-1(u,
v ,w)T
Y
x
y
f
X
X
X
=
Y
Z
where λ = Z/ f .
y
x
x
O
p
Z
image plane
Camera parameters
• Intrinsic parameters
•
•
•
•
•
Principal point coordinates
 mx
 f

Focal length
K  
my

Pixel magnification factors

1 
Skew (non-rectangular pixels)
Radial distortion
f
px   x
p y   
y
1  
x 
 y 
1 
Camera parameters
• Intrinsic parameters
•
•
•
•
•
Principal point coordinates
Focal length
Pixel magnification factors
Skew (non-rectangular pixels)
Radial distortion
• Extrinsic parameters
• Rotation and translation relative to world coordinate system
Camera calibration
x  KR t  X
  x  * * * *
 y   * * * *
  

   * * * *
X 
Y 
 
Z 
 
1
Source: D. Hoiem
Camera calibration
• Given n points with known 3D coordinates Xi
and known image projections xi, estimate the
camera parameters
Xi
xi
P?
Camera calibration: Linear method
 x i  PXi
x i  PXi  0
 0

T
X
i

 yi XTi

 XTi
0
xi X
T
i
T
 xi  P1 X i 
 y   PT X   0
 i  2 i
 1  P3T X i 
yi XTi  P1 
 
T
 xi X i  P2   0
0  P3 
Two linearly independent equations
Camera calibration: Linear method
 0T
 T
 X1

 T
0
X T
 n
T
1
T
X
0

X Tn
0T
 y1X 

 x1X  P1 
 
  P2   0
T 
 yn X n  P3 
 xn X Tn 
T
1
T
1
Ap  0
• P has 11 degrees of freedom (12 parameters, but
scale is arbitrary)
• One 2D/3D correspondence gives us two linearly
independent equations
• Homogeneous least squares
• 6 correspondences needed for a minimal solution
Camera calibration: Linear method
 0T
 T
 X1

 T
0
X T
 n
T
1
T
X
0

X Tn
0T
 y1X 

 x1X  P1 
 
  P2   0
T 
 yn X n  P3 
 xn X Tn 
T
1
T
1
Ap  0
• Note: for coplanar points that satisfy ΠTX=0,
we will get degenerate solutions (Π,0,0),
(0,Π,0), or (0,0,Π)
Camera calibration: Linear method
• Advantages: easy to formulate and solve
• Disadvantages
• Doesn’t directly tell you camera parameters
• Doesn’t model radial distortion
• Can’t impose constraints, such as known focal length and
orthogonality
• Non-linear methods are preferred
• Define error as difference between projected points and
measured points
• Minimize error using Newton’s method or other non-linear
optimization
Source: D. Hoiem
A functional
model
Algorithm
step 1: Compute the matrix P
x i = PX i .
Each correspondence generates two equations
p11Xi + p12Yi + p13Zi + p14
p21Xi + p22Yi + p23Zi + p24
xi =
yi =
p31Xi + p32Yi + p33Zi + p34
p31Xi + p32Yi + p33Zi + p34
Multiplying out gives equations linear in the matrix elements of P
x i (p31Xi + p32Yi + p33Zi + p34) = p11Xi + p12Yi + p13Zi + p14
yi (p31Xi + p32Yi + p33Zi + p34) = p21Xi + p22Yi + p23Zi + p24
These equations can be rearranged as
X Y Z 1 0 0 0 0 −x X −x Y −x Z −x
0 0 0 0 X Y Z 1 −y X −y Y −y Z −y
p= 0
with p = (p11, p12, p13, p14, p21, p22, p23, p24, p31, p32, p33, p34) a 12-vector.
Multi-view geometry problems
• Structure: Given projections of the same 3D point in two
or more images, compute the 3D coordinates of that point
?
Camera 1
R1,t1
Camera 2
R2,t2
Camera 3
R3,t3
Slide credit:
Noah Snavely
Multi-view geometry problems
• Stereo correspondence: Given a point in one of the
images, where could its corresponding points be in the
other images?
Camera 1
R1,t1
Camera 2
R2,t2
Camera 3
R3,t3
Slide credit:
Noah Snavely
Multi-view geometry problems
• Motion: Given a set of corresponding points in two or
more images, compute the camera parameters
Camera 1
R1,t1
?
Camera 2
R2,t2
?
?
Camera 3
R3,t3
Slide credit:
Noah Snavely
Triangulation
• Given projections of a 3D point in two or more
images (with known camera matrices), find
the coordinates of the point
X?
x1
O1
x2
O2
Triangulation
• We want to intersect the two visual rays
corresponding to x1 and x2, but because of
noise and numerical errors, they don’t meet
exactly
R1
R2
X?
x1
O1
x2
O2
Triangulation: Geometric approach
• Find shortest segment connecting the two
viewing rays and let X be the midpoint of that
segment
X
x1
O1
x2
O2
Triangulation: Linear approach
1 x1  P1X
2 x 2  P2 X
x1  P1X  0
[x 1 ]P1X  0
x 2  P2 X  0
[x 2 ]P2 X  0
Cross product as matrix multiplication:
 0

a  b   az
 a y

 az
0
ax
a y  bx 
 
 a x  by   [a ]b
0  bz 
Triangulation: Linear approach
1 x1  P1X
2 x 2  P2 X
x1  P1X  0
[x 1 ]P1X  0
x 2  P2 X  0
[x 2 ]P2 X  0
Two independent equations each in terms of
three unknown entries of X
Triangulation: Nonlinear approach
Find X that minimizes
d ( x1 , P1 X )  d ( x2 , P2 X )
2
2
X?
x’1
x1
O1
x’2
x2
O2
Two-view geometry
Epipolar geometry
X
x
x’
• Baseline – line connecting the two camera centers
• Epipolar Plane – plane containing baseline (1D family)
• Epipoles
= intersections of baseline with image planes
= projections of the other camera center
The Epipole
Photo by Frank Dellaert
Epipolar geometry
X
x
x’
• Baseline – line connecting the two camera centers
• Epipolar Plane – plane containing baseline (1D family)
• Epipoles
= intersections of baseline with image planes
= projections of the other camera center
• Epipolar Lines - intersections of epipolar plane with image
planes (always come in corresponding pairs)