相机标定中的四种坐标系
世界坐标系:代表物体在三维世界里的真实坐标,坐标用(Xw,Yw,Zw)表示,其中的w可以认为是world的缩写。
相机坐标系:代表以相机光学中心为原点的坐标,Z轴与光轴重合,坐标用(Xc,Yc,Zc)表示,其中c可以认为是camera的缩写
图像坐标系:代表相机拍摄时,在成像平面上使用的坐标系,成像平面和相机光轴的角点为原点,坐标用(X,Y)表示
像素坐标系:在相机成像平面上的图像,通常情况下我们不能直接使用,我们定义了一套新的坐标系来表示在电子设备上被现实的图像,图像的左上角是原点,坐标系用(u,v)表示。
世界坐标系转相机坐标系:
上面已经讲过两种坐标系的定义,如果用函数的思想来表达这种转换关系的话,可以写成下面的式子。
这里transform函数代表具体的转换过程,很好理解,从世界坐标系转成相机坐标系时,需要进行两种操作:旋转和平移,平移很好理解,只需要加上一个平移向量T即可,即下面的公式(4).
旋转操作则是需要左乘一个3X3的旋转矩阵R,这里顺便提一点线性代数的内容,线性代数中一个比较基础概念是行列式,不知道大家有没有想过行列式的几何意义,在二阶和三阶情况下,有这样一种几何意义可以参考:
二阶行列式:对二维空间中的一个面积不为0的图形,其中每个点的坐标左乘一个二阶行列式对应的矩阵,相当于把这个图形的面积缩放行列式的值这么多倍。
三阶行列式:对三维空间中的一个体积不为0的图形,其中每个点的坐标左乘一个三阶行列式对应的矩阵,相当于把这个图形的体积缩放行列式的值这么多倍。
上面的说法并不严谨,但是可以帮助理解行列式的几何意义,有点跑题了,再回到前面所说的旋转矩阵R,既然是旋转,那么它肯定能保证原来图形的体积不变,所以这个旋转矩阵R对应的行列式的值肯定为1,下面我们列出T和R,以及把它们带入到公式(3)中:
还可以继续用齐次坐标来简化公式(6),即把三维坐标增加一个维度,变成四维,第四维的值设为1:
其中上式中的第二个矩阵,即我们常说的外参矩阵(extrinsics)
相机坐标系转图像坐标系
有了相机坐标系的坐标,再根据相机成像的原理,即可推断出对应的成像平面的图像坐标,我们先看一下下面这个小孔成像的示意图:
如果将成像平面移到光心O与物体之间,则透视模型如下图所示:
根据相似三角形的性质,很容易得出下面关系:
写成矩阵乘的形式如下:
如果和公式(7)的齐次坐标Pc对齐,需要给第二个矩阵增加一列0,如下图所示:
图像坐标系转像素坐标系
有了成像平面的图像坐标,根据像素坐标的定义,则需要对图像坐标进行一下坐标平移和单位变换即可,假设一个像素的宽度为dx毫米,高度为dy毫米,平移向量为C=(cx,cy),则有:
上式中就包含了我们常说的相机的内参矩阵(intrinsics),单独提出来如下所示: