相机成像模型分析
点击下方卡片,关注“新机器视觉”公众号
重磅干货,第一时间送达
相机对于机器人来说就相当于人的眼睛,景物在相机中呈现的样子就是机器看到的世界的样子。当我们理解了相机的成像原理,才能理解图像中的景物与实际世界中景物的对应关系。
相机成像模型
相机模型是光学成像模型的简化,目前有线性模型和非线性模型两种。实际的成像系统是透镜成像的非线性模型。最基本的透镜成像原理如图所示:
其中 u 为物距, f 为焦距,v 为相距。根据透镜成像原理,三者满足关系式:
相机的镜头是一组透镜,当平行于主光轴的光线穿过透镜时,会聚到一点上,这个点叫做焦点,焦点到透镜中心的距离叫做焦距 f。数字相机的镜头相当于一个凸透镜,感光元件就处在这个凸透镜的焦点附近,将焦距近似为凸透镜中心到感光元件的距离时就成为小孔成像模型。小孔成像模型如图所示:
基于上图,当s和f相等的时候,便是相机的成像模型。小孔成像模型是相机成像采用最多的模型。在此模型下,物体的空间坐标和图像坐标之间是线性的关系,因而对相机参数的求解就归结到求解线性方程组上。
这里为了计算方便,保持方向的一致性,我们往往将图像以光心为坐标原点,进行中心对称旋转,也就是将图像映射到光心和物体的中间,而物体在图像中的映射点,正好为物体与光心的连线和图像平面的交点。
四个常用坐标系
无论求解线性方程组还是非线性方程组,重要的是用方程描绘出物理模型。那么就需要选取参考坐标系,而在机器视觉中最常用的参考坐标系有四个:世界坐标系、相机坐标系、图像坐标系、和像素坐标系。
为了清楚的说明各种坐标系之间的联系,我们首先看下面一个图片,图片中包括了世界坐标系、相机坐标系和图像坐标系的关系。接下来小白为大家详细介绍一下每个坐标系的用处。
世界坐标系:是客观三维世界的绝对坐标系,也称客观坐标系。因为数码相机安放在三维空间中,我们需要世界坐标系这个基准坐标系来描述相机的位置,并且用它来描述在此三维环境中的其它任何物体的位置,用(Xw, Yw, Zw)表示其坐标值。
图像坐标系:以CCD 图像平面的中心为坐标原点,X轴和Y 轴分别平行于图像平面的两条垂直边,用( x , y )表示其坐标值。图像坐标系是用物理单位(例如毫米)表示像素在图像中的位置。
相机坐标系(光心坐标系):以相机的光心为坐标原点,X 轴和Y 轴分别平行于图像坐标系的 X 轴和Y 轴,相机的光轴为Z 轴,用(Xc, Yc, Zc)表示其坐标值。
像素坐标系:以 CCD 图像平面的左上角顶点为原点,X 轴和Y 轴分别平行于图像坐标系的 X 轴和Y 轴,用(u , v )表示其坐标值。数字相机采集的图像首先是形成标准电信号的形式,然后再通过模数转换变换为数字图像。每幅图像的存储形式是M × N的数组,M 行 N 列的图像中的每一个元素的数值代表的是图像点的灰度。这样的每个元素叫像素,像素坐标系就是以像素为单位的图像坐标系。
由于图像坐标系和像素坐标系联系比较紧密,可能有很多小伙伴也容易弄错,这里在给出两个坐标系的关系图。
通过上图我们可以看出来,两个坐标的原点有一定的偏差,往往就是图像的长宽的一半。
相机内参与外参
在介绍完坐标系后,我们需要来描述相机成像的数学过程。根据像素坐标系和图像坐标系的定义,我们可以得到如下关系:
采用齐次坐标再用矩阵形式将上式表示为:
其中(u0, v0)是图像坐标系原点在像素坐标系中的坐标,dx 和 dy分别是每个像素在图像平面x和 y方向上的物理尺寸。
图像坐标系与相机坐标系的转换为:
其中 f 为焦距(像平面与相机坐标系原点的距离)。用齐次坐标系和矩阵表示上述关系:
相机坐标系与世界坐标系的变换为:
其中 R 为3 × 3正交旋转矩阵,t 为三维平移向量。
我们将上述所有的变换关系整合起来可以得到:
其中:
上面等式中ax, ay分别是图像水平轴和垂直轴的尺度因子。K的参数中只包含焦距、主点坐标等只由相机的内部结构决定,因此称 K 为内部参数矩阵,ax, ay , u0, v0叫做内部参数。Mt中包含的旋转矩阵和平移向量是由相机坐标系相对于世界坐标系的位置决定的,因此称Mt为相机的外部参数矩阵,R和t叫做外部参数,KMt叫投影矩阵。相机标定就是确定相机的内部参数和外部参数。
相机畸变模型
上面推导了相机投影成像的数学模型,但是上面是在理想状况下推导的,实际上由于相机光学系统存在加工和装配的误差,透镜就并不能满足物和像成相似三角形的关系,所以相机图像平面上实际所成的像与理想成像之间会存在畸变。畸变属于成像的几何失真,是由于焦平面上不同区域对图像的放大率不同形成的画面扭曲变形的现象,这种变形的程度从画面中心至画面边缘依次递增,主要在画面边缘反映比较明显。为了减小畸变,拍摄图片时应尽量避免用镜头焦距的最广角端或最远端拍摄。实际的相机成像模型如下图所示:
其中 mr(xr,yr)表示实际投影点的像平面坐标系下的物理坐标,mi(xi,yi)表示理想投影点的像平面坐标系下的物理坐标。
对于相机的畸变,可以包括径向畸变和偏心畸变和薄棱镜畸变等。
理论上来说镜头都存在径向和切向畸变,但是通常径向畸变较大,切向畸变较小。
偏心畸变模型是由于多个光学镜头的光轴不能完全共线产生的,这种畸变是由径向和切向畸变共同构成的。
薄棱镜畸变是由于镜头设计制造缺陷和加工安装所造成的,如镜头与相机成像平面有一个很小的倾角等。因为薄棱镜畸变非常小,通常不考虑。
相机的畸变可以由非线性模型来表示,由于公式比较复杂,而且多数应用只在相机的标定中使用,因此这里小白只给出最后化简后的畸变模型:
其中k和p都是畸变系数,可以在标定的过程中求出该系数矫正相机模型。
总结
如果你只是想简单了解一下相机的原理,不需要知道其数学公式,那么只需要知道小孔成像原理就可以啦~对于相机各种参数,小白觉得可以用一种更容易理解的方式来解读。
内参数矩阵:告诉你上述那个点在1的基础上,是如何继续经过摄像机的镜头、并通过针孔成像和电子转化而成为像素点的。
外参数矩阵:告诉你现实世界点(世界坐标)是怎样经过旋转和平移,然后落到另一个现实世界点(摄像机坐标)上。
畸变矩阵:告诉你为什么上面那个像素点并没有落在理论计算该落在的位置上,还产生了一定的偏移和变形
本文仅做学术分享,如有侵权,请联系删文。