上一篇:前言(comming soon)
关键词:相机模型,多视图几何,相机内参数,相机外参数,skew畸变
1. 针孔相机模型
针孔相机模型是一种理想化的简单相机模型,也是成像的最基本原理,在这种模型中,有一个暗室,暗室中有一个足够小的针孔,外部世界的光线通过这个针孔进入暗室盒子,光线投射到暗室盒子中的二维平面,即将一个三维的场景(Scene)映射成了一张二维的影像。
这个针孔到成像平面的距离,叫做焦距(focal length)f:
由于在上述过程中像平面中的图像和实际场景中的影像是镜像的。为了让成像的过程更加直观,我们假象一个平面,这个平面位于相机针孔前距离针孔f的距离,在这个平面上场景的成像没有被镜像,拥有和真实场景相同的方向,我们把这个假象的平面称为像平面(image plane),这个假想的平面上的成像避免了数学计算时的正负号反转,如Figure 3所示
然而,通过理论上的这个无穷小的针孔进入的光线是极其有限的,我们可以通过扩大这个“针孔”来增加进光量,但是三维世界中的不同的位置通过这样的较大的一个孔会投射到成像平面上的同一个位置造成模糊的成像。解决这个问题的一种办法是采用一个透镜在聚焦通过这个较大的孔的光线,然而即使最优秀的透镜也只能保证在三维世界中一定的距离范围的光源投射到成像平面清晰,这个成像清晰的范围被称为景深(depth of field),在这个景深范围内的三维物体的成像几何接近于上述的针孔相机模型,这里提到的“针孔”我们将其称为投影中心(center of projection)或相机中心(camera center)。这个理想的模型的投影过程,我们将其称为透视投影(perspective projection)。顺便提及一点,为了减小成像形变使成像的几何更加的接近针孔相机模型,现实中这里所述的透镜通常是一系复杂的透镜的组合,而不是一个简单的凸透镜。
2. 以相机坐标系为参考的针孔相机的成像几何
为了将三维世界的场景映射到二维影像的过程建立数学模型,我们先考虑将相机自身的坐标系作为参考来建立投影过程的数学关系,如Figure 4所示为一个以相机为中心的坐标系(camera-centered reference frame),这是一个右手坐标系,其坐标原点为之前所述的投影中心。它的Z轴为相机的主光轴——通过投影中心并且垂直于像平面的直线,在这样的坐标定义下,像平面的表达式为
在上述过程中,我们所采用的像平面坐标都是基于公制单位(metric unit)的(即以米为单位),坐标
在计算机视觉的大多数约定中,像素的位置可以通过像素在像平面上所处的行列来索引,并且将影像的左上角规定为坐标系的原点,这里所说的用来索引像素位置的行列的数字被称为图像的像素坐标(pixel coordinates),我们将其表示为
- 像素被赋予的
坐标数值递增的顺序与数码相机内部的传感器的像素的读取(read out)顺序一致:从图像的左上角开始,逐行的读取;
- 相机坐标系通常采用的右手坐标系,这样的坐标规定意味着相机坐标系的Z轴由相机的位置指所摄三维场景,在这样的坐标定义下,场景中的点的Z坐标即为该点相对于相机的深度(depth),这个深度即是三维重建中很多过程中试图求解的未知数;
由于我们无法用无限的精度来表示像平面上的坐标,我们在影像处理及三维重建的过程中并不关心某一像点的公制坐标
在上述两种定义在像平面的坐标系中,坐标轴
接下来要将上述公制的坐标转换为像素坐标值需要将其除以一个像素的公制的长宽,我们用
等价的,
其中,
然而在现实中,由于以下一些原因数值上会有一些不同:
- 相机传感器的制造缺陷;
- 影像在后期处理中经过了非等比缩放;
- 相机镜头引入了非预期的畸变;
- 相机采用了某种带有长宽比变形的格式,在这种格式中镜头将一个宽场景压缩到了标准的画幅;
- 相机标定中产生的误差;
以上各个因素均导致最终的像素变形为非标准正方形。
采用来个不同方向的焦距值来表示相机的焦距并不是很直观,因为他无法与一个物理的焦距的概念对应起来(物理焦距只有一个,无法分为水平和竖直两个方向),一些教科书中采用一个焦距值
3. 相机坐标系下投影的矩阵表达
如果我么借助齐次坐标系,我们可以将上述公式(2-1)更加优雅的表达为矩阵的形式,齐次坐标系可以简单的理解为在原始的坐标下添加一个维度并将其值为数值1,同时我们将其坐标采用列向量来表示,这样原来像点m的坐标
通过上述矩阵可以得到,如果我们将像点的齐次坐标
表示了从一个三维世界中的物理量测单位(m,cm或mm)是如何映射到以像素为单位的数字影像上的。这个矩阵被称为相机矩阵(calibration matrix),也称为相机内参矩阵(camera instrinsic),其更加通用的表达是一个上三角矩阵:
其中的参数
为更加直观的理解相机内参矩阵可以将其拆分为几个连续的2D变换:
同样,为了更加直观的理解
有了上述基础,我们可以更加简单的矩阵形式将投影关系表示为:
其中
4. 基于任意坐标系为参考的成像几何
当我们的场景中有多余一个相机或者我们的场景需要表示在某一指定的全局唯一的世界坐标系(world frame)下时,相机的位置和姿态将有一个相机中心
世界坐标系中的一个三维点M要转换到相机坐标系下去,我们只需要将表示两个坐标系之间的相对平移的向量
其中,
一些教科书中也会将场景中的点M也采用齐次坐标来表示,即
令
5. 非线性畸变
截至目前为止,上述所讨论的所有成像几何中都认为相机中心
像点
于是考虑畸变的像平面坐标变为:
最总终的像素坐标为:
我们这里将相机的畸变置于相机的外参数与内参数之间,也可以将畸变参数应用在像素坐标系的坐标之上。实际中相机畸变的建模通常还会有非径向的非对称的切向畸变,Brown-Conrady镜头畸变模型是一种常用的畸变模型,关于相机畸变更多的内容可以参考Distortion。如果镜头的畸变参数已知我们可以计算出影像上各个像素畸变前的位置,这个过程叫做畸变矫正(undistort),畸变校矫正后的影像可以近似的认为其满足相机中心、三维空间中的点极其成像三点共线。后续我们的介绍中均认为影像已经经过了畸变矫正。
下一篇: 三维重建(comming soon)