摄像机的标定

2024-06-08

摄像机的标定(精选7篇)

摄像机的标定 篇1

1 引言

近年来,主动视觉在动态目标监控与跟踪、合作目标与非合作目标位置测量,以及工业生产线监测中有着广泛的应用。在主动视觉中,摄像机焦距、光学中心以及外参数是可变的,这些参数的动态在线标定在主动视觉中有重要作用。要利用摄像机进行视觉感知获取目标的三维信息,就必须进行摄像机标定,以确定摄像机的参数[1]。摄像机标定是指建立摄像机图像像素位置和场景点位置之间的关系,其途径是根据摄像机模型,由已知特征点的图像坐标和世界坐标求解摄像机的模型参数[2]。精确标定摄像机内外参数不仅可以直接提高测量精度,而且可以为后续的立体图像匹配与三维重建奠定良好的基础。

国内外许多学者提出了摄像机标定的方法,并得到广泛应用。传统的摄像机标定方法采用的是基于3D立体靶标的摄像机标定,但是3D立体靶标制作成本高,制作方法复杂。Roger Tsai[3]提出基于径向约束的两步法,该方法计算量适中,精度较高。张正友提出基于2D平面靶标的摄像机标定法,该方法克服了3D靶标的缺点,且标定过程中摄像机拍摄角度改变对标定结果无影响。HALCON是德国MVtec公司开发的图像处理软件,它具有完善的综合标准软件库和机器视觉集成开发环境。HALCON提供了丰富的函数库,包括blob分析、形态学、模式匹配、测量、三维目标识别和立体视觉等。它支持Windows,Linux和Solaris操作环境,整个函数库可以用C,C++,C#,Visual Basic和Delphi等多种普通编程语言开发,有效提高了开发效率,并且执行速度快,具有良好的跨平台移植性。

2 摄像机模型

为了标定摄像机,首先需要建立一个模型将世界坐标系中三维空间点投影到二维图像中,该模型由摄像机和镜头组成。在机器视觉应用中常用到的两种摄像机模型为面阵摄像机模型和线阵摄像机模型。线阵摄像机模型相对面阵摄像机模型要复杂许多,笔者介绍的是常用的面阵摄像机模型。在实际应用中,通常使用针孔摄像机,它的面阵摄像机模型如图1所示。其中,图像坐标系(r,c),成像平面坐标系(u,v),摄像机坐标系(xc,yc,zc),世界坐标系(xw,yw,zw),Sx和Sy是缩放比例因子,它们表示图像传感器上水平和垂直方向上相邻像素之间的距离。f表示的并不是镜头的焦距,而是摄像机主距。点P是世界坐标系中点Pw在成像平面上的投影。

世界坐标系中的点Pw=(xw,yw,zw)T变换到它在成像平面坐标系上的投影点P,需要经历以下4个步骤:

1)点Pw=(xw,yw,zw)T变换到摄像机坐标系中的点Pc=(xc,yc,zc)T,关系为Pc=RPw+T。T=(tx,ty,tz)T是一个平移向量,R=R(α,β,γ)是一个旋转矩阵,α,β,γ是分别绕摄像机坐标系x,y,z轴的旋转角度。在R和T中6个参数(α,β,γ,tx,ty,tz)称为摄像机外参、外方位参数或摄像机位置,它们决定了摄像机坐标系与世界坐标系之间的相对位置。

2)摄像机坐标系中点Pc变换到成像平面坐标系,它们之间是透视投影关系

3)在不考虑镜头畸变的情况下,世界坐标系中的点Pw与成像平面中的投影点P之间的直线过摄像机光学中心,如图2所示。

大部分情况下,镜头的畸变可以近似为径向畸变,即

其中,参数k决定了径向畸变的程度,如图3所示。

4)最后将点转换到图像坐标系中,即

式中:(Cx,Cy)T是光心在成像坐标系中的投影点。

由以上可知,摄像机标定的实质就是确定内部参数(f,k,Cx,Cy,Sx,Sy)和外部参数(α,β,γ,tx,ty,tz)的过程。

3 基于HALCON的标定

为了进行摄像机标定,必须已知世界坐标系中足够多的三维空间点的坐标,找到这些空间点在图像中的投影点的二维图像坐标,并建立对应关系[4]。这就要求标定过程必须满足两个要求:1)放置在已知位置上的容易提取特征的目标物体或标志(标定板);2)确定世界坐标系中已知点与它们在投影图像中的对应关系。

3.1 标定板

标定板的选择决定了标定的精度,为了达到较高精度,可以从以下方面考虑标定板的选择:

1)标定板的材质:光源在标定板前方,选择陶瓷标定板;光源在后方,选择玻璃标定板。

2)标定板的尺寸:标定板的形状通常为正方形,宽度应接近图像宽度的1/3。例如,图像大小为100 mm×80 mm,标定板尺寸选择30 mm×30 mm较为合适。

HALCON提供了标准的标定板模板,如图3b所示,该标定板的特点是:标定板周围的黑色矩形框使得标定对象的中心容易被提取;矩形边界框角落的方向标记使得标定板的方向唯一。每块标定板都应该有一个对应的描述文件Cal Tab Descr File,它描述了标定板的行数和列数、标定板外框的几何尺寸、方向标记、标定板圆形标志的半径等信息。选择到合适的标定板后,用gen_caltab函数生成对应的标定板描述文件。

3.2 提取特征

利用标定板的特点,提取目标板特征,其过程如下:摄像机提取标定板的一帧图像后,首先通过简单的阈值分割算法就能将标定板的内部区域与背景分离;其次利用Canny滤波器提取标定板各圆形标志的边缘;再次采用Fitzgibbon[5]提出的通过线性方法来最小化代数误差以得到拟合椭圆,该算法具有很好的稳健性,可以抑制边缘中孤立点对边缘拟合的影响;最后提取出椭圆的最小外接四边形,可以很容易确定标志点及其与图像中的投影之间的关系。

3.3 摄像机标定

进行摄像机标定时,标定精度与图像数量有关,至少选择10~15幅。所选图像中标定板的位置应该能覆盖图像的4个角,因为角落处的镜头畸变最大,这样能得到较准确的畸变系数k。

标定过程中,由于使用的是平面标定对象,还会存在这样的问题:如果标定对象平行于成像平面,f和tz的解不唯一。解决方法是在最优化过程中保持Sy不变。

基于HALCON的标定过程如图4所示,read_image(:Image:File Name:)读取名称为File Name的图像Image;find_caltab(Image:Caltab:Cal Tab Descr File,Size Gauss,Mark Thresh,Min Diam Marks:)通过3.2节介绍的算法提取图像Images中标定板上的圆形标志来确定标定板的有效区域,效果如图5a所示;find_marks_and_pose(Image,Cal Tab Region::Cal Tab Descr File,Start Cam Param,Start Th resh,Delta Thresh,Min Thresh,Alpha,Min Cont Length,Max Diam Marks:Rcoord,Ccoord,Start Pose)确定标定板上圆形标志点的二维坐标,并得到摄像机外部参数的初始值,效果如图5b所示;camera_calibration(::NX,NY,NZ,Nrow,Ncol,Start Cam Param,Nstart Pose,Estimate Params:Cam Param,Nfinal Pose,Errors)计算出摄像机的所有参数,它是通过提供的初始参数为初始值,进行优化搜索获得误差最小化的过程;write_cam_par(::Cam Param,Cam Par File:)将标定结果写入Cam Par File文件。

HALCON强大的图像处理能力,为摄像机自主标定提供了简单有效的方法。

4 实验结果分析

根据上述标定原理和开发步骤,在Windows XP平台下利用VC++6.0开发了一个基于HALCON8.2的摄像头标定程序,程序经过严格测试,运行稳定,在黑背景下截取3组数量不同的320×240的标定板图像用于标定,并通过重投影法分析标定结果的平均误差。

式中:e表示均方误差;Io(i)表示原始图像上第i点的向量,Ip(i)表示重投影图像上第i点的向量,i∈(0,N);N表示标志点总数,例如利用10幅标定板图像进行标定,则N=10×7×7;平均均方误差Err等于均方误差与标志点总数的比值。

结果如表1所示,效果较好,可以达到使用要求。

5 小结

基于HALCON开发的摄像机标定程序在实际运用中取得了很好的效果,标定结果精确、运算效率高、跨平台移植性好,操作简单,缩减了开发周期,可以有效地应用于各种计算机视觉系统中。

