基于机器视觉Halcon软件的齿轮参数检测系统论文

2023-07-12 10:32:17 来源: 作者:xiaodi
摘要:为了实现快速、非接触准确测量齿轮参数,利用机器视觉软件搭建齿轮视觉参数检测系统。该系统基于Halcon软件平台设计,包括软件和硬件两部分组成,首先通过标定的工业相机拍摄清晰的待测齿轮图像,再利用Halcon软件的基本视觉与图像原理处理齿轮图像,经过阈值、滤波和形态学处理等操作识别齿轮图像轮廓,进一步利用角点检测算子提取并测量齿轮的齿顶圆直径、齿根圆直径、齿数、模数、分度圆直径、齿距等各项参数。通过实验测试结果表明,该法所测量出的齿轮各项参数基本上与参考数值一致,符合无接触测量的基本要求,可以准确迅速地测量
摘要:为了实现快速、非接触准确测量齿轮参数,利用机器视觉软件搭建齿轮视觉参数检测系统。该系统基于Halcon软件平台设计,包括软件和硬件两部分组成,首先通过标定的工业相机拍摄清晰的待测齿轮图像,再利用Halcon软件的基本视觉与图像原理处理齿轮图像,经过阈值、滤波和形态学处理等操作识别齿轮图像轮廓,进一步利用角点检测算子提取并测量齿轮的齿顶圆直径、齿根圆直径、齿数、模数、分度圆直径、齿距等各项参数。通过实验测试结果表明,该法所测量出的齿轮各项参数基本上与参考数值一致,符合无接触测量的基本要求,可以准确迅速地测量齿轮的基本参数。与传统的接触式测量方法相比,具有测量精度高,稳定性好等特点,对于非接触实时测量提供了简便有效的解决方法。
关键词:机器视觉;齿轮;Halcon;非接触式;角点检测算子
0引言
齿轮是最基础的机械零件,作为机械运动传动的重要组成部分,为减少机械能消耗和机器零件损耗以及提高机器使用寿命,对齿轮的精度提出了较高的要求。早期人们采用接触式游标卡尺、三坐标测量仪等测量齿轮参数,在保证测量精度的条件下极大地降低了测量的效率,而在现如今的全球生产链供给下,齿轮的生产量极大。传统的测量方式已经跟不上时代的发展,甚至限制了齿轮零件生产企业的发展[1-4]。
随着图像处理技术的不断进步,基于机器视觉技术的测量方法已经广泛应用于零部件测量和计算中,大大加快测量速度,减少因人员疲劳导致的测量误差,并防止接触测量导致的零件表面磨损情况的发生,因此,机器视觉技术在齿轮参数测量方面有着较大的应用空间。本文研究利用Halcon视觉平台搭建齿轮视觉参数检测系统,首先,利用标定的摄像机拍摄出需要的齿轮图像,并对齿轮图像预处理。同时,对灰度图像处理的齿轮图像再进行高斯滤波处理,采用阈值分割方法提取ROI区域,并结合形态学分析和检测算子对ROI区域检测得到齿轮参数。最后能在误差范围内得到齿轮的齿顶圆半径、齿根圆半径、齿数、模数等参数。本文所提的方法能够在不接触齿轮的情况下,通过机器视觉识别可以快速准确地获取齿轮的基本参数,检测效率和检测准确度得到了极大提升,检测成本也大大降低。
1系统设计方案
本检测系统由硬件和软件两部分构成,其中硬件部分由载物平台、工业相机、光学镜头和光源组成的视觉实验平台和计算机组成,软件平台是由Halcon的图像处理软件以组成。本文所提检测系统的构成如图1所示。
1.1硬件构成与检测台搭建
基于机器视觉Halcon软件检测系统的硬件系统主要包括工业相机(型号:XW500)、工业镜头(焦距2.8~12.2 mm)、LCD面板光源、载物架以及计算机构成。实验采用500万像素高清分辨率工业相机,通过Micro USB与电脑联机,电脑上安装相机的驱动程序和视觉检测平台,使用Halcon助手连接工业相机。为了更好地拾取图像轮廓与边缘,利用底板面光源,让齿轮轮廓与背景分明,利于图像的分割提取[5]。
1.2软件部分
图像处理软件使用的是德国MVte公司研发的Halcon软件,作为是一个强大的图像处理系统,它包含1 000多种图像处理算子,同时也是最基础的视觉编程软件。Halcon软件在处理图像方面提供的方法很多,在工业急速发展的今天,Halcon软件作为最基础的视觉处理系统并在产品检测以及工业自动化等方面发挥主要作用。Halcon软件支持多种编程语言的接口,可以广泛用于各种软件环境的搭建,如今嵌入式系统也是Halcon软件的发展对象。Halcon软件检测特征方面提供了很多打包的算子,可以直接调用,便于人们理解和进行软件的开发,最直观地表现在Halcon软件可以将图像的众多特征转化成图表的形式,便于开发者进行特征的选取。同时它在算法上有很大的优化,很多的外设接口都被Halcon融入到编程环境之中,完全的满足开发需求[6]。
2图像获取
2.1图像采集
获取图像配合相机驱动跟Halcon软件助手联合,利用算子:grab_image_start(::AcqHandle,MaxDelay:)捕获图像通过Acqhandle指定的图像采集设备对图像进行异步捕获:grab_image_async(:Image:AcqHandle,MaxDelay:)async从AcqHandle指定的图像采集设备请求异步捕获的图像。访问文件夹待处理图像是可以直接使用算子:read_image(:Image:FileName:)直接输入文件地址以及文件名即可打开图像文件。
2.2相机标定
标定是相机计算位姿的核心步骤,使用相机的内部参数与外部参数之间的关系,计算视场与相机的世界坐标距离,能够让两个像素点之间的距离与现实世界的世界坐标的距离换算。其中像素坐标(u,v)与世界坐标(Xw,Yw,Zw)换算公式为:
像元的高dx以及像元的宽dy;M2为相机外部参数,包括平移矩阵T以及旋转矩阵R。图2所示是为系统设置的标定板,标定板为圆心点阵式标定板,在获取标定数据时需要不断地改变标定板的方位以及角度方向,并且要保证标定板要标定完视场的区域,且不能超出相机视场[7-11]。
使用gen_caltab()算子获得标定板数据。gen_calt⁃ab(XNum,YNum,MarkDist,DiameterRatio,CalPlate⁃Descr,CalPlatePSFile),gen_caltab可以生成标准标定板参数。该校准板由白色平面上的XNum×YNum的标定点排列成矩形网格,这些行和列之间的距离以m为单位定义参数MarkDist决定。标记的直径可以通过参数Diame⁃terRatio设置,并由公式Diameter=MarkDist*Diameter⁃Ratio定义。
用Find_caltab()确定输入图像中有圆形标记的平面校准板的区域。该区域必须与CalPlateDescr文件描述的有矩形排列标记的标准校准板对应。CalPlate中返回成功分割的区域。find_caltab(Image:CalPlate:CalPlateDe⁃scr,SizeGauss,MarkThresh,MinDiamMarks:)
image_points_to_world_plane(::CameraParam,WorldPose,Rows,Cols,Scale:X,Y)得到算子转换坐标关系,同时计算出在世界坐标系下物体实际坐标距离。使用算子将平面行、列中给定的图像点的像素坐标转化成世界坐标系中的平面坐标,以X和Y返回三维坐标。
通过传递相对于WorldPose中相机坐标系的位置和姿势来确定世界坐标系。在CameraParam中,必须传递内部相机参数(有关参数序列和基础相机模型的信息,请参见校准)[8]。
3图像处理
3.1图像阈值处理
采集的图像首先需要提取区域以及分离背景,然后再使用阈值分割的办法。该方法的工作原理:在采集的图像中,提取的目标与周围物体在灰度上存在差异,通过设置阈值把每个像素分割开,进而灰度程度不同的部分被分离,从而实现分割功能;而提取采用的方法可根据图像特征相应选取。阈值分割的对象灰度处理的图像,可用:rgb1_to_gray(RGBImage:GrayImage::)算子完成灰度处理[12]。
把RGB图像转为灰度图像。RGB图像的3个通道作为输入图像的前3个通道进行传递。根据以下公式变换图像:
如果RGBImage中的一个输入图像是单通道图像,则其参考将被简单地复制到输出灰度图像。
阈值处理,则可设原始图像f(x,y),T为阈值,分割图像时则满足下式:
如果RGBImage中的一个输入图像是单通道图像,则其参考将被简单地复制到输出灰度图像。
阈值处理,则可设原始图像f(x,y),T为阈值,分割图像时则满足下式:
满足所有条件的图像点作为一个区域进行返回。若传递多个灰度值间隔(MinGray和MinGray的元组),则每个间隔返回为一个独立的区域。由此可以得到大致的分割区域。
分离过程中会遇到色调相似的选区,如图3中不连续的选区会被分离成独立的区域对象。
3.2滤波降噪处理
图3中的不连续的选区本质上就是多个相同灰度的噪声同时被阈值选取的效果,通过滤波降噪处理可以减少图像噪声,采用滤波器可以有效地提高提取精度,一般的滤波器有中值滤波器median_image(),高斯滤波器gauss_filter(),依靠滤波器滤掉噪声和环境后,再执行阈值分割处理,分割的效果更明显,如图4所示[13]。
均中值滤波原理就是将像素灰度值与其邻域内的像素灰度值加权取权重值使用算子:
median_image(Image:ImageMedian:MaskType,Ra⁃dius,Margin:)。
高斯滤波器使用离散高斯函数平滑图像,使用算子:gauss_filter(Image:ImageGauss:Size:)
3.3形态学处理
形态学处理,通过对局部区域的像素处理,用于图像细节的增强以及处理,同时也是对图像特征提取与边缘检测做准备,形态学处理包括腐蚀、膨胀,以及开、闭运算。得到的阈值分割的区域后使用unite1()算子使分隔开的区域结合一个区域,并使用填充算子fill_up()对区域进行填充,以便于后期对齿轮齿根圆直径的提取,形态学处理如图5所示。
图3阈值分割后的齿轮图4经滤波后的阈值分割齿轮
高斯滤波器使用离散高斯函数平滑图像,使用算子:gauss_filter(Image:ImageGauss:Size:)
4齿轮参数测量
4.1齿顶圆与齿根圆直径测量
利用smallest_circle()确定区域中最小圆周。在给定区域的圆中,计算出面积最小圆的中心坐标和半径。inner_circle()确定给定区域最大内接圆。这是完全适合这个区域的最大的离散圆区域,如果圆的位置不明确,则返回“第一个可能的”位置(尽可能左上角);选择出最大外接直径,利用最小内接圆(inner_circle)算子,得到所选区域的最小内接直径。这时候二者的直径可以被识别读取出来,如图6所示。利用公式:
smallest_circle(Regions:::Row,Column,Radius)确定区域的内接圆,即包含该区域的所有圆中面积最小的圆。对于该圆,计算中心(行、列)和半径(半径)。
inner_circle(Regions:::Row,Column,Radius)运算符内环确定区域的最大内环。这是最大的离散圆区域,完全适合该区域。对于该圆,计算中心(行、列)和半径(半径)。
使用image_points_to_world_plane()算子结合齿轮的内切圆和外接圆的各项参数确定一个存在于齿顶圆上的任意一点(Rows+R,Cols+R),以及圆心点(Rows,Cols)运算得到世界坐标系下的点的坐标值(X+r,Y+r)和(x,y)。使用distance_pp()算子计算世界坐标系下两点间的距离记为齿轮的世界坐标尺寸下的半径。计算公式为:
image_points_to_world_plane(::CameraParam,WorldPose,Rows,Cols,Scale:X,Y)
其中,参数CameraParam为相机的内部参数和WorldPose世界坐标系在相机坐标系中的位置姿势,都是由标定算子计算得出。(Rows,Cols)是照相机坐标系下换算的点坐标;(X,Y)是世界坐标系下换算的世界坐标。该算子的主要功能就是利用标定的参数结合将相机坐标值转化为世界坐标值。
distance_pp(::Row1,Column1,Row2,Col⁃umn2:Distance)其中分别由世界坐标系下点(Row1,Column1)与世界坐标系下点(Row2,Column2)的两点间的距离计算并返回到Distance的参数中。
4.2齿数获取
4.2.1求区域差集计算齿数
齿轮有各项标准数据,其中一项不符合即为非标准齿轮,而非标准齿轮齿数就不能用公式运算得来。在边缘检测中,提取出来的齿轮会因为光度和环境明暗度的不均衡而造成提取关键点产生误差,因此导致读取数据出错,本文介绍一种采用阈值分离齿轮轮廓的方法并有效提取和识别,将指定图像的定义域缩小至指定区域。新定义域为旧定义域与区域的交集。因此,新定义域是区域的子集。其矩阵的大小不发生变化。difference(Re⁃gion,Sub:RegionDifference::)
差分计算两个区域的集合论差分,理论如下:
(Regions in Region)-(Regions in Sub)生成的区域被定义为输入区域(region),子区域中的所有点都被移除。在计算子区域的各个区域与合并区域之间的差异之前,子区域的所有区域都合并到单个区域,如图7所示。
通过count_obj()算子获得拆分的区域记为齿轮的齿数。
4.2.2 Harris获得齿轮齿数
在目标图像中,角点是指曲率较大的点。该点由场景目标边缘曲率较大的地方与两条或多条边缘交汇形成的。由于它包含目标图像的几何信息,所以把角点作为目标图像的几何特征有重要意义。同时,角点是旋转不变的,故它们不受照明因素的干扰。由于角点包含目标图像约0.05%的像素,在不损失目标图像数据的情况下,角点可以使待处理的模板图像数据最小化,故角点检测极具实用价值。
目前,角点检测可以使用多种兴趣算子进行。根据其性质可分为3类。第一类为基于形状的兴趣算子;第二类是基于信号的兴趣算子;第三类是基于模板的兴趣算子,由于其为特定的特征点设计特定的模板,故这种方法在实际生活中使用并不广泛。
Harris的基本原理是采用微分的数学思想。人眼对角点的识别在一个局部的区域完成。若移动特征窗口,特征窗口内区域图像的灰度发生变化,那么特征窗口内遇到角点。若移动特征窗口,特征窗口内区域图像的灰度没有发生变化,那么特征窗口内就不存在角点;如果特征窗口在某一个方向移动时,图像灰度发生了变化,而在其他方向上没有明显变化,那么,窗口内的图像可能就是一条线段。如图8~10所示。
式中:w(x,y)为窗口函数;l(x+u,y+v)为平移后的图像灰度;L(x,y)为是原图像的灰度值。
其中,窗口函数可以是平坦的如图11所示,也可以是高斯的如图12所示。
表达式在忽略余数后为二项式函数。二项式函数在数学上可以表示为椭圆函数,椭圆扁率和其扁率大小由M(x,y)中的λ1、λ2的特征值所决定。椭圆扁率的方向由M(x,y)的特征向量决定。如图13所示,椭圆方程为:
椭圆函数特征值与图中的角、线和平面之间的关系如图所示,具体可以分为有3种情况:
(1)若图中的直线一个特征值大,另一个特征值小;λ1>λ2或λ2>λ1。即自相关函数在一方向上的值大,在其他方向上的值小。
(2)若图中的平面,两个特征值都较小,同时两个特征值近似相等,自相关函数数值在各个方向上都减小。
(3)若图中的角点。两个特征值都较大,特征值也近似相等,自相关函数在所有方向都增大。如图14所示。
通过M的两个特征值大小对图像进行分类,角点相对应的函数R:
其中,R只与M的特征值有关。角点:R为大数值正数;边缘:R为大数值负数;平坦区:R为小数值。
在判断图像角点时,将角点的响应函数R进行处理:R>threshold,提取R的局部极大值。
使用points_harris()算子获取齿轮的角点来获得齿数,效果如图16所示。
points_harris(Image::SigmaGrad,SigmaSmooth,Alpha,Threshold:Row,Column)
4.3其他参数测量
利用上述方法和算符,得到了齿轮齿数、齿顶圆直径和齿根圆直径。齿轮其他参数如下。
式(19)~(21)中:da为齿顶圆半径;z为齿数;m为模数;d为分度圆直径;ρ为齿轮齿距。
检测到的参数输出在屏幕上如图17所示。
5实验结果分析
采用3种不同参数的齿轮进行实验验证,每种齿轮分别进行50次测量取平均值,经过基于Halcon软件的齿轮参数检测系统测量出的齿轮参数列于表1中。从表中可以看出,本文方法所测量出的齿轮各项参数基本上与参考数值一致,除齿顶圆和齿根圆个别数值稍有偏差,但在误差范围内,符合无接触测量的基本要求,可以准确迅速地测量齿轮的基本参数。与传统的接触式测量方法相比,具有测量操作更加简单、检测速度更加快捷、对齿轮表面无损伤等优点,满足测量齿轮几何参数的各项需求。
6结束语
本文开发出了一套基于机器视觉Halcon软件的齿轮参数检测系统,通过研究机器视觉的基本算法与图像处理原理方法,将其处理技术应用在齿轮参数检测上,该系统是一种高效、快速的检测方案,并实现了Halcon视觉处理算子和测量在工业生产视觉检测中的应用。该方案能快速、准确地实时检测齿轮的齿顶圆和齿根圆直径、齿数、模数等参数。实验结果表明,与传统的接触式测量方法相比,该系统完全可以实现齿轮参数的非接触实时测量,操作简单,自动化程度高,测量精度高,稳定性好,符合高效率、低成本的测量方案。提高了检测效率,节省了人力,具有广阔的应用前景。
参考文献:
[1]杨青.Halcon机械视觉算法原理与编程实战[M].北京:北京大学出版社,2019.
[2]王英.基于机器视觉的气瓶内壁缺陷在线检测系统的研究[D].沈阳:沈阳工业大学,2018.
[3]王文成.基于Halcon的齿轮缺陷检测系统设计[J].机械传动,2014,38(9):60-63.
[4]李徽,盛汝谦,周昊民.基于Halcon的直齿圆柱齿轮参数检测[J].湖南理工学院学报(自然科学版),2022,35(1):41-43.
[5]肖金辉,新建.基于Halcon的钢尺端边测量系统设计[J].浙江科技学院学报,2018,30(6):487-495.
[6]尚小强,陈从桂,欧阳光.基于机器视觉的轮廓度检测算法研究[J].机电工程技术,2019,48(1):21-23.
[7]杜兵.基于机器视觉的高精度小尺寸测量方法[J].机电工程技术,2021,50(4):68-70.
[8]刘传义,罗福源,李树亚.基于双向机器视觉的非透明模板副对准控制研究[J].机电工程,2020,37(04):415-419.
[9]闫霞,牛建强.基于Halcon软件的摄像机标定[J].数字技术与应用,2010(11):112-115.
[10]罗珍茜,薛雷,孙峰杰,等.基于HALCON摄像机标定[J].电视技术,2010,34(4):100-102.
[11]王慧艺,樊航,吉建佳.基于HALCON在钢筋绑扎过程中定位测量的研究[J].机械设计与制造,2019(5):84-87.
[12]崔帅锋.基于Halcon软件的单摄像相机标定方法研究[J].中国科技信息,2014(Z1):105-108.
[13]张如如,葛广英,申哲,等.基于HALCON的双目立体视觉工件尺寸测量[J].计算机测量与控制,2018,26(1):59-63.
