当前位置:文档之家› 基于OpenCV的摄像机标定的应用研究

基于OpenCV的摄像机标定的应用研究

38562009,30(16)计算机工程与设计Computer Engineering and Design0引言机器视觉的基本任务之一是从摄像机获取的图像信息出发计算三维空间中物体的几何信息,并由此重建和识别物体,而空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系是由摄像机成像的几何模型决定的,这些几何模型参数就是摄像机参数。

在大多数条件下,这些参数必须通过实验与计算才能得到,这个过程称为摄像机标定(或定标)。

标定过程就是确定摄像机的几何和光学参数,摄像机相对于世界坐标系的方位。

标定精度的大小,直接影响着机器视觉的精度。

迄今为止,对于摄像机标定问题已提出了很多方法,摄像机标定的理论问题已得到较好的解决[1-5]。

对摄像机标定的研究来说,当前的研究工作应该集中在如何针对具体的实际应用问题,采用特定的简便、实用、快速、准确的标定方法。

OpenCV是Intel公司资助的开源计算机视觉(open source computer vision)库,由一系列C函数和少量C++类构成,可实现图像处理和计算机视觉方面的很多通用算法。

OpenCV有以下特点:(1)开放C源码;(2)基于Intel处理器指令集开发的优化代码;(3)统一的结构和功能定义;(4)强大的图像和矩阵运算能力;(5)方便灵活的用户接口;(6)同时支持Windows和Linux平台。

作为一个基本的计算机视觉、图像处理和模式识别的开源项目,OpenCV可以直接应用于很多领域,是二次开发的理想工具。

目前,OpenCV的最新版本是2006年发布的OpenCV 1.0版,它加入了对GCC4.X和Visual 2005的支持。

1摄像机标定原理1.1世界、摄像机与图像坐标系摄像机标定中有3个不同层次的坐标系统:世界坐标系、摄像机坐标系和图像坐标系(图像像素坐标系和图像物理坐标系)。

如图1所示,在图像上定义直角坐标系开发与应用梅迎春,王朝立,廖勤武:基于OpenCV 的摄像机标定的应用研究2009,30(16)3857素为单位的图像坐标系坐标,(X ,Y )是以毫米为单位的图像坐标系坐标,XY 坐标系中,原点在透镜光轴与图像平面的交点。

若,每一个像素在X 轴和Y 轴方向上的物理尺寸为dX ,dY ,则图像中任意一个像素在两个坐标系下有如下关系1101(1)摄像机成像几何关系如图2所示。

轴轴为摄像机光轴,与图像平面垂直。

光轴与图像平面的交点,即为图像坐标系的原点。

由点、轴组成的直角坐标系称为世界坐标系。

1为摄像机焦距,,1),他们之间的关系如下1X w Y wZ w 1ÔÚͼÏñÖеijÉÏñλÖÿÉÒÔÓÃÕë¿×³ÉÏñÄ£ÐͽüËÆ±íʾ£¬¼´Èκε㣬Ϊ¹âÐĵãÁ¬ÏßÓëͼÏñÆ½ÃæµÄ½»µã£¬Ò²³ÆÎªÖÐÐÄÉãÓ°Óë͸ÊÓͶӰ¡£ÕâÖÖͶӰ¹ØÏµ¿ÉÓÃÆë´Î×ø±êºÍ¾ØÕó±íʾ=00010(3)式中:(X ,Y )——,——空间点——摄像机焦距,点坐标与其投影点1=M 1M 2X w =MX w (4)式中:/,/,分别是轴上的尺度因子;1由y、决定,只与摄像机内部参数有关,称为摄像机内部参数;==x、1、1、576;输出画面分辨率:64010,角点数81个。

采用Windows XP 操作系统和Visual Studio 2005软件平台,开发了基于OpenCV 的标定程序。

标定程序的流程如图3所示。

标定程序中创建的单张图片的世界坐标数据,格式为三维,一共81组,243个。

每3个数据表示一个世界坐标系中的点,其中z 轴坐标都为0。

数据分为9行9列,每行9个坐标27个数据,每列数据通过分号分隔。

标定过程中检测到的单张图片的图像角点坐标数据,一共81组,162个。

同世界坐标相图1图像坐标系YX,图2摄像机坐标系与世界坐标系XY,1Z wX wY w对应,获取的图像数据也是9行9列,每行18个数据。

由上面得到的数据,根据OpenCV 提供的标定算法,可以求出相应的摄像机内部参数以及外部参数,实际标定过程应用了10张图片,以便消除单张图片噪声过大造成的标定随机性,提高准确性。

运行程序的界面如图4所示。

以下是标定出的内部参数矩阵M 1=畸变参数数据[22]T =[003003]T平移向量257.91452023矩阵表示=[1.959625480.13746345]3视觉伺服试验3.1试验综述本实验中采用的算法的主要思路是:将摄像机获取的图像平面作为参考平面,在参考平面内设置3个圆形,圆心坐标不能共线,并将这3个圆的圆心作为目标点。

移动机器人到某一位置,读取这3个圆心的坐标并转换为图像像素坐标,并将此作为移动机器人的期望点。

