1、 张永安 卢鸿谦日 期: 2014.05.13摘要人类视觉过程可看成是一个复杂的从感觉到知觉的过程,也就是指三维世界投影得到二维图像,再由二维图像认知三维世界的内容和含义的过程。信号处理理论与计算机出现以后,人们用摄像机等获取环境图像并转换成数字信号,完成对视觉信息的获取和传输过程,用计算机实现对视觉信息的处理、存储和理解等过程,形成了计算机视觉这门新兴学科。其中从二维图像恢复三维物体可见表面的几何结构的工作就叫做三维重建。随着计算机硬件、软件、图像采集、处理技术的迅速发展,三维重建的理论和技术已被广泛应用于航空航天、机器人技术、文字识别、工业检测、军事侦察、地理勘察、现场测量和虚拟植物可视化
2、等领域。相机标定是三维重建必不可少的步骤,它包括对诸如主点坐标、焦距等与相机内部结构有关的内部参数的确定和对相机的旋转、平移这些外部参数的确定。价格低廉的实验器材、简单的实验环境、快捷的标定速度和较高的标定精度是现在相机标定研究追求的几大方向。数码相机的标定就是研究的热点之一。本次报告介绍了基于棋盘格模板标定的基本原理和算法,利用MATLAB的相机标定工具箱,使用张征友算法对相机进行了标定,记录了标定的过程,并给出结果,最后对影响标定精度的因素进行了分析。关键词:相机标定 张正友 角点提取 内外参1基于棋盘格标定的基本原理和算法基础知识射影几何当描述一张相机拍摄的图像时,由于其长度、角度、平行
3、关系都可能发生变化,因此无法完全用欧氏几何来处理图像,而射影几何却可以,因为在射影几何中,允许存在包括透视投影的更大一类变换,而不仅仅是欧氏几何的平移和旋转。实际上,欧氏几何是射影几何的一个子集。1.1.2齐次坐标设欧氏直线上点 p的笛卡尔坐标为(x,y)T,如果x1,x2,x3满足x=x1/x2,y =x2/x3,x30,则称三维向量(x1,x2,x3)T为点P的齐次坐标。当x3= 0时, (x1,x2,0)T规定直线上的无穷远点的齐次坐标。实际上,齐次坐标是用一个n+ 1维向量来表示原本n维的向量。应用齐次坐标的目的是用矩阵运算把二维、三维甚至高维空间中的一个点集从一个坐标系变换到另一个坐
4、标系。形的几何变换主要包括平移、旋转、缩放等。以矩阵表达式来计算这些变换时,平移是矩阵相加,旋转和缩放则是矩阵相乘,综合起来可以表示为P=R*P+T(R为旋转缩放矩阵,T为平移矩阵,P为原向量,P为变换后的向量)。当n+1维的齐次坐标中第n+1维为0,则表示n维空间的一个无穷远点。二维射影射影平面的构造如下:当x1,:x2,:x3,= x1 :x2:x3,即xi,=xi,i=1,2,3,(x1,:x3,)T与 ( x1 :x3)T表示同一个点,我们把(x1,:x3,)T看作与 ( x1 :x3)T等价的,记为 (x1,:x3,)T ( x1 :x3)T 。在这个等价的关系下,所有等价类称为齐次
5、向量。任何具体的向量(x1,:x3,)T 都是所属等价类的表示。在 R3-(0,0,0)T 的向量等价类组成了射影平面P2,其中记号-(0,0,0)T表示去掉零向量,即(0,0,0)T不与P2中任何点对应。反过来,对任何齐次向量(x1,:x3,)T ,若x30,可以定义x=x1/x2,y =x2/x3,于是确定了欧氏平面上的一个点P(x,y)T。这样,欧氏平面上的点 P 与x30的齐次坐标(x1,:x3,)T ,建立了一个一一对应,而(x1,:0)T在欧氏平面上不存在任何对应点。二维射影平面可以看作三维空间的子集,二维平面上的线性变换叫做平面射影变换或单应,二维射影变换可以用3 3可逆矩阵表示
6、为:(1.1)或者表示为:x1=Hx,此方程中的H矩阵乘以任意一个非零因子不会改变射影变换,也就是说二维射影变换的H有八个自由度。1.1.3 三维射影类似二维射影变换,三维空间变换可以用4 4的可逆矩阵 H 表示。因此,三维空间变换表示为:=Hx (1.2)变换矩阵 H 是齐次矩阵,乘以任意一个非零因子不会改变射影变换,因此三维射影变换有 14 个自由度。相机模型数码相机图像拍摄的过程实际上是一个光学成像的过程。相机的成像过程涉及到四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系以及这四个坐标系的转换:理想透视模型针孔成像模型相机模型是光学成像模型的简化,目前有线性模型和非线性模型两
7、种。实际的成像系统是透镜成像的非线性模型。最基本的透镜成像原理如图1.1 所示图1.1 透镜成像原理示意图其中 u 为物距, f 为焦距,v 为相距。三者满足关系式:1f=1u+1v (1.3)相机的镜头是一组透镜,当平行于主光轴的光线穿过透镜时,会聚到一点上,这个点叫做焦点,焦点到透镜中心的距离叫做焦距f。数码相机的镜头相当于一个凸透镜,感光元件就处在这个凸透镜的焦点附近,将焦距近似为凸透镜中心到感光元件的距离时就成为小孔成像模型。世界坐标系:是客观三维世界的绝对坐标系,也称客观坐标系。因为数码相机安放在三维空间中,我们需要世界坐标系这个基准坐标系来描述数码相机的位置,并且用它来描述安放在此
8、三维环境中的其它任何物体的位置,用(XW,YW,ZW)表示其坐标值。相机坐标系(光心坐标系):以相机的光心为坐标原点,X 轴和Y 轴分别平行于图像坐标系的X轴和Y轴,相机的光轴为Z轴,用(Xc,Yc,Zc)表示其坐标值。图像坐标系:以CCD图像平面的中心为坐标原点,X 轴和Y 轴分别平行于图像平面的两条垂直边,用(x,y)表示其坐标值。图像坐标系是用物理单位(例如毫米)表示像素在图像中的位置。像素坐标系:以CCD图像平面的左上角顶点为原点,X轴和Y轴分别平行于图像坐标系的X轴和Y轴,用(u,v)表示其坐标值。数码相机采集的图像首先是形成标准电信号的形式,然后再通过模数转换变换为数字图像。每幅图
9、像的存储形式是MN的数组,M行N列的图像中的每一个元素的数值代表的是图像点的灰度。这样的每个元素叫像素,像素坐标系就是以像素为单位的图像坐标系。像素坐标系与图像坐标系的关系的转换关系为:(1.4)(1.5)采用齐次坐标再用矩阵形式将上式表示为:(1.6)其中是图像坐标系原点在像素坐标系中的坐标,dx和dy分别是每个像素在图像平面x和y方向上的物理尺寸。图像坐标系与相机坐标系的转换为:(1.7)(1.8)其中f为焦距(像平面与相机坐标系原点的距离)。用齐次坐标系和矩阵表示上述关系:(1.9)相机坐标系与世界坐标系的变换为:(1.10)其中R为33正交旋转矩阵,T为三维平移向量。将式1.6、式1.
10、9和式1.10综合起来:(1.11)其中:(1.12)(1.13)(1.14)(1.15)和分别是图像水平轴和垂直轴的尺度因子。K的参数中只包含焦距、主点坐标等只由相机的内部结构决定,因此称K为内部参数矩阵,、叫做内部参数。中包含的旋转矩阵和平移向量是由相机坐标系相对于世界坐标系的位置决定的,因此称为相机的外部参数矩阵,R和T叫做外部参数,M叫投影矩阵。相机标定就是确定相机的内部参数和外部参数。1.3 基于棋盘格标定的基本原理和算法张正友在1998年提出了一种基于棋盘格模板的相机标定方法成为相机标定研究的经典之作。这种方法由两部分组成,首先对相机的参数进行估计,再用优化函数进行迭代求精。1.3
11、.1 相机参数的初始估计假定模板平面在世界坐标系 Z=0 的平面上,则相机成像模型可变化为:(1.16)令,则。根据已知的空间三维点的坐标与像素坐标系下的坐标用最小二乘法可以求出H。根据旋转矩阵的性质,即和(表示向量的二范数),每幅图象可以获得以下两个对内参数矩阵的基本约束:(1.17)(1.18)由于摄像机有5个未知内参数,所以当所摄取得的图象数目大于等于 3 时,就可以线性唯一求解出。令则即:,求出内部矩阵的解。再由可以得到:(1.19)(1.20)(1.21)(1.22)根据,可以求出的值,就求出所有相机参数的值。1.3.2 优化函数迭代求精理想状况下,像素坐标系下的坐标与空间点坐标通过
12、求出的相机参数矩阵投影回像素坐标系是同一点,但是实际情况会有误差,所以为了对相机参数求精,可以用下面的投影误差最小化函数迭代求精。(1.23)其中m表示像素坐标系下的坐标,表示空间M点经过初始估计的相机参数投影到像素坐标系下的坐标。2 标定流程及标定结果2.1 标定流程运行工具箱运行MATLAB标定工具箱calib_gui,选择标准模式。如图2.1:图2.1 标定工具箱读取图片点击标定工具箱界面的Images names按钮,输入标定图像的基本名字(Image)和图片格式(bmp),然后所有图片会加载到内存内,并以缩略图形式显示出,如图2.2:图2.2 加载图片的缩略图角点提取点击标定工具箱窗
13、口的Extract grid corners按钮,点击“enter”选择所有图片,也可以通过2 5 8 10的方式选择部分图片。然后点击“enter”选择默认的角点查找器的窗口大小。最后单击“enter”选择自动的平方计算机制。点击后图片将会显示出来,用带十字光标的箭头依次选择图片的棋盘格的四个极端角落,依次处理完后所有图片,如图2.3:图2.3 选取四个极端角落选择四个极端角落后,显示出在缺少畸变情况下预测的网格角点,如图2.4:图2.4 预测的角点位置所有图片处理完后,提取出的角点位置,如图2.5:图2.5 提取的角点位置相机标定为了使用张正友法的配置,需要禁用模型的切向分量和限制径向分量
14、到第四级(est_dist = 1;1;0;0),并且激活倾斜估计(est_alpha =1)。设置后点击Calibration进行标定。标定结果如下:图2.6 初始化后的标定参数图2.7 优化后的标定结果计算反投误差点击标定工具箱窗口的Reproject on images来显示到到原图像的二次投影,这次投影是通过当前的内参和外参来计算的,参数通过输入“enter”选择默认的参数。计算出的反投误差如图2.8:图2.8 反投误差点击相机标定工具箱的Show Extrinsic,外部参数会以3D的形式显示出来,如图2.9:图2.9 相机外部参数优化标定结果由图2.8可知,当前的反投误差仍比较大,
15、这是因为在一些畸变严重的图片上做的角点提取不够好。可以通过自动地重新计算所有图片的角点来减小误差,点击Recomp. Corners,并选择默认的角点查找器大小和所有图片。重新计算角点之后,再点击Calibration进行标定。图2.10 重标定后的内参重标定之后的反投误差如图2.11图2.11 重标定后的反投误差由上图可以看出,重标定后的反投误差没有很大的减小。为了减小误差,下面我们用标定工具箱的Analyse error功能,找到个别误差较大的点,去除相应的图像,再标定之后反投误差,结果如下:图2.12 去除部分点后的反投误差由图可见,反投误差减小了很多,Analyse error功能作用
16、明显。3.影响标定结果精度的因素(1)特征点提取误差对标定精度的影响因为相机标定是在已知特征点的世界坐标系坐标和特征点的像面坐标的情况下求解内外参的,若是特征点提取存在误差的话势必会影响标定的精度,研究表明,标定误差与特征点提取误差的均值成正比。(2)标定点的数量对标定精度的影响在标定中需要用到特征点,除了特征点坐标精度影响标定精度外,特征点的数量也会影响标定精度。标定点的数目若太少的话,存在很大的偶然性,若有交大误差点,标定结果会变得很多。标定点若太多的话,可以减小个别误差点的影响,但是计算量太大,因此选择数量合适的标定点也很重要。(3)标定图片数量对标定精度的影响和标定点的数量一样,标定图片的数量也对标定精度有影响,实验表明,标定图片时,误差较大。随着标定图片增多,误差逐渐减小。超过一定量后,误差大小变化变小。4.总结本次报告主要完成以下任务:对理想相机的成像模型进行了介绍,介绍了棋盘格相机标定的基本原理和张正友法,并利用MATLAB相机标定工具箱对相机进行了标定,最后分析了会影响标定精度的因素。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1