用于工业现场的摄像机标定方法研究

2011-11-20 02:25张永超梁国伟
中国计量大学学报 2011年3期
关键词:角点畸变摄像机

张永超,程 佳,梁国伟,郭 斌

(1.中国计量学院计量测试工程学院,浙江杭州310018;2.浙江省计量科学研究院,浙江杭州310013)

摄像机标定[1]是机器视觉的基本任务之一,目的是为了确定摄像机的内外参数,消除由于透镜畸变而带来的影响.标定精度的大小,直接影响到机器视觉的精度,因此,精确地进行摄像机标定对于实际的检测、测量和控制具有十分重要的意义[2-4].

对于单个摄像机的标定方法主要分为两种:摄像机自标定方法和传统的摄像机标定方法[5].相比较自标定方法而言,在摄像机的方位、焦距等固定不变的条件下,采用传统的摄像机标定方法具有更好的精度[6-8].本文主要针对单个摄像机进行标定.

目前,对于摄像机标定的方法已经有很多,如Tasi[9]提出的基于三维标定物的方法,但是,采用这种方法需要一套昂贵的精密设备,主点的坐标也需要首先预标定[10].张正友[11]提出了一种基于平面模板的方法,该方法不需要知道摄像机或者标定板的运动参数,通过自由移动摄像机或者标定板,摄像机从两个不同的位置拍摄图像,通过标定板角点与图像对应点做DLT变换,求出内外参数,之后以这个参数为初始值,同时考虑畸变影响,求出更加准确的数值.

对于复杂工业现场的摄像机标定,首先需要解决环境干扰问题,目前没有很好的办法完全消除干扰,对于不能提取标定板角点的图像主要采用剔除操作[8].

本文首先对工业现场提取的标定板进行判断,如果不能提取角点,则采用均值滤波和基于区域生长[12]的方法对图像进行处理,然后与滤波图像相减得到我们需要的图像,最后采用标准的针孔摄像机模型进行标定,求出摄像机的内外参数.实验结果表明,该方法实用性好,并可有效的降低工业现场环境的干扰,并可用于其它工业现场的摄像机标定.

1 标定原理

1.1 世界坐标系、摄像机坐标系和图像坐标系

假设我们的相机在没有畸变的情况下,采用的是理想的针孔模型[6-8],如图1三个坐标系的关系图.其中的(Xc,Yc,Zc)表示的是摄像机坐标系,(Xw,Yw,Zw)表示的是世界坐标系,点p所在的位置即为图像坐标系.为了计算出内外参数,需要对世界坐标系和图像坐标系建立相似关系,从而得到需要的结果.

图1 三个坐标系关系图Figure 1 Relationship of the three coordinate diagram

1.2 摄像机模型

针孔模型是指只有经过某特定点的光线才能正常通过针孔,从而投影到图像平面形成图像.

图像坐标系中的转换关系如式(1):

式(1)中,(u0,v0)是图像的中心点,f为摄像机的有效焦距,其中,计算机图像中像素的物理距离,在水平方向上用Δx来表示,垂直方向上用Δy来表示,s是用来适应由于计算机在水平方向上的取样所带来的不确定因素的影响.矩阵M就是我们最终要求解的摄像机内参数矩阵,通过转换关系,从而得出我们需要的参数,完成摄像机标定.

根据相似性原理:

其中,(r1,r2,r3)为自由度为3的旋转矩阵,并且内部的向量两两正交,平移矩阵t为三维的列向量,这两个参数就是我们要求的外参数,通过标定,对标定过程中的图像都会输出这两个向量.

1.3 透镜畸变

对于上面的摄像机模型,没有考虑到实际中的透镜畸变,这样的标定方法其实是不合理的.只有正确的引入透镜畸变,才能使我们的标定结果更加准确,所以将式(1)转换关系中的(x,y)扩展为(xq,yq):

一般情况下,我们只考虑k1,k2,p1,p2,只有对于畸变很大的透镜,例如鱼眼透镜,我们才会继续考虑k3.通过引入径向畸变和切向畸变,使我们的模型更加真实可靠的反应了实际透镜的畸变情况,相比较对于只引入一阶径向畸变的T asi[9]模型而言更加合理、准确.

2 工业现场的摄像机标定方法

2.1 平面模板

由于标定过程中采用的是最小二乘法以及考虑到噪音和数值稳定性要求,需要抓取尽量多的不同角度的标定图片,使标定的结果更加精确,所以首先利用摄像机从不同的角度抓取多张平面标定模板的图片.本文采用黑白棋盘作为平面模板进行标定,利用AutoCAD制作的标定板,标定板中每个正方形的边长为10 mm,个数为7×7,角点数36个.

