学完本文,您将了解不同相机模型分类、内参意义,及对应的应用代码模型
标定的意义
建模三维世界点投影到二维图像平面的过程。标定输出的是相机模型。
相机模型
常用的广角相机构造分类:鱼眼构造和折反射构造
投影模型
描述相机坐标系到理想图像平面坐标系的过程。
kalibr Supported models: https://github.com/ethz-asl/kalibr/wiki/supported-models#references
- pinhole camera model (pinhole)
- intrinsics vector : [fu fv pu pv]
- 最常见的模型,可描述FOV小于120°镜头
鱼眼/全景相机模型
- omnidirectional camera model (omni)
- intrinsics vector : [xi fu fv pu pv]
- 同义名词:MeiModel/CataModel
- double sphere camera model (ds)
- intrinsics vector : [xi alpha fu fv pu pv]
- extended unified camera model (eucm)
- intrinsics vector : [alpha beta fu fv pu pv]
畸变模型
畸变模型指的理想图像平面到真实图像平面的变换模型,即对理想图像施加畸变。
- radial-tangential (radtan)
- 包含切向和径向畸变
- distortion_coeffs : [k1 k2 r1 r2 [k3] ])
- equidistant (equi)
- 属于鱼眼相机畸变模型一种
- distortion_coeffs : [k1 k2 k3 k4])
- fov (fov)
( distortion_coeffs : [w]) - none (none)
( distortion_coeffs : [])
常见标定相机模型-镜头角度分类
Model | Feature | Maximum FOV |
---|---|---|
Pinhole Model | 参数模型 | Up to 95° * For greater accuracy as you get close to 95° , increase the number of distortion coefficients. * Can be used in all CVT camera calibration workflows |
Kannala-Brandt Model (OpenCV fisheye model) | Up to 115° | |
Scaramuzza Model/MEI | Up to 195° |
根据个人实际使用经验,工作中一般使用pinhole Model或者MEI Model,镜头角度小于90°使用pinhole,镜头角度大与90°使用MEI,后续文章也将重点讲解这两个模型,其他类型只做略写。
Pinhole Camera Mode 组合
- pinhole camera model + radtan畸变模型
Unified Camera Model (MEI)组合
- Omnidirectional相机模型+radtan畸变模型
- opencv omnidir model
Kannala-brandt (KB)Model
- pinhole camera model + equidistant 畸变模型
- opencv中的fisheye::calibrate就是⽤的该畸变模型
参考
相机标定整理 https://blog.lea-code.win/posts/3101e270/
https://zhuanlan.zhihu.com/p/458993915
https://blog.youkuaiyun.com/okasy/article/details/90665534#fn4