原理
简介
摄像机标定(Camera calibration)简单来说是从世界坐标系换到图像坐标系的过程,也就是求最终的投影矩阵P的过程。基本的坐标系:世界坐标系;相机坐标系;图像坐标系;
一般来说,标定的过程分为两个部分:
第一步是从世界坐标系转换为相机坐标系,这一步是三维点到三维点的转换,包括 R,t (相机外参)等参数;
第二步是从相机坐标系转为图像坐标系,这一步是三维点到二维点的转换,包括 K (相机内参)等参数;
相机坐标系转换到图像坐标系
坐标系介绍
知道上面的简单知识后,如果知道相机坐标系中的一个点 X(现实三维世界中的点),在像平面坐标系对应的点是 x,要求求从相机坐标系转为像平面坐标系的转换,也就是从 X 点的( X , Y , Z )通过一定的转换变为x点的(x,y)注意(X,Y,Z)(大写)是在相机坐标系 , 而(小写)是在像平面坐标系(还不是图像坐标系,原点不同。)观察第二个图,很简单的可以得到这个转换:
可以表示为矩阵计算为:
可以简写为(P就是所谓的投影矩阵,当然现在还不完整):
加入偏移量:
通过上面,可以把相机坐标系转换到像平面坐标系,但是像平面坐标系和图像坐标系虽然在同一个平面上,但是原点并不是同一个,而目标是要转换到图像坐标系下,所以还需要一步操作,如下图:
其中主点 p 是像平面坐标系的原点,但在图像坐标系中的位置为(px,py)在这里,图形坐标系的原点是图片的左下角,所以可以得到:
相当于在上面的基础上加了一个p点坐标的偏移量,同时可以表示为矩阵计算为(在这里用的是齐次坐标的表示方式):
最后得到相机内参K
和投影矩阵P:
世界坐标系转换到图像坐标系
坐标系介绍
从世界坐标系转换到相机坐标系是三维空间到三维空间的变换,一般来说需要一个平移操作和一个旋转操作就可以完成这个转换,用公式表示如下(可以理解为世界坐标系原点先平移到相机坐标系的位置然后在做一次坐标系旋转,使坐标轴对齐。):
根据上面的公式可以得到从一个三维点从世界坐标系转换到相机坐标的变换公式如下(也是用的齐次坐标的表示方式):
根据上面的讨论知道了怎样从世界坐标系转换到相机坐标系(平移和旋转)以及从相机坐标系转换到图像坐标系(相机内参变换),所以带入上面的矩阵计算,可以得到:
这样就得到了最终的投影矩阵 P:
其中:
在这里,K一般称为相机内参(intrinsic parameters),描述了相机的内部参数,包括焦距 f、主点 p的位置、以及像素与真实环境的大小比例等,这个是固有属性,是提供好的;R和t称为相机外参(extrinsic parameters),R在这里是旋转矩阵,可以转换为三维的旋转向量,分别表示绕x ,y ,z 三个轴的旋转角度,t 目前就是一个平移向量,分别表示在x ,y ,z、三个方向上的平移量。
径向畸变
径向畸变的效应有三种,一种是桶形畸变(barrel distortion),另一种是枕形畸变(pincushion distortion),还有一种是两种的结合叫做胡子畸变(mustache distortion)
公式修正:
切向畸变
切向畸变是由于透镜与成像平面不严格的平行