计算机视觉---相机几何模型

相机模型

数码相机图像拍摄的过程实际上是一个光学成像的过程。相机的成像过程涉及到四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系以及这四个坐标系的转换。

理想透视模型——针孔成像模型

相机模型是光学成像模型的简化,目前有线性模型和非线性模型两种。实际的成像系统是透镜成像的非线性模型。最基本的透镜成像原理如图所示:

计算机视觉---相机几何模型

其中 u 为物距, f 为焦距,v 为相距。三者满足关系式:

计算机视觉---相机几何模型

相机的镜头是一组透镜,当平行于主光轴的光线穿过透镜时,会聚到一点上,这个点叫做焦点,焦点到透镜中心的距离叫做焦距 f。数码相机的镜头相当于一个凸透镜,感光元件就处在这个凸透镜的焦点附近,将焦距近似为凸透镜中心到感光元件的距离时就成为小孔成像模型。小孔成像模型如图所示。

计算机视觉---相机几何模型

小孔成像模型是相机成像采用最多的模型。在此模型下,物体的空间坐标和图像坐标之间是线性的关系,因而对相机参数的求解就归结到求解线性方程组上。四个坐标系的关系图如下图所示,其中 M 为三维空间点,m 为 M 在图像平面投影成的像点。

计算机视觉---相机几何模型

世界坐标系:是客观三维世界的绝对坐标系,也称客观坐标系。因为数码相机安放在三维空间中,我们需要世界坐标系这个基准坐标系来描述数码相机的位置,并且用它来描述安放在此三维环境中的其它任何物体的位置,用(Xw, Yw, Zw)表示其坐标值。

相机坐标系(光心坐标系):以相机的光心为坐标原点,X 轴和Y 轴分别平行于图像坐标系的 X 轴和Y 轴,相机的光轴为Z 轴,用(Xc, Yc, Zc)表示其坐标值。

图像坐标系:以CCD 图像平面的中心为坐标原点,X轴和Y 轴分别平行于图像平面的两条垂直边,用( x , y )表示其坐标值。图像坐标系是用物理单位(例如毫米)表示像素在图像中的位置。

像素坐标系:以 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叫做内部参数。M1中包含的旋转矩阵和平移向量是由相机坐标系相对于世界坐标系的位置决定的,因此称M1为相机的外部参数矩阵,R和t叫做外部参数,M 叫投影矩阵相机标定就是确定相机的内部参数和外部参数。

实际成像模型

理想的透视模型是针孔成像模型,物和像会满足相似三角形的关系。但是实际上由于相机光学系统存在加工和装配的误差,透镜就并不能满足物和像成相似三角形的关系,所以相机图像平面上实际所成的像与理想成像之间会存在畸变。畸变属于成像的几何失真,是由于焦平面上不同区域对图像的放大率不同形成的画面扭曲变形的现象,这种变形的程度从画面中心至画面边缘依次递增,主要在画面边缘反映比较明显。为了减小畸变,拍摄图片时应尽量避免用镜头焦距的最广角端或最远端拍摄。实际的相机成像模型如下图所示。

计算机视觉---相机几何模型

其中 mr(xr,yr)表示实际投影点的像平面坐标系下的物理坐标,mi(xi,yi)表示理想投影点的像平面坐标系下的物理坐标。镜头的畸变模型可表示为:

计算机视觉---相机几何模型

σx 和σy是非线性畸变值,它包括径向畸变和偏心畸变和薄棱镜畸变等。

理论上来说镜头都存在径向和切向畸变,但是通常径向畸变较大,切向畸变较小。径向畸变的模型可由下面的模型来表示:

计算机视觉---相机几何模型

其中k1 k2 k3……示径向畸变系数,计算机视觉---相机几何模型通常情况下径向畸变系数只考虑到一阶或二阶就可以满足精度需求了。

偏心畸变模型是由于多个光学镜头的光轴不能完全共线产生的,这种畸变是由径向和切向畸变共同构成的,数学模型可表示如下:

计算机视觉---相机几何模型