2.2 图像预处理

工业现场的环境复杂,比如焊接等强光的干扰或者工业设备对光源的遮挡等,这对于我们拍摄的图像或者偏暗,或者偏亮,干扰很大.如果对提取的图像直接采用简单的二值化图像处理,很难达到准确提取角点的目的.同时,由于标定板本身的打印问题,对于拍摄的摄像机标定模板,出现一些噪声,提取角点容易失败.

对于提取角点失败的图像,我们采用均值滤波和基于区域生长的图像处理方法,从而达到准确提取角点的目的.

均值滤波器是一种线性滤波器,是图像预处理中经常使用的滤波器,可以有效地去除图像中的高频部分,如式(5),通过滤波掩膜邻域内像素的简单的平均灰度值来代替图像中每个像素点的值,把图像中的阶跃变化变成渐进变化,从而有效地减小噪声.

其中,f[k,l]表示图像二维坐标点[k,l]处的灰度值,M是邻域N内的像素点总数,h[i,j]表示处理后的灰度值.如图2,左边为均值滤波前,右边为均值滤波后,通过均值滤波后,图像明显的更加平滑,消除了打印机打印质量水平的限制.

图2 均值滤波Figure 2 Average filter

均值滤波在消除噪声干扰的同时还是存在着边缘模糊的效应,故需要对图像做进一步的处理才能够准确的提取标定板的角点,于是采用一种基于区域生长的方法来对图像进行操作.区域生长,是一种根据事先定义的准则将像素或者子区域聚合成更大区域的过程,基本思路是我们首先设定一个准则或者多个准则,从一个“种子”点开始,将与“种子”性质相似的相邻的像素即符合我们准则要求的像素点附加到生长区域中的每个“种子”中,形成更大的区域.为了保证我们的准确性,我们选择多个起点,同时根据像素与种子之间的灰度值之差小于一个规定值和相邻像素之间的连通性作为准则,通过区域生长分离出图像的边界,如图3.

图3 区域生长Figure 3 Region growth

通过区域生长,能够将图像内部的边界区分开来,但是,仅仅依靠这个边界无法进行角点的提取,为此,我们采用滤波后的图像减去区域生长所分离出的边界,如式(6):

式(6)中,S(x,y)为均值滤波后的图像,D(x,y)为区域生长后的图像,F(x,y)为我们最终需要的图像.如图4,左边的图像是原图像,右边的图像是经过图像处理后的最终图像.

图4 原图像与最终图像Figure 4 Original image and the final image

2.3 角点提取

角点正好是图像中的特殊点,而这个特殊点不会恰好位于一个像素的正中心,而摄像机标定中需要较高的精度,所以需要提取到亚像素级别的角点才能满足要求.对于要提取的角点而言,正好满足一个向量和与其正交的向量点积为0的准则.

图5 计算亚像素精度角点Figure 5 Calculate the sub pixel precision corner

如图5,首先获得一个角点的大致位置q,之后作为起始角点,q是处于亚像素角点附近,然后进行亚像素角点的提取.在上述的两种情况下,p点处的梯度与q-p向量的点积都为0.通过在p点处寻找多组梯度以及对应的向量q-p,根据相互正交的向量点积为0的准则建立方程组,最后通过求解方程组得出的解即为角点q处于亚像素精度的位置.

2.4 标定过程

本文首先利用摄像机从不同的角度采集15幅图像,采集到的每幅图像都会包括整个标定模板,标定的流程,如图 6.

图6 标定流程Figure 6 Calibration processing

1)读取图像数据;

2)判断能否提取图像中的角点,若不能提取,则进行图像处理;

3)对于棋盘中的角点,即黑白格的相交点,使用cvFindChessboardCorners()函数来寻找,同时,用链表的方式将我们的角点坐标存储起来;

4)寻找图像中的亚像素角点,采用自适应阈值的方法,调用 cvFindCornerSubPix()函数,寻找精确的亚像素角点;

5)将提取的角点用圆圈标记起来,并且对棋盘中的角点用直线完整的连接起来;

6)计算内外参数矩阵,畸变系数矩阵;

7)根据计算得到的摄像机各内外参数,通过计算已知角点在图像上的投影得到的坐标值与通过点提取得到的投影坐标值进行比对,得到一个误差值;

8)保存数据并输出.

3 实 验

为了验证方法的可行性,本文采用JAI的TM2030GE相机,镜头采用的是 FUJINON的CF50HA-1镜头,计算机采用的是Intel Core2 Q9400处理器,显卡采用的是GTS250,在Windows XP平台上,利用VC++6.0的编译环境开发了一个摄像机标定程序,此程序可以方便地调用OpenCV函数库,移植性好.

