基于机器视觉的螺纹识别系统

时间:2022-06-02 06:22:05

基于机器视觉的螺纹识别系统

摘要:许多传统螺纹的检测技术工序复杂、效率低、成本高,已不能满足现代工业高效发展的需求,因此要建立一套以机器视觉识别技术为核心的视觉传感和图像处理系统,利用CCD获取螺纹基本图像,并通过数字图像处理技术和模糊模式识别方法对螺纹几何参数进行自动识读并加以识别。

关键词:机器视觉;螺纹识别;模糊识别

中图分类号:TP391.4文献标识码:A 国家标准学科分类代码:510.4050

Recognition System for Thread Based on Machine Vision

WANG Xiao-lei, YANG Yong-yue

(School of Instrument Science and Opto-electronics Engineering, Hefei University of Technology, Hefei Anhui 230009, China)

Abstract: Many traditional techniques of detecting thread need complex processes, low efficiency and high cost. It is no longer to meet the needs of the efficient development of modern industry. So it needs to build a system of visual sensing and image processing for machine vision recognition technology as the core. It uses CCD to obtain the basic image of thread, and it makes geometrical parameters of thread to automatically read and identified by processing technology of digital image and recognition method of fuzzy pattern.

Keywords: machine vision; thread recognition; fuzzy recognition

引 言

机器视觉系统主要是利用光电成像、计算机图像处理和模式识别技术来检测对象,相对传统机械检测的优势在于能够非接触检测,提高了生产效率,满足现代工业高效率的实现需求。这种机器视觉识别技术是一门新兴的检测识别技术,优势明显,尚有很大的发展潜力,且界面开放,用户可根据需要自行编程改善系统功能,使系统与工业自动化现场相适应,在现实工业生产中将取得越来越广泛的应用。

1基于机器视觉的螺纹识别

1.1系统基本原理和结构

本文介绍的螺纹识别系统的基本原理是待测螺纹受到背光光源照射后在CCD光敏面上成像,用数字图像采集卡将其信号转换成数字信号,再经过图像预处理、螺纹轮廓曲线提取、螺纹特征参数抽取后,运用模糊集识别方法对螺纹进行识别。

本系统的基本结构是由照明系统、CCD摄像机、图像采集卡和计算机系统组成,其中计算机系统主要包括螺纹检测和螺纹识别两部分,螺纹检测包括图像预处理、图像分割和特征参数测量三个部分。螺纹检测框图如图1所示。

螺纹检测是将采集到的螺纹原始图像进行数字处理后提取轮廓曲线,由于CCD放大倍数确定,轮廓像素点数量与实际尺寸有一定的线性关系,通过软件编程可以实现螺纹几何参数的提取。根据螺纹识别的实际特征和系统要求,主要硬件采用的是松下公司的WV-CP460摄像机和CORECO Imaging公司的PC2-Vision图像采集卡。

1.2图像预处理

系统采集到的原始灰度图像由于未经处理,都存在着一定的噪声干扰,恶化了图像质量,给提取特征带来困难,所以要进行滤波来消除或减轻图像的噪声。这里选用滤波窗口为[3 3]对螺纹图像进行中值滤波[1]。

边缘模糊造成轮廓不清晰,同样不利于提取和识别图像特征,因此要进行图像锐化处理以增强图像边缘。图像边缘与高频分量相对应,高通滤波器让高频分量畅通无阻,对低频分量充分限制。建立在离散卷积基础上的空间域高通滤波[2]关系式为:

g(m,n)=■■f(i,j)H(m-i+1,n-j+1)

式中,g(m,n)为锐化输出,f(i,j )为输入图像,H(m-i+1,n-j+1)为冲积响应阵列。采用的锐化模板是:

H=-1-1-1-1 9-1-1-1-1

然后根据此螺纹直方图的双峰性选取合适的阈值对其进行阈值变换。螺纹直方图如图2所示,图像预处理效果如图3所示。

1.3边缘检测和提取

边缘检测技术对于数字图像处理非常重要,边缘检测算子检查每个像素的邻域,并对灰度变化率进行量化,也包括方向的确定,然后使用基本方向导数掩模求卷积的方法提取边缘。

这里选用Sobel算子,它是一组方向算子,水平和垂直两个卷积核形成了Sobel算子,图像中的每个点都用这两个核做卷积。边缘检测算子的中心与中心像素相对应,进行卷积运算,两个卷积核的最大值作为该点的输出位,运算结果是一副边缘图像。

算子由下列公式[1]表示:

f■■(x,y)=f(x-1,y+1)+2f(x,y+1)+f(x+1,y+1)

-f(x-1,y-1)-2f(x,y-1)-f(x+1,y-1)

f■■(x,y)=f(x-1,y-1)+2f(x-1,y)+f(x-1,y+1)

-f(x+1,y-1)-2f(x+1,y)-f(x+1,y+1)

G[f(x,y)]=f■■(x,y)+f■■(x,y)

式中f■■(x,y)、 f■■(x,y)分别表示x方向和y方向的一阶微分;G[f(x,y)]为Sobel算子的梯度;f(x,y)是具有整数像素坐标的输入图像。Sobel算子通常对灰度渐变和噪声较多的图像处理得较好。