摘要:利用HALCON图像处理软件提供的标定板模板,并充分考虑了透镜的径向畸变影响及求解方法,给出了基于HALCON的摄像机标定算法。该算法充分发挥了HALCON的函数库功能,提高了标定精度和计算效率,具有良好的跨平台移植性,可满足各种计算机视觉系统的需要。

关键词:计算机视觉,摄像机标定,HALCON

参考文献

[1]李良福,陈卫东,冯祖仁,等.目标跟踪与定位中的视觉标定算法研究[J].应用光学,2008,29(4):481-486.

[2]张广军.机器视觉[M].北京:科学出版社,2005.

[3]TSAI R Y.An efficient and accurate camera calibration technique for 3D machine vision[EB/OL].[2009-12-20].http://research.microsoft.com/apps/pubs/default.aspx?id=66690.

[4]STEGER C,ULRICH M,WIEDEMANN C.Machine vision algorithms and applications[EB/OL].[2009-12-20].http://www.amazon.com/Machine-Vision-Algorithms-Applications-Carsten/dp/3527407340#noop.

[5]FITZGIBBON A,PILU M,FISHER R B.Direct least square fitting of ellipses[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1999,21(5):475-480.

摄像机的标定 篇2

关键词:摄像机标定,OpenCV,计算机视觉,透镜畸变

0 引言

摄像机标定的目的,就是要建立三维世界坐标与二维图像坐标之间的一种对应关系。在单目视觉中,这种对应关系是一对多的对应,即二维图像上的一个像素点对应着三维空间中的一条直线;而在双目视觉中,可以通过两幅二维图像上的对应像素点计算得到三维世界坐标与二维图像坐标的一一对应关系。由此,便可以得到物体的三维坐标值。

目前常用的标定方法是由Tasi首先提出的基于“两步法”的传统摄像机标定方法[1]。随后,张正友提出用二维平面模板来标定摄像机,他的方法首先利用线性和非线性方法求取摄像机内外参数的初值,然后再解非线性最小化方程,以求得内外参数的精确解[2]。因此,其无论在精度方面,还是在简便方面都优于Tsai的方法,可以说它是两步法的代表,从而使摄像机标定技术大大前进了一步。

Open CV(Open Source Computer Vision Library)是Intel开放计算机视觉函数库,具备强大的图像和矩阵运算能力[3]。尽管有很多求解摄像机参数的方法,Open CV函数库中提供的摄像机标定方法就是基于张正友的标定方法。Open CV中的摄像机标定模块为用户提供了良好的接口,并且执行速度快,具有良好的跨平台移植性,因此可以很好地应用于工程实际当中。

1 摄像机标定原理

1.1 理想摄像机模型

如图1所示[4],首先在棋盘模板平面上,建立世界坐标系(xw,yw,zw),世界坐标系的原点为Ow;然后以摄像机透视中心Oc为坐标原点,并使其xc轴和yc轴分别平行于像平面(Image Plane)坐标系的x轴和y轴,且方向相同,zc轴为摄像机镜头的主光轴,按右手定则建立摄像机坐标系(xc,yc,zc);再以像平面上像素坐标值(0,0)的点为坐标原点O,以水平像元阵列方向为u方向,以垂直像元阵列方向为v方向,建立图像像素坐标系(Pixel Image Coordinate)(u,v);最后以主光轴与像平面的交点Od为坐标原点,建立图像物理坐标系(Physical Image Coordinate)(xd,yd),并使其坐标轴分别平行于图像像素坐标系。

建立好以上4个坐标系后,棋盘模板平面上的一点pw(xw,yw,zw),在不考虑透视畸变情况下,其成像点在图像像素坐标系下的坐标pu(u,v)记为[2]:

式中:zc为pw点在摄像机坐标系下的深度;A3×3为摄像机内参数矩阵;(R3×3t3×1)是摄像机的外参数矩阵;R和t分别表示世界坐标系相对于摄像机坐标系的旋转矩阵和平移向量。其定义如下:

式中:a,b分别表示在x和y方向上像点的物理坐标到像素坐标的比例系数;u0,v0表示主光轴与像平面的交点(主点)在像素坐标系下的坐标;参数c描述了2个图像坐标轴之间的歪斜(即2个坐标轴不完全垂直的情况)。需要说明的是,考虑到当前的像机制造水平,可以认为2个坐标轴是垂直的,因此在Open CV所使用的模型中认为c=0。

在张正友的平面标定法中,标定板位于世界坐标系的z=0平面内,即对于模板上的点,其zw=0,这样式(1)重写为[5,6]:

式中:r1,r2,r3为旋转矩阵R3×3的列向量。令H=(r1r2r3)=A(r1r2t),H称为模板和图像之间的单应矩阵(Homography)。式(2)可以改写为:

通过一系列运算后,就可以得到摄像机的所有内参数和外参数[2,4]。

1.2 引入畸变后的摄像机模型

以上表示的是理想情况下的透镜成像方程,然而由于实际的像机存在着制造精度误差,因此实际的摄像机存在着径向、切向畸变。

这里,为摄像机定义一个归一化的图像平面,这个平面平行于摄像机的像平面,且到针孔的距离为单位长度。接着在这个平面上建立一个坐标系,原点在光轴和这个平面的交点处。由针孔透视投影可知,摄像机坐标系下的点(xc,yc,zc)在这个归一化的像平面上的投影点的坐标(xn,yn,1)可以写为:

引入透镜的畸变后,新的归一化坐标值定义为[7]:

式中:r2=xn2+yn2;k1,k2表示径向畸变系数;k3,k4表示切向畸变系数。

应用上述畸变模型后,最终成像点在图像像素坐标系下的坐标为:

当4个畸变系数为0时,上面的公式退变成[8]:

1.3 标定方法

Open CV中的摄像机标定是基于张正友的平面标定方法来完成的[3,5]。该方法要求使用一个具有较高绘制精度的棋盘模板,然后通过自由移动摄像机或标定模板,使得摄像机至少在3个不同的位置(相对标定模板)拍摄模板图像。在求解相机内外参数时,第一步暂不考虑摄像机镜头的畸变,通过将检测到的所有角点代入投影方程,求得模板和图像之间的单应矩阵H,然后确定摄像机的内部参数和外部参数的初始值。第2步,再以这些参数为初始值,考虑畸变的影响,应用LevenbergMarquardt算法对图像点与再投影点间的距离之和进行非线性最小优化,以得到一组精度更高的值[9]。

2 基于Open CV的标定系统实现

摄像机标定算法的流程如图2所示。

(1)初始化。用cv Create Mat()函数为摄像机的内外参数以及所有图像最大可能数量的角点分配存储空间。

(2)读取一副标定用的图像并进行角点检测。用cv Find Chessboard Corners()函数检测并提取图像中的棋盘角点位置。如果返回值为1,则表示该幅图像上提取的角点数目和设定的相同,角点提取成功;否则返回0,表示角点提取失败,即该幅图像中提取到的角点数要少于设定的数目。

(3)细化角点坐标并绘制。对提取到的角点,需要使用cv Find Corner Sub Pix()函数对这些角点进一步的细化,以得到更为精确的角点像素坐标。而后,调用cvDraw Chessboard Corners()绘制提取到的角点。

(4)对于角点提取成功的图像,存储角点在世界坐标系下的坐标值以及在图像坐标系下亚像素级的坐标值。

(5)读取完所有图像后,根据角点提取成功的图片数量,为它们中的所有角点重新分配数据空间,并释放原有的数据空间。

(6)标定。调用cv Calibrate Camera2()函数,求取摄像机的内外参数。需要注意的是该函数输出参数里的rotation_vectors矩阵。

该矩阵里的每一行(或列)向量表示的是相应的一副图像所对应的旋转向量,当需要转换成旋转矩阵时,要使用罗格里格斯变换函数(cv Rodrigues2)。

(7)标定结果的误差分析。这里使用重投影的方法来计算标定误差,即根据得到的摄像机内外参数,调用cv Project Points2()计算角点三维坐标在图像上的投影坐标,然后,调用cv Norm函数将其与通过角点提取到的投影坐标进行比较,从而得到一个均方误差值。

(8)计算每幅角点提取成功图像的旋转矩阵、旋转向量和平移向量。

3 试验与结果分析

根据以上标定原理和开发步骤,本文在Windows XP平台下,用Visual C++开发了一个基于Open CV 1.0版本的摄像机标定程序。试验使用Canon IXUS 85IS型照相机,分辨率为640×480像素。标定所用的模板是在A4纸上用激光打印机打印的黑白相间的国际象棋图案,然后将其粘贴在平板上。

模板中方格边长为30 mm,共有6×8=40个角点。利用9副图像对摄像机进行标定,检测出的角点如图3所示,标定结果如表1第2列所示,总体平均误差为0.031 562 6个像素。

为了验证标定结果的正确性,本文还利用Matlab中标定工具箱对这9副图像进行了摄像机标定,结果如表1第3列所示。从中可以看出,两者的值是非常接近的,因此证明了本文标定程序的正确性。

4 结语

摄像机的标定 篇3

计算机视觉技术应用于农产品自动化收获始于20世纪八十年代中后期,是近年来热门的研究课题之一[1]。其中,摄像机标定是计算机视觉系统不可缺少的前提和基础。摄像机标定过程就是确定摄像机成像几何模型的参数,这些参数包括摄像机的内部几何和光学特性(内部参数)以及摄像机的三维位置和方向(外部参数)。根据标定的特点和算法,将摄像机标定分为传统摄像机标定方法、基于主动视觉摄像机标定方法和摄像机自标定方法。在传统的摄像机标定方法中张正友的方法因标定精度高、稳定、标定模板容易制作较为常用[2]。Bouguet方法同时考虑径向和切向畸变,并有专业的标定工具箱,应用越来越广泛[3]。在具体应用中,对于经典的标定方法有必要进行深入的讨论和比较,以给其他研究者在选择标定算法时一些参考[4]。

摄像机标定精度评估方法总的来说分为两类:一是直接检验标定的精度,即由2D图像坐标重构出空间的3D坐标与实际的空间坐标比较,以该误差大小来评价标定精度;二是以二维图像的定位精度来间接地评价标定精度,即以“3D”空间坐标投影到图像平面的“2D”坐标,与实际提取的图像“2D”坐标的误差做为评价标定精度的方法[5],此处误差即为图像残差。目前,基于第一类的评估方法有Tsai提出的测量三维世界坐标的精度准则。Weng提出的使用三角测量误差与摄像机量化误差的比值作为评估方法[6]。全厚德等提出了基于棋盘格长度的评估方法[6]。在第二类评估方法中,葛动元等以图像残差均方值作为标定精度的性能指标,进行精度分析[7],实用性较强。

由于实验条件的限制,对于具体的摄像机标定参数而言,一般很难得到非常精确的“3D”空间坐标真值作为绝对的参考。本文在实际的摄像机标定实验环境下,对张正友和Bouguet标定方法采用第二类方法,并利用图像残差来比较二者的标定精度。

1 摄像机的成像模型

张正友和Bouguet都是利用传统模型进行标定。此模型共有4套坐标系:世界坐标系(OW,XW,YW,ZW)是物体点P的三维坐标,是由用户自己定义的;摄像机坐标系(OC,XC,YC,ZC)是以摄像机光心OC为原点,以垂直于图像平面的摄像机光轴为ZC轴,XC轴和YC轴平行于图像平面;图像的物理坐标系(O1,x,y);(xu,yu)和(xd,yd)分别为理想和畸变矫正后像点的物理坐标,(xp,yp)为像点的像素坐标。空间物点P到像点P的转换就通过这4套坐标系经过3次转换而得来的。具体模型公式转换关系如表1所示。

参数说明:R为旋转矩阵;T为平移矩阵;f表示有效焦距;Sx为尺度因子;dx,dy表示x和y方向相邻像素中心距离;k1(T)表示Tsai方法径向畸变系数,k1(Z)表示张正友方法径向畸变系数;k1(B),k2(B),k3(B),p1(B),p2(B)表示Bouguet方法径向和切向畸变系数。

2 精度评估

2.1 精度评估理论

在摄像机标定过程中,确定了三维空间到二维图像平面的变换关系,通过标定得到的参数即可计算出已知三维坐标的物点在图像平面的投影点。假定空间一点P成像到图像平面上,实际检测到的其“2D”坐标为而利用标定得到的参数来计算图像平面上的投影点“2D”坐标为p(xpi,ypi),则与p之间的误差即为图像残差[8]。本文以图像残差的下列指标衡量标定精度。

2.1.1 x方向图像残差均值

式中n—格点的数目。

2.1.2 y方向图像残差均值

2.1.3 总的图像残差均值

2.2 计算过程

本文采用Bouguet提出的角点提取算法检测实际像素坐标。首先,以标定板平面左上角为空间坐标原点,以毫米为单位,计算每个格点的x和y轴坐标,确定“3D”坐标;然后,利用此“3D”坐标,并根据已经标定得到参数,推导出图像像素坐标。Bouguet方法的图像残差指标计算具体过程如下:

设格点的空间坐标为P(XW,YW,ZW),像机坐标为(XC,YC,ZC),理想图像坐标为(xu,yu),实际的图像坐标为(xd,yd)。根据针孔成像模型、已经计算出旋转矩阵R及平移矩阵T,由式⑴和式⑵计算得到理想图像坐标为(xu,yu),再由畸变式⑸计算得到实际的图像坐标(xd,yd),根据式⑹,推导出像素坐标(xp,yp),即“3D”坐标在图像平面的投影点坐标。利用实际检测到空间点P的像素坐标根据式(7)和式(8)计算图像残差均值,式(9)计算Ed。

对于张正友方法,除了在计算(xd,yd)时所利用的畸变公式不同之外,其他的计算步骤均与上述过程相类似。

3 实验及分析

本文实验平台组成:系统主机配置的CPU为英特尔赛扬D3.06GHz,内存为512MB。视觉部分由两套DH-HV3100FC数字摄像机(分辨率为2048×1536)和COMPUTAR的M0814-MP定焦镜头(焦距为8mm)组成。实验所用的标定块是一块贴有A4大小,带有7×9的黑白棋盘格的平面板。黑白棋盘格的大小为22mm×22mm。

实验中从不同角度和不同的深度拍摄多幅图片。实验第一步,在使用Bouguet方法标定时,研究不同数量的图片对标定精度的影响。实验中共拍摄了40张图片,随机选择1到30张图片分别进行标定,实验共进行5次,并利用2.2节所述方法计算每次标定的图像残差的Ed。为说明实验结果的可靠性,计算5次Ed值的均值,记为_Ed,并画出变化图如图1所示。

在图1中,横轴表示图片的数量(单位:张),纵轴表示Ēd(单位:像素)。从图1观察到当选择5幅图片标定时,Ēd最小,为0.1753,但是Ēd会随着图片数量的变化而变化,变化到一定程度趋于稳定。可以看出,对于Bouguet方法,标定图片的数量对于标定的精度和稳定性有着很大的影响。当使用5张图片时,标定的精度最高,但并不稳定;当标定图片达到20张左右时,标定的结果相对稳定。

实验第二步,选择同样的5幅图片分别使用Bouguet方法和张正友方法进行标定实验,并按照2.2节所述方法计算出图像残差均值和Ēd值(见表2所示)。为了直观性和形象性,同时画出图像残差的直方图,如图2和图3所示。

像素

从表2可以看出,对于同样的标定实验,Bouguet方法x和y方向图像残差均值为0.120 0和0.060 8,_Ed值为0.139 7;而张正友方法x和y方向图像残差均值为0.1216和0.071 8,_Ed值为0.149 9。由图2可以看出,前者的标定精度更高。本文使用直方图(如图2和图3所示)更加形象地描述这一观点,纵轴表示格点数量(单位:个数),横轴表示像素误差(单位:像素)。在同样的标定环境下,在x轴方向,Bouguet方法有近100个格点的图像残差接近0,而张正友方法则只有不到70个格点的图像残差接近0。因此,比较两幅直方图也可以直观地看出Bouguet方法的标定精度更高。

4 结语

本文以自制的标定模板,用基于图像残差的精度评估方法对Bouguet和张正友摄像机标定方法的精度进行了比较。实验表明:利用Bouguet方法标定时,标定结果随着图片数量的变化而变化,标定图片为20张左右时,标定结果最为稳定;当选择5幅图片标定时,标定精度最高。对于同样条件的标定实验,即同时选择5幅图片标定,Bouguet方法的x轴和y轴方向图像残差均值Ēd以及图像残差值均低于张正友标定方法的各相应残差均值。实际应用中,在设定标定物体的空间坐标后,能够应用本文方法快速、有效地对视觉系统的精度进行定量的评价,为整个系统误差分析提供了参考。

摘要:为了选择较好的摄像机标定方法,采用Bouguet和张正友的标定方法分别进行了摄像机标定,以图像残差作为精度评估标准对两种方法的标定结果比较。实际实验表明:Bouguet方法的标定精度随着标定图片数量的变化而发生变化,在使用5张图片时,标定精度最高;在同等条件下与张正友方法进行比较,Bouguet方法标定精度更高。标定精度比较结果为实际应用中的摄像机标定方法选择、标定精度评价方法和具体标定试验中图像数量的选择等提供了重要的参考。

关键词:摄像机标定,精度评估,图像残差

参考文献

[1]何东健,张海亮,宁纪锋,等.农业自动化领域中计算机视觉技术的应用[J].农业工程学报,2002,18(2):171-174.

[2]Zhang Z.A flexible new technique for camera calibration[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2000,22(11):1330-1334.

[3]Jean-Yves Bouguet.Visual methods for three dimensionalmodeling[D].Pasadena California:California Institute of Technology,1999.

[4]曾建兰,黄昶.摄像机标定精度的比较研究[J].中国科技信息,2007(22):56-57.

[5]Joaquim Salvi,Xavier Armangue,Joan Batlle.A compara-tive review of camera calibrating methods with accuracy evaluate on[J].Pattern Recognition,2002(35):1617-1635.

[6]全厚德,闫守成,张洪才,等.计算机视觉中摄像机标定精度评估方法[J].测绘科学技术学报,2006,23(6):222-224.

[7]葛动元,姚锡凡.基于瑞利原理摄像机标定的精度研究[J].计量学报,2009,30(1):11-15.

摄像机的标定 篇4

目前, 线性摄像机标定技术的研究集中在如何有效地、合理地确定非线性畸变校正模型的参数上[7]。本文采用的算法全面考虑了径向畸变和切向畸变, 通过建立和求解超定线性方程组计算出畸变系数, 然后利用约束方程求解线形方程组, 来确定摄像机外部参数和内部参数。该算法全部过程采用线性方法求解全部参数, 不仅简单快捷, 而且没有非线性算法中可能存在的不稳定性, 实用性较强。

1 双目摄像机标定模型与原理

1.1 摄像机标定模型

如图1所示, 计算机图像坐标系o0uv, 坐标系原点在图像左上角, 以像素为单位。图像平面坐标系o1xy, 原点位于摄像机光轴与图像平面坐标系的交点, 利用透视变换原理可知, 该原点与图像平面的几何中心重合, x轴平行于u轴, y轴平行于v轴。o1点在坐标系o0uv中的坐标为o1 (u0, v0) 。摄像机坐标系是以摄像机光心o为原点的坐标系, 记为XcYcZc。oo1之间的距离为摄像机的焦距f。P点为空间点, 在摄像机坐标系中的坐标为 (XcYcZc) 。P点与图像坐标系的交点为P′, P′点在小孔摄像机模型下的图像坐标为 (xu, yu) , 由透镜畸变引起的实际图像坐标为 (xd, yd) 。

摄像机标定包括四个坐标系之间的转换:即计算机图像坐标系、图像平面坐标系、摄像机坐标系和基准坐标系 (世界坐标系) 。

(1) 计算机图像坐标系与实际图像坐标系之间的转换:

su、sv分别表示x、y轴方向上单位长度上的像素点数。

(2) 像平面坐标系与摄像机坐标系是中继坐标系, 在小孔摄像机模型下, 由共线方程可得两者之间的关系式:

(3) 摄像机坐标系与世界坐标系之间的转换关系可以用旋转矩阵R和平移向量t来表示, 世界坐标系记为XwYwZw。其关系式如下:

(4) 畸变模型:图像坐标系中实际图像坐标与理想图像坐标之间的转换关系:

主要的畸变误差类型有两种:径向畸变和切向畸变, 其中径向畸变是关于摄像机镜头主光轴对称的, 其数学模型[8]为:

式中:rd2=xd2+yd2, k1为径向畸变系数, (δxr, δyr) 为径向畸变坐标。切向畸变不是关于摄像机镜头的主光轴对称, 其数学模型[9]为:

式中:k2、k3为切向畸变系数, (δxt, δyt) 为切向畸变坐标。所以得到总的畸变模型:

1.2 双目摄像机标定模型

双目立体摄像测量系统与单目摄像测量系统的一个主要区别是, 除了每个摄像机的内部参数需要标定之外, 还要精确确定两个摄像机之间的相对位置。如图2所示 (这里未画出畸变效应) , 选定左摄像机作为世界坐标系。左、右摄像机相对于世界坐标系的旋转矩阵分别为R1、R2, 平移向量分别为t1、t2, 则两摄像机相对位置关系式[10]:

R21表示从右摄像机坐标系到左摄像机坐标系的旋转矩阵, t21表示从右摄像机坐标系到左摄像机坐标系的平移向量。

2 摄像机参数标定

需标定的参数为旋转矩阵R1, 平移向量t及三个畸变系数。本文提出的方法是通过求解线性方程组, 先计算出三个畸变系数, 再根据约束条件计算出旋转矩阵R, 最后求出平移向量t, 具体推导如下:

式 (5) 得:

(1) 求畸变系数:由式 (5) 可得到:

对于每一个标定点, 当已知其理想图像坐标及相应的实际图像坐标时, 可以列出一个如上的方程式。通过解超定线性方程组就可以得到k1、k2、k3。

(2) 求解旋转矩阵R和tz/f

将式 (7) 中等号右边的分子分母同除以tz/f, 令m=tz/f, X0=ftztx, Y0=ftzty[5], 其中X0和Y0是不考虑镜头畸变时, 三维世界坐标系的原点在图像坐标系中的投影, 通过整理即可得到以下矩阵形式的方程:

对每一个标定点, 当已知其三维坐标时就可以列出一个如上的方程, 式 (9) 中, 列向量的各个元素为未知数, 取6个标定点, 通过求解线性方程组, 可以计算出方程中的6个未知数, 但是为了使总误差减到最小, 取的标定点应该多于6个点, 按照最小二乘法[11]解出列矩阵。然后根据R中的矩阵约束条件, 进一步解出旋转矩阵R和m。

(3) 求解平移向量tx, ty

式 (7) 通过整理可得:

求解超定线性方程组就可以得到tx和ty。

(4) 求平移向量t和焦距f

由式 (7) 整理可得:

其中:M=r11Xw+r12Yw+r13Zw+tx, D=r21Xw+r22Yw+r23Zw+ty, N=r31Xw+r32Yw+r33Zw, 解以上线性方程组就可得到tz和f。

3 实验结果

双目立体测量系统实验设备:采用3 264×2 448像素的摄像机, 标定模板是一块具有20个同样大小方格的平面标定板, 大小为100 mm×80 mm, 如图3所示。利用Canny算子进行角点提取特征点, 并用Matlab实现。

(1) 标定实验

标定实验时, 手持标定板至少把标定板摆放在两个不同的位置, 在两幅图像中获得多于6对特征点, 最后得到左摄像机标定参数:

右摄像机标定参数:

左右两摄像机相对位置关系标定参数

(2) 将空间坐标点的实际空间坐标值与恢复后的三维空间坐标值进行比较, 利用绝对误差来表示实验精度, 如表1所示 (部分实验数据) 。

Xw、Yw表示真实三维坐标, X、Y表示标定后的三维坐标, 单位为mm。

本文提出的标定方法全面考虑了透镜的径向畸变和切向畸变, 当切向畸变较大时, 该标定方法的精度明显高于鲁新国等[5]提出的线性摄像机标定技术。文章的标定方法完全采用线性方法求解摄像机参数, 实验证明, 打接地孔[5], 这种接地方式屏蔽效果最好的。

串音现象在硬件系统中是难以完全消除的, 只能设法减小。本文只列出四种影响串音的因素, 实际上影响串音的因素很多。通过对这些因素的仿真分析, 可以得到如下几种减小串音的方法:

(1) 用平面作为返回路径, 尽量不要跨分割平面走线。

(2) 在布线空间允许的条件下, 尽可能增加信号线之间的间距。一般使线间距大于线宽三倍以上。可以使串音控制在5%以内, 这是个经验法则。

(3) 如果串扰要求严格, 信号隔离度要求比较高时, 可以采用信号线中间防护布线, 但是一定要在保护线两端或者整条线有多处接地孔。

(4) 尽量减小信号线的耦合长度。

(5) 良好的阻抗匹配可以大幅度减小串扰反射。

(6) 使用介电常数低的基板, 使用较小介电常数的材料可以使布线间距相同时的串扰减小, 或者对相同的串扰指标可以使其布线间距更小[6]。

摘要:利用透视变换原理建立双目立体摄像机数学模型, 全面考虑了镜头的径向畸变和切向畸变, 提出一种线性求解摄像机参数的标定方法, 改变了以往的摄像机标定依赖于非线性优化的缺点, 避免了非线性优化的不稳定性。该标定方法在单摄像机模型的基础上, 加入对双摄像机相对位置的确定, 通过成像过程中坐标系之间的转换, 较好地实现了双目立体摄像测量系统的标定。

关键词:摄像机标定,双目立体摄像,镜头畸变

参考文献

[1]CHANG C C, JI Y F.Flexible videogammeric technique for three-dimensional structural vibration measurement.Journal of Engineering Mechanics, 2007, 133 (6) :656-664.

[2]HU Jiuxiang, RAZDAN A, ZEHNDER J A.Geometric cal-ibration of digital cameras for3D cumulus cloud measure-ments[J].Journal of Atmospheric and Oceanic Technology, 2009, 26 (2) :200-214.

[3]SALVI J, ARMANGUE X, BATLLE J.A comparative re-view of camera calibration methods with accuracy evaluation[J].Pattern Recognition, 2002, 35 (6) :1617-1635.

[4]邱茂林, 马颂德, 李毅.计算机视觉中摄像机标定综述[J].自动化学报, 2000, 26 (1) :43-55.

[5]鲁新国, 王琰, 杨大为.基于计算机视觉的线性摄相机标定技术研究[J].沈阳理工大学学报.2007, 26 (5) :43-46.

[6]陈利红, 毛剑飞, 诸静.CCD摄像机标定与修正的简单方法[J].浙江大学学报 (工学版) , 2003, 37 (4) :406-409.

[7]高立志, 方勇, 林志航.立体视觉测量中摄像机标定的新技术[J].电子学报.1999, 27 (2) :12-14.

[8]TSAIRY.An efficient and accurate camera calibration tech-nique for3D machine vision[J].IEEE Transactions on Pat-tern Analysis and Machine Inteligence, 1986.364-374.

[9]WENG Y, COHEN P, HERNIOU M.Camera calibration with distortion models and accuracy evaluation[J].IEEE Transactions on Pattern Analysis and Machine Intelligence, 1992, 14 (10) :965-980.

[10]张辉, 张丽艳, 陈江, 等.基于平面模板自由拍摄的双目立体测量系统的现场标定[J].航空学报, 2007, 28 (3) :695-701.

摄像机的标定 篇5

近年来出现的很多三维输入设备, 它们广泛应用在娱乐、 机器人仿真、 医学、 工业等诸多领域, 如三维操作系统的输入设备、 各种游戏类、 模拟类虚拟场景的多维控制、 机器人主从控制系统、 飞行器仿真、 手术控制等。 提出了基于摄像机定标技术设计具有6自由度的3D输入设备即以棋盘的位置(x, y, z) 和(y, β, α) 方向(即姿态, 也就是绕X、 Y和Z轴的旋转角) 的坐标值作为3D输入设备的输入信号, 这种技术具有易于实现、 成本低、 无电磁辐射等优点。

2 3D输入设备的原理

2.1针孔模型

在张正友的Open CV标定算法中针孔模型被认为是所有的景物通过摄像机光轴中心点投射到成像平面的摄像机模型。 如图1所示, 其中Oc为摄像机的光轴中心点, F3为摄影机的成像平面。 成像平面上分布着感光器件, 将照射到该平面的光信号转变为电信号, 由小孔成像原理可知, 物体在成像平面上的像比例缩小, 上下和左右方向相反, 经过计算机数字图像的转换, 把成像平面F3等效成成像平面F2。

在摄像机的光轴中心建立笛卡尔坐标系, 设景物点P1的坐标为(x1, y1, z1), 且P1点通过投影中心的光线投影到图像平面F2上的成像点P2的坐标为(x2, y2, z2), 图像在X-Z平面上的投影如图2所示, 根据相似三角形原理, 得: x1/z1=x2/z2= x2/f, 同理得出: y1/z1=y2/z2=y2/f, 式中: f是摄像机的焦距, f= z2, 综合上述可计算出P2点与P1点的对应关系为:

为了使表达式线性, 采用齐次坐标表达:

2.2摄像机内参模型

公式(1) 是笛卡尔空间的景物点与成像点之间的关系, 为了获得摄像机拍摄到的图像与实际景物之间的关系, 必须要在针孔模型的基础上建立一个能够描述摄像机特性的内参模型。 由于成像平面上的像经过处理得到数字图像, 成像平面上的成像点(x2, y2) 转换成为图像点(u, v) , 将光轴中心线在成像平面的交点的图像坐标记为(u0, v0), 则有:

其中: αx和 αy分别为成像平面在X轴和Y轴方向的放大系数。

将式(1) 代入式(3), 得:

将式(4) 改成矩阵形式, 并将点P1在针孔模型中进行z1=1规范化投影, 进行归一化处理, 得到P1= (x,y,1), 则有:

式中kx=αxf是X轴方向的放大系数, ky=αyf是Y轴方向的放大系数, Min为内参矩阵。

2.3引入畸形

由于制造的原因, 制作一个数学理论的透镜是很困难的, 并且在安装方面也很难把透镜和成像仪保持平行, 所以对摄像机标定影响较大的畸变有来自透镜形状的径向畸变误差和来自摄像机组装过程引起的切向畸变误差。

对于径向畸变, 成像仪中点(光学中点) 的畸变为0, 随着向边缘移动, 畸变越来越严重, 可以用r=0位置周围的泰勒级数展开的前几项来定量, 描述径向畸变一般采用参数k1、 k2、 k3, 对于一般摄像头只参考k1、 k2, 成像仪某点的径向位置可以按式(6) 进行调整, 其(xcorrected, ycorrected) 为校正后的新位置。

对于切向误差主要是透镜本身与图像平面不平行而产生的, 主要考虑两个参数P1、 P2的影响, 可以按照式(7) 进行调整。

2.4摄像机外参模型

摄像机的外参模型是景物坐标系在摄像机坐标中的描述, 它包含了棋盘处于3D空间的具体信息, 如图1所示, 坐标系OwXwYwZw在坐标系OcXcYcZc中的表示, 根据任何维旋转也可以表达为坐标向量与合适尺寸的方阵的乘积, 可以构成的摄像机的外参数矩阵。

其中: (xc, yc, zc) 表示景物点在摄像机坐标系OcXcYcZc中的坐标; (xw, yw, zw) 是景物点在坐标系OwXwYwZw中的坐标; Mw是外参矩阵。

因为每一幅摄像机得到的特定物体的图像, 在摄像机坐标系统上用R表旋转矩阵, 根据在三维空间中, 旋转可以分解为绕各自坐标轴的二维旋转, 其中旋转轴线的度量保持不变, 那么假设依次绕X,Y,Z轴旋转的角度为 ψ,φ,θ, 那么总的旋转矩阵R是3个矩阵的乘积, 其中:

平移向量P= [PxPyPz] 用来表示将一个坐标系的原点移动到另一个坐标系的原点, 所以相应的平移向量等于目标原点减去摄像机原点。

2.5参数求解

回顾上述分析过程, 整个3D输入设备需要求解4个内参数(fx, fv, cx, cv) 和4个畸变参数———两个径向(k1,k2) 和两个切向(p1,p2), 由于内参直接与棋盘所在空间的三维相关(即外参数), 而畸变参数则与点集如何畸变的2D集合相关, 外参数直接包含了棋盘的3D位置信息。 首先所有的信息来源都是基于摄像机拍摄不同位姿的棋盘图片, 提取角点信息, 对比棋盘上的角点和其图像的对应点, 采用直接线性变换(DLT变换) 和最小二乘法确定摄像机的内参, 由于该步骤并不考虑透镜畸变的影响, 得到参数并不准确, 只能以这些参数为初始值, 然后采用Lecenberg-Marquardt算法建立数据拟合目标函数, 建立投影点间的距离之和进行非线形最小优化, 获取精确度更高的值, 最后得到了精确的内参以及畸形参数, 而外参的求解是建立在内参与畸形系数的基础上的, 外参的求解实质上就是对棋盘的相对摄像机坐标系的坐标值, 只有实时采集棋盘位姿的图片, 结合内参以及畸形系数, 方可求解外参。

3 3D输入设备的实现

本系统利用VC++6.0开发的基于Open CV1.0版本的3D输入设备, Open CV是Inter开放计算视觉函数库, 具有强大的图像和矩阵运算能力, 该函数库中有基于张正友提出摄像机求解内外参以及畸形的算法, 并且为各种应用平台提供了很好的接口, 具有很好的跨平台移植性。 3D输入设备根据功能需求, 软件界面设计主要有5大部分组成, 如图7所示, 摄像机参数设置单元、 提取照片单元、 摄像机标定参数设置单元、 3D参数输出单元、 图像显示单元。

首先, 准备一个棋盘, 棋盘方格大小25cm, 角点数目为6×7 (棋盘的参数可以根据需求自己设计), 如图4所示。 为了提高角点的提取成功率, 对棋盘黑白颜色要分明, 并且要在方格外围保留一个方块宽的白色区域, 这个棋盘一方面作为求解摄像机内参以及畸形的信息来源, 另一方面作为3D输入设备的信号输入。 3D输入设备流程模块如图3所示, 主要步骤为两个部分, 第一步骤主要是进行摄像机定标:

(1) 采集图片: 通过摄像机抓取十几张不同位置的棋盘图片, 然后对图片进行灰度变换, 由于采用最小二乘法, 抓取图片越多, 得出的结果就越精确, 采用12张图片, 如图5所示。

( 2) 提取角点: 分别用Open CV函数库中的cv Find- Chessboard Corners() 对12张图片进行角点检测, 如图5所示, 若是提取角点数目与设定的角点数目相同, 表示提取成功, 通过cv Find Corner Sub Pix( ) 计算棋盘所有角点的信息, 如图6所示。

(3) 计算内参、 畸形系数: 将上一步计算角点的信息代入cv Calibrate Camera2(), 最后得到摄像机的内参矩阵, 畸变系数, 并进行保存成XML文件。

第二步骤主要对棋盘的空间位姿进行实时计算:

(1) 首先加载摄像机的内参矩阵以及畸形系数 。

(2) 摄像机定时采集棋盘图片, 然后进行灰度处理。

(3) 用cv Find Chessboard Corners() 对图片进行角点提取, 若是检测角点的数目与设定的角点数目相同, 表示提取成功, 通过cv Find Corner Sub Pix() 计算出角点的坐标信息, 若不成功, 返回第二步, 如图6所示。

(4) 将计算出角点的坐标信息, 以及加载的内参矩阵、 畸形系数代入cv Find Extrinsic Camera Params2() 函数, 计算出棋盘绕坐标轴旋转的旋转矩阵R以及摄像机坐标系中棋盘原点的平移向量P。

(5) 最终把旋转矩阵R以及平移向量P的内部参数提取, 转换成棋盘的6个自由度信息, 即位置(x, y, z) 和(y, β, α) 方向信息。

4实验

根据上述摄像机标定原理以及开发步骤, 程序经过严格测试, 运行稳定, 没有出现内存泄露, 计算一组12幅像素640×480的图像, 每幅图片的角点全部检测成功, 计算得到的摄像机参数如下所示:

焦距:

基准点:

畸形系数:

为了验证基于标定技术的3D输入设备的各种性能指标, 利用3D仿真技术专门设计了一个地球仪, 如图7所示, 通过配置相关系数, 把棋盘的空间坐标值x, y对应地球仪平面二维运动的情况, 空间坐标值z表示地球仪的缩放情况, 其中棋盘绕X, Y, Z轴旋转角度分别代表地球仪三维旋转的姿态, 这样可以很直观地观察3D输入设备系统的运行情况并进行调试, 测试环境是, 光线条件良好, 摄像机是普通网络摄像头, 由于摄像机的视角不大, 所以棋盘的活动范围不可以过大, 这种3D输入设备沿X, Y轴方形的旋转范围为-80°~ 80° , 沿Z轴的旋转角度范围为0°~ 360° , 角度误差为 ±2° 。 深度感应范围(即棋盘离摄影机的距离) 为40~210cm, 误差约为±2cm, 由于X、 Y轴感应范围取决于深度感应, 具体请参考表1。 从数据分析可知, 这种基于摄像机标定技术的3D输入设备能够保持很好的单调性, 并且误差也在合理的应用范围之内。

5结语

经过实验分析, 这种基于Open CV平台开发的3D输入设备对光线强度依赖性强, 同时棋盘活动范围有限, 但是运算效率高, 程序稳定可靠, 除了准确提供输入设备在三维坐标系中的位置和姿态的6个自由度信息外, 还克服可传统机械式。 光电式输入设备的缺点, 相信这种以棋盘的位姿作为3D输入设备的输入将会拥有广阔的运用前景。

摘要:介绍一种基于摄像机标定技术的3D输入设备的原理,采用微软研究院的张正友提出基于移动平面模板的摄像机标定方法,分析计算机视觉函数库Open CV中的摄像机模型;对比棋盘上的角点和其图像的对应点,利用直接线性变换以及最小二乘法来求解摄像机的内参、畸形系数;通过摄像机实时采集不同位姿的棋盘图片,运用空间解析几何,计算出棋盘的位姿。实验结果表明,把棋盘的位姿转化成3D信号输入,可用于虚拟现实系统的3D交互设备,并具有良好的稳定性和准确性,可满足3D输入设备的需求。

摄像机的标定 篇6

摄像机标定作为计算机视觉领域的一个重要课题,人们已经对其进行了较多的研究[1,2,3,4],但是多数在实验室进行的研究,对所拍摄的标定图像的质量要求较高。所以,在某些实际场景中,可能拍摄得到的图像质量并不理想,比如使用CMOS相机进行机器视觉测量,或者室内暗光场景下进行3D视频的多相机采集等。图1a是在理想照明状况下拍摄到的模板细节,而图1b是在非理想状态下拍摄到的细节。可以观察到,非理想状态下图像噪声较严重,必然对标定过程中细节特征提取造成影响,最终影响标定精度。基于2D模板的方法是当前实际应用最频繁的方法之一,然而此方法对特征提取的依赖性较强,所以不良的图像质量导致了基于2D模板方法的稳健性下降。而且2D模板方法可能因为模板的旋转,使得计算机对图像理解错误,导致计算机提取的角点坐标与实际的角点坐标误匹配,如图2所示。

本文提出一种新的标定物设置方法,并且颜色特征提高特征提取的自动化和准确性,以提高标定结果的准确度。

2 标定方法类别

现有的多数关于摄像机标定的研究是基于标定物参照物的标定,根据标定物体的维度,它们可以大体被分作3类:

1)基于3D标定参照物的标定方法

相机所拍摄的3D标定物,必须在3D空间中具有精确的尺寸信息和位置信息,此方法的标定效率比较高[3]。3D标定物通常是由2个或者3个相互正交的平面构成。某些时候也采用对1个平面进行精确的可知平移后,多次进行拍摄的方法达到构建3D标定物的目的。而这种方法,对于设备的要求极高,需要精确控制尺寸,并且进行精密的事先设置。

2)基于2D标定参照物的标定方法

