APP下载

基于HALCON的双目视觉系统标定

2013-03-30项辉宇韩宝安黄佳军

机电产品开发与创新 2013年3期
关键词:句柄双目数据模型

李 哲,项辉宇,韩宝安,黄佳军

(北京工商大学 材料与机械工程学院,北京 100048)

0 引言

根据标定方式的不同,现有的相机标定方法可以分为传统标定方法、自标定方法和基于主动视觉的标定方法。传统标定方法是指利用一个尺寸已知的高精度标定物作为空间参照,通过建立标定物某点与其图像点的对应关系,利用相关算法获得相机的内外参数。此方法的不足在于标定物的制造成本高,其精度直接影响标定结果,而且某些场合下不适合放置标定物。自标定方法是指不需要标定物,仅利用场景约束或相机运动约束,依靠多幅图像对应点之间的关系进行标定。但此方法标定精度不高,不合适在精确测量的场合下使用。基于主动视觉的标定方法是指在己知相机的某些运动信息下标定相机的方法。虽然此算法简单,鲁棒性较高,但是该方法需要使用高精度主动视觉平台进行相机标定,实验设备昂贵,实验条件要求高,且不适合运动参数未知或无法控制的场合。因此,在以上标定方法的基础上,本文介绍一种利用HALCON软件的平面圆靶标双目视觉标定方法。实验证明此方法测量精度高,鲁棒性强,适用范围广。

1 双目视觉系统以及标定的原理

1.1 双目视觉系统原理

双目立体视觉是立体视觉的一种重要形式,它是基于双目视差理论并利用成像设备从不同的位置获取被测物体的幅图像,通过计算图像对应点间的位置偏差,从而获取物体三维几何信息的方法。图1是双目视觉系统的原理图,其中,b是两个相机光心的距离,f是相机的主距。相机坐标系的原点位于光心处,成像平面本应该位于相机坐标系之后,但是为了简化计算过程,假想的使成像平面位于相机坐标系之前。图像坐标系建立在成像平面上,其坐标轴用u、r表示。P是空间中一点,它在图像坐标系的投影分别是P',P",像P这样的点被称为共轭点。

1.2 标定原理

在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其图像对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为相机标定,这里的参数主要是指相机的内、外参数。在双目视觉标定中,内参数是指左、右相机镜头主距f,镜头畸变k,像元大小Sx、Sy等。外参数主要是指左、右相机各自的相机坐标系相对于世界坐标系的关系,用旋转矩阵R1和平移矢量T1表示左相机的相机坐标系与世界坐标系的关系,同理,R2,T2表示右相机的相机坐标系到世界坐标系的关系,以及右相机相对于左相机的位置关系,用一个旋转矩阵R和一个平移矢量T表示。确定这些参数需要4个步骤。

图1 双目系统原理图Fig.1 Binocular System Schematic Diagram

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

(2)将三维空间点Pc从相机坐标系投影到成像平面坐标系。可表示为:但是在实际投影过程中,由于镜头的畸变会导致坐标(u,v)T的值发生改变。对于大多数镜头而言,都可以认为是径向畸变。此时,对应的关系式为:

(4)通过以上三步即可以获得左、右相机各自的内外参数。假定空间中任意一点在世界坐标系,左、右相机坐标系下的非齐次坐标分别是 xw,x1,x2,则消去xw,得到:X2=R2R1-1x1+T2-R2R1-1T2,于是两个相机间的位置关系可表示为:

2 标定的流程

HALCON是一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境。它节约了产品成本,缩短了软件开发周期,在工业界已经是公认具有最佳效能的Machine Vision软件。

本文采用实时的方法对双目视觉系统进行标定,使用的是HV-1302型工业相机。双目标定与单目标定类似,不同的地方在于双目标定必须保证标定板能够同时出现在两幅图像中。图2为实验场景图。

标定主要分四个步骤:①建立双目相机的标定数据模型;②获取合适的图片;③把双目相机的测试数据添加到标定数据模型中;④执行标定。

图2 实验场景Fig.2 Experiment scene

2.1 建立标定数据模型

