前言
亲爱的小伙伴们,本节将要分享的是双目视觉中涉及的相机成像几何,坐标系和相机参数等概念。
一、小孔成像
相信大家中学时期都在物理课程中了解过一个概念:小孔成像。用一个带有小孔的不透光板放在投影板和蜡烛之间,投影板上就会出现蜡烛倒立的实像,物理老师告诉我们这样的现象叫小孔成像,这样的成像模型被称为针孔模型(Pinhole mode)。而且,前后移动中间的板,投影板上成像的大小也会随之发生变化,这种现象说明了光沿直线传播的性质。物理世界中的一点、其在投影板上投影点、小孔中心三点共线,这种特征是成像分析的基础,被称为中心投影或者透视投影。
相机成像模型其实就是针孔模型的扩展,针孔模型由于通过小孔的光线量不足,所以投影板上的成像较为模糊。聪明的发明家为了解决这个问题,在相机中使用了凸透镜汇聚足够的光线在感光芯片上。这也就是我们生活中相机的构造原理。过程如图所示:
针孔模型成像以针孔为相机中心,倒影为成像平面。 感光芯片到透镜中心之间的距离为焦距F。为了方便观看和分析,可以将成像平面放到相机前方,构成一个虚拟成像面,也保持其与透镜中心的距离为焦距F,这样等效像平面上图像不再倒立,如下图所示:
二、坐标系介绍
相机成像设计到的几个非常重要的坐标系,分别是:世界坐标系,相机坐标系,图像物理坐标系,图像像素坐标系。我们设三维世界空间中的一点P的世界坐标系为Xw,对应的相机坐标系坐标为Xc,对应的图像物体坐标系的坐标为(x,y)T,对应的图像像素坐标系的坐标为(u,v)T。
1.世界坐标系
世界坐标系是一个三维直角坐标系。有了世界坐标系,以其为基准,可以确定目标物体在三维空间中的数学表达式。世界坐标系的位置可以根据实际情况自由确定。我们设三维世界空间中的一点P的世界坐标系为Xw=(xw,yw,zw)T 。
2.相机坐标系
相机坐标系的坐标原点为相机的光心位置,X 轴和Y 轴分别平行于图像坐标系的X轴和 Y 轴,Z 轴为相机的光轴。世界坐标系中的P点在相机坐标系中用Xc=(xc,yc,zc)T 表示。
3.图像物理坐标系
坐标原点为CCD 图像平面的中心,X轴和Y 轴分别平行于图像平面的两条垂直边。图像物理坐标系中的点,用(x,y)T表示。图像物理坐标系是用物理单位(例如毫米)表示像素在图像中的位置。
4.图像像素坐标系
相机机采集图像后以标准电视信号的形式输入计算机,在计算机中以M × N矩阵(M 行 N 列的图像中的每一个元素的数值被称为图像点的灰度)保存。在图像上定义图像像素坐标系(Ot, u, v),每一个像素的坐标(u,v)分别表示该像素在数组中的列数与行数。坐标原点为图像平面的左上角顶点,X 轴和Y 轴分别平行于图像物理坐标系的 X 轴和Y 轴。图像像素坐标系中的点,用(u,v)T表示。像素坐标系就是以像素为单位的图像坐标系。
三、坐标系相互转换
1.世界坐标系到相机坐标系
由于世界坐标系和相机坐标系都是三维坐标系,所以他们之间的变换为刚体变换,即可以通过旋转和平移得到。坐标系之间的转换如下图所示:
世界坐标系到相机坐标系的变换公式为: 相反,相机坐标系到世界坐标系的变换公式为: 相机中心在世界坐标系中的位置为(这个很重要):
2.相机坐标系到图像物理坐标系
如下图所示,相机坐标系下的点P通过透视投影,在图像物理坐标系上成像为p(x,y)。 根据相似三角形原理可以得到: 上式可以表示为矩阵形式,其中f为相机焦距,r是x轴和y轴的不垂直因子,也称物理坐标的扭曲因子,在现在的相机中一般r为0,通常在相机标定中忽略不计:
归一化像平面为一个虚拟的平面,与CCD成像平面平行,且距离相机光心距离为1。相机坐标系到归一化像平面坐标系之间变换如下图所示: 下图可以更可观的描述相机坐标系和归一化像平面坐标系之间的变换关系: 变换公式为:
3.图像物理坐标系到图像像素坐标系
若O2在u,v坐标系中的坐标为(u0,v0,每一个像素在x轴与y轴方向上的物理尺寸为dx,dy,则图像中任意一个像素在两个坐标系下的坐标有如下关系: 上式可以表示为矩阵形式:
4.世界坐标系到图像像素坐标系
掌握了以上各个坐标系的转换关系,也就理解了相机透视投影的概念。下面我们可以把几个坐标系穿起来,得到世界坐标系表示的Pw点坐标与其投影点p的坐标(u,v)的对应关系:
最终可以用下式表示:
其中,ax、ay(ax 和 ay 被称为等效焦距,有时候也用Fx 和 Fy表示)、r、u0、v0为相机内参,R和t为相机外参。相机的内参和外参就是相机标定要计算的结果,相机标定将在后面小结进行详细的介绍。
三、镜头畸变
上述的相机模型为理想条件下的相机成像模型,而实际的成像过程往往存在偏差,即畸变。由于相机物镜系统设计、制作、装配等因素所引起的,像点偏离其理想位置点的误差称为光学畸变,如下图所示: 相机的针孔模型,只是真实相机的一个近似,由于存在各种镜头的畸变和变形,所以真实的相机要比模型复杂的多。在引入各种非线性的畸变修正之后,就形成看复杂的非线性成像模型。镜头的畸变主要分为径向畸变、离心畸变和薄棱镜畸变三类。
.1 径向畸变
定义:径向畸变像点沿径向方向偏离标准理想位置。径向畸变又分正向畸变和负向畸变,正向畸变称为枕形畸变,负向畸变称为桶形畸变; 特点:由镜头的形状缺陷所造成的畸变,关于相机主光轴对称。 光学镜头径向曲率的变化是引起径向畸变的主要原因,这种变形会使得图像点沿径向移动,离中心点越远其变形的位移量越大。
对于图像的径向畸变,通常采用多项式拟合算法,假设图像中的像素点理想的坐标为(Xd,Yd),畸变后坐标为(Xr,Yr),则: 由于径向畸变只跟像素点离图像中心的距离有关,因此在直角坐标系中有: 将该式带入上式得:
.2 离心畸变
定义:光学系统的光学中心和几何中心不一致(镜头各器件的光学中心)所造成的畸变; 特点:既包含径向畸变,又包含镜头主光轴不对称多造成的切向畸变。
由于镜头装配误差,组成光学系统的多个光学镜头的光轴不可能完全共线,从而引起离心畸变,这种畸变是由径向变形分量和切向变形分量共同构成,其数学模型为:
.3 薄棱镜畸变
定义:镜头设计缺陷与加工安装误差所造成; 特点:同时引起径向畸变和切向畸变,高价位镜头可以忽略薄棱镜畸变。
薄棱镜畸变是指由光学镜头制造误差和成像敏感阵列制造误差引起的图像变形,这种变形是由径向变形分量和切向变形分量共同构成,其数学模型为:
总结
这个小结呢,主要说的是相机成像的数学模型,很重要,这是双目视觉的基础。一定要掌握,本身其实不难,自己画画图,很容易理解。有不懂得随时欢迎评论区沟通。
对了,小伙伴们,下一节就是带点实践的内容了,也就是文中提到的相机标定,到时候会提供代码和数据供大家学习。
|