此类方法要求对1个2D模板从不同的角度和位置进行多次拍摄[4],不同于Tsai的方法,2D模板相对于摄像机的移动信息并不是必要的。因此,此种方法相对3D标定参照物法,易于实现。但是在某些场景中,稳健性、稳定性不够好。

3)基于1D标定参照物的标定方法

理论上1D标定物是空间中一条线段上的端点,一般来说是由1根棒状物体,并在直棒上附加球形标记构成。在拍摄标定图像的过程中,1D标定物的一端要求固定不变,改变直棒的姿态,进行多组拍摄,然后对图像进行识别,获得特征信息,进行闭式求解,并用非线性方法优化。在某些场景下,此法的精度不及2D标定精度,但是可以满足一些特殊需求,比如,两相机的基线长度极大,而且光轴夹角大于90°的情况下。此方法在理论上填补了标定物维度从3D到1D的空白环节[5]。

不管是哪一种分类,最终都是为了求解特定相机所确定的由世界坐标到图像坐标的映射关系

式中:W为世界坐标,是一个4行1列齐次坐标;m是一个3行1列齐次坐标;P是一个3行4列矩阵。

3 标定物构建与后测量策略

因此,为提高识别精准度、降低相对测量误差,提出一种新的标定参照物构建方法,并且在测量中使用后测量策略。构建完成后的标定物如图3所示。所有特征可以由普通彩色打印机打印,特征由1个圆环和1个2×2的黑白方格阵构成,圆环半径任意设定,黑白方格阵的中心处于圆环的圆心位置。特征被固定在一个尽可能大的平板之上,图3中的平板大小为1.4 m×1.2 m,首先固定红、绿、蓝三色特征,3个特征尽量彼此保持最大距离,如此3个特征构成三角形,然后,可以用普通卷尺测量3个顶点之间的距离,本实验所用的卷尺最小刻度为0.5 mm。然后,在3个顶点的中点位置,安置3个黑色特征,除了颜色为黑色之外,构造方法与彩色特征一致。