其中p1, p2为切向畸变系数。薄棱镜畸变是由于镜头设计制造缺陷和加工安装所造成的,如镜头与相机成像平面有一个很小的倾角等。因为薄棱镜畸变非常小,通常不考虑,这里只考虑径向畸变和偏心畸变,畸变总的可以表示为:

计算机视觉---相机几何模型计算机视觉---相机几何模型计算机视觉---相机几何模型

实际的成像模型为:

计算机视觉---相机几何模型

  摄像机通过成像透镜将三维场景投影到摄像机二维像平面上,这个投影可用成像变换描述,即摄像机成像模型。摄像机成像模型有不同描述方式,本节首先介绍机器视觉中的常用坐标系,然后介绍摄像机的线性模型和非线性模型。

  1. 图像坐标系、摄像机坐标系和世界坐标系
  2. 针孔成像模型
  3. 非线性模型

1,图像坐标系、摄像机坐标系和世界坐标系

     摄像机采集的图像在计算机内为MxN数组,M行N列的图像中的每一个像素的数值即是图像点的亮度。如下图所示,在图像上定义直角坐标系u、v,每一像素的坐标(u,v)(u,v)分别是该像素在数组中的列数与行数。所以,(u,v)(u,v)是以像素为单位的图像坐标系

计算机视觉---相机几何模型

由于(u,v)(u,v)只表示像素位于数组中的列数与行数,并没有用物理单位表示出该像素在图像中的位置。因此需要再建立以物理单位(如毫米)表示的图像坐标系。该坐标系以图像内某一点O1O1为原点,X轴和Y轴分别与u、v轴平行,如上图所示。其中(u,v)(u,v)表示以像素为单位的图像坐标系的坐标,(X,Y)(X,Y)表示以毫米为单位的图像坐标系的坐标。在X、Y坐标系中,原点O1O1定义在摄像机光轴与图像平面的交点,该点一般位于图像中心处,但由于某些原因,也会有些偏离,若O1O1在u、v坐标系中坐标为(u0,v0)(u0,v0),每一个像素在X轴与Y轴方向上的物理尺寸为dX、dY,则图像中的任意一个像素在两个坐标系下的坐标有如下关系:

