相机标定原理

cnblogs上的这篇讲相机标定的博文值得一看。
csdn上这篇也可以参考。

相机标定基础知识

相机标定技术涉及到一些数学原理和几何模型,这些数学原理和几何模型是相机标定算法使用和进一步发展的基础。下面对相机标定技术中涉及到的齐次坐标、单应性矩阵、标定坐标系和相机成像模型等这些基础原理和知识作一些介绍。

齐次坐标

齐次坐标表示向量和点的表示方式可以更易于计算机图形领域对仿射(线性)几何变换进行研究。
对于一个向量 v 以及坐标系下图所示:

tu1

有一组坐标v(v1,v2,v3),使得

v=v1a+v2b+v3c

而对于一个点 P ,则可以找到一组坐标 p(p1,p2,p3),使得

po=p1a+p2b+p3c

从上面式子中对向量和点的表达,我们可以了解到,为了在坐标系中表示一个点(如 P ),我们可以把点的位置看作是对这个坐标系的原点所进行的一个位移。因此在表达这个向量的同时用相同的方式表达出点P:

p=o+p1a+p2b+p3c

上式是在同一个坐标系下表达一个向量和点的不同表达方式。我们现在写成矩阵的形式:

v=(abco)×v1v2v30p=(abco)×v1v2v31

