针孔摄像机模型。针孔是一堵想象中的墙(中心有一个微型小孔)。光线只能从这个开口中通过,而其余的都被墙所阻挡。下面我们将从一个针孔摄像机模型开始,处理基本几何中的投影射线。遗憾的是,真实的针孔由于不能快速曝光收集足够的光线,因此他不是一个得到图像的好方法。这也是为什么眼睛和摄像机都要使用透镜而不是仅仅只用一个点来收集更多光线的原因。然而,这种利用透镜得到更多光线的缺点是,不仅使我们背离了所使用的简单针孔几何模型,而且引入来自透镜的畸变。
本文将学习如何利用摄像机标定,来矫正(数学方式)因使用透镜而给针孔模型带来的主要偏差。摄像机标定的重要性还在于它是摄像机测量与真实三维世界测量的联系桥梁,场景不仅仅是三维的,也是用物理单位度量的空间。因此,摄像机的自然单位(像素)和物理世界的单位(米)的关系对三维场景的重构至关重要。
摄像机标定的过程即给出摄像机的几何模型,也给出透镜的畸变模型。这两个模型定义了摄像机的内参数(intrinsic parameter)。下面应用这些模型来校正透镜畸变。下一篇将用这些模型来阐述物理场景。
1.1摄像机模型
摄像机中最简单的针孔模型。f是摄像机的焦距,Z是摄像机到物体的距离,X是物体的长度,x是图像平面上的物体图像,可以得到
-x/f=X/Z
重新把针孔摄像机模型整理为另外一种等价形式,使得其数学形式更简单一些。我们交换上图中的针孔和图像平面。此时,针孔中的点被理解为投影中心。这样,每一条光线,从远处物体的某个点出发,到达投影平面的中心。光轴与图像平面的交点被称为主点。如图所示:
此新图像平面上远处物体的图像与图11-1中图像的大小完全一致。光束与图像平面的相交生成图像,而平面到投影中心的距离是f。这样得出公式x/f=X/Z。负号被去掉了,因为目标图像不再是倒立的。
主点并不是成像仪的中心,实际上,芯片的中心通常不在光轴上。我们因此引入两个新的参数Cx和Cy。对可能的偏移(对光轴而言)进行建模。这样物理世界中的点Q,其坐标为(X,Y,Z)
基本投影几何
将坐标为(Xi,Yi,Zi)的物理点Qi映射到投影平面上坐标为(xi,yi)的点的过程叫投影 变换,采用这种变换,可以方便地使用我们所熟知的齐次坐标。齐次坐标把维数为n投影空间上的点用(n+1)维向量(如x,y,z变为x,y,z,w)表示,其额外限制是任何两点的交比不变。在这里,图像平面是一个二维投影空间,因此可以用一个三维向量q=(q1,q2,q3)来表示该平面上的点。因为投影空间上所有点的交比不变,因此可以通过除以q3计算实际的像素坐标值。这样允许我们将定义摄像机的参数(如fx,fy,Cx和Cy)重新排列为一个3*3的矩阵,该矩阵称为摄像机的内参数矩阵。
那么将物理世界中的点投影 到摄像机上,就可以用下式表示:
透镜畸变的由来:采用理想针孔,我们有了一个对视觉中的三维几何有用的模型。但是,由于只有少量的光线通过针孔,这导致实际情况下因曝光不足使得图像生成的很慢。对要快速生成图像的摄像机而言,必须利用大面积且弯曲的透镜,让足够多的光线能够收敛聚焦到投影点上。为了实现该目的,我们用透镜。透镜可以聚焦足够多的光线到某个点,使得图像的生成速度更加迅速。其代价就是引入了畸变。
2.透镜畸变
下面介绍两种主要的透镜畸变并为他们建模。径向畸变来自于透镜形状,而切向畸变则来自于整个摄像机的组装过程。
2.1径向畸变,实际摄像机的透镜总是在成像仪的边缘产生显著的畸变,这个头痛现象来源于"桶形"和"鱼眼"影响。
对径向畸变,成像仪中心(光学中心)的畸变为0,随着向边缘移动,畸变越来越严重,实际情况中这种畸变比较小,而且可以用r=0位置周围的泰勒级数展开的前几项来定量描述。对便宜的网络摄像机,我们通常使用前两项,其中第一项通常为k1,而第二项为k2,对畸变很大的摄像机,比如鱼眼透镜,我们可以使用第三径向畸变项k3.通常,成像仪某点的径向位置按照下式进行调节。
2.12 第二大常用畸变是切向畸变。这种畸变是由于透镜制造上的缺陷使得透镜本身与图像平面不平行而产生的。
切向畸变可以用两个额外的参数p1和p2来描述,如下
标定
标定方法是把摄像机对准一个有多个独立可标识点的物体,通过在不同角度观察这个物体,可以利用通过每个图像计算摄像机的相对位置和方向以及摄像机的内参数。为了提供不同视角,我们旋转和移动物体。下面是一些旋转和平移的知识点
旋转矩阵和平移向量
对每一幅摄像机得到的特定物体的图像,我们可以在摄像机坐标系统上用旋转和平移来描述物体的相对位置。
通常,任何维的旋转可以表述为坐标向量与合适尺寸的方阵的乘积。最终一个旋转等价于在另一个不同坐标系下对点位置的重新表述。坐标系旋转角度α则等同于将目标点围绕坐标原点反方向旋转同样的角度α,下图显示用矩阵乘法对二维旋转的描述
在三维空间中,旋转可以分解为绕各自坐标轴的二维旋转,其中旋转轴线的度量保持不变
因此 R=Rx,Ry,Rz 旋转矩阵R的特性是它的逆阵就是它的转置,平移向量用来表示怎样将一个坐标系的原点移动到另一个坐标系的原点,或者说平移向量是第一个坐标系原点与第二个坐标系原点的偏移量。因此,从以目标中心为原点的坐标系移动到以摄像机中心为原点的另一个坐标系,相应的平移向量为T=目标原点-摄像机原点。