基于opencv的双目视觉标定_第1页
基于opencv的双目视觉标定_第2页
基于opencv的双目视觉标定_第3页
基于opencv的双目视觉标定_第4页
基于opencv的双目视觉标定_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于OPENCV的双目视觉标定摘要分析了基于2D标靶的摄像机标定算法原理以及双目立体视觉系统摄像机的标定方法,给出了基于开源视觉库OPENCV的摄像机标定算法的详细处理流程,实现了一个完整的摄像机标定程序,可移植到嵌入式系统中。关键词摄像机标定,双目视觉,OPENCV0前言在很多视觉系统的应用中,例如测量或者物体表面三维恢复等,需要得到摄像机的内、外参数,即进行摄像机标定。摄像机标定是决定系统精度的关键环节。OPENCV是用来实现计算机视觉相关技术的开放源码工作库,是计算机视觉、图像处理、模式识别、计算机图形学、信号处理、视频监控、科学可视化等相关从业人员的好工具双目立体视觉是计算机视觉的一个重要分支,即由不同位置的两台或者一台摄像机CCD经过移动或旋转拍摄同一幅场景,通过计算空间点在两幅图像中的视差,获得该点的三维坐标值。80年代美国麻省理工学院人工智能实验室的MARR提出了一种视觉计算理论并应用在双眼匹配上,使两张有视差的平面图产生有深度的立体图形,奠定了双目立体视觉发展的理论基础。相比其他类的体视方法,如透镜板三维成像、投影式三维显示、全息照相术等,双目体视直接模拟人类双眼处理景物的方式,可靠简便,在许多领域均极具应用价值,如微操作系统的位姿检测与控制、机器人导航与航测、三维测量学及虚拟现实等。1双目视觉标定的原理及特点传统的摄像机标定方法,都需要使用3D立体标靶,制作成本高,且加工精度受到一定的限制。基于2D平面标靶的摄像机标定方法,只要求摄像机在不同方位拍摄一个平面标靶,能够满足嵌入式视觉系统中标定方法灵活、快速的要求。基于2D标靶的平面标定方法,标定过程分为两步计算标靶平面与图像平面之间的映射矩阵,计算映射矩阵时不考虑摄像机的成像模型,只是根据平面标靶坐标点和对应的图像坐标点的数据,利用最小二乘方法计算得到求解摄像机参数矩阵,由计算得到的标靶平面和图像平面的映射矩阵得到与摄像机内部参数相关的基本方程关系,求解方程得到摄像机内部参数,考虑镜头的畸变模型,将上述解方程获得的内部参数作为初值,进行非线性优化搜索,从而计算出所有参数的准确值。在双目立体视觉系统中,除了要得到各个摄像机的内部参数外,还要知道两台摄像机之间的相对位置关系,获得系统的结构参数旋转矩阵R和平移矢量T。设双目视觉系统左右摄像机的外部参数分别为RL、TL与RR、TR,即RL、TL表示左摄像机与世界坐标系的相对位置,RR、TR表示右摄像机与世界坐标系的相对位置。因此,对于空间任意一点,如果在世界坐标系、左摄像机坐标系和右摄像机坐标系中的坐标分别为XW、XL、XR,则有XLRLXWTL,XRRRXWTR。因此,两台摄像机之间的相对几何关系可以由下式表示3RRRRL1,TTRRRRL1T。2基于OPENCV的双目视觉摄像机实验标定摄像机标定是为了建立三维世界坐标与二维图像坐标之间的一种对应关系。系统采用两个摄像机进行图像采集,设定好两个摄像机之间的距离(即基线距),用摄像机同时采集放在摄像机前的标定物。基于OPENCV的摄像机标定采用平面棋盘格标模板,如下图所示。图一标定模板由平面标定算法原理可知,采集不同方位的多幅棋盘标定模板的图像,根据模板角点与图像点的坐标对应关系就可以得到摄像机的内、外参数,由于计算中采用了最小二乘算法,因此,采集的图像越多,标定的结果越准确。利用OPENCV提供的处理函数,实现了快速、准确、全自动处理的摄像机标定算法。算法结构如图2所示。图2摄像机标定算法(1)装载图像OPENCV的HIGHTGUI部分提供了载入图像的函数CVLOADIMAGE。CVLOADIMAGE返回指向图像的IPLIMAGE结构指针,所有对图像的处理操作都是通过对IPLIMAGE指针完成的。CVLOADIMAGE函数只支持单幅图像的载入,而摄像机的标定需要对多幅图像进行处理。算法中采用了一个简单、实用的处理方法,即将所需要的全部标定图片的名称包括扩展名存放在一个TXT文本文件中,文件名之间以回车符相隔,因此,循环读取文本文件的内容就可以载入所需要的全部标定图像。(2)粗精度角点提取角点提取由函数CVFINDCHESSBOARDCORNERS()完成,并判断输入的图像是否符合标准棋盘模式。如果提取角点成功,则将像素级的角点坐标保存在CVPOINT2D32F类型的数组中。标定板上的角点是指其周围被4个黑白相间各自所包围并处于中心十字线相交位置的点,标定计算过程将这些点的ZW坐标设为0。(3)子像素级角点提取角点坐标的精度直接影响摄像机参数的标定精度,角点精度越高,标定的结果越准确。在确定角点的粗略位置以后;还需要进一步提高角点坐标的精度。将由函数CVFINDCHESSBOARDCORNERS()得到的角点坐标输入到函数CVFINDCORNERSUBPIX()中,可以得到子像素级精度的角点位置坐标。子像素级的角点提取在输入角点坐标附近做优化搜索,因此搜索模板的选择直接影响坐标精度,经实验验证,以1111单位像素大小的模板进行搜索可以得到满足精度要求的角点坐标。(4)计算单摄像机内、外参数CVCALIBRATECAMERA2()函数根据输入的图像对应点坐标,可以快速得以像素为单位的焦距FX、FY、图像中心点坐标CX、CY、畸变系数以及外部旋转矩阵、平移矢量等参数。在计算之前,要准备好三维空间点与图像平面点之间的对应坐标。图像平面的坐标已经由角点提取部分得到,对应的空间三维坐标以标定靶的左上角为原点建立世界坐标系,根据棋盘点的个数和方格的尺寸就可以得到Z0的三维坐标数据。由于不同的标定靶可能含有不同数目的角点,同时为了节省存储空间,采用动态分配内存的方法存储角点坐标数据,CVCREATEMEMSTORAGE()分配足够的内存之后,建立CVSEQ堆栈序列,将获取的角点坐标用函数CVSEQPUSH()存储到堆栈里面。(5)实验结果标定过程中将提取角点后的图像用CVSHOWIMAGE()显示,以便观察角点提取的情况。最终的标定结果在程序界面显示,并保存在文件中。3标定实验结果分析根据上述标定原理和步骤,利用OPENCV通过编写VC程序,在VS60平台上开发了基于OPENCV20的摄像机标定程序,使用OPENCV提供的一系列函数完成相应摄像机标定功能。实验结果如下。图31左像机角点提取实验结果图32右像机角点提取实验结果图33图像矫正实验结果4前景展望本文较为详细的阐述了机器视觉像机标定原理及具体标定步骤。同时应用OPENCV里一些处理函数对棋盘格图像进行标定。双目立体视觉是计算机视觉的一个重要分支,即由不同位置的两台或者一台摄像机CCD经过移动或旋转拍摄同一幅场景,通过计算空间点在两幅图像中的视差,获得该点的三维坐标值。80年代美国麻省理工学院人工智能实验室的MARR提出了一种视觉计算理论并应用在双眼匹配上,使两张有视差的平面图产生有深度的立体图形,奠定了双目立体视觉发展的理论基础。相比其他类的体视方法,如透镜板三维成像、投影式三维显示、全息照相术等,双目体视直接模拟人类双眼处理景物的方式,可靠简便,在许多领域均极具应用价值,如微操作系统的位姿检测与控制、机器人导航与航测、三维测量学及虚拟现实等。5参考文献1陈胜勇,刘胜基于OPENCV的计算机视觉技术实现M北京科学出版社20082李健,史进基于OPENCV的三维重建研究J微电子学与计算机2008,251229323哀利,刘海华,陆雪松,史进基于0PENCV的双目摄像机标定J现代科学仪器1913年4月第2期4张广军机器视觉M北京科学出版社,20055刘江华,陈佳品双目视觉平台的研究J机器人技术与应用2002,136406秦宝华,张海基于OPENCV的双目视觉标定程序的开发北京航空航天大学自动化科学与电气工程学院200787隋倩,金伟奇双目

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论