相机标定指建立相机图像像素位置与场景点位置之间的关系,根据相机成像模型,由特征点在图像中坐标与世界坐标的对应关系,求解相机模型的参数。相机需要标定的模型参数包括内部参数和外部参数。
相机标定算法有很多种,主流包括Tsai标定和张正友标定法,属于二次标定,包含两个过程,可分为建立世界坐标系和图像坐标系的线性关系过程和建立理想相机坐标系和畸变情况下相机坐标系对应关系的过程。两次标定所求解的参数如下:
一、常用坐标系及转换
1、世界坐标系到相机坐标系
。
相机可以安放在环境中的任意位置,因此在环境中可选择任意一点建立基准坐标系来描述,为世界坐标系。
由成像原理,O为相机光心,z为摄像机光轴,决定图像坐标系。两种坐标系关系可有刚体变换进行描述。

可为:
2、相机坐标系投影到相机平面坐标系
空间中任意一点P在图像中的成像位置可以用针孔成像模型表示,对应


3、相机平面坐标系到图像坐标系
以像素为单位,
以毫米为单位,dX与dY为像素的物理尺寸,对应关系表示为:
,
用矩阵运算表示:
综合以上,可表示为:
内部参数矩阵:
当光轴与Z轴重合,Z=0时,表示为,
表示坐标轴倾斜程度的参数。
二、非线性模型
实际中,镜头并非理想的透视成像,带有不同程度的畸变。理论上镜头的畸变包括径向畸变和切向畸变,切向畸变影响较小,通常只考虑径向畸变。
1、径向畸变:径向畸变主要由镜头径向曲率产生。导致真实成像点向内或向外偏离理想成像点。其中畸变像点相对于理想像点沿径向向外偏移,远离中心的,称为枕形畸变;径向畸点相对于理想点沿径向向中心靠拢,称为桶形畸变。

线性模型描述的位置,受失真影响而偏移的实际平面坐标
,关系为:

2、切向畸变:切向畸变产生的原因是透镜不完全平行于图像平面,模型可表示为:
3、薄棱镜畸变:由于制造或装配过程中的缺陷,如某个镜片或感光阵列轻微倾斜,忽略高阶项后可表示为:
三、标定过程简介
博主接触图像算法一年,对于图像标定这块也是刚刚接触,初学习,了解大概,再动手实现,学习过程中遇到不少疑惑。网上关于标定这块资料多、乱,多基于opencv提供的函数实现,亲身做的少,反正我没找到,再加上身边没有大神指点,导致在这段时间走了不少弯路。幸运的是,我没放弃,挺过来了,哈哈~
相机标定使用n幅图片,每张图片包含m个控制点。显然图片不同,自然导致每幅图片的世界坐标系不同,即外部参数不同。而同一张相机拍摄得到的图片,内部参数矩阵相同,畸变参数也相同。
即是说,由全部n幅图片中的n*m个控制点,首先计算得到内部参数矩阵及畸变参数,再具体到每幅图片中,由内部参数矩阵与外部参数矩阵之间的关系得到外部参数矩阵,至此训练结束。
详细过程见下一篇,张正友标定法的实现~