在确定标定物的尺度时,采取了后测量策略。由于前文提到的打印机误差问题,预设的尺度值总是与实际尺度值之间有误差,为改进此问题,标定物尺寸的确定被放在标定物构建完成之后进行。前文提及,使用普通标尺即可进行测量,且最小刻度为0.5 mm的标尺可以保证测量每个边长的误差小于0.5 mm。因此,比较棋盘模板与本文模板,当棋盘模板横轴总长度为43.75 mm时,相对误差为0.009,若本文标定物中三角形边长为43.75 mm时相对误差为0.011。但是,随着标定无尺度变大,本文标定物相对误差小的优势逐渐显现,如表1所示,相对误差的下降曲线对比如图4所示。

所以,通过相对误差对比可以观察得知,通过后测量策略可以有效降低相对误差。本质上是因为新参照物中特征之间的距离远大于棋盘模板特征点之间的距离,因此相对误差被减小。这样增强了在不同环境、不同设备条件下构建标定参照物的稳健性。

4 RGB空间信息辅助特征检测

前文提及在棋盘特征点检测的时候,有可能因为大角度旋转引起特征点对应错误,为解决此问题,引入了RGB颜色信息来辅助特征点检测,提高检测成功概率。从图5可以观察得知,在世界坐标系中的3种颜色特征分别对应了图像平面上的3种颜色特征,由此不论标定物如何旋转,只要在RGB空间中能对特征进行分别检测,就可以保证特征点的一一对应,解决了棋盘模板在大旋转情况下可能出现误差的问题。但是,由于光学三基色与印刷三基色不同,所以打印出的颜色圆环并非纯正的红绿蓝三色,比如,在红色圆环中,会混有蓝色和绿色分量。为了红绿蓝三色特征分别被检测出来,需要在每个区域根据采样的概率密度设定三分量的不同门限,以达到提高检测概率,降低虚警概率的目的。

