基于OpenCV的摄像机标定

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

 万方数据

K,乙)变换为摄像机坐标系中的坐标值只(疋,K,乙)如下

㈧…=㈠M㈤(2)将坐标值只(冠,K,zc)在针孔模型中进行规范化投影,得

只=[妻甜引∽(3)引入透镜的畸变,畸变后的规范化坐标值可以用雎如砌

阱Xdc,峨‰叫州黝;篙]㈤

将Pd(xa,ya)转换为图像上像素坐标系上的坐标值B(“,访

f吲:时‰(4)

够可=f/.劬sx/咖(5)像素之间的有效距离(mm/pixel);dpy为计算机图像在垂直方向

换)方法计算出摄像机的内部参数和外部参数的初值Ⅲ。该步虑透镜畸变的影响,得到的参数值并不准确。不过作为下一

数据拟合目标函数““如式6所示。既要将图像上Ⅳ个角点的坐标值(U,K)(f=1,…朋拾取出来,还要利用上述畸变模型计算出这Ⅳ个标志点的坐标值(‰vJ)(f=1,…朋,然后利用式6进行数

转化为求解非线性最小二乘的问题,通过非线性优化算法“”多次迭代,最后得到使目标函数的值最小的参数值,降低了求解难度。迭代的初值由第①步的DLT方法算出,DLT方法不

2基于OpenCV的摄像机标定

基于OpenCV的摄像机标定采用平面棋盘格标定模板,一198一

为了提高角点提取的成功率,在标定方块的外围,还要求保留一个方块宽的白色空白区域,如图1所示。摄像机只需在不同的角度抓取几张平面标定模板的图片,就可以实现对摄像机的标定。显然,由于采用最小二乘法,抓得图越多,标定的结果就越精确。

图1平面棋盘格标定模板

虽然OpenCV中自动寻找角点函数提取角点的成功率很高,但是若碰到光线被遮挡等情况,使得标定模板上的标定块在图像上不清晰或提取的角点数目与设定的数目不相符的状况,就会导致角点提取失败,如图2所示:因此OpenCV并不保证能够提取所有图像上的角点。所以在设计标定算法时必须要考虑角点不能被提取的情况:一方面,如果角点提取成功的图过少,则标定出来的结果就不一定能满足精度的要求,需要重新采图;另一方面,由于摄像机外部参数的个数与标定图像的个数相关联,所以在最后计算标定结果时,应将提取角点失败的图像舍弃,再根据剩下图像的数目,动态地分配参数在内存中的储存空间,如果没有这么一个筛选的过程,盲目得在内存中分配参数的储存空间,则在提取角点失败的图像上,不能找到与角点在世界坐标系中的坐标值相对应的像素坐标系上的坐标值,在这种情况下强行计算的话,很容易出现程序报错,得不到标定结果的情况。因此,本文提出以下摄像机标定算法:

(1)读取一组标定用图像数据;

(2)用cvFindChessboardComers()筛选图像;将读入的一组图像数据分别代入cvFindChessboardComers0函数,如果返回值是1,则表示在该幅图像上提取的角点数目和设定的相同,提取角点成功;若为0,则表示角点提取失败,该幅图要抛弃;

(3)如果可用的标定图的数目满足设定的最少标定用图的数目,继续步骤(4);否则,则应重新采图,返回步骤(1);

(4)根据筛选剩下图像的数目用cvCreateMat0为摄像机的内外部参数、角点在世界坐标系的坐标值以及在图像坐标系中的坐标值分配内存存储空间;

(5)将筛选剩下的图像代入cvFindChessboardComers0,得到角点在图像像素坐标系中坐标值;再将图像和得到的图像像素坐标系中坐标值代入FindComerSubPix()函数,进一步精

(a)角点提取失败(b)角点提取成功

图2角点提取图像

 万方数据

确得到角点亚像素级的坐标值;

(6)将角点在世界坐标系的坐标值以及在图像坐标系中的坐标值代入cvCalibrateCamera20函数,最后得到摄像机的内外部参数值;

(7)最后注意要用cvReleaseMat0函数释放cvCreateMat()函数分配的内存空间,防止内存泄露。

3实验结果

根据上述标定原理和开发步骤,在Windows2000pro平台下利用VC++6.0开发了一个基于OpenCVbeta5版本的摄像机标定程序,程序界面如图3所示。程序经过严格测试,运行稳定,没有出现内存泄露的情况,寻找角点成功率高,标定一组9幅768x512像素的图像,用时O.3秒,可以达到实用的要求。

图3标定程序界面

为了验证该标定程序的标定结果,利用文献[12】中的图像数据进行标定,并将计算得到的结果与文献[12]中提供的基于相同原理的标定程序得到的标定值进行比较。比较结果如表1所示,其中计算值表示本文程序计算的值;给定值为文献[12】中程序的计算值。从表中可以看到,两者的值是非常接近的。

4结束语

利用OpenCV开发的摄像机标定程序具有标定结果精确、运算效率高、跨平台移植性好等特性,可以有效地应用于基于增强现实的机器人遥操作系统和其它计算机视觉系统应用中。

参考文献:

[1]邱茂林,马颂德,李毅.计算机视觉中摄像机定标综述[J].自动化学报,2000,26(1):43—55.[2】ChunyuGao,HongHua,AhujaN.Easycalibrationofahead-mountedprojectivedisplayforaugmentedrealitysystems[C].ProceedingsIEEEVirtualReality,2003.53—60.

[3]GibsonS,CookJ,HowardT,eta1.Accuratecameracalibrationforoff-line,video—basedaugmentedreality[C].ProceedingsoftheIEEEandACMInternationalSymposiumonMixedandAugmentedReality,2002.37-46.

【4】DavidAForsyth,JeanPonce.计算机视觉——一种现代方法[M].北京:电子工业出版社,2004.

[5】RashmiSundareswara,SchraterPR.Bayesianmodelingofca—meracalibrationandreconstruction[C].ProceedingsFifthInter-nationalConferenceon3-DDigitalImagingandModeling,2005.394.401.

[6]RodriguezT,SturmP,WilczkowiakM,eta1.VISIRE:Photorea—listic3Dreconstructionfromvideosequences[C].ProceedingsIntemationalConferenceonImageProcessing(03CH37429),2003.

[7]Jean—YvesBouguet.CameracalibrationtoolboxforMatlab【DB/OL].2004.http://www.vision.caltech.edu/Bouguetj/calib_doc.[8】ZhangZ.Aflexiblenewtechniquefor

cameracalibration[J】.IEEETransactionsonPatternAnalysis

andMachineIntelli—gence,2000,22(11):1330-1334.

[9]赵小松.摄像机标定技术的研究[J].机械工程学报,2002,38(3):149.151.

【10】毛剑飞,邹细勇,诸静.改进的平面模板两步法标定摄像机[J】中国图象图形学报,2004,9(7):846-852.

[11]Jean.YvesBouguet.Visualmethodsforthree—dimensionalmode.1ing【D].Pasadena,Califomia:CaliforniaInstituteofTechno-logy,1999.

[12]VezhnevetsVladimirakaDeadMoroz.OpenCVandMatLabcameracalibrationtoolboxesenhancement[DB/OL].2005.http://graphics.CS.msu.su/en/research/calibration/.

[13】刘明晶,叶懋冬,刘国栋,等.一种基于视觉感知的图像质量评价方法[J].计算机工程与设计,2005,26(2):470-472.

[14】李斌,史忠科.基于计算机视觉的行人检测技术的发展[J】.计算机工程与设计,2005,26(10):2565-2568.

[15]黄楠,刘光昌.基于LabVIEW的PCBA计算机视觉检测系统[J].计算机工程与设计,2005,26(10):2783-2784.

表1标定结果

第1组数据第2组数据第3组数据

相机参数.9x768×51214x320x2407X320x24

计算值给定值计算值给定值计算值给定值』1056.474l056.566411.619411.634401.241401.249

Z1045.054l045.191409.638409.676400.80l400.811

U0339.479339.533133.257133.239174.231174.20l

v0182.205181.946110.74l110.688121.564121.577

k1.O.131258—0.13165l0.0711320.07l

6040.0913850.09158l恕0.0907950.0927240.0049860.004764.O.215481—0.218500

岛.O.005815.0.005889.0.014430.O.014532.0.003153.0.003121

k.0.007832.0.007818.O.019006.O.0190320.0099110.009859

—199— 万方数据

相关文档
最新文档