由于近期使用了很多种不同的相机,关于相机的模型和标定方法也是老生常谈的问题,这也是视觉定位的必要前提,本文只要分为三个部分:坐标系的转换、相机模型和畸变模型。

  • 坐标系转换
    像素坐标、图像坐标、摄像机坐标、世界坐标,其中世界坐标到摄像机坐标为刚体变换、摄像机坐标到图像坐标为透视投影、图像坐标到像素坐标为二次转换,牵扯到的具体的相机的内参矩阵和外参矩阵。
  • 相机的模型
    相机模型分为针孔模型(线性模型)和非线性模型(鱼眼相机)
  • 畸变模型
    畸变一般可以分为:径向畸变、切向畸变径向畸变来自于透镜形状。切向畸变来自于整个摄像机的组装过程。对于鱼眼相机,存在比较严重的畸变,主要是径向形变(普通相机也有,也会有轻微的切向形变)。针对具体的标定时,常用的畸变模型有fisheye模型、多项式畸变模型、ATAN模型和FOV模型。

具体的标定工具:
* Matlab 标定工具箱
* Ros标定工具
* opencv标定工具
* 在github中,邹丹平老师有一套标定代码,我们通常用来标定鱼眼相机,该工具中已有的畸变模型有FOV模型,fisheye模型和Plumb—Bob模型。
* 对于SVO算法,由于ATAN标定的模型参数便于快速计算,故常采用PTAM中的标定程序来标定ATAN畸变模型。
上述只是本人常常使用的方法,欢迎大家推荐和指正。

总结 2018-10-02

本次主要是缕清相机模型、畸变模型还有常用的坐标转换之间的关系,同一种相机可以使用不同的畸变模型进行标定。比如,同一种鱼眼相机,可以采用FOV畸变模型进行来标定,同样可以采用ATAN畸变模型进行标定,标定的结果的具体含义是不同的。对于具体的数学关系的推算,以及相应的标定工具的具体使用方法,接下来会详细说明,其中是以邹老师的标定程序为主体框架,详细的介绍标定的代码流程和使用方法,同时也会相应的介绍不同的畸变模型下对应的解畸变方法,具体的代码也会公布到github主页上面。