Transcript Calibration
Calibration
Camera Calibration
• Geometric
– Intrinsics: Focal length, principal point, distortion
– Extrinsics: Position, orientation
• Radiometric
–
–
–
–
Mapping between pixel value and scene radiance
Can be nonlinear at a pixel (gamma, etc.)
Can vary between pixels (vignetting, cos4, etc.)
Dynamic range (calibrate shutter speed, etc.)
Geometric Calibration Issues
• Camera Model
– Orthogonal axes?
– Square pixels?
– Distortion?
• Calibration Target
–
–
–
–
Known 3D points, noncoplanar
Known 3D points, coplanar
Unknown 3D points (structure from motion)
Other features (e.g., known straight lines)
Geometric Calibration Issues
• Optimization method
–
–
–
–
–
Depends on camera model, available data
Linear vs. nonlinear model
Closed form vs. iterative
Intrinsics only vs. extrinsics only vs. both
Need initial guess?
Caveat - 2D Coordinate Systems
• y axis up vs. y axis down
• Origin at center vs. corner
• Will often write (u, v) for image coordinates
u
v
v
u
v
u
Camera Calibration – Example 1
• Given:
– 3D 2D correspondences
– General perspective camera model (no distortion)
ax by cz d
a b c d x
homogeneous ix jy kz l
ex fy gz h
e f g h y
z ix jy kz l
divide
i j k l 1
• Don’t care about “z” after transformation
• Homogeneous scale ambiguity 11 free parameters
Camera Calibration – Example 1
• Write equations:
ax1 by1 cz1 d
u1
ix1 jy1 kz1 l
ex1 fy1 gz1 h
v1
ix1 jy1 kz1 l
Camera Calibration – Example 1
x1
0
x
2
0
y1
0
y2
z1
0
z2
1
0
1
0
x1
0
0
y1
0
0
z1
0
0 u1 x1
1 v1 x1
0 u 2 x2
u1 y1
u1 y1
u 2 y2
u1 z1
u1 z1
u2 z2
0
0
0 x2
y2
z2
1 u 2 x2
u 2 y2
u2 z2
u1 a
u1 b
u2 c 0
u2
l
• Linear equation
• Overconstrained (more equations than unknowns)
• Underconstrained (rank deficient matrix – any multiple
of a solution, including 0, is also a solution)
Camera Calibration – Example 1
• Standard linear least squares methods for
Ax=0 will give the solution x=0
• Instead, look for a solution with |x|= 1
• That is, minimize |Ax|2 subject to |x|2=1
Camera Calibration – Example 1
• Minimize |Ax|2 subject to |x|2=1
• |Ax|2 = (Ax)T(Ax) = (xTAT)(Ax) = xT(ATA)x
• Expand x in terms of eigenvectors of ATA:
x = m1e1+ m2e2+…
xT(ATA)x = l1m12+l2m22+…
|x|2 = m12+m22+…
Camera Calibration – Example 1
• To minimize
l1m12+l2m22+…
subject to
m12+m22+… = 1
set mmin= 1 and all other mi=0
• Thus, least squares solution is eigenvector
corresponding to minimum (non-zero)
eigenvalue of ATA
Camera Calibration – Example 2
• Incorporating additional constraints into
camera model
– No shear (u, v axes orthogonal)
– Square pixels
– etc.
• Doing minimization in image space
• All of these impose nonlinear constraints on
camera parameters
Camera Calibration – Example 2
• Option 1: nonlinear least squares
– Usually “gradient descent” techniques
– e.g. Levenberg-Marquardt
• Option 2: solve for general perspective model,
find closest solution that satisfies constraints
– Use closed-form solution as initial guess for
iterative minimization
Radial Distortion
• Radial distortion can not be represented
by matrix
uimg cu u
vimg cv v
*
img
*
img
1 k (u
1 k (u
* 2
img
* 2
img
* 2
img
v
* 2
img
v
)
)
• (cu, cv) is image center,
u*img= uimg– cu, v*img= vimg– cv,
k is first-order radial distortion coefficient
Camera Calibration – Example 3
• Incorporating radial distortion
• Option 1:
– Find distortion first (e.g., straight lines in
calibration target)
– Warp image to eliminate distortion
– Run (simpler) perspective calibration
• Option 2: nonlinear least squares
Calibration Targets
• Full 3D (nonplanar)
– Can calibrate with one image
– Difficult to construct
• 2D (planar)
– Can be made more accuracte
– Need multiple views
– Better constrained than full SFM problem
Calibration Targets
• Identification of features
–
–
–
–
Manual
Regular array, manually seeded
Regular array, automatically seeded
Color coding, patterns, etc.
• Subpixel estimation of locations
– Circle centers
– Checkerboard corners
Calibration Target w. Circles
3D Target w. Circles
Planar Checkerboard Target
[Bouguet]
Coded Circles
[Marschner et al.]
Concentric Coded Circles
[Gortler et al.]
Color Coded Circles
[Culbertson]
Calibrating Projector
• Calibrate camera
• Project pattern onto a known object
(usually plane)
– Can use time-coded structured light
• Form (uproj, vproj, x, y, z) tuples
• Use regular camera calibration code
• Typically lots of keystoning relative to cameras
Multi-Camera Geometry
• Epipolar geometry – relationship between
observed positions of points in multiple cameras
• Assume:
– 2 cameras
– Known intrinsics and extrinsics
Epipolar Geometry
P
p1
C1
p2
C2
Epipolar Geometry
P
p1
C1
l2
p2
C2
Epipolar Geometry
P
Epipolar line
l2
p1
p2
C1
C2
Epipoles
Epipolar Geometry
• Goal: derive equation for l2
• Observation: P, C1, C2 determine a plane
P
l2
p1
C1
p2
C2
Epipolar Geometry
• Work in coordinate frame of C1
• Normal of plane is T Rp2, where T is relative
translation, R is relative rotation
P
l2
p1
C1
p2
C2
Epipolar Geometry
• p1 is perpendicular to this normal:
p1 (T Rp2) = 0
P
l2
p1
C1
p2
C2
Epipolar Geometry
• Write cross product as matrix multiplication
T x T* x ,
0
*
T Tz
T
y
P
Tz
0
Tx
l2
p1
C1
p2
C2
Ty
Tx
0
Epipolar Geometry
• p1 T* R p2 = 0
p1T E p2 = 0
• E is the essential matrix
P
l2
p1
C1
p2
C2
Essential Matrix
• E depends only on camera geometry
• Given E, can derive equation for line l2
P
l2
p1
C1
p2
C2
Fundamental Matrix
• Can define fundamental matrix F analogously,
operating on pixel coordinates instead of
camera coordinates
u1 T F u2 = 0
• Advantage: can sometimes estimate F without
knowing camera calibration