首先,针对不同的照明强度与场景条件,需要对图像的全局亮度进行估计,经过多组实验,得到全局亮度估计

式中:Af为镜头的光圈尺寸;Tex表示曝光时间;Pl表示外部照明强度值;k(n)为图像传感器响应函数。得到全局亮度后,图像被下面的公式重新归一化

式中:In表示归一化后的亮度值;Imax表示最大实验亮度;Er,g,b(x,y)表示每个像素的RGB分量;Qr,g,b表示R,G,B分量的加权因子,在实验中得到,当Qr=0.49,Qg=0.90,Qb=0.65时,实验效果较好。

由前文所述对多个像素点进行采样统计得知,各个分量的亮度值基本服从正态分布

式中:yj表示采样点的亮度值;mr,g,b为R,G,B分量的均值。若要提高检测概率,则需要最大化,公式为

式中:Dr,g,b表示红绿蓝中某一个特定颜色特征的出现概率;H1表示备择假设;H0表示零假设。因此,式(5)被重写为

式中:Tacc为接受门限;Trej为拒绝门限。经过实验得到,当Tacc=80.1,Trej=39.8,Pr达到最大值,当使用以上2个门限值对特定颜色特征进行检测时,虚警概率可以保证小于0.01。对于三基色检测之后得到的椭圆环的检测,参考了方法[6,7,8]。检测结果如图6所示。有色圆环带状区域中的白色曲线即检测到的椭圆曲线,中心的白色“o”标志,为椭圆的中心位置或者称椭圆两焦点的中点。可以看出,检测的效果较好,椭圆中心位置与特征中心的位置吻合较好。但是,仍可以看出,椭圆中心与实际特征中心点有微小差距,下面将以椭圆检测的结果为初始值,通过中心的二次检测,提高中心特征点检测精度。

