相机标定的目的是建立像素坐标系和世界坐标系之间的关系。原理是根据摄像机模型,由已知特征点的图像坐标求解摄像机的模型参数,从而可以从图像中恢复出空间点的三维坐标。所要求解的参数包括4个内参数和5个畸变参数,对于外参数,即旋转矩阵的三个旋转参数和平移向量的三个参数。
一. 针孔相机模型
摄像机成像模型一般有三种:透镜投影模型[针孔相机模型]、正交投影模型和透视投影模型。如下所示:
什么是焦距呢?镜头的焦距基本上就是从镜头的中心点到形成清晰影像胶片平面或数码CCD之间的距离。
物距u,焦距f,相矩v之间的关系为,如下所示:
二. 四大坐标系
1. 像素坐标系和图像坐标系[CCD平面]
像素坐标系以图像左上角为原点,即u-v坐标系;图像坐标系以图像中心为原点,即x-y坐标系。映射关系如下所示:
将上式用齐次坐标与矩阵形式表示,如下所示:
假设图像坐标系中的单位为毫米,那么dx的单位为毫米/像素,那么x/dx的单位为像素。上式的逆关系,如下所示:
2. 相机坐标系
O点为摄像机的光心,由O点与轴组成的直角坐标系为相机坐标系,
为摄像机的焦距,
轴为摄像机的光轴,并且和图像平面垂直。
3. 世界坐标系
世界坐标系是为了描述相机的位置而被引入的,即为世界坐标系,平移向量t和旋转矩阵R用来表示相机坐标系与世界坐标系的关系。假设空间点P在世界坐标系下的齐次坐标是
,在相机坐标下的齐次坐标是
。如下所示:
其中,R是3×3的正交单位矩阵[即旋转矩阵],t是三维的平移向量。矢量,
是4×4矩阵。
相机坐标系与世界坐标系之间的关系,如下所示:
[1]旋转矩阵R
在三维空间中,旋转可以分解为绕各自坐标轴的二维旋转,其中旋转的轴线的度量保持不变。如果依次绕x,y,z轴旋转角度ψ,φ和θ,那么总的旋转矩阵R是三个矩阵Rx(ψ),Ry(φ),Rz(θ)的乘积。如下所示:
[2]平移向量t
平移向量是第一个坐标原点与第二个坐标原点的偏移量。从以对象中心为原点的坐标系移动到以摄像机为中心的原点的另外一个坐标系,相应的平移向量为t=对象原点-摄像机原点。那么从世界坐标系中的坐标到摄像机坐标系中的坐标
,如下所示:
用角度ψ,φ和θ表示三维旋转,用参数表示三维平移,共6个参数。内参数[相机矩阵]为
,外参数为R和t。
三. 相机模型和相机标定
1. 理想相机模型[线性模型]
根据针孔相机模型,任一点在像平面的投影点
都是C[光心,即投影中心]与
的连线。通过比例关系,如下所示:
将上式用齐次坐标与矩阵形式表示[相机坐标系与图像坐标系],如下所示:
像素坐标系与图像坐标系,世界坐标系与相机坐标系,如下所示:
综上所述,如下所示:
上述公式完成了世界坐标系[单位为毫米]向像素坐标系[单位为像素]的转换,经历了世界坐标系向相机坐标系,相机坐标系向图像坐标系,图像坐标系向像素坐标系的转换。其中,和
。M是3×4的投影矩阵,M1完全由相机的内参数
决定,
分别表示图像u轴和v轴上的尺度因子,
为主点坐标,M2完全由相机的外参数决定,而相机标定就是确定相机的内外参数。可以由世界坐标系得到像素坐标系,但是不能由像素坐标系得到世界坐标系,因为投影矩阵M是3×4不可逆矩阵。直观来看,位于射线OP上的所有空间点的投影点都是p点。
2. 实际相机模型[非线性模型]
摄像机标定是确定摄像机内部参数或外部参数的过程。内部参数是指摄像机内部几何和光学特性,摄像机外部参数是指从世界坐标系到摄像机坐标系的平移向量和旋转矩阵。实际相机模型,如下所示:
其中,m表示实际投影点的像平面坐标系下的物理坐标,m'表示理想投影点的像平面坐标系下的物理坐标。下面仅考虑径向畸变和切向畸变,而不考虑偏心畸变和薄棱镜畸变等。
[1]径向畸变
径向畸变[桶形畸变和枕形畸变]产生原因是光线在远离透镜中心的地方比靠近中心的地方更加弯曲。如下所示:
[2]切向畸变
切向畸变是由于摄像机制造上的缺陷使得透镜本身与成像平面不平行而产生的。如下所示:
其中,是径向畸变系数,
是切向畸变系数,
为径向半径,
。
四. OpenCV单目相机标定实现 [3]
参考文献:
[1] 单目视觉标定原理:单目视觉标定原理 - bldong - 博客园
[2] 相机模型详解:相机模型详解_Hao_09的博客-CSDN博客_相机模型
[3] OpenCV单目相机标定:opencv 单目相机标定 自带例子程序的使用_tony_3的博客-CSDN博客