基于ROS的相机标定技术分析
2022-05-31胡俊立
摘要:在机器视觉中使用相机获取物体的图像信息时,由于图像信息与实际物体存在误差,导致机器视觉系统不能准确还原出物体的三维信息,进而导致机器人目标检测、路径规划的失败。通过建立图像信息和实际物体间的参数模型,并使用相机标定技术确定这些参数,可以使机器视觉系统输入准确的结果。本文介绍了相机的成像模型,分析了不同相机标定方法的优缺点,采用张氏标定法,在ROS平台下对相机进行了标定,获得了相机的内外参数。该方法简单、高效、对硬件要求低,便于在工业机器人系统中实施,提高了机器视觉系统的精度,具有重要的研究意义。
关键词:ROS 相机标定 机器视觉 图像处理
An Technical Analysis of Camera Calibration Based on ROS
HU Junli
(Department of Mechanical and Electrical Engineering Henan Industry and Trade Vocational College, Zhengzhou, Henna Province, 451191 China)
Abstract:When obtaining image through camera based on machine vision technology, the 3D information of an actual object cannot be reconstructed accurately. This often leads to the failure to implement target detection and path planning of a robot. The inputs of the machine vision system tend to be accurate by establishing a parameter model between image information and actual object, which can be determined by using camera calibration technology. This paper introduces the camera imaging model and analyzes the demerits of different camera calibration methods. Using Zhang 's calibration method, by calibrating the camera based on ROS platform, the external and internal parameters of the camera can be obtained. This method, which has important significance to improve the accuracy of an machine vision system , is simple, efficient and low hardware requirement。
Key Words:ROS; Camera calibration; Machine Vision; Image Processing
信息化、智能化和自主化是機器人技术的发展方向,工业机器人受现阶段硬件性能、软件算法技术水平的限制,完全自主化、智能化的工业机器人的出现还需时间[1]。目前,较为可行的办法是将机器人技术与机器视觉技术结合起来,给机器人增加“眼睛”,使工业机器人在一定程度上实现自主化、智能化。借助于RGB-D相机扫描的机器视觉信息,在机器人控制系统中重建环境信息,机器人可以根据视觉系统提供的位姿信息进行姿态的调整以躲避障碍物或抓取物体。机器视觉系统的准确输出是工业机器人准确抓取物体、避障路径规划的前提条件,而对视觉相机的标定是机器视觉系统准确输出的必要条件。
1 相机标定的原理
在使用相机获取物体的图像信息时,理论上的成像模型会因图像传感器、镜头制造误差和安装误差,导致成像模型与实际图像信息之间产生误差。因此,在机器视觉中使用相机时,需要建立相机的成像几何模型,以确定成像模型和实际图像中对应点之间的关系,将相机的成像几何模型称为相机参数。相机的标定就是通过实验确定相机参数的过程,相机标定是机器人视觉系统中一个关键步骤,标定结果直接影响后续结果的准确性[2]。
1.1 相机成像坐标系
建立相机的成像几何模型的前提是需要确定物理世界和相机成像平面之间的映射关系,因此,需要事先定义几个重要的坐标系[3],如图1所示。
(1)世界坐标系:表示真实物体的绝对坐标,一般以相机在三维空间的位置作为世界坐标系的原点位置,其坐标值即为物体在真实世界的物理位置(Xw,Yw,Zw)。
(2)相机坐标系:以相机的视角出发建立的坐标系,取相机的中心为坐标原点,相机与真实物体点的连线作为Z轴,由此组建的坐标系,坐标值用(Xc,Yc,Zc)表示,图像坐标系和世界坐标系通过相机坐标系关联。
(3)图像坐标系:其原点为真实物理点与相机中心点的连线与成像平面的交点,X轴和Y轴方向与成像平面的两条边平行,坐标值为(x,y),用来连接像素坐标系和图像坐标系,进一步计算出真实物理点在像素坐标系的中的值。
(4)像素坐标系:表示实际图像中像素点的实际位置,一般以图像平面的左上角为坐标原点,将图像坐标系经过平移之后可以得到像素坐标系,用(u,v)表示坐标值,u轴和v轴分别平行于图像坐标系的X轴和Y轴。
1.2 相机成像的几何模型
世界坐标系和相机坐标系均为三维坐标系,任意一个三维坐标系经过平移和旋转即可得到另外一个三维坐标系[4],定义3×3的旋转矩阵R,平移向量T,则两个坐标系的关系为:
[■(X_c@Y_c@Z_c )]=R[■(X_w@Y_w@Z_w )]+T
定义0=[0,0,0]T,则上式以齐次坐标表示为:
[■(X_c@Y_c@Z_c@1)]=[■(R&T@0^T&1)][■(X_w@Y_w@Z_w@1)]
取相机的中心为坐标原点,相机与真实物体点的连线作为Z轴,由此组建相机坐标系,如图2所示。图像坐标系和相机坐标系之间的关系为投影变换,将相机坐标系中的任一点(Xc,Yc,Zc)投影到图像平面上得到二维的图像坐标系上一点(x,y)。
据相似三角形几何知识,假设图像坐标系和相机坐标系原点重合,目标点在相机坐标系中的坐标和图像坐标之间的关系为:
{█(x=f X_c/Z_c @y=f Y_c/Z_c )┤
其中,f是焦距,Xc、Yc、Zc是图像点在相机坐标系的坐标,x、y是图像坐标系中的坐标,将上式写成齐次坐标形式:
Z_c [■(x@y@1)]=[■(f&0&0&0@0&f&0&0@0&0&1&0)][■(X_C@Y_C@Z_C@1)]
图像坐标系与像素坐标系均在同一个二维平面上,但二者的原点位置不同,且坐标的单位不同。以(u,v)表示像素坐标,其单位为像素,与图像坐标(x,y)的关系为:
{█(u=x/dx+u_0@v=y/dy+v_0 )┤
其中,(u0,v0)为图像坐标系原点在像素坐标系中的位置,dx,dy分别为X轴、Y轴方向上单位像素的宽度[5],将上式写成齐次坐标形式:
[■(u@v@1)]=[■(1/dx&0&u_0@0&1/dy&u_0@0&0&1)][■(x@y@1)]
综上所述,像素坐标(u,v)和世界坐标(Xw,Yw,Zw)之间的关系为:
Z_c [■(u@v@1)]=[■(f/dx&0&u_0&0@0&f/dy&v_0&0@0&0&1&0)][■(R&T@0^T&1)][■(X_w@Y_w@Z_w@1)]
令K=[■(f/dx&0&u_0&0@0&f/dy&v_0&0@0&0&1&0)],E=[■(R&T@0^T&1)],则上式变为:Z_c [■(u@v@1)]=KE[■(X_w@Y_w@Z_w@1)],其中K由参数f/dx 、 f/dy 、u_0 、v_0决定,仅仅与相机的内部构造相关,称为相机内部参数。E称为相机外部参数。相机标定的过程即为确定K和E的过程。
2 相机标定方法
相机标定的目的是建立二维的图像坐标系与三维世界坐标系之间的关系,只有正确完成相机的标定,确定相机的内外参数,才能完成图像坐标系到世界坐标系的转换[6]。相机的标定方法有很多,大体上分为3类,分别是自标定方法、主动视觉标定法和传统标定法[7]。
2.1 张氏标定法
在传统标定方法中,在相同的精度指标条件下,以张正友教授在1998年提出的单平面棋格标定法操作最为简便、硬件要求最低,在计算机视觉领域得到了广泛的应用。該方法在硬件方面仅需要一张二维平面棋盘格标定板,算法需要采集不同位置的标定板图像数据。假定世界坐标系在标定板上,即标定板上的任意一点Zw=0。同时,标定板上的格子尺寸已知,可以计算出标定板上的角点在世界坐标系中的位置(Xw,Yw,Zw=0)。相机拍摄图像信息时,每个角点的像素坐标(u,v)也是已知的,通过以上已知信息来对相机进行标定。算法运行时,计算相机的内、外参数时使用线性模型,通过单应矩阵计算;计算相机的畸变参数时使用非线性模型,通过最小二乘法估计相机的畸变参数。最后,该算法用最大似然估计法优化求得相机参数的最优解,提升了相机参数的精度。
2.2 标定步骤
张氏标定法利用图像之间的特定关系来对相机进行初步估计,通过构造参数优化函数对所求的参数不断进行迭代优化处理,具体步骤如下。
(1)准备一张棋盘格标定板,棋盘格的大小已知,使用相机在不同角度(前后、左右、歪斜)拍摄图片。
(2)对图像中的角点进行检测,得到标定板角点的像素坐标值;根据已知的棋盘格大小和世界坐标系原点,计算得到标定板角点的物理坐标值。
(3)计算内、外参数矩阵
(4)计算畸变参数。
(5)使用最大似然估计法优化参数
3 ROS平台下相机标定的实现
得益于ROS平台完整的生态,ROS平台有丰富的驱动和程序包对单目、深度相机进行标定,不需编写一行代码即可完成相机的标定,本文在 Ubuntu16.04 在ROS-Kinetic平台上完成了摄像机的标定。首先确保正确安装ROS,可在终端中正常启动roscore。调用usb_cam节点下usb_cam-test.launch文件测试相机是否可以正常打开,同时检查“/usb_cam/image_raw”话题是否正常发布。然后运行“rosrun camera_calibration cameracalibrator.py --size 6x8 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_cam”打开矫正窗口,其中标定板大小为6x8,棋盘格边长为24mm,标定窗口如图3所示。
在标定时,分别左右、上下移动标定板,当界面中的X、Y变为绿色时,表示X、Y方向标定完成;从远至近靠近相机,使界面中的Size变成绿色;左右倾斜,使界面中的Skew变成绿色,CALIBRATE变为可用状态,标定操作结束。最后点击CALIBRATE,约1~2min之后可在命令窗口中看到生成的相机参数,点击COMMIT可将结果保存到ymal文件。
4 结语
相机标定技术是应用机器视觉实现工业机器人目标跟踪、路径规划的前提条件,但由于自标定法和主动标定法分别需要物体精确的三维信息、复杂的硬件条件支持和灵活性不高的缺点,无法在工业机器人系统中实现。经过研究分析,通过对比不同的相机标定方法,选取张氏标定法作为工业机器人视觉系统中标定的方法,并在ROS平台下进行了实现,提升了工业机器人视觉系统的性能。
参考文献
[1]魏溆桐.机械工程智能化的现状及发展方向探讨[J].汽车博览,2020(4):27.
[2]曾劲松,薛文凯,徐博凡,等.双目视觉引导机器人定位抓取技术的研究[J].组合机床与自动化加工技术,2019(1):131-133,137.
[3]张黎,陈军,刘春玲,等.基于二维图像的三维几何参数测量研究[J].武汉纺织大学学报,2019(4):66-71.
[4]李超伟.遥操作工程机器人的视觉定位技术研究[D].广州:广东工业大学,2018.
[5]谷凤伟,高宏伟,姜月秋.一种简易的单目视觉位姿测量方法研究[J].光电技术应用,2018(4):64-70.
[6]景文博,黄炳坤,刘健,等.激光照射性能测量中异源相机的标定方法[J].兵工学报,2020(5):924-931.
[7]钟佩思,夏强,刘梅,等.基于双目视觉的正交函数局部拟合的工件定位方法[J].科学技术与工程,2020(21):8696-8701.
基金项目:河南省高等学校重点科研项目计划(项目名称:基于ROS的六轴工业机器人运动规划研究;项目编号:22B413002)。
作者简介:胡俊立(1984—),男,硕士,讲师,研究方向为计算机科学与模式识别。