正常环境中摄像机标定的结果:

摄像机的内参数矩阵:

畸变系数:

(k1,k2,p1,p2)T=(0.0104 233,-19.229 6,-0.0 066 0748,-0.000 802 138)T

工业环境中的摄像机标定的结果:

摄像机的内参数矩阵为

畸变系数:

(k1,k2,p1,p2)T=(-0.0 123 567,-13.822,-0.00 332 016,-0.003 782 96)T

工业环境中标定过程中提取的角点,如图7.

图7 角点提取Figure 7 Corner extraction

如图7,在标定过程中,对于提取到角点,用不同颜色的圆圈标记出来,同时,对于图像中的所有角点,通过直线按照一定的顺序连接起来.通过图像,能够得到两个结论:第一个结论为通过使用图像预处理,对于工业环境中的标定板角点能够正常的提取出来;第二个结论,对于提取到的角点的位置是正确的,从而更加直观的判断此种方法的可靠性和准确性.

工业环境标定的结果与正常环境情况中标定的结果通过计算相对误差进行分析,实验中的数据都是以像素作为基本单位,如上面的两个内参数矩阵所示,fx表示x方向的焦距,工业环境中标定的结果与正常环境中标定的结果进行对比,通过计算二者之间的相对误差为0.836%.同理,fy表示y方向的焦距,其工业环境中标定的结果与正常环境中标定的结果的相对误差为0.66%,u0和v0表示图像的中心,与正常环境中标定的结果的相对误差分别为1.4%和1.48%.对于焦距方向的相对误差,都在1%的范围以内,对于图像中心点的相对误差也控制在1.5%左右,都能够满足实际要求.

畸变系数也是以像素作为基本单位,其中,k1,k2表示透镜的径向畸变,p1,p2表示的切向畸变,实验中采用的相机的像素大小为7.4 μ m,从上面的数值变化来看,差别很小.

对于没有办法在工业环境中提取角点来进行标定的图像,此程序能够符合要求,可以满足工业现场环境的需求.

4 结 语

对于复杂工业现场的摄像机标定,采用均值滤波和基于区域生长的图像处理的方法,能够降低工业环境的干扰.通过与正常环境中标定的结果比对,误差在正常范围内,方法简便,可移植性好,基本能够满足实际的工业环境中摄像机标定的要求.

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

[2]郭 斌,程 佳,谢代梁,等.注射剂可见异物检测气泡干扰消除方法的研究[J].中国计量学院学报,2010,21(4):293-296.

[3]邬文俊,何 涛,吴庆华.轴承漏针自动检测系统[J].中国计量学院学报,2008,19(1):29-33.

[4]杨立娜,单越康,周 铭.机器视觉的石墨轴承同轴度检测系统[J].中国计量学院学报,2007,18(1):26-28.

[5]邱茂林,马颂德,李 毅.计算机视觉中摄像机定标综述[J].自动化学报,2000,26(1):43-45.

[6]汪柏胜,高幼年,沈文忠.基于 OpenCV的摄像机标定方法的实现[J].上海电力学院学报,2010,26(4):383-386.

[7]李 跃,汪亚明,黄文清,等.基于OpenCV的摄像机标定方法的研究[J].浙江理工大学学报,2010,27(3):417-420.

[8]赖小波,朱世强,曹新星.基于 OpenCV的焊接跟踪系统中摄像机标定方法[J].焊接学报,2010,31(7):75-78.

[9]TSAI R Y.A versatile camera calibration technique for high accuracy 3D machine vision metrology using of the shelf TV cameras and lenses[J].IEEE Journal of Robotics and Automation,1987,3(4):323-344.

[10]FAI G W.Calibration of close range photogrammetric system:mathe-matical formulation[J].Photogrammetric Engineering and Remote Sens-ing,1975,41(12):1479-1496.

[11]ZHANG Z Y.Flexible camera calibration by viewing a plane from unknown orientations[C]∥International Conference on Computer Vision(ICCV).Liege,Belgium:Elsevier Science Publishers,1999:666-674.

[12]冈萨雷斯.数字图像处理[M].2版.北京:电子工业出版社,2009:496-498.

猜你喜欢
角点畸变摄像机
一种改进的Shi-Tomasi角点检测方法
多支撑区域模式化融合角点检测算法仿真
几何特性对薄壁箱梁畸变效应的影响
基于FAST角点检测算法上对Y型与X型角点的检测
在Lightroom中校正镜头与透视畸变
摄像机低照成像的前世今生
新安讯士Q6155-E PTZ摄像机
波纹钢腹板连续刚构桥扭转与畸变的试验研究
如何消除和缓解“摄像机恐惧症”
一种无人机影像分块的亚像素角点快速检测算法