椭圆检测后,得到的椭圆中心与实际特征中心吻合较好,仅有微弱差异,因此可以以检测到的椭圆中心为基础,在其周围进行中心二次检测,检测方法采用了改进的Harris角点检测方法。对于特征中心的定位可以达到亚像素精度,即定位误差小于0.1像素。

5 标定的求解

由此,特征点在图像中的坐标可以准确得到。又根据前文所述的后测量方法,得到各个点之间的距离,根据简单的三角关系可以得到特征点在世界坐标中的位置坐标,而经过特征检测后,得到了特征点的图像坐标,因此,根据以上两组数据可以求解世界坐标到图像平面之间的投影关系[3]。为了进一步提高精度,可以使用线性求解的结果作为初始值,进行非线性优化,比如使用Levernberg-Marquardt方法。

6 实验与分析

为验证标定的可行性,进行了多组实验。对单个相机进行标定后发现,反投影误差90%,小于0.1像素,如图7所示。而且与棋盘方法相比,标准差与反投影误差都有所减小。表2至表5分别为采用棋盘模板法与本方法的实验结果,可以发现,本方法相对前方法反投影误差减小,而且稳定性有所提高。如果采用多组图像进行标定,随着图像组数增加,标定结果的稳定性也会进一步增强,精度也有所提高。