{u=XdX+u0v=YdY+v0{u=XdX+u0v=YdY+v0

为以后使用方便,用齐次坐标与矩阵形式将上式表示为

uv1=1dX 0 u00 1dY v00 0 1XY1[uv1]=[1dX 0 u00 1dY v00 0 1][XY1]

     摄像机成像几何关系可下图表示,其中O点成为摄像机光心,x轴和y轴与图像的X轴和Y轴平行,z轴为摄像机光轴,它与图像平面垂直。光轴与图像平面的交点即为图像坐标系的原点,由点O与x、y、z轴组成的直角坐标系称为摄像机坐标系OO1OO1为摄像机焦距。

计算机视觉---相机几何模型

 

     由于摄像机可安放在环境中的任意位置,在环境中选择一个基准坐标系来描述摄像机的位置,并用它描述环境中任何物体的位置,该坐标系称为世界坐标系。它由XwXwYwYwZwZw轴组成。摄像机坐标系与世界坐标系之间的关系可以用旋转矩阵R和平移向量t来描述。因此,空间中某一点P在世界坐标系与摄像机坐标系的齐次坐标如果分别是Xw=(Xw,Yw,Zw,1)TXw=(Xw,Yw,Zw,1)Tx=(x,y,z,1)Tx=(x,y,z,1)T,则存在如下关系:

xyz1=[R t0T 1]XwYwZw1=M2XwYwZw1[xyz1]=[R t0T 1][XwYwZw1]=M2[XwYwZw1]

其中,RR3×33×3正交单位矩阵;tt为三维平移向量;0=(0,0,0)T0=(0,0,0)TM2M24×44×4矩阵

2,针孔成像模型

    针孔成像模型又称为线性摄像机模型。空间任何一点P在图像中的成像位置可以用针孔成像模型近似表示,即任何点P在图像中的投影位置p,为光心O与P点的连线OP与图像平面的交点。这种关系也称为中心射影或透视投影(perspective projection)。由比例关系有如下关系式:

{X=fxzY=fyz{X=fxzY=fyz

其中,(X,Y)(X,Y)为p点的图像坐标;(x,y,z)(x,y,z)为空间点P在摄像机坐标系下的坐标,ffxyxy平面与图像平面的距离,一般称为摄像机的焦距。用齐次坐标和矩阵表示上述透视投影关系

sXY1=f 0 0 00 f 0 00 0 1 0xyz1=Pxyz1s[XY1]=[f 0 0 00 f 0 00 0 1 0][xyz1]=P[xyz1]

其中,s为一比例因子,P为透视投影矩阵。将第一节中的矩阵公式代入上式,得到以世界坐标系表示的P点坐标与其投影点p的坐标(u,v)(u,v)的关系

suv1=1dX 0 u00 1dY v00 0 1f 0 0 00 f 0 00 0 1 0[R t0T 1]XwYwZw1=ax 0 u0 00 ay v0 00 0 1 0[R t0T 1]XwYwZw1=M1M2Xw=MXws[uv1]=[1dX 0 u00 1dY v00 0 1][f 0 0 00 f 0 00 0 1 0][R t0T 1][XwYwZw1]=[ax 0 u0 00 ay v0 00 0 1 0][R t0T 1][XwYwZw1]=M1M2Xw=MXw

其中,ax=f/dXax=f/dX为u轴上尺度因子,或称为u轴上归一化焦距;ay=f/dYay=f/dY为v轴上的尺度因子,或成为v轴上归一化焦距;MM3×33×3矩阵,成为投影矩阵;M1M1axaxayayu0u0v0v0决定,由于这四个参数只与摄像机内部参数有关,称这些参数为摄像机内部参数M2M2由摄像机相对于世界坐标系的方位决定,称为摄像机外部参数。确定某一摄像机的内外参数,称为摄像机标定

    由上式可知,如果已知某空间点P的图像点p的位置(u,v)(u,v),即使已知摄像机的内外参数,XwXw也是不确定的。事实上,由于MM3×43×4不可逆矩阵,当已知MM(u,v)(u,v)时,消去z只可得到关于XwXwYwYwZwZw的两个线性方程,由着两个线性方程组成的方程组即为射线OP的方程,也就是说,投影点为p的所有点均在该射线上。当已知图像点p时,由针孔成像模型,任何位于射线OP上的空间点的图像都是p点。因此,该空间点是不能唯一确定的。

3,非线性模型

     实际上,由于实际的镜头并不是理想的透视成像,而是带有不同程度的畸变,使得空间点所成的像并不在线性模型所描述的位置(X, Y),而是在受到镜头失真影响而偏移的实际像平面坐标(X', Y')

{X=X+δxY=Y+δy{X=X′+δxY=Y′+δy

其中,δxδxδyδy是非线性畸变值,它与图像点再图像中的位置有关。理论上镜头会同时存在径向畸变和切向畸变。但一般来讲切向畸变比较小,径向畸变的修正量由距图像中心的径向距离的偶次幂多项式模型来表示

{δx=(Xu0)(k1r2+k2r4+δy=(Yv0)(k1r2+k2r4+{δx=(X′−u0)(k1r2+k2r4+⋯δy=(Y′−v0)(k1r2+k2r4+⋯

其中,u0,v0u0,v0是主点位置坐标的精确值,而

r2=(Xu0)2+(Yv0)2r2=(X′−u0)2+(Y′−v0)2

表明X方向和Y方向的畸变相对值δx/X,δy/Yδx/X,δy/Y与径向半径的平方成正比,即在图像边缘处的畸变较大。对一般机器视觉,一阶径向畸变已足够描述非线性畸变,即省略上式中大于等于4的高次项。

     线性模型参数αxαxαyαyu0u0v0v0与非线性畸变参数k1k1k2k2一起构成了摄像机非线性模型的内部参数。


part1:

4个坐标系

      1、世界坐标系(Xw、Yw、Zw)

      2、相机坐标系(Xc、Yc、Zc)

      3、像平面坐标系(X、Y)

      4、像素平面坐标系(u、v)

3个坐标变换关系:

      1、世界坐标系(Xw、Yw、Zw)->相机坐标系(Xc、Yc、Zc)

      2、相机坐标系(Xc、Yc、Zc)->像平面坐标系(X、Y)

      3、像平面坐标系(X、Y)->像素平面坐标系(u、v)

 

 part2:

 以下的内容是对上述的7个概念做详细说明:

4个坐标系

世界坐标系:即自然坐标系

相机坐标系:以相机的的光心为原点,Z轴指向相机前方,x向右,y向下

像平面坐标系:物理成像平面,在距相机光心一倍焦距的平面上(凸透镜成像实验的蜡烛成大小相等倒立的平面)

像素平面坐标系:在距相机光心一个焦距的平面上,原点位于图像的左上角,u轴向右与x轴平行,v轴向下与y轴平行(在凸透镜成像实验的蜡烛成大小相等倒立的距离上放一个屏,相机中的这个位置是一个感光元件)

 计算机视觉---相机几何模型

3个坐标变换关系

(Xw、Yw、Zw)->(Xc、Yc、Zc):世界坐标系向相机坐标系转换

这俩个坐标系之间的关系我们可以通过旋转矩阵R和平移矩阵t来得到:

计算机视觉---相机几何模型

(Xc、Yc、Zc)->(X、Y):相机坐标系向像平面坐标系转换

计算机视觉---相机几何模型

 

由以上的介绍,如上图所示,我们知道相机坐标为X-Y-Z,像平面坐标为x-y,由相似三角形关系可知,其中P(Xc,Yc,Zc),p(x,y)

计算机视觉---相机几何模型

(X、Y)->(u、v):成像平面向像素平面的转换

 在相机中,我们很多时候讨论的是基于像素角度的坐标,因为像平面是光学角度,是光在这个平面上的一个成像是个模拟量,所以成像平面需要在成像平面上对像进行采样和量化,这样我们才使得物体的像在像素上的值。像素平面与成像平面之间,相差一个缩放和原点的平移。如下式所示,在u轴上放大了α倍,在v轴上放大β倍,原点平移cx,cy

计算机视觉---相机几何模型

好了,到此为止我们已经介绍完了。

part3:

但是,我们还是继续把相关的计算联合起来,给出最后的矩阵形式的表达式。

综合以上相坐标系到成像坐标系及成像坐标系到像素平面坐标系的转换,并把αf合并成fx,把βf合并成fy

可得相机坐标到像素坐标的计算公式:

计算机视觉---相机几何模型

这个式子是方程组形式,为显逼格,我们将该式子整理成矩阵形式,其中Pc表示的是点在相机坐标系下的坐标记法:

 计算机视觉---相机几何模型

把世界坐标系到相机坐标系的转换关系也联合起来,进一步可以得到从世界坐标到像素坐标的矩阵形式:

计算机视觉---相机几何模型

由此,我们已经给出了从世界坐标系到像素坐标系的转换。

 part4:

 最后,我们聊一聊归一化平面。归一化平面是假想的。

我们知道,当我们用相机坐标时,3D点的表示形式为:

计算机视觉---相机几何模型所以有:

计算机视觉---相机几何模型

上式可以看出,如果是3D点直接经过内参得到的坐标相当于u,v坐标在各自的方向上都放大了zc倍。

归一化平面是指位于相机前方z=1处的平面上,该平面称为归一化平面。归一化坐标就相当于在z的方向上当z=1时用一个平面截断,这时光心与3D点的连线在该面上的点即为该3d点的归一化点。

表示为,其中Pc1表示的是点在相机坐标系下的坐标记法:

 计算机视觉---相机几何模型

由归一化坐标经过内参之后就得到了相机坐标:

计算机视觉---相机几何模型