其中 (a,b,c,o 是基坐标向量,等式右边的列向量分别是向量 v 和点P在坐标系下的坐标。这样我们就可以看出,向量和点在同一个坐标系下就有了不同的表达方式:向量v 可以表示为 v=(av1,bv2,cv3,o) ,dian P=(ap1,bp2,cp3,1) 这样一种用四个分量表示空间点坐标的方式就称为点的齐次坐标。

对于把任意点从普通坐标变成齐次坐标,需要给前三个坐标乘上同一个非零数系数 s 然后增加第 4 个分量 s,如果把一个齐次坐标转换成普通坐标,需要把前三个坐标同时除以第 4 个坐标,然后去掉第 4 个分量。

因为齐次坐标是使用了 4 个坐标分量来表达三维空间坐标点,这种表示方法就可以使上述三种变换可以通过矩阵算法来表示,这就使得图形学中的仿射(线性)变换的可以更加方便的进行。并且计算机硬件方面已经普遍地支持齐次坐标与矩阵乘法,这也进一步促进了齐次坐标使用,齐次坐标表示法几乎已经成为图形学领域中的一个标准。

单应性矩阵

根据数学中单应性矩阵的定义我们知道单应性矩阵中就是摄像机的内参数矩阵,旋转向量和平移向量的转换,因此单应性矩阵的求解工作对机器视觉中的摄像机标定的过程有重要的影响。

假设实际空间物体表面有一点 Q=[X,Y,Z,1]T 在相机CCD上的映射为 q=[x,y,1]T ,设单应性矩阵为 H s为比例系数,则 Q q之间的关系可以表示为 q=sHQ .

在成像映射的过程中,该点要经过旋转和平移的仿射变换,可以设变换坐标为
W=[RT] ,其中 R 为旋转矩阵, T 为平移矩阵,根据上述就可以得到的摄像机的内参矩阵 M ,所以q=sMWQ等式,从而推导出单应性矩阵具有下面关系: H=sMW

通过单应性矩阵,我们以把图像平面上点的位置与空间物体对应点之间的位置
关系联系起来。

single

所有的相机标定本质:都是在求取内参和外参中所含的参数。

基于3D标定物的标定方法

使用基于3D标定物进行相机标定,是一种传统且常见的相机标定法。计算机视觉中,经典的3D标定物,棋盘方形格图案,并且提供其中角点的精确坐标。

主要流程
这一类标定法,主要包括四个步骤:

  1. 检测每张图片中的棋盘图案的角点;

  2. 通过使用线性最小二乘法估算相机投影矩阵P;

  3. 根据P矩阵求解内参矩阵K和外参矩阵R,t;

  4. 通过非线性优化,提高K,R,t矩阵的精度。

除了上述的流程,还有另外一种做法是先通过非线性优化改善相机投影矩阵P,然后获得相机内参和外参。

小孔

小孔成像与相机

小孔的直径与焦距与之比是多少分之一,就是光圈的大小;

比如,单反相机中的标准镜头 50/1.4,就是说该镜头的焦距是 50mm,该镜头的通光口径最大是 36mm(50/1.4=35.7),也就是焦距的一点四分之一,称为该镜头的最大光圈是 1.4。

镜头中有几片钢片,可以将小孔的直径变小,如变到8mm,按照 8 除 50 等于 6.25 分之一,也就是这时的光圈为 6.25。

通过物理课上的小孔成像实验知道,小孔越小,成像越清晰。因此,拍风景照的时候,我们把光圈设成 11 或是 16,以使远近的景物都清晰。

拍人像的时候,我们把光圈放到 1.4,以便使人物清晰,而背景模糊。

相机标定

在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为相机标定(或摄像机标定)。

相机标定的目的是确定相机的一些参数的值。通常,这些参数可以建立定标板确定的三维坐标系和相机图像坐标系的映射关系,换句话说,你可以用这些参数把一个三维空间中的点映射到图像空间,或者反过来。

相机需要标定的参数通常分为内参外参两部分。外参确定了相机在某个三维空间中的位置和朝向,至于内参,可以说是相机内部的参数,我觉得需要引入一点光学的东西来更好地解释一下。现有的相机都至少包含一个光学镜头和一个光电传感器(CCD或CMOS)。

通过镜头,一个三维空间中的物体经常会被映射成一个倒立缩小的像(当然显微镜是放大的,不过常用的相机都是缩小的),被传感器感知到。

  • 理想情况下,镜头的光轴(就是通过镜头中心垂直于传感器平面的直线)应该是穿过图像的正中间的,但是,实际由于安装精度的问题,总是存在误差,这种误差需要用内参来描述;
  • 理想情况下,相机对x方向和y方向的尺寸的缩小比例是一样的,但实际上,镜头如果不是完美的圆,传感器上的像素如果不是完美的紧密排列的正方形,都可能会导致这两个方向的缩小比例不一致。内参中包含两个参数可以描述这两个方向的缩放比例,不仅可以将用像素数量来衡量的长度转换成三维空间中的用其它单位(比如米)来衡量的长度,也可以表示在x和y方向的尺度变换的不一致性;
  • 理想情况下,镜头会将一个三维空间中的直线也映射成直线(即射影变换),但实际上,镜头无法这么完美,通过镜头映射之后,直线会变弯,所以需要相机的畸变参数来描述这种变形效果。

1.外参数矩阵。告诉你现实世界点(世界坐标)是怎样经过旋转和平移,然后落到另一个现实世界点(摄像机坐标)上。

2.内参数矩阵。告诉你上述那个点在1的基础上,是如何继续经过摄像机的镜头、并通过针孔成像和电子转化而成为像素点的。

3.畸变矩阵。告诉你为什么上面那个像素点并没有落在理论计算该落在的位置上,还tm产生了一定的偏移和变形!!!

摄像机内参、外参矩阵

  • 外参:摄像机的旋转平移属于外参,用于描述相机在静态场景下相机的运动,或者在相机固定时,运动物体的刚性运动。因此,在图像拼接或者三维重建中,就需要使用外参来求几幅图像之间的相对运动,从而将其注册到同一个坐标系下面来

  • 内参:下面给出了内参矩阵,需要注意的是,真实的镜头还会有径向和切向畸变,而这些畸变是属于相机的内参的。

    
    # 摄像机内参矩阵
    
        fx    s    x0
    K =  0    fy   y0
         0    0    1

    其中,fx,fy为焦距,一般情况下,二者相等,x0、y0为主点坐标(相对于成像平面),s为坐标轴倾斜参数,理想情况下为0

  • 摄像机外参矩阵:包括旋转矩阵和平移矩阵 4*3

    旋转矩阵和平移矩阵共同描述了如何把点从世界坐标系转换到摄像机坐标系

旋转矩阵:描述了世界坐标系的坐标轴相对于摄像机坐标轴的方向
平移矩阵:描述了在摄像机坐标系下,空间原点的位置

Q&A

Q1:f和d的单位是像素,那这个像素到底表示什么,它与毫米之间又是怎样换算的?

A:这个问题也与针孔模型相关。在针孔模型中,光线穿过针孔(也就是凸透镜中心)在焦距处上成像,因此,像平面就是摄像头的CCD传感器的表面。每个CCD传感器都有一定的尺寸,也有一定的分辨率,这个就确定了毫米与像素点之间的转换关系。举个例子,CCD的尺寸是8mm X 6mm,分辨率是640X480,那么毫米与像素点之间的转换关系就是80pixel/mm。

Q2:相机的主点

A:通常将相机光轴与图像平面的交点(一般位于图像平面的中心处,也称为图像的主点(principal point)定义为该坐标系的原点O1,且x轴与u轴平行,y轴与v轴平行,假设(u0,v0)代表O1在u-v坐标系下的坐标,dx与dy分别表示每个像素在横轴x和纵轴y上的物理尺寸,则图像中的每个像素在u-v坐标系中的坐标和在x-y坐标系中的坐标之间都存在如下的关系

frame

u=xdx+u0

v=ydy+v0

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值