双目摄像头标定——相机标定(Camera calibration)推导过程

参考资料来自于UIUC的计算机视觉课件:http://slazebni.cs.illinois.edu/spring16/

一.介绍

    摄像机标定分为两部分:

    1.从世界坐标系转换到相机坐标系,由于这两个坐标系都是三维的,所以这一部分就是三维空间转到另外一个三维空间

    2.从相机坐标系转换到图像坐标系,由于图像坐标系是二维的,所以这一部分就是三维空间转到另外一个二维空间

 

二.世界坐标系转换到相机坐标系

双目摄像头标定——相机标定(Camera calibration)推导过程_第1张图片

    在上图中,C代表着相机坐标系的原点,O代表着世界坐标系的原点,我们只需要一个平移操作(平移到原点重合)和一个旋转操作(旋转到三个轴对齐)就可以将世界坐标系转换到相机坐标系,公式:\widetilde{X}_{cam}= R(\widetilde{X}-\widetilde{C}),其中R表示旋转矩阵,\widetilde{X}表示x点在世界坐标系中的位置,\widetilde{C}表示相机坐标系的原点C在世界坐标系中的位置,\widetilde{X}_{cam}表示x点在相机坐标系的位置。

 

三.相机坐标系转换到图像坐标系

双目摄像头标定——相机标定(Camera calibration)推导过程_第2张图片

    在上图中,C是相机中心,p为图像中心,相机坐标系和图像坐标系的Z轴在一条线上。将上图进行简单的投影,我们可以得到下图,其中f为相机的焦距,这里就有一个等比列对称关系,当把相机坐标系一点(X,Y,Z)投影到图像坐标系中的点(x,y),就可以通过x=f*X/Z,y=f*Y/Z来计算出来。

双目摄像头标定——相机标定(Camera calibration)推导过程_第3张图片

    通过上面的转换,只能把相机坐标系转换和像平面坐标系转换到同一个平面下,如下图所示,因此还需要一个平移操作,p在像平面坐标系的位置为(px,py),可以得到最终的变换公式:x=f*X/Z +px,y=f*Y/Z+py

双目摄像头标定——相机标定(Camera calibration)推导过程_第4张图片

    上面的公式推导完了,但没具体看到我们所需要的相机内参K和投影矩阵P,那么就接着把上面的公式进行变换:

\bigl(\begin{smallmatrix} f*X + Z*px\\ f*Y + Z*py\\ Z \end{smallmatrix}\bigr)=\begin{bmatrix} f & 0& px& 0\\ 0 & f& py& 0\\ 0 & 0& 1& 0 \end{bmatrix}\begin{pmatrix} X\\ Y\\ Z\\ 1 \end{pmatrix}=\begin{bmatrix} 1& 0& px\\ 0& f& py\\ 0& 0& 1 \end{bmatrix}\begin{bmatrix} 1& 0& 0& 0\\ 0& 1& 0& 0\\ 0& 0& 1& 0 \end{bmatrix}\begin{pmatrix} X\\ Y\\ Z\\ 1 \end{pmatrix}

公式中K为:\begin{bmatrix} f & 0& px\\ 0 & f & py\\ 0 & 0& 1 \end{bmatrix},P为\begin{bmatrix} f & 0 & px\\ 0 & f& py\\ 0 & 0& 1 \end{bmatrix}\begin{bmatrix} 1& 0& 0& 0\\ 0& 1& 0& 0\\ 0& 0 & 1& 0 \end{bmatrix}=K[I|0]

    推导到现在,有没有发现一个问题,相机坐标系和图像坐标系的衡量单位是一样的吗?相机坐标系是以m为单位,图像坐标系中是以多少个像素点为单位。假设mx为在水平方向的1m所包含像素点个数,my为在竖直方向的1m所包含像素点个数,那么K就更新为:\begin{bmatrix} mx & 0& 0\\ 0& my& 0\\ 0& 0& 1 \end{bmatrix}\begin{bmatrix} f & 0& px\\ 0& f& py\\ 0& 0& 1 \end{bmatrix}=\begin{bmatrix} fx & 0& cx\\ 0& fy& cy\\ 0& 0& 1 \end{bmatrix},其中fx、fy、cx和cy就是相机内参数矩阵得到的四个参数,可以参见我上一篇博客:vs2015 + opencv3 双目摄像头标定(C++实现)

 

四.世界坐标系转换到图像坐标

    在第二节中,我们得到世界坐标系转换到相机坐标系公式:\widetilde{X}_{cam}= R(\widetilde{X}-\widetilde{C}),为了方便公式之间的转换,我们也把它用矩阵形式来表示:

    在第三节中,我们得到相机坐标系转换到图像坐标系的投影矩阵P:K[I|0]

    那么综合起来,世界坐标系转换到图像坐标的公式为:

    最终得到的P为:K[R|t],其中t为-R\widetilde{C}。总结一下,K为相机内参,是一个固有属性;R和t都为相机外参,其中R为旋转矩阵,t为平移向量。
 

 

 

你可能感兴趣的:(双目摄像头)