7 结论

分析当前2D参照物标定法的不足之后,笔者提出了一种引入RGB空间信息辅助进行特征检测的、后测量的标定方法,并且分别阐述了标定物的构建方法和后测量策略的原理,并用独立实验证明特征检测的有效性与稳健性。最后,用实验验证了相机标定效果,实验证明,误识别的可能性被大大降低,反投影误差小于传统棋盘模板方法,而且多组实验结果对比证明本方法的稳定性较高。

参考文献

[1]TSAI R Y.A versatile camera calibration technique for high-accuracy3D machine vision metrology using off the-shelf cameras and lens[J].IEEE Robotics and Automation,1987,3(4):323-344.

[2]STURM P,MAYBANK S.On plane-based camera calibration:a generalalgorithm,singularities,applications[C]//Proc.IEEE Conference onComputer Vision and Pattern Recognition.Fort Collins,Colorado:IEEEPress,1999:432-437.

[3]FAUGERAS O,LUONG Q T.The geometry of multiple images:the lawsthat govern the formation of multiple images of a scene and some of theirapplications[D].Cambridge,MA:MIT,2001.

[4]ZHANG Z.A flexible new technique for camera calibration[J].IEEETransactions on Pattern Analysis and Machine Intelligence,2000,22(11):1330-1334.

[5]FRAN A J A,MARCELO S R,FRAN A M B,et al.Revisiting Zhang's1D calibration algorithm[J].Pattern Recognition,2010,43(3):1180-1187.

[6]O'MALLEY R,JONES E,GLAVIN M.Rear-lamp vehicle detectionand tracking in low exposure color video for night conditions[J].IEEETransactions on Intelligent Transportation Systems,2010,11(2):453-462.

[7]KAKUMANU P,MAKROGIANNIS S,BOURBAKIS N.A survey ofskin-color modeling and detection methods[J].Pattern Recognition,2007,40:1106-1122.

摄像机的标定 篇7

机器视觉研究的主要内容之一是像机标定,即根据摄像机获取的图像信息解算物体在三维空间中的几何信息,而这些几何对应关系是由摄像机成像模型决定的,这些几何模型参数即摄像机参数,求解这些参数的过程即摄像机标定过程。因此在物体空间位置、姿态的测量过程中,像机标定是重要且必不可少的一环,是一个非常复杂的非线性最优化问题。

现有的摄像机标定技术大体可以归结为两类:传统的摄像机标定方法和摄像机自标定方法。传统摄像机标定存在经常性调整摄像机和设置已知的标定参照物的要求自标定具有灵活方便的优点,但一般精度不太高,鲁棒性不足[1,2,3]。

本研究探索粒子群算法优化摄像机标定的过程,辅助实现物体模型姿态测量。粒子群优化算法(Particle Swarm Optimization,简称PSO)[4]源于对鸟群捕食行为的研究,是近年来发展起来的一种新的进化算法,是一种基于迭代的优化工具,算法实现过程中没有交叉变异操作,以粒子对解空间中最优粒子的追随进行搜索。PSO的优点在于流程简单、容易实现,算法参数简洁,无需复杂的调整。由于该算法结构开放、便于运算,并且易与具体问题结合、鲁棒性强,成为解决工程实际问题的一种有效方法[5]。

