刘玉婷 徐祥宇 王超 张涛
摘 要:为验证双目立体视觉系统中摄像机标定的精度,对常用2D精密靶标标定法进行了实验分析。本文首先对摄像机标定原理进行了详细的论述;然后在MATLAB软件及HALCON软件对摄像机分别进行了单目与双目标定实验;最后对摄像机标定实验结果做出详尽的分析。实验数据表明了基于HALCON软件的标定精度相较于基于MATLAB软件的标定精度更高,为以后摄像机标定方法的研究提供了参考方向。
关键词: 立体视觉;双目标定;MATLAB;HALCON
文章编号: 2095-2163(2019)03-0133-05 中图分类号: TP391 文献标志码: A
0 引 言
摄像机标定一般分为单目摄像机标定和双目摄像机标定,是机器视觉的重要内容之一[1],在距离测量、机器人视觉、遥感探测等领域表现出可观应用前景。其中,双目摄像机标定是立体视觉系统的基础[2],其标定精度和速度决定了立体匹配的精度及三维重建的效果。因此,研究摄像机标定对双目立体视觉系统的实现具有重大意义。
目前,常用摄像机的标定方法可分为三大类:传统标定法、自标定法以及张正友标定法[3-4]。分析可知,传统标定法标定精度较高,但在非线性摄像机模型下计算十分复杂,标定速度较低,通常适用于精度要求较高的线性系统;自标定法不需要借助参考物,操作简单、且计算速度较快,但是其标定精度及鲁棒性能较低,只适用于实时性要求较高、且精度要求较低的系统;张正友标定法介于二者之间,具有操作简单、标定精度高、鲁棒性好等优点,较为广泛使用[5]。
本文在传统标定法及张正友标定法的基础上介绍了一种利用HALCON软件实现的2D圆形精密靶标标定法。为验证本文所提方法标定精度的准确性与计算过程的快速性,在本方法的基础上与基于MATLAB软件的张正友标定法进行了单、双目标定的对比及实验分析。实验结果表明:本文所用基于HALCON软件标定方法的标定精度明显优于MATLAB软件的标定结果。
1 摄像机标定原理
为确定二维图像与三维客观物体坐标之间的相互关系,就必须建立摄像机成像模型[6]。在摄像机成像模型下,将三维客观物体的坐标转化为二维图像的坐标则需要通过建立图像坐标系、摄像机坐标系以及世界坐标系来表示这种转换关系。其坐标系关系如图1所示。
在图1中,图像坐标系分为像素坐标系(XfOfYf)和物理坐标系(XOY)两种,其转化关系的齐次坐标和矩阵表示如式(1)所示:
其中,u,v分别表示图像像素的行数和列数,1/dx,1/dy分别表示在图像物理坐标系X方向与Y方向的单位长度上的像素个数。
摄像机坐标系(xoy)是以摄像机模型的聚焦点为原点建立的三维直角坐标系。其oz轴为摄像机光轴,x、y轴一般平行于图像物理坐标系中的X、Y轴。世界坐标系(XW,YW,ZW)是物体与摄像机的参考坐标系。
摄像机坐标与世界坐标的转换关系如式(2)所示:
其中,T是世界坐标系的原点在摄像机坐标系中的坐标,即平移向量,R是正交旋转矩阵,满足约束条件:
其中,X,Y为摄像机坐标系中的某一点p在图像物理坐标系中的表示,f为摄像机焦距。
将式(4)中图像物理坐标进一步转化到图像像素坐标系,可得到物点p与像素坐标系中像点pf的转换关系,由此可得世界坐标系与图像坐标系之间的变换关系如式(5)所示:
其中,M1为内部参数,由fx,fy,u0,v0决定;M2为外部参数,由摄像机相对于世界坐标系的方位决定,即由旋转矩阵R与平移向量T决定。通过摄像机成像模型,在摄像机内部参数确定的条件下,求取摄像机内外参数的过程为摄像机标定。
2 单目标定实验
本文采用通用针孔成像几何模型对摄像机进行标定,并分别在MATLAB平台及HALCON平台进行标定实验,由于本文使用的摄像机为双目摄像机,在开展单目标定实验时,分别对左、右相机所得图像进行标定,标定实验台如图2所示,标定流程如图3所示。
2.1 基于MATLAB的單目标定实验
本节采用张正友的棋盘格单目标定法,使用MATLAB标定工具箱和棋盘格标定板对左右摄像机分别进行标定,获取摄像机的内、外参数。
在张氏标定法中,通过对棋盘格角点的提取,可得到棋盘格在三维坐标中的平面与成像平面的对应坐标,从而得到2个平面的单应矩阵H[7]。由公式(5)与针孔成像模型可得:
其中,p为棋盘格所成像点坐标,P为棋盘格角点在世界坐标系中的坐标,将棋盘格平面映射到成像平面,则有:
其中,H为棋盘格平面与成像平面之间的单应矩阵,通过对单应矩阵的求解,可求得摄像机内参M1、外参旋转矩阵R和平移向量T。
标定具体步骤如下:
(1)制作标定板:利用J=(checkerboard(50,4,5)>0.5);figure, imshow(J)语句在MATLAB中生成的黑白棋盘格图像,如图4所示,其大小为107 mm×133 mm,每个方格尺寸为13 mm×13 mm。
(2)采集图像:固定左、右相机,采集标定板多组不同位姿的图像,保证每个图像在图像视野范围的三分之一内,并将采集到的图像以bmp格式保存在toolbox_calib目录中。
(3)角点提取:在MATLAB工具箱中通过Extract grid corners提取每幅标定图像的特征点,即黑方格与白方格的交点。
(4)单目标定:分别对左、右摄像机进行单目标定,得到左、右相机的内外参数。
(5)结果优化:为了增加标定结果的准确性,一般使用最大似然估计来优化标定结果。左、右摄像机的标定结果分别如图4中(a)、(b)所示,单目标定后摄像机内参见表1。
表1中,fc为有效焦距,C为中心原点。将表1中MATLAB标定有效焦距(fc/像素)乘以对应的像素尺寸dx与dy可得到摄像机标定焦距(f/mm),经换算得:左摄像机单目标定焦距为2.432,右摄像机单目标定焦距为2.415。
2.2 基于HALCON的单目标定实验
本节利用HALCON标定助手对左、右摄像机分别进行单目标定,获得左、右摄像机的内、外参数。具体标定过程如下。
(1)制作标定板:HALCON中一般使用2D圆形精密靶标标定板进行摄像机的标定。本文采用的标定板是利用HALCON中gen_caltab算子生成的标准标定板。
(2)采集图像:与MATLAB棋盘格标定实验相同,采集多组不同位姿的标定板图像,并保证每幅图像中可覆盖标定板中所有的圆点点数。
(3)查找区域:利用find_caltab ( )函数将图像区域与标定板区域分离,并使用find_marks_and_pose ( )算子计算摄像机与标定板之间的相对位置,提取标定板上各圆点的坐标。
(4)单目标定:利用HALCON标定助手对左、右摄像机逐一进行单目标定。左、右摄像机的标定结果分别如图5中(a)、(b)所示。
2.3 单目标定实验结果分析
本文选取了标定图像为16幅时,所得标定结果。单目摄像机单目标定前后内参见表2。
表2中,f为摄像机焦距;k为扭曲系数;Cx为水平像素间距;Cy为垂直像素间距;Sx为水平中心坐标;Sy为垂直中心坐标;以上均为摄像机内部参数。Err为像素误差。
由表1、表2实验结果可知:基于HALCON单目摄像机标定的平均像素误差小于MATLAB所标定的平均像素误差,同时,基于HALCON所标定出的焦距相较于MATLAB更接近于实际焦距,运行也更加稳定。
3 双目标定实验
双目摄像机标定原理与单目摄像机标定相似,利用单目摄像机标定的参数作为双目摄像机标定的初始参数,对双目摄像机进行标定。具体标定流程如图6所示。
3.1 基于MATLAB的双目标定
MATLAB双目标定是在单目标定的基础上,以单目摄像机标定所得内参作为双目标定的初始参数来进行双目摄像机的标定。首先将左、右摄像机单目标定所得内参分别保存到Calib_Results_left和Calib_Results_right两个mat格式的文件中,然后利用MATLAB软件中双目立体标定工具箱分别读取内参,通过双目标定获得左、右相机的位置关系。左、右相机标定结果分别如图7中(a)、(b)所示。
3.2 基于HALCON的双目标定
基于HALCON的双目标定与MATLAB类似,都是将摄像机单目标定的参数作为双目标定的初始参数,以此进行双目摄像机的标定。首先读取左、右摄像机单目标定所得内参,作为摄像机标定的初始参数;然后利用find_caltab ( )函数与find_marks_and_pose ( )算子对左、右摄像机所采集的图像分别调用,获得标志点坐标;最后将左、右摄像机单目标定的参数以及标志点坐标作为输入参数,通过调用 binocular_calibration ( )函数确定左、右摄像机的参数以及摄像机之间的相对位置关系,完成双目标定。左、右摄像机标定结果分别如图8中(a)、(b)所示。
3.3 双目标定实验结果分析
双目摄像机标定后(10幅图像)左、右相机的相对位姿参数见表3。
表3中,T为平移向量,R为旋转矩阵。
由表3可知,基于HALCON双目摄像机标定的平均像素误差小于MATLAB所标定的平均像素误差,同时,双目摄像机安装的水平距离为60 mm,由平移向量标定结果可知,HALCON中双目摄像机所标定的水平间距更接近60 mm,且系统运行更加稳定。
4 结束论
本文基于图像处理软件MATLAB和HALCON,对摄像机标定系统进行了理论说明与实验。首先详细阐述了摄像机的标定原理,分别利用MATLAB软件以及HALCON软件进行了摄像机单、双目标定实验,验证了上述2种方法进行摄像机標定的准确性与合理性;最后分别对单、双目标定结果进行分析,比较了二者的标定精度。实验数据表明:基于HALCON软件的标定结果其误差明显小于MATLAB软件的标定误差,系统运行更加稳定。本文成果在一定程度上可为今后双目立体视觉系统标定的研究提供参考。
参考文献
[1]曹淞翔. 基于双目视觉的三维重建[J]. 通讯世界,2018(12):236-238.
[2] 王汉,殷宏. 基于OpenCV的双目摄像头标定研究及实现[J]. 福建电脑,2018,34(8):121-122,129.
[3] 于春和,祁乐阳. 基于HALCON的双目摄像机标定[J]. 电子设计工程,2017,25(19):190-193.
[4] 徐凯. 基于双目视觉的机械手定位抓取技术的研究[D]. 杭州:浙江大学,2018.
[5] ZHANG Zhengyou. A flexible new technique for camera calibration [J]. IEEE Transaction on Pattern Analysis and Machine Intelligence, 2000, 22(11):1330-1334.
[6] KOHAMA T, HIRATA Y. A binocular vision model for solving autostereograms[J]. Journal of the Institute of Image Electronics Engieerings of Japan,2011,40(5):801-807.
[7] 王文鹏. 基于双目立体视觉的系统标定技术研究[D]. 咸阳:西北农林科技大学,2018.
[8] 宋岳秦,卢军,孙姝丽. 基于HALCON的机器人视觉系统标定方法研究[J]. 南方农机,2018,49(20):47-49.
[9] 袁仁辉. 基于机械手的双目视觉定位抓取研究[D]. 秦皇岛:燕山大学,2016.