图像轮廓提取方法是设原图中有一点为黑,且它的八个相邻点皆为黑,就认为它是在图像内部,则将该点删除,否则认为在图像的边缘,需要保留,按照此法提取螺纹边缘轮廓曲线(如图4所示),并利用数字形态学对图像进行反色细化[3](如图5所示),得到的边缘图像大部分宽度较小,螺纹牙角明显。

1.4Hough变换和特征参数

本实验需要提取螺纹特征参数是螺纹牙型角,需要求出牙型角两侧边的斜率。利用Hough变换法提取直线是一种变换域提取直线的方法,把直线上点的坐标变换到过点的直线系数域,利用了共线和直线相交的关系,使直线的提取问题转化为计数问题。

具体方法[4]是在图像中找到一个黑点,根据黑点坐标在极坐标α-ρ平面画正弦曲线,计数器在曲线经过之处加1,然后在α-ρ平面里找到最大值,根据其坐标计算第一条直线的斜率k1和截距b2,并将最大值的领域清零,再次在α-ρ平面里找到最大值,根据其坐标计算第二条直线的斜率k2和截距b2,最后套用两条直线的夹角公式:

tg(2α) =(k1-k2)/(1+k1×k2)

求出牙型角2α,但直线斜率不能为90°。

若螺纹夹角的两侧边缘直线模糊不确定,可以结合最小二乘拟合直线法确定直线斜率。

1.5最大隶属原则识别方法

灰度图像具有模棱两可的像素,是由于在图像中嵌入了固有的不明确性,而模式识别是将未知模式识别为已知类别中的一种,其中按最大隶属原则来进行模式分类,适合用于分类对象确定而模型模糊的情况,而螺纹图像可抽象成三角形和四边形的模糊概念。

最大隶属原则[2]是设U为全体被识别对象构成的论域,A1、A2、…、An是U的模糊子集,且对每一个Ai都有隶属度函数μ(x),对任一识别对象x0∈U,若有μ(x0)=max[μ(x0),μ(x0),…,μ(x0)]则x0属于Ai。

实验对象是常用的普通螺纹(60°)、锯齿螺纹(如3/30°)、管螺纹(55°)、梯形螺纹(30°)。将A、B、C、D四角代表四边形顶角,作为螺纹特征参数抽取,三角形可以看成是四边形的特例,其中一角为180°,各螺纹形状示意图如图6所示。

将1、2、3、4代表普通螺纹、锯齿螺纹、管螺纹、梯形螺纹的模糊集。根据各螺纹形状特点定义隶属函数:

μ1=[1-max(A-B,B-C,C-A,D-180)/180]24

μ2=[1-max(A-60,B-87,C-33,D-180)/180]24

μ3=[1-max(A-B,C-55,D-180)/180]24

μ4=[1-max(A+C-180+C-A-30,B+D-180+B-D-30)/210]29

根据实际需要选取阈值V,当隶属函数最大值大于等于阈值时,将被测螺纹归入隶属程度最高的那类,若其小于阈值,被测螺纹为非标准螺纹,即无法识别。无法识别的图像则要重新处理后重复下列步骤。螺纹分类程序流程图如图7所示。

2识别软件实验

对所提取的螺纹轮廓曲线,经过标定后通过软件编程来检测和识别。识别软件系统由Visual Basic和Matlab共同开发,包括图像处理程序主体和显示界面,这里展示的是软件中的检测牙型角部分(如图8所示)。软件程序主体部分由Matlab来运行,再用Visual Basic编程界面来调用并显示结果。本实验对多组不同的螺纹牙型分别进行测量与识别,阈值选取0.8,部分实验结果如表1所示。

在图像的采集过程中,光源条件比较理想,绝大部分(85%以上)的图像都可以识别。部分错误识别是由于一些图像中存在的环境问题、噪声或污损造成的,另外提取的牙侧不一定是直线,利用最小二乘法拟合出边缘直线后需要校正,也存在测量数据上的误差。

3结论

实验表明,基于机器视觉的螺纹识别系统比传统的机械检测系统有着更高的识别效率,可以自行编程添加功能,具有较好的适用性。本文只根据检测螺纹牙型角来识别螺纹类型,而螺纹几何参数还有基本牙型、螺距、头数等,检测识别方案另行研究。

实验中存在测量数据上的误差,包括系统标定误差、参数量化误差和检测对象本身污损带来的误差,而且本系统的缺陷是无法测量内螺纹,系统有待继续改进。识别软件同样是关键,需要不断完善,优化算法,以减少错误识别率。

参考文献

[1] 秦襄培. MATLAB图像处理与界面编程宝典[M]. 北京:电子工业出版社,2009.3,328-450.

[2] 王耀南,李树涛,毛建. 计算机图像处理与识别技术[M]. 北京:高等教育出版社,2001.6,87-187.

[3] 张宏林. Visual C++图像模式识别技术及工程实践[M]. 北京:人民邮电出版社,2003.2,218-252.

[4] 刘峰. 螺纹检测的机器视觉研究[J]. 天津大学,2006, 31- 34.

作者简介:王晓磊(1984-),男,籍贯江苏无锡,合肥工业大学硕士研究生,主要研究方向是光电信息工程与机器视觉。E-mail:。

上一篇:MD投影机中的光学元器件 (四) 下一篇:腾飞,向华星光电致敬