然后移动机器人到任意位置(作为目标点的3个圆必须在摄像机图像平面内),启动视觉伺服反馈控制算法,算法将根据实时获得的图像数据,检测视觉平面内3个圆的坐标,并计算此位置的图像坐标,然后计算机器人的实时线速度和角速度,驱动机器人开始运动。

随着机器人坐标系原点(摄像机光心坐标)的变化,这3个参考点在其坐标系下的坐标不断变化。

如果其坐标在某个时刻与期望坐标系下的坐标相等,说明机器人镇定到期望位置。

经试验测得视觉伺服反馈控制算法测量圆心坐标的一个周期为75ms ,机器人的最大运动速度为1.5m/s ,所以一个周期内机器人最大行进距离为0.1125m ,试验速度一般确定为0.75m/s ,当接近目标时可以通过控制算法降低到0.1m/s 。

这样的测量周期和运动速度完全可以确保高度的实时性,并满足机器人运动中的避障要求。

试验过程如图5所示。

3.2试验结果试验中3个圆的圆心夹角,经实测从左下角按顺时针方向分别是55.5和54.5i*,*1=*2=*3=、70.1931。

从以上结果可以看出,根据标定得到的图像坐标的圆心夹角和实际的圆心夹角的误差为0.4%,0.3%和0.1%,这样的误差不会影响试验结果,也证明了摄像机标定的准确性,这也是后续视觉伺服试验的基础。

4结束语从实验可以看出,利用OpenCV 的API 函数可以迅速完成机器视觉系统的摄像机标定,结果准确。

(下转第3862页)图3标定程序运行流程程序运行运行标定线程准备世界坐标信息是否获取了10张获取图像查找角点是否找到81个角点保存图片及图像点信息运行标定算法保存标定结果NYYN 图4标定程序界面图5伺服系统运行时的主控制界面步计算ai的时间复杂度也是O(m),而在教务管理的实际中m<=k,所以,算法这种方法总的时间复杂度为O(k)[9]。

它明显要优于文中提到的一般算法。

对于上述算法的实现,需要注意的两点:①这些待合入班中有可能是人数少于人数下限的班。

这些班的人数有可能在本次合并后大于等于人数下限,从而得到保留。

这体现了尽量少撤班的原则。

②如果在n0,n1,n2…,n k中存在多个n i<人数下限,即有多个班待撤。

总是先撤销人数最少的班,然后再检查是否仍然存待撤班,如果存在则重复上述操作,直至没有班级可合并为止。

4相关的其它问题在教务管理实践中须注意的各专项的班级人数下限属性的设定需合理。

如果人数下限定得过高,则会导致大量班级需要合并,就越有可能造成更多学生最后的选课结果并非最初的意愿,使学生对网上选课的满意程度下降。

如果,人数下限定得过低可能造成教学资源紧张和不必要的浪费。

所以,在此操作前,相关教务管理人员必须根据实际选课情况合理设置。

合班的时候可以不考虑每个专项班的人数上限,这样可以保证合班操作一定能成功。

如果考虑人数上限,为了保证被撤班的学生一定能被其它的专项班容纳下来并且不超过人数上限,则应该在开课时留有足够的余地。

实际的教学运行证明,只要全部专项班可容纳人数的上限略微超过总选课人数,合班时不考虑人数上限所得到的合班结果是合理的。

5结束语本文就高校公共体育课选课系统中的合班操作涉及到的主要问题进行了讨论。

对原问题进行简化后,抽取出其核心问题——如何确定人数分配方案。

对于此问题我们抽象成一个数学模型,并讨论解决此问题的算法。

虽然在体育选课管理系统中,实际执行合班的操作是很少量的,但是作为一般问题研究其算法很有意义,为类似问题的解决提供启发和参考。

参考文献:[1]林立,吴燕丹,江芸.高校公共体育教学管理的发展与创新[J].泉州师范学院学报(自然科学版),2005,23(2):96-99.[2]王戌楼,孙皓.公共体育选课系统软件的开发与应用[J].石家庄学院学报,2007,9(3):125-128.[3]黄英杰,吕林,李俊.基于BPSPS结构技术的网上体育选课系统设计和实现[J].北京体育大学学报,2007,30(4):547-548. [4]潘华山.广州中医药大学体育课选课系统的设计与实现[J].山西师大体育学院学报,2006,21(2):71-73.[5]陈培友.公共体育教学网上选课系统设计与实现[J].上海体育科研,2003,24(6):62-63.[6]吴燕丹,郑永华,郡春生.新时期高校公共体育课程教学管理发展趋势研究[J].体育科学研究,2005,9(1):51-54.[7]尹继红.我校学生体育课选课规律调研究[J].北京体育大学学报,2007,30(supplement):441-442.[8]杨亚琴,于晖.基于WWW体育选修课管理系统的设计与实现[J].北京体育大学学报,2000,23(3):362-363.[9]Anany Levitin.算法设计与分析基础[M].潘彦,译.北京:清华大学出版社,2007.。

相关主题