Camera Calibration
Learn how to calibrate cameras to correct lens distortion and obtain accurate 3D measurements from images.Why Camera Calibration?
Camera calibration is essential for:- Removing lens distortion from images
- Measuring real-world dimensions from images
- 3D reconstruction and depth estimation
- Augmented reality applications
- Accurate object tracking and positioning
Camera Parameters
Intrinsic Parameters
Intrinsic Parameters
Internal camera properties:
- Focal length (fx, fy): Distance from lens to sensor
- Principal point (cx, cy): Image center offset
- Skew coefficient: Axis skewness (usually 0)
- Distortion coefficients: Radial and tangential distortion
Extrinsic Parameters
Extrinsic Parameters
Camera position and orientation in world space:
- Rotation matrix (R): 3x3 matrix
- Translation vector (t): 3x1 vector
Distortion Coefficients
Distortion Coefficients
Lens distortion parameters:
- k1, k2, k3: Radial distortion
- p1, p2: Tangential distortion
Calibration Pattern
The most common calibration pattern is a chessboard:Creating a Chessboard Pattern
Generate Pattern
Print a chessboard pattern with known square size (e.g., 25mm). Common sizes:
- 9x6 inner corners (10x7 squares)
- 8x6 inner corners (9x7 squares)
Chessboard requirements:
- High contrast between squares
- Perfectly flat surface
- No glare or reflections
- Pattern fills 30-70% of image
- Vary viewing angles (tilt, rotate, distance)
Camera Calibration Process
Based on OpenCV’s calibrate.py sample:Single Camera Calibration
- Python
- C++
Undistorting Images
Basic Undistortion
- Python
- C++
Efficient Undistortion with Remapping
For real-time video, precompute undistortion maps:- Python
- C++
Calibration Quality Assessment
- Python
Calibration quality guidelines:
- RMS error < 0.5: Excellent
- RMS error < 1.0: Good
- RMS error > 1.0: May need more images or better pattern detection
- Use 15-30 images minimum
- Cover all areas of the image
- Include tilted views (30-45 degrees)
- Vary distances to pattern
- Ensure sharp, well-lit images
- Use higher resolution if possible
Stereo Calibration
Calibrate two cameras for stereo vision:- Python
Practical Applications
Measuring Real-World Distances
Measuring Real-World Distances
After calibration, you can measure distances between points:
Augmented Reality
Augmented Reality
Use calibration for accurate AR overlay:
3D Reconstruction
3D Reconstruction
Combine with stereo vision:
Next Steps
- Apply calibration to Video Processing
- Use with Deep Learning for accurate 3D object detection
- Explore stereo vision and depth estimation
- Learn about pose estimation and AR applications
