基于机器视觉的火花塞电极间距测量.doc_第1页
基于机器视觉的火花塞电极间距测量.doc_第2页
基于机器视觉的火花塞电极间距测量.doc_第3页
基于机器视觉的火花塞电极间距测量.doc_第4页
基于机器视觉的火花塞电极间距测量.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

本 科 生 毕 业 设 计 论 文 基于机器视觉的火花塞电极间距测量 院 系: 电子信息工程学系 专 业: 班 级: 电信072 学 号: 710706245 指导教师: 职称(或学位): 讲师 2011年 4 月原创性声明 本人郑重声明:所呈交的论文(设计),是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文(设计)不含任何其他个人或集体已经发表或撰写过的作品成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学生签名: 年 月 日 指导声明本人指导的 同学的毕业论文(设计)题目大小、难度适当,且符合该同学所学专业的培养目标的要求。本人在指导过程中,通过网上文献搜索及文献比对等方式,对其毕业论文(设计)内容进行了检查,未发现抄袭现象,特此声明。指导教师签名: 年 月 日目 录1 绪论21.1 火花塞电极间距测量问题21.2 设计工具31.3 火花塞电极间距测量流程框图32 摄像机标定32.1 四种坐标系间相互转化32.2 标定过程53 基于形状的匹配93.1 选择对象103.2 创建火花塞模型103.3 搜索火花塞模型114 测量过程及结果114.1 仿射变换114.2 创建测量矩形124.3 一维边缘提取124.4 测量结果与分析15结束语17致谢17参考文献18附录19基于机器视觉的火花塞电极间距测量(电子信息工程学系 指导教师:)摘要:火花塞中心电极和侧边或地电极之间的距离必须在一定范围内才能保证火花塞成功应用于特定的发动机类型,因而在制作领域对火花塞电极间距的准确测量以剔除不合格的火花塞显得如此重要。为此利用强大的机器视觉软件Halcon来完成对火花塞电极间距的测量。首先,进行摄像机的标定;然后,利用基于形状模板匹配算法在图像中寻找火花塞。最后,对参与测量的相关区域作仿射变换以及提取一维边缘。从而完成了对火花塞电极间距的测量。测量结果表明利用Halcon软件能够准确测量火花塞电极间距,从而检测出各个火花塞是否合格。关键词:电极间距;摄像机标定;模板匹配;双线性插值;边缘提取 Abstract:The distance between the Spark plugs center electrode and the side or ground electrode must be within the scope of certain ,which ensures the spark plugs be successfully applied to particular type of engine, its so important to measure the preignition spacing for the making field in order to get rid of the unqualified Spark plugs.Therefore,use the powerful machine vision Halcon software to accomplish preignition spacing of measurement.First of all,to calibrate the camera; Then, use a template matching algorithm based on shape find spark plug in the image. Finally, transform the related areas for measuring and extracte one-dimensional edge. Thus completion of the spark plug gap spacing measurement. The measuring results show that using the Halcon software is able to measure preignition spacing accurately, thus to detect whether the spark plug is qualified.Keywords:Preignition spacing; The camera calibration; template matching; Bilinear interpolation; Edge extraction1 绪论1.1 火花塞电极间距测量问题火花塞(spark plugs),简称火嘴,它的示意图如图1所示。它的功能是将高压导线(火嘴线)输送来的脉冲高压电放电,击穿火花塞的两电极间的空气,从而产生火花来引燃气缸内的混合气体。观察图1可知火花塞电极间距为火花塞中心电极与侧电极间的距离即图1中所指的“间隙”。图1 火花塞火花塞中心电极与侧电极间的距离必须在一定范围内才能保证火花塞能够用于特定的发动机类型。因而在火花塞的制造领域,对火花塞电极间距有严格的要求。本设计中规定合格的火花塞电极间距必须在0.78mm和0.88mm之间,即最小两电极间距为0.78mm,最大的间距为0.88mm,若电极间距小于0.78mm,则为间距过小的火花塞,若电极间距大于0.88mm,则为间距过大的火花塞。如图2和图3分别为对应间距合格的火花塞图像和间距过大的火花塞图像。 图2 间距合格的火花塞 图3 间距过大的火花塞火花塞电极间距过大和过小都无法使火花塞发挥其作用,因而制造领域对火花塞电极间距的精确、快速和有效测量的技术也越来越关注。随着机器视觉的不断快速发展,它在产品外观(外包装)的检测、集成电路板的封装检测、产品尺寸的在线检测、微小零件的尺寸检测等领域都得到了非常深入和广泛的应用。机器视觉检测技术具有非接触、速度快、精度高、现场抗干扰能力强等许多优点, 能很好地满足现代制造业对检测的要求。因此,将强大的机器视觉技术引入到对火花塞电极间距的精确测量中。机器视觉检测技术在火花塞生产的检测环节的应用是现代科技发展的必然结果。1.2 设计工具本设计采用的工具是由德国MVtec Software GmbH公司研发的机器视觉图像处理软件HALCON。它由一千多个各自独立的函数(如阀值分割,区域形态学,极坐标变换等)和底层的数据管理核心构成。其中含有各类滤波、色彩分析以及几何、数学变换、形态学计算分析、校正、分类、辨识、形状搜索等基本的几何以及图像计算功能,由于这些功能大多并非针对特定任务而设计的,所以只要有图像处理的地方,就可以用HALCON软件强大的计算分析能力来出色完成工作。HALCON软件的数据结构有图像(image)和区域(Region),包含图标变量(iconic variables)和控制变量(control variables),它的操作符格式为:操作(输入图标变量:输出图标变量:输入控制变量:输出控制变量)(operator(input_iconic:output_iconic:input_control:output_control)。正是因为HALCON软件强大的图像处理数据功能,因而本设计选用这个软件完成对火花塞电极间距的测量。1.3 火花塞电极间距测量流程框图 火花塞电极间距测量流程框图介绍了火花塞电极间距测量的整个过程,如图4所示。 摄像机标定基于形状的模板匹配火花塞电极间距测量图4 电极间距测量流程框图首先,进行摄像机的标定即得到摄像机的内参和外参1。然后,利用基于形状模板匹配算法在图像中寻找火花塞。最后,对参与测量的相关区域作仿射变换以及提取一维边缘,通过相应转化和计算,从而完成了对火花塞电极间距的测量。2 摄像机标定 为了利用机器视觉方法对拍摄的测量火花塞图像进行电极间距的测量,必须首先进行摄像机标定。摄像机标定是准确测量目标物体的必要准备,每个镜头的畸变程度各不相同,通过摄像机标定可以校正这种镜头的畸变。摄像机标定后可以得到在世界坐标系中目标物体米制单位的坐标。要完成对摄像机的标定,首先得考虑一种模型,此模型由摄像机、镜头和图像采集卡构成,它能将世界坐标系中的三维空间点投影到二维图像坐标系中。在机器视觉的应用中,有两种常用镜头:普通镜头和远心镜头。普通镜头实现世界坐标系到图像坐标系的透视投影,而远心镜头实现世界坐标系到图像坐标系的平行投影,同时远心镜头能够避免图像的透视变形对精确测量带来的困难。本设计中使用的摄像机模型是具有远心镜头的摄像机。2.1 四种坐标系间相互转化在机器视觉中,有四大坐标系:世界坐标系、摄像机坐标系、成像平面坐标系和图像坐标系,它们之间的关系如图5所示。图5 四大坐标系间关系观察图5可以发现为了将世界坐标系中的点转换到图像坐标系中,首先,将处于世界坐标系中的点转换到摄像机坐标系中坐标变为,转换表达式如式(1)所示1: (1)从世界坐标系到摄像机坐标系的变换属于一种刚性变换,其实质是由旋转和平移构成。平移向量为。是旋转矩阵,其中旋转包括三个旋转角度,分别是绕摄像机坐标系轴旋转角度,绕摄像机坐标系轴旋转角度,绕摄像机坐标系轴旋转角度。 (2)R和T中共有6个参数称为摄像机外参或摄像机位姿,它们确定了摄像机坐标系与世界坐标系之间的相对位置关系。然后,将摄像机坐标系中三维空间点投影到成像平面坐标系中,本设计中使用远心摄像机模型,因而这个投影是平行投影,转换表达式如式(3)所示1: (3)在这个投影过程中镜头的畸变导致坐标发生了变化,变成坐标,对于大多数镜头而言,它们的畸变都可以充分地近似为径向畸变。坐标转变为的表达式如(4)所示1: (4)最后,将点从成像平面坐标系转换到图像坐标系中,其转换表达式如式(5)所示1: (5)对于远心摄像机而言,其内参包括8个参数:。由于使用的是远心镜头,所以=0,本设计中使用的图像的宽度()为640,图像高度()为320。其中参数共同确定了摄像机如何实现三维空间点到二维图像点的投影。2.2 标定过程摄像机标定其实质是确定摄像机内参和外参的过程。在HALCON中利用camera_calibration操作轻松完成摄像机的标定。它的输入可以分为两类:足够多的三维空间点在世界坐标系中的位置即它们对应的世界坐标,以及它们在图像坐标系中的位置即图像坐标;摄像机的参数的初始值。为了得到足够多的三维空间点在世界坐标系中的坐标值,本设计中采用77的平面校准板。平面校准板有三大优点:第一,它易于操作;第二,它的尺寸制作的精确;第三,只要使用透明材料制作放置标志点的底盘就可以非常方便地应用到背光照明中。平面标定板上有77个圆形标志点,在这些标志点外面有个黑色矩形边界框,一个小的方向标记放置在矩形边界框的一个角落,从而确定校准板的唯一位姿。通过caltab_points (CaltabName, X, Y, Z)操作实现了从校准板描述文件中读取49个校准标志在校准板坐标系统中的三维坐标,此坐标系统位于校准板表面的中间。校准板放置在世界坐标系Z=0的一个平面上。校准板上第三行和第四行的校准标志(共14个)的世界坐标值(X, Y, Z)如图6所示: 图6 校准板上标志的世界坐标值(X, Y, Z)观察图6中的校准板中第25个校准标志即图6中“24”对应的坐标(0,0,0),说明了校准板描述文件中的49个校准标志坐标所对应的坐标系统处在校准板表面中间位置,且校准板处在世界坐标系Z=0的平面上。从图6中还可发现每两个校准标志的中心之间的距离为0.00125m,处在相同行的校准标志Y坐标相等,处在相同列的校准标志X坐标相等。2.2.1 摄像机参数初始值和标志的图像坐标摄像机内参的初始值从图像传感器以及远心镜头的说明中即可获取,本设计中摄像机的内参初始值设为:StartCamParam := 0,0,39e-6,39e-6,320,240,640,480。由于使用的是远心镜头,它的焦距为0,所以第一个摄像机内部参数的初始值设置为0;径向畸变的初始值设置为0;世界坐标系中初始像素尺寸为39um,这是根据远心镜头的常用初始值来设置的;且假设主点位于图像的中心;最后两个参数分别为采集图像的宽度和高度。摄像机的外参值描述了校准板(measurement plane )和摄像机坐标系之间的关系,校准板定义为在世界坐标系中z=0的一个平面。本设计中使用了14幅不同位姿的77平面校准板图像来确定摄像机外参初始值以及获取标志的图像坐标。图7为14幅校准图像中的两幅。 图7 14幅中的不同姿态的标定目标中的两幅图观察图7中的两幅图像可发现标定板上的黑色矩形边界框将背景和校准板的内部区域分离开了,因而利用校准板的这个特点在图像中通过阈值分割操作找到校准板的内部区域2。鉴于正确的阈值取决于图像中标定板的亮度,因而在图像中自动尝试不同的阈值,直到找到含有77个圆形标志的区域。这个过程是通过find_caltab (Image, Caltab, CaltabName, 3, 100, 5)操作来完成。返回的含有49个圆形标志的区域如图8中绿色矩形框内所示: 图8 含有49个圆形标志区域找到校准板的内部区域后,即可以利用亚像素边缘提取方法来提取校准板上各个圆点的边缘。由于圆形标定标志的投影为椭圆,所以被提取出来的边缘拟合为椭圆。利用提取出的椭圆的最小外接四边形,即可找到标定标志在图像坐标系的坐标值;初步估计每幅图像中的校准板相对摄像机的位姿即摄像机的外参初始值。这过程借助find_marks_and_pose操作来完成。对14幅校准板图像的区域内各提取49个标志,对应686个图像坐标(RCcord,CCoord);对应14组摄像机外参初始值(StartPose)。如对8所示的校准图像的区域内提取标志,执行find_marks_and_pose (Image, Caltab, CaltabName, StartCamParam, 128, 10, 18, 0.6, 15, 100, RCoord, CCoord, StartPose)操作,返回如表1所示的校准标志中心点的(49个标志中的7个)图像坐标, 如表2所示对应的摄像机外参初始值(StartPose)。表1 7个校准标志的图像坐标表第n点坐标值1234567Rcoord(行坐标)159.99189.314218.651247.98277.302306.636335.947Ccoord(列坐标)387.73375.078362.383349.734337.083324.373311.688表2 摄像机外参初始值表六个外参外参初始值txtytzStartPose-0.00212013-0.001203530.0358.63615.8685115.934表1中校准标志中心点的图像坐标是以像素为单位的。表2中的摄像机外参初始值、和分别是绕摄像机坐标系zc轴、yc轴和xc轴旋转的角度,以弧度为单位;tx、ty和tz为三个方向的平移量,以像素为单位。确定了标定标志在图像坐标系中的坐标和摄像机参数的初始值之后,就可以进行摄像机的标定了。2.2.2 最小化过程摄像机的标定就是确定摄像机的内参和外参的过程,它是通过一个最小化过程实现的1。将标定标志在世界坐标系中坐标设为,标定标志中心点投影到图像中的坐标设为,摄像机参数表示位向量c。,前8个元素是摄像机内参,后6个是摄像机外参。提取的标定标志中心点坐标与标志标志投影坐标间的距离最小化来确定摄像机参数,其表达式如式(6)所示: (6)式中,是校准板上标定标志的数量。最小化过程是个复杂的非线性最优化问题。因此,须为这些参数提高较好的初始值,即包括摄像机内参和外参的初始值。由于远心镜头摄像机模型待解参数过多,所以式(6)表示的最优化过程不能得到所有摄像机参数。此处可作引用:对于远心摄像机而言,一般情况下都不能从单幅图像中计算出、和旋转角度。以及简并性问题的存在,应使用多幅不同位姿的校准板图像进行摄像机标定。本设计中使用了14幅图像参与摄像机标定,则对应14组外参,将内参和14组外参构成摄像机参数向量c中,接着解决如下的最优化问题来标定摄像机: (7)式中,表示在第j幅标定图像中的第i个标定标志的坐标,为标定板上标志个数为49。若标定板在图像中放置的位置和方向合适,则可以求出摄像机所有的参数的唯一解。这个最优化过程借助于camera_calibration (X, Y, Z, Rows, Cols, StartCamParam, StartPoses, all, CamParam, FinalPoses, Errors)操作。返回摄像机内参准确值如表3所示,外参准确值如表4所示,以及以像素为单位的平均误差(x、y坐标偏差),如表5所示。表3 摄像机内参准确值表八个内参内参准确值sxsycxcyWidthHeightCamParam0.08.959853.910610-53.8822510-564.8953267.703640480表4 摄像机外参准确值表六个外参外参准确值txtytzFinalPose0.0078436-0.002271670.0358.02616.1411114.349 表5 平均误差表x、y坐标偏差平均误差x坐标偏差y坐标偏差Errors0.1216080121608表3中的摄像机准确内参值用于将图像测量用地球单位来表示,它们共同决定了摄像机如何实现三维空间点到二维图像点的投影,将表3中的摄像机内参与内参初始值相比较,不难发现参数cx、cy和变化较大,特别是参数cx和变化非常大。表4中摄像机准确外参值确定了摄像机坐标系与世界坐标系之间的相对位置关系,将表2和表4相比较,即摄像机外参初始值与外参准确值间的对比,观察到它们之间对应的大部分参数变化不大,但参数(弧度为单位)差异较大,旋转方向完全相反了。由于没必要知道火花塞在世界坐标系中的具体位置,因而摄像机准确外参值在后面的测量中没有用到。表5中的平均误差是说明摄像机标定的准确度,它由x坐标偏差和y坐标偏差构成的,以像素为单位,它们的值越小,说明摄像机的标定的准确度越高,即说明所求的摄像机内参和外参的值的准确度越高。由表5可发现x坐标偏差和y坐标偏差相等且值都很小,从而说明了摄像机的标定是相当成功的,为后续准确测量火花塞电极间距做好了准备。总之,从平均误差证实了摄像机标定的准确度相当高,即通过摄像机初始参数与经摄像机标定后所确定的参数相比较,说明了摄像机标定的必要性。 3 基于形状的匹配为了完成对火花塞电极间距的测量,需要从一幅标准的训练图像中寻找火花塞电极部分的主体模板,接着从模板中创建火花塞模型,最终火花塞模型被用来在被测火花塞图像中对与模板相似的对象进行定位,这就是所谓的模板匹配思想。模板匹配的优势是具有鲁棒性和灵活性相结合的简易操作性。模板匹配不需要对所要的对象作任何的分割操作,即使所需定位的对象被其他对象遮挡都可以被定位。HALCON中提供了五种方式的模板匹配,包括gray-value-based matching、shape-based matching 、component-based matching、correlation-based matching 和point-based matching,本设计中使用shape-based matching(基于形状的匹配)。基于形状匹配代表了机器视觉的先进性。提取出轮廓特征3,然后用于模型的创建和匹配。它对照明和灰度值有变化的对象处理非常有效。基于形状的匹配的流程图如图9所示:在模型图像中选择出对象创建火花塞模型搜索模型基于形状的模板匹配图9 基于形状的匹配的流程图3.1 选择对象在火花塞模型图像中选择出对象。对应的程序如下所示:read_image (ModelImage, spark_plug/spark_plug_01)gen_rectangle1 (ModelRegion, 120, 230, 220, 445)reduce_domain (ModelImage, ModelRegion, TemplateImage)获取了一幅所谓模型图像后,需创建一幅代表对象的图像。首先,创建一个包含对象的区域,此对象由中心电极、绝缘体和螺纹上面的部分构成,利用gen_rectangle1操作创建一个矩形区域只需设定矩形的左上角点和右下角点的坐标,如图10所示;然后,利用reduce_domain操作完成生成只含有选择区域的图像,结果如图11所示。 图10 矩形区域 图11 含有选择区域的图像3.2 创建火花塞模型完成了在火花塞模型图像中选择出对象后,接着就创建火花塞模型。对应的程序如下所示:create_shape_model (TemplateImage, auto, rad(-30), rad(60), auto, none, use_polarity, auto, auto, ModelID)通过create_shape_model操作创建火花塞模型,内部数据结构描述了被搜索的对象。除了指定操作中的NumLevels(最大金字塔水平)和Contrast(对比度)参数外,还可以通过设定AngleStart和AngleExtent参数来规定火花塞模型呈现的角度范围,以及用来创建模板的角度步长(AngleStep)。利用参数Optimization可以减少模型点的数量,这对于大的模型是非常有帮助的,而本设计中的所需创建的火花塞模型比较小,因而需要存储火花塞模型的所有点,因而将Optimization参数设为“none”,以及在搜索图像中的对象点与模型之间的最小对比度((MinContrast)的设定。此操作返回了已创建的模型的句柄(ModelID),它指定了所创建的模型,被find_shape_model操作所调用。利用get_shape_model_contours操作返回了火花塞模型的轮廓但模型的参考点位于像素坐标(0,0)位置,如图12所示的左上角。因而需要将轮廓位置转换到图像中的寻找位置,借助get_shape_model_contour_ref (ModelRegion, ModelContoursTrans, ModelID)过程,即将模型参考点转换到矩形区域的重心位置,即进行仿射变换后轮廓如图13中红色部分所示的轮廓,另外图13中的红色十字为模型的参考点。 图12 左上角为模型的轮廓 图13 变换后的轮廓和模型参考点3.3 搜索火花塞模型创建好了火花塞模型后,须在被测火花塞图像中搜索火花塞模型。将创建好的火花塞模型放置在图像中的相应位置,通过比较模板的亮度值和图像中对应值,从而确定火花塞模型的参考点在图像中的位置4。对应的程序如下:find_shape_model (Image, ModelID, rad(-30), rad(60), 0.7, 1, 0.5, least_squares, 0, 0.9, Row, Column, Angle, Score)通过调用find_shape_model操作在图像中搜索火花塞模型,除了在第二步所提到的模型的句柄ModelID外,find_shape_model操作提供了许多优化搜索过程的参数,除了在创建模型操作中已设置的参数AngleStart、AngleExtent,和NumLevels之外,其中的参数MinScore间接指明了必须找到多少的模型点,例如MinScore参数的值为0.5,则必须找到模型一半的点。find_shape_model操作返回了火花塞模型的位置坐标(Row, Column)即其参考点位置和方向(Angle),以及火花塞模型在图像中可看见部分占整个火花塞模型的值(Score)。若Score的绝对值大于0,说明在图像中找到了火花塞模型,则接着进行火花塞电极间距测量;否则就说明在图像中未找到火花塞模型。4 测量过程及结果 搜索火花塞模型操作find_shape_model返回的Score值说明了在图像中寻找到火花塞模型点情况,即说明在图像中是否找到火花塞模型,若找到火花塞模型则进行火花塞电极间距测量。具体测量流程图图14所示:利用匹配结果生成仿射变换矩阵对ROI和模型轮廓作仿射变换创建测量矩形提取一维边缘关闭测量对象测量结果转换为以米为单位火花塞电极间距测量图14 具体测量流程图4.1 仿射变换为了使得火花塞模型与在图像中所找到的火花塞重合,须对匹配的位姿进行二维刚性变换,即仿射变换1,利用vector_angle_to_rigid (0, 0, 0, Row, Column, Angle, HomMat2D)操作生成仿射变换矩阵HomMat2D,使用仿射变换矩阵HomMat2D将火花塞模型参考点的位置和测量对象的中心位置进行移动,为正确测量火花塞电极间距奠定基础。若火花塞的位置和旋转角度在机械装置上无法保持恒定,则必须对其进行平移和旋转角度的修正。还考虑火花塞和摄像机之间的距离的改变会导致了图像中火花塞尺寸发生了较大的变化,因而在测量火花塞电极间距前采用仿射变换。一个仿射变换由线性部分和平移部分构成。仿射变换可以用齐次坐标和非齐次坐标两种表示法,其中非齐次坐标表示法1如式(13),齐次坐标表示法如式(14)。 (13) (14)式(13)中,和表示仿射变换中的平移部分;式(14)中,和表示仿射变换中的平移部分。通常使用齐次坐标表示仿射变换。4.2 创建测量矩形测量矩形是测量对象的一种形状,测量对象有两种形状,旋转矩形形状和圆弧形状。创建测量对象是为边缘提取做好准备。分别使用gen_measure_rectangle2操作和gen_measure_arc操作完成对应形状对象的创建。本设计中创建矩形形状的对象,其对应的程序如下:gen_measure_rectangle2 (TransRow, TransCol, Angle+RectRelPhi, RectLen1, RectLen2, Width, Height, bilinear, MeasureHandle)一个旋转矩形是通过它的中心(Row, Column)、方向(Phi)和一半的边缘长度(Length1 Length2),参数Phi是以弧度为单位的,其他参数是以像素为单位的。创建对象的操作中的参数定义了ROI的位置、大小和方向。参数Width和Height分别是图像的宽度和高度。执行gen_measure_rectangle2操作获取测量对象如图15中的蓝色矩形。图15 测量矩形4.3 一维边缘提取完成创建测量矩形之后,则开始进行一维边缘的提取。HALCON中确定一维边缘的位置通过以下方法:首先,垂直于测量线或测量弧的等距线投影的构造,测量线或测量弧(也称剖面线)的长度与ROI的宽度相等。然后,计算沿每条投影线的平均灰度值。这些均值的序列称为剖面。如果投影线的方向不是水平或垂直方向,则沿着这投影线的像素值必须进行插值运算。投影线的长度即ROI的宽度定义了在垂直于剖面线的方向上的平均水平。利用高斯平滑滤波器对剖面进行平滑,高斯平滑滤波器的标准偏差的值是通过测量操作如measure_pairs中的Sigma参数来设定的。对平滑后的剖面求一阶导数,一阶导数的所有当地极值的亚像素精度位置有可能是边缘所在的位置,但只有一阶导数的绝对值大于Threshold才被认为是图像中的边缘。最终,边缘检测操作返回边缘与剖面的交叉点的位置坐标5,以及边缘振幅,从而完成了对一维边缘的提取,通过measure_pairs操作来完成的。4.3.1 双线性插值通过设置Interpolation参数来选择不同的插值方式,若 Interpolation = nearest_neighbor(最邻近插值),则与它相邻最近像素的灰度值作为它们的灰度值,最邻近插值法是所有插值法中最快的,但它的几何精度比较低;若Interpolation=bicubic(双三次插值),双三次插值是三种插值方法中几何精度最高的,但它的速度最慢;若 Interpolation =bilinear(双线性插值),双线性插值法的几何精度和速度都比较高,因而本设计中使用双线性插值法。因为区域内的像素在原图像对应的位置有时是非整数的,即位于四个邻近像素之间的某个位置,这时得利用插值运算将该非整数像素填充到整数像素位置上,从而得到一个整数的像素值6。图16所示为像素填充示意图。,为非整数 ,为整数图16 像素填充示意图考虑到图像像素间的灰度值一般会有较大差异,因此,采用双线性插值法能够取得令人满意的插值效果。双线性插值法根据点的四个相邻点的灰度值,通过两次插值计算出灰度值,如图15所示。具体计算过程如下7:(1)计算和。 (8) (9)(2)先根据,插值求。 (10)(3)再根据,插值求。 (11)(4)最后根据,插值求。 = + (12)式中,。 图17 双线性插值法示意图4.3.2 边缘提取结果gen_measure_rectangle2操作返回了新创建的测量对象的句柄(MeasureHandle),然后利用measure_pairs操作提取出了垂直于ROI的边缘对,且在测量矩形的主轴方向上的边缘点必须满足所规定的灰度值过渡。设置measure_pairs 操作中的Transition参数,若Transition=positive_strongest,则在提取出的边缘对中的第一个边缘处的灰度值具有小到大过渡(dark to light),而在第二个边缘处的灰度值具有大到小的过渡(light to dark)。灰度值0表示黑,灰度值255表示白8。对如图15中的火花塞进行边缘提取,执行measure_pairs (Image, MeasureHandle, 1, 30, positive_strongest, all, Row1, Col1, Amplitude1, Row2, Col2, Amplitude2, IntraDistance, InterDistance)操作,提取出一对边缘,返回每条边缘的坐标值、对应的边缘振幅和边缘距离,如表6所示。表6 边缘位置、振幅和边缘距离测量结果测量对象坐标值、振幅和边缘距离(以像素为单位)第一条边缘的点Row1Cow1Amplitude1238.086373.49112.242第二条边缘的点Row2Cow2Amplitude2216.782372.648-112.399边缘距离IntraDistance(一对边缘间的距离)InterDistance(两对边缘间的距离)21.3203 观察表6可以发现边缘振幅的正(负)值说明了此边缘两侧的灰度值的过渡情况,若边缘振幅值为正值,则这条边缘两侧的灰度值是由小到大的过渡(dark to light);若边缘振幅值为负值,则这条边缘两侧的灰度值是由大到小的过渡(light to dark)。在测量矩形的主轴方向上的边缘点具有“dark to light”过渡的坐标值返回到坐标(Row1,Cow1),在测量矩形的主轴方向上的边缘点具有“light to dark”过渡的坐标值返回到坐标(Row2,Cow2)。表6中InterDistance的值说明了在图16中的火花塞图像中只找到一对具有所规定的灰度值过渡的边缘对,这对边缘间的距离为21.3203像素。4.4 测量结果与分析为了消除径向畸变的影响以及得到以米(m)为单位的结果,须将两个边缘点转换到摄像机坐标系中,这过程通过创建两条视线分别经过图像上的两个边缘点,即第一边缘点(Row1,Cow1)和第二边缘点(Row2,Cow2)。利用get_line_of_sight (Row1,Row2, Col1,Col2, CamParam, X, Y, Z, XH, YH, ZH)操作计算分别与图像中的两个像素相对应的视线,视线在摄像机系统中是条直线,它由直线上的两个点所描述。即每个边缘点对应直线上的两个点。表3的摄像机准确内参值参与这个操作,摄像机准确内参值实现了将图像测量用地球单位来表示。表6中的两个边缘点对应的直线上的两点分别为(X,Y,Z)和(XH,YH,ZH),如表7所示。表7 经过边缘点的直线上的两点坐标表点的缘边条两值标坐(X,Y,Z) (m)(XH,YH,ZH)(m)第一条边缘的点(Row1, Cow1)(0.012052, -0.00114832, 0.0)(0.012052, -0.00114832, 1.0)第二条边缘的点(Row2, Cow2)(0.012019, -0.00197426, 0.0)(0.012019, -0.00197426, 1.0)对于两个边缘点,所创建的两条视线分别返回线上的两点坐标,且以米制(m)为单位的。由于使用远心镜头,因而所有的视线都是平行的。观察表7,发现每条直线上的两个点的X坐标与XH坐标相等,Y坐标与XH坐标相等,所以火花塞电极间距大小与通过这两个边缘点的平行线间的距离相一致。确定了两个边缘点以米(m)为单位的坐标之后,就可以计算火花塞电极间距的大小了,计算公式如(13)所示: (13)式(13)中 DX = X1-X0,DY = Y1-Y0。计算结果值以米为单位。最后根据之前规定的有效火花塞电极间距大小来确定火花塞电极间距大小是否在公差范围内,对应的程序如下所示:GapSizeMin := 0.78e-3 *火花塞电极间距允许的最小值GapSizeMax := 0.88e-3 *火花塞电极间距允许的最大值 if (GapSize GapSizeMax) StatusText := Gap size too large *火花塞电极间距太大 dev_set_color (red) else StatusText := Gap size ok *火花塞电极间距合适 dev_set_color (green) endif endif对如图18、图19、图20和图21的火花塞图像进行火花塞电极间距测量,测量结果如图上所示: 图18 火花塞电极间距合适 图19 火花塞电极间距合适 图20 火花塞电极间距太大 图21 火花塞电极间距太小 以上四幅火花塞图像的测量结果整理如表8所示,包括find_shape_model操作返回的Score值、火花塞电极间距值和火花塞电极间距是否符合之前规定的值。之前规定火花塞电极间距最小值为0.7810-3(m),电极间距最大值为0.8810-3(m)。 表8 火花塞电极间距测量结果测量结果图n火花塞测量Score火花塞电极间距值(m)火花塞电极间距状态图180.9960840.000826603Gap size ok(合适)图190.9970720.000829515Gap size ok(合适)图200.9969290.00183524Gap size too large(太大)图210.994950.000405817Gap size too small(太小) 观察表8火花塞电极间距值是以米为单位,而四幅测量结果图上显示的电极间距值是以毫米(mm)为单位,将火花塞电极间距大小以毫米为单位显示在图像中是通过操作write_string (WindowHandle, (1000*GapSize)$.3f+ mm)完成的。结束语:本文基于机器视觉理论基础,对火花塞电极间距进行测量,首先,进行摄像机的标定。然后,利用基于形状模板匹配算法在图像中寻找火花塞。最后,对参与测量的相关区域作仿射变换以及提取一维边缘,通过相应转化和计算,从而完成了对火花塞电极间距的测量。测量火花塞电极间距实现了机器视觉理论应用到实际中。具有强大功能的HALCON软件为能够相当成功地完成对火花塞间距的测量奠定了坚实的基础,深入了解该软件所含有的算法和相关函数功能,从而灵活运用此软件使整个测量过程更加准确快捷。火花塞电极间距测量的思路是个相对广义的,它可以应用于对其他小零件的准确又快速的测量,只要结合具体测量物体,以类似的思路系统地整合相关算法从而设计出合理而精确的测量方法,应用于工业领域的检测环节,从而推进工业的快速发展。机器视觉的算法不断进步,利用机器视觉参与工业检测环节是不可抵挡的趋势。致谢:本次毕业设计能顺利地完成,与我的指导老师黄剑航的耐心指导是分不开的。老师在论文的选题、研究方案的确定以及具体的实施过程中给予了周密的指导,我才能慢慢建立正确的设计思路。在写作过程中给予了很多关键性的建议,在我因为设计思路混乱而气馁的时候不断鼓励我。我衷心感谢黄剑航老师。他严谨的教学态度和系统的科研思路让我受益匪浅。同时,他是如此的平易近人,严谨踏实的生活作风也给我留下了深刻的印象。同时,我也要感谢这一段时间和我一起奋斗的同学们,我们互相帮助,互相理解,互相研究,最终完成了毕业设计,在此我想对你们说:真的非常感谢你们。参考文献:1 杨少荣.机器视觉算法与运用M.北京:清华大学出版社,2008:258-261.2 崔锦实.机器视觉教程M.北京:机械工业出版社,2005:140-141.3 张静,胡志萍等.基于轮廓相位相关的图像自动拼接J.大连理工大学学报,2005,45(1):68-74.4 贾云得著.机器视觉M.北京:科学出版社,2000:288-289.5 张广军.机器视觉M.北京:科学出版社,2005:45-47.6 陈天华.数字图像处理M.北京:清华大学出版社,2007:123-125.7 朱志刚.数字图像处理M.北京:电子工业出版社,2002:96-97.8 贾永红.数字图像处理M.武汉:武汉大学出版社,2003:56-58. 附录* 摄像机的标定Cal

温馨提示

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

评论

0/150

提交评论