1 粒子群算法原理

粒子群优化算法与其他进化类算法相类似,也采用“群体”与“进化”的概念,同样也是依据粒子的适应值大小进行操作。将每个个体看作是n维搜索空间中的一个没有重量和体积的微粒,并在搜索空间中以一定的速度飞行。该飞行速度由个体的飞行经验和群体的飞行经验进行动态调整[6,7]。

假设:

Xi=(xi1,xi2,xi3,…,xin)为粒子i的当前位置;

Vi=(vi1,vi2,vi3,…,vin)为粒子i的当前速度;

Pi=(pi1,vi2,vi3,…,vin)为微粒i所经历最好适应值的位置。对于最小化问题,目标函数值越小,对应的适应值越好。

本研究设f(X)为最小化的目标函数,则粒子i的当前最好位置由下式确定:

undefined

设群体中的微粒数为s,群体中所有粒子所经历过的最好位置为Pg(t),称为全局最好位置。则:

Pg(t)∈{P0(t),P1(t),P2(t),...,Ps(t)}|

f(Pg(t))=min{f(P0(t)),f(P1(t)),f(P2(t)),…,f(Ps(t))} (2)

基本粒子群算法的进化方程可描述为:

vij(t+1)=ωvij(t)+c1r1j(t)(Pij(t)-xij(t))+c2r2j(t)(Pgj(t)-xij(t)) (3)

xij(t+1)=xij(t)+vij(t+1) (4)

式中:下标“j”—粒子的第j维;“i”—第i个粒子;t—粒子的第t代;c1—粒子跟踪自己历史最优值的权重系数,又叫认知系数;c2—粒子跟踪群体最优值的权重系数。通常,c1和c2通常在0~2间取值;ω—惯性权重系数,以实现对微粒飞行速度的有效控制与调整。

ω越大,则微粒的飞行速度越大,并以较大的步长进行全局探测;ω越小,则微粒的速度步长越小,趋向于进行精细的局部搜索。Shi and Eberhart等人经过实验发现,ω∈[0.9,1.2]时,算法具有较理想的搜索性能。另外,在搜索过程中可以对ω进行动态调整,调整合适的ω从而使算法有较大的几率以一定精度收敛于全局最优解[8]。

基本粒子群算法的流程如下:

(1)依照初始化过程,对微粒群的随机位置和速度进行初始设定;

(2)计算每个微粒的适应值;

(3)对于每个微粒,将其适应值与所经历过的最好位置Pi的适应值进行比较,若较好,则将其作为当前的最好位置;

(4)对每个微粒,将其适应值与全局所经历的最好位置Pg的适应值进行比较,若较好,则将其作为当前的全局最好位置;

(5)根据方程式(3)和式(4)对粒子速度和位置进行进化;

(6)如未达到结束条件(通常为足够好的适应值或达到一个预设最大代数),则返回(2)。

2 面阵摄像机模型及标定解算原理

由于CMOS摄像机在机器视觉领域已得到普遍应用,下面以CMOS面阵摄像机模型为例介绍其成像模型及算法。三维世界坐标系投影到成像平面模型,如图1所示,即经4种变化将三维世界坐标系点Pw转化为二维图像坐标系点(r, c):

(1)世界坐标系(WCS)点Pw=(xw,yw,zw)刚性变换到摄像机坐标系(CCS)中,对应点Pc=(xc,yc,zc),关系为:

Pc= RPw+ T (5)

式中:T—平移矩阵,T=(tx,ty,tz);R—旋转矩阵。

(2)摄像机坐标系(CCS)点Pc投影到成像平面坐标系中(IPCS)为点 (u,v),投影关系:

(3)由于镜头存在畸变,修后投影点坐标为:

undefined

(4)转化到图像坐标系(ICS)中为点(r,c):

undefined

(5)标记中心点坐标mi与上述投影计算的坐标undefined之间距离最小化:

undefined

式中:(f,k,cx,cy,sx,sy)—摄像机内参,(tx,ty,tz,α,β,γ)—摄像机外参, n—标志点数目,mi—提取出的标志点中心坐标,undefined—通过投影计算的坐标。

本研究使式(10)最小化求标定相机的参数,这是一个复杂的非线性最优化问题[9,10],因此需要为这些参数提供更好的初始值,其中摄像机内参初始值一般可以在图像传感器以及镜头说明书中得到。但摄像机外参一般很难得到,可以通过几何学以及标定标记投影得到椭圆尺寸来得到一个较好初始值。

3 非线性优化粒子群程序设计

本研究采用通过单目视觉系统测量得到的像素坐标作为参考信息,粒子群算法利用C语言编程计算得到像素坐标进行校准,首先定义以下函数:

世界坐标系(WCS)中某点Pwi=(xwi,ywi,zwi)undefined图像坐标系(ICS)中点(ri,ci):

undefined

式中:ri0,ci0—第i个标志点通过单目视觉系统测量得到的像素坐标;ri,ci—利用C语言编程计算得到像素坐标;下标k—粒子群算法对靶体模型的位姿(txk,tyk,tzk,αk,βk,γk)进行第k次搜索。

粒子群算法程序流程[11]如图2所示。

在进行搜索的过程中,需要设定一个结束条件,这里设定一个大于而趋于0的数ε。当undefined时,依据速度位置更新公式继续搜索,直到undefined时,认为搜索到外部参数为此时(txk,tyk,tzk,αk,βk,γk)。

4 实验与分析

基于上述原理和流程,本研究利用C语言设计相应PSO算法,其中摄像机内参如表1所示,靶体上的点坐标及对应点的像素坐标如表2所示,c1=1.7,c2=2.5,动态权重系数w1设置在[0.4,0.9]范围内,微粒个数为50,6个外参搜索范围可根据像机视野大小和标定板与摄像机的相对位置进行估计,本例中,(tx,ty,tz,α,β,γ)搜索范围为([-0.2,0.2],[-0.2,0.2],[0.5,1.5],[300,360],[300,360],[180,270]),长度单位为米,角度单位为度。搜索速度分别为(0.01,0.01,0.01,0.01,0.01,0.025),ε=0.001,本研究运用PSO程序求解,优化算出结果摄像机外参如表3所示。

该结果在表1、表2 作为已知,通过商业软件Halcon设计编写相应标定程序进行验证,验算结果与表3对比误差为0.035 1,证明了该算法的有效性和正确性。

5 结束语

通过PSO算法,本研究能快速优化出摄像机标定过程外参,并通过矩阵转换计算出靶体模型的位姿。在应用时,可以设计循环程序直接计算出每次的姿态并能达到一定精度,本研究提出的PSO优化算法可以直接确定摄像机外参,即靶板相对摄像机的初始位姿的确定。同时对汽车车轮定位、航天航空等领域位置及姿态的测量提供了理论依据,具有重要的参考价值。

参考文献

[1]王春雷,朱劲.一种非线性摄像机标定方法[J].电脑知识与技术,2008,4(7):1728-1729,1732.

[2]沈慧杰.基于单目视觉的摄像机定位方法的研究[D].长春:吉林大学交通学院,2009.

[3]曾建兰.摄像机标定若干问题的研究[D].上海:华东师范大学电子科学技术系,2008.

[4]EBERH ART R C,SH I Y.Particle swarm optimization:developments,applications and resources[C]//Proceed-ings of IEEE Congress on Evoluti0nary Computation.Piscat-away NJ:IEEE Press,2001:81-86.

[5]周驰,高海兵,高亮,等.粒子群优化算法[J].计算机应用研究,2003(12):7-11.

[6]LOVBJERG M,RASMUSSEN T K,KRINK T.Hybrid par-ticle swarm optimization with breeding and subpopulations[C].San Francisco,USA:Proc of the Third Genetic andEvolutionary Computation Conference,2001.

[7]KENNEDY J,EBERHART R C.Particle Swarm Optimiza-tion[C]//Proceedings of IEEE International Conference onNeutral Networks.Perth,Australia:[s.n.],1995:1942-1948.

[8]曾建潮,介婧,崔志华.微粒群算法[M].北京:科学出版社,2004.

[9]STEGER C,ULRICH M,WIEDEMANN C.Machine VisionAlgorithms and Aplications[M].wiley-VCH,2008.

[10]张铖伟,王彪,徐贵力.摄像机标定方法研究[J].计算机技术与发展,2010(11):174-179.

上一篇:岩土控制变形分析法下一篇:基础形式比较