参照北京邮电大学的鲁鹏老师的 :计算机视觉之三维重建

1. 相机内参

· 简单相机模型

img1

在不考虑畸变、偏置和单位转换的情况下,上图即为一个简单的摄像机模型。使用相似三角形法,很容易推导出在像素平面上的投影可以表示为:

但是,以上在像素平面上的坐标P’是以像素平面上的点为坐标原点的(相当于以图像中间的点为坐标原点),这不太方便。我们习惯上会愿意以图像的左下角为坐标原点,所以需要在上述坐标加上偏置。此外,在真实世界中,使用的作为坐标的单位,但在像素平面上,却是使用作为单位,故还需要将上述坐标乘以转换系数(注意,前面的偏置也是使用作为单位的)。所以,最终可以得到如下的转换式:

· 齐次坐标

前面实现了从真实世界到像素平面的映射,但是由于真实世界轴的存在,该映射并不是线性的,这不便于之后的计算,故可以将之前的欧式坐标转换为齐次坐标

此外,使用齐次坐标还有诸多好处,比如可以表示出无穷远点、线,便于表示空间中的线,便于进行变换操作等等。更多好处可见为什么要用齐次坐标?

转换为矩阵表示,则为:

其中即为一个的矩阵,称作内参矩阵(即该矩阵中的参数全是相机本身的参数)

· 相机偏斜

现实中,还需要考虑相机由于工艺问题,导致的偏斜问题(即像素平面中的坐标轴的夹角不为90度),所以将像素平面坐标轴的夹角引入以后,内参矩阵即变为:

2. 相机外参

· 世界坐标系

img2

在实际建模过程中,我们不会使用相机作为真实世界的坐标原点,而是另外存在一个真实世界的坐标。故还需要将以相机为坐标原点得到的坐标与真实世界的坐标进行转换。这里的转换就不存在映射和形变了,只是简单的旋转和平移(即相机本身在真实坐标系系下,相对于坐标原点的位置和姿态)。使用矩阵表示则为:

这里的是一个的旋转矩阵,由相机关于轴旋转的度数决定;是一个的平移矩阵,由相机关于坐标原点向正方向平移的距离决定。共同组成的矩阵,称为外参矩阵。

3. 总结

完成了相机像素平面中坐标到真实世界坐标系下的坐标的转换,其完整的转换链可以表示为:

其中是一个的矩阵,称为投影矩阵。

内参矩阵):受转换系数,相机偏置,相机偏斜角五个参数影响;

外参矩阵):)分别受到关于轴旋转的角度共三个参数影响;

)受到相机在真实坐标系中的位置共三个参数影响。

· 透视投影相机

反过来,想由真实世界坐标系下的坐标转换到透视投影相机像素平面中的坐标,只需要再进行一些简单的推导,即可以得到:

· 弱透视投影相机(常用于图像识别任务)

img3

当物体距离相机比较远,且物体较小或者比较平,此时,物体上各点相对相机的距离的变化可以忽略。所以,我们可以近似的认为物体上各点都位于一个平面上。那么,这时候,真实坐标的则变成了一个定值,真实坐标到像素平面坐标的投影也就成了一个线性变换。

所以,坐标的转换公式也得到了简化,如下:

· 正交投影相机(常用于运动恢复结构和SLAM)

· Faugeras定理

根据Faugeras定理,投影矩阵具有如下性质:

为一个的矩阵,表示矩阵A的行,则

  • 是透视投影矩阵的一个充分必要条件是

  • 是零倾斜透视投影矩阵(即像素平面坐标系坐标轴相互垂直)的一个充分必要条件是

  • 是零倾斜且宽高比为1的透视投影矩阵(即转换系数相同)的一个充分必要条件是