各相机模型(针孔+鱼眼)综述
文章目录
Overview
Lens Projections
- About the various projections of the photographic objective lenses
- Models for the various classical lens projections
- 鱼眼相机成像、校准和拼接(笔记)
- Computer Generated Angular Fisheye Projections
- Perspective and fisheye imaging process
Optics: Terminology
- Dioptric: All elements are refractive (lenses)
- Catoptric: All elements are reflective (mirrors)
- Catadioptric: Elements are refractive and reflective (mirrors + lenses)
Papers
- Straight Lines Have to be Straight: Automatic Calibration and Removal of Distortion from Scenes of Structured Environments
- A Generic Camera Model and Calibration Method for Conventional, Wide-Angle, and Fish-Eye Lenses
- Single View Point Omnidirectional Camera Calibration from Planar Grids
Related Code
-
Distortion Models in ROS (distortion_models.h)
- plumb_bob: a 5-parameter polynomial approximation of radial and tangential distortion
- rational_polynomial: an 8-parameter rational polynomial distortion model
- equidistant (lunar)
-
- Pinhole camera model
- Unified projection model
- Equidistant fish-eye model
-
uzh-rpg/rpg_vikit/vikit_common: support pinhole, atan and omni camera
-
ethz-asl/aslam_cv2: support pinhole and unified peojection and radtan, fisheye and equidistant distortion
-
cggos/okvis_cg: support pinhole peojection and radtan and equidistant distortion
-
ptam_cg/src/ATANCamera.cc: support ATAN camera model
Pinhole camera
- pinhole model (rectilinear projection model) + radial-tangential distortion
The Pinhole camera model is the most common camera model for consumer cameras. In this model, the image is mapped onto a plane through perspective projection. The projection is defined by the camera intrinsic parameters such as focal length, principal point, aspect ratio, and skew.
Fisheye camera
OpenCV fisheye camera model
- pinhole model (rectilinear projection model) + fisheye distortion
The Fisheye camera model is a camera model utilized for wide field of view cameras. This camera model is neccessary because the pinhole perspective camera model is not capable of modeling image projections as the field of view approaches 180 degrees.
Given a point from the camera plane in camera coordinates, the pinhole projection is:
in another way
fisheye distortion:
The distorted point coordinates are
convert into pixel coordinates, the final pixel coordinates vector
write in matrix form
ATAN model
- pinhole model (rectilinear projection model) + FOV distortion
- ptam_cg/src/ATANCamera.cc
This is an alternative representation for camera models with large radial distortion (such as fisheye cameras) where the distance between an image point and principal point is roughly proportional to the angle between the 3D point and the optical axis. This camera model is first proposed in Straight Lines Have to be Straight: Automatic Calibration and Removal of Distortion from Scenes of Structured Environments.
Given a point from the camera plane in camera coordinates, the pinhole projection is:
FOV distortion:
where is the FOV distortion coefficient
The distorted point coordinates are
convert into pixel coordinates, the final pixel coordinates vector