针孔成像模型
相机模型
数码相机图像拍摄的过程实际上是一个光学成像的过程。相机的成像过程涉及到四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系以及这四个坐标系的转换。
一、理想透视模型——针孔成像模型
1.1 小孔成像模型
相机模型是光学成像模型的简化,目前有线性模型和非线性模型两种。实际的成像系统是透镜成像的非线性模型。最基本的透镜成像原理如图所示:
其中 u 为物距, f 为焦距,v 为相距。三者满足关系式:
相机的镜头是一组透镜,当平行于主光轴的光线穿过透镜时,会聚到一点上,这个点叫做焦点,焦点到透镜中心的距离叫做焦距 f。数码相机的镜头相当于一个凸透镜,感光元件就处在这个凸透镜的焦点附近,将焦距近似为凸透镜中心到感光元件的距离时就成为小孔成像模型。小孔成像模型如图所示。
小孔成像模型
二、 四大坐标系
2.1 四个坐标系介绍
小孔成像模型是相机成像采用最多的模型。在此模型下,物体的空间坐标和图像坐标之间是线性的关系,因而对相机参数的求解就归结到求解线性方程组上。四个坐标系的关系图如下图所示,其中 P为三维空间点,p为 M 在图像平面投影成的像点。注:为了简化分析,我们将成像平面放在小孔前面,并且成的像也是正立的,并没有实际的物理意义。
(习惯上坐标系的建立满足右手准则)
①世界坐标系:是客观三维世界的绝对坐标系,也称客观坐标系。因为数码相机安放在三维空间中,我们需要世界坐标系这个基准坐标系来描述数码相机的位置,并且用它来描述安放在此三维环境中的其它任何物体的位置,用(Xw, Yw, Zw)表示其坐标值。
②相机坐标系(光心坐标系):以相机的光心为坐标原点,X 轴和Y 轴分别平行于图像坐标系的 X 轴和Y 轴,相机的光轴为Z 轴,用(Xc, Yc, Zc)表示其坐标值。
③图像坐标系:以CCD(电荷藕合器件图像传感器CCD(Charge Coupled Device),它使用一种高感光度的半导体材料制成,能把光线转变成电荷) 图像平面的中心为坐标原点,X轴和Y 轴分别平行于图像平面的两条垂直边,用( x , y )表示其坐标值。图像坐标系是用物理单位(例如毫米)表示像素在图像中的位置。
④像素坐标系:以 CCD 图像平面的左上角顶点为原点,X 轴和Y 轴分别平行于图像坐标系的 X 轴和Y 轴,用(u , v )表示其坐标值。数码相机采集的图像首先是形成标准电信号的形式,然后再通过模数转换变换为数字图像。每幅图像的存储形式是M × N的数组,M 行 N 列的图像中的每一个元素的数值代表的是图像点的灰度。这样的每个元素叫像素,像素坐标系就是以像素为单位的图像坐标系。
2.2 四个坐标系之间的联系
2.2.1 世界坐标系(Xw, Yw, Zw)到相机坐标系(Xc, Yc, Zc):
物体之间的坐标系变换都可以表示坐标系的旋转变换加上平移变换,则世界坐标系到相机坐标系的转换关系也是如此。绕着不同的轴旋转不同的角度得到不同的旋转矩阵。如下:
那么世界坐标系(Xw, Yw, Zw)到相机坐标系(Xc, Yc, Zc)
2.2.2 像素坐标系(u,v)到图像坐标系(x,y)的关系
此时与前面的坐标系变换不同,此时没有旋转变换,但是坐标原点位置不一致,大小不一致,则设计伸缩变换及平移变换。
其中(u0, v0)是图像坐标系原点在像素坐标系中的坐标,dx 和 dy分别是每个像素在图像平面x和 y方向上的物理尺寸。
2.2.3 图像坐标系(x,y)与相机坐标系的转换为(Xc, Yc, Zc):
注:小孔成像是倒立的像,所以相似三角形的关系带有负号,这里我们为了简化模型实际将成像平面对称到相机前方,最终的比值关系没有符号。
综上所诉,大家可以得到四个坐标系的关系:
其中相机的内参和外参可以通过张正友标定获取。通过最终的转换关系来看,一个三维中的坐标点,的确可以在图像中找到一个对应的像素点,但是反过来,通过图像中的一个点找到它在三维中对应的点就很成了一个问题,因为我们并不知道等式左边的Zc的值。相机标定就是确定相机的内部参数和外部参数
上面的式子也等于:MXw ,其中M成为投影矩阵,是相机内参矩阵和相机外参矩阵的乘积。
其中 f 为摄像机的焦距,单位一般是mm;dx,dy 为像元尺寸;u0,v0 为图像中心。fx = f/dx, fy = f/dy,分别称为x轴和y轴上的归一化焦距.
就算大家身边没有这款相机也无所谓,可以在网上百度一下,很方便的就知道其一些参数——
焦距 f = 35mm 最高分辨率:4256×2832 传感器尺寸:36.0×23.9 mm
根据以上定义可以有:
u0= 4256/2 = 2128 v0= 2832/2 = 1416 dx = 36.0/4256 dy = 23.9/2832
fx = f/dx = 4137.8 fy = f/dy = 4147.3
二、实际成像模型
理想的透视模型是针孔成像模型,物和像会满足相似三角形的关系。但是实际上由于相机光学系统存在加工和装配的误差,透镜就并不能满足物和像成相似三角形的关系,所以相机图像平面上实际所成的像与理想成像之间会存在畸变。畸变属于成像的几何失真,是由于焦平面上不同区域对图像的放大率不同形成的画面扭曲变形的现象,这种变形的程度从画面中心至画面边缘依次递增,主要在画面边缘反映比较明显。为了减小畸变,拍摄图片时应尽量避免用镜头焦距的最广角端或最远端拍摄。实际的相机成像模型如下图所示。
其中mr(xr,yr)表示实际投影点的像平面坐标系下的物理坐标,mi(xi,yi)表示理想投影点的像平面坐标系下的物理坐标。
镜头畸变的模型可表示为:
xi=xr+σx
yi=yr+σy
σx 和σy是非线性畸变值,它包括径向畸变和偏心畸变和薄棱镜畸变等。理论上来说镜头都存在径向和切向畸变,但是通常径向畸变较大,切向畸变较小。
方便查看,我小孔成像图再复制一遍吧:
三、相机畸变
定义:相机镜头的畸变实际上是光学透镜固有的透视失真的总称。
相机畸变的分类:
1、枕形畸变:又称鞍形形变,视野中边缘区域的放大率远大于光轴中心区域的放大率,常用在远摄镜头中(下图左);
2、桶形畸变,与枕形畸变相反,视野中光轴中心区域的放大率远大于边缘区域的放大率,常出现在广角镜头和鱼眼镜头中(下图中);
3、线性畸变:光轴与相机所拍摄的诸如建筑物类的物体的垂平面不正交,则原本应该平行的远端一侧和近端一侧,以不相同的角度汇聚产生畸变。这种畸变本质上是一种透视变换,即在某一特定角度,任何镜头都会产生相似的畸变(下图右)。
相机的针孔模型,只是真实相机的一个近似,由于存在各种镜头的畸变和变形,所以真实的相机要比模型复杂的多。在引入各种非线性的畸变修正之后,就形成看复杂的非线性成像模型。镜头的畸变主要分为径向畸变、离心畸变和薄棱镜畸变三类。
镜头畸变的模型可表示为:
xi=xr+σx
yi=yr+σy
3.1 径向畸变的模型:
定义:使像点产生径向位置的偏差。径向畸变又分为正向畸变和负向畸变,正向畸变称为枕形畸变,负向畸变称为桶形畸变;
特点:由镜头的形状缺陷所造成的畸变,关于相机主光轴对称。
其中k1 k2 k3……示径向畸变系数,通常情况下径向畸变系数只考虑到一阶或二阶就可以满足精度需求了
r = (x2+y2)1/2,表示像点到相机光轴的距离,
矫正径向畸变前后的坐标关系为:
3.2 离心畸变模型:
定义:光学系统的光学中心和几何中心不一致(镜头各器件的光学中心)所造成的畸变;
特点:既包含径向畸变,又包含镜头主光轴不对称多造成的切向畸变。
数学模型:
p1,p2为切向畸变系数。
切向畸变需要两个额外的畸变参数来描述,矫正前后的坐标关系为:
3.3 薄棱镜畸变
定义:镜头设计缺陷与加工安装误差所造成;
特点:同时引起径向畸变和切向畸变,高价位镜头可以忽略薄棱镜畸变。
数学模型:
s1,s2为薄棱镜畸变系数。
综合:
其中,δx,δy表示x,y方向的畸变差,上式依次分别代表径向畸变,偏心畸变以及薄棱镜畸变。