在建立标定数据模型之前, 应该先调用算子Open_ Framegrabber和Grab_Image保证同时打开左右相机,然后调用算子Create_Calib_Data产生一个标定数据模型,在这个算子中输入值是所使用的相机的个数以及标定板的个数,返回值是标定数据模型句柄CalibDataID。产生了这个标定数据模型句柄之后,需要向模型中添加相机的初始内部参数以及相机类型,此时用到算子Set_Calib_Data_Cam_Param,在HALCON中,初始内部参数的镜头畸变应该设置为零,相机类型是面阵相机。把关于标定板的描述文件输入到数据模型当中,此时用到算子Set_Calib_Data_Calib_Object,模型句柄的初始化完成。

2.2 获取图像

同时打开相机进行采集,在双目视觉系统中,每个相机都要拍摄多张标定板在不同位置的图片。本文中,拍摄了15张不同位置的图片,标定板的表面不能有污点,并且需要保证每幅图片中都应该能包含标定板,所使用的标定板大小是(100×100)mm,每个提取的圆的像素都应该大于10个像素。在采集图像的过程中相机的相对位置绝对不能改变,还要保证每幅图像有合适的曝光,不能过曝或者曝光不足。图3为实时采集图。

2.3 读取标定参数

在采集图像的同时,为确保每幅图像都能够满足要求,需要实时的对采集图像进行处理,此时就要用到Find_Caltab和Find_Marks_And_ Pose。算子Find_Caltab能够找到找到标定板上黑框里面的部分,Find_Marks_And_Pose找到每个圆点的中心并确定它们相应的世界坐标。当无法定位标定板区域时,则会提示重新移动标定板的位置再进行采集,当算子都成功的执行之后,表示此时采集到的图像满足要求。把采集到的参数通过算子 Set_Calib_Data_Observ_Points输入到标定数据模型句柄中。

2.4 执行标定

最后根据标定数据模型中的数据,调用算子Calibrate_Cameras,就可以执行标定。当执行完这个算子后就可以获取纠正后的相机的主距、镜头畸变、图像中心点的坐标值、以及两个相机的相对位置,并且这些值仍返回在模型句柄中,可以通过算子Get_Calib_Data对相关参数进行调用。通过以上操作,得到的结果如表1,表2所示。

从标定结果中可以看出,左、右相机的径向畸变值均为负值,说明它们都成桶形畸变,左、右相机的主距相差较小;相机的结构参数中旋转矩阵R为 [1.4837 330.699 359.313],说明右相机相对于左相机的X轴旋转1.483°、Y轴的反方向29.301°、Z轴的反方向0.687°,可以判断出右相机几乎只绕左相机的Y轴旋,即两个相机向内倾斜了29.301°;平移矢量T为 [25.884 0.2303.139],说明右相机在左相机右方 25.884cm、上方0.230cm、前方3.319cm的位置。标定结果与相机的实际摆放位置吻合,说明标定结果准确。

表1 左、右相机的内部参数Tab.1 Internal parameters of left and right camera

表2 左、右相机的结构参数Tab.2 Structural parameters of left and right camera

3 结论

本文介绍了一种基于HALCON的双目视觉标定方法。先说明双目视觉系统的原理,然后介绍标定原理,以及如何使用HALCON进行标定,通过实验证明,此方法精度高,操作简单,可以有效的应用于机器视觉系统中。

[1]马颂德,张正友.计算机视觉:计算理论与算法基础[M].北京:科学出版社,1998.

[2]刘金颂,原思聪,张庆阳,等.双目立体视觉中的摄像机标定技术研究[J].计算机工程与应用,2008,6.

[3]成小龙,徐友春,李华,贾鹏.基于Halcon软件的双目立体视觉系统标定[J].军事交通学院学报,2011,9.

[4]李鹏,王军宁.摄像机标定方法简述[J].传感器世界,2007,3.

[5]杨少荣,吴迪靖,段德山(译).机器视觉算法与应用[M].北京:清华大学出版社,2008.

猜你喜欢

句柄双目数据模型
基于双目测距的卡尔曼滤波船舶轨迹跟踪
面板数据模型截面相关检验方法综述
加热炉炉内跟踪数据模型优化
高校图书馆持久标识符应用研究
编译程序语法分析句柄问题分析与探讨
基于双目视觉图像的长度测量方法
基于双目视觉的接触线几何参数测量方法
面向集成管理的出版原图数据模型
一种顾及级联时空变化描述的土地利用变更数据模型
一种双目立体视觉相机标定方法