APP下载

基于机器视觉的销钉圆度测量技术研究

2020-08-12朱朝阳

计算机技术与发展 2020年8期
关键词:轮廓滤波边缘

朱朝阳,赵 涛,刘 清,刘 莎

(西安北方光电科技防务有限公司,陕西 西安 710000)

0 引 言

航空零部件销钉作为一种高精度零部件,需要两个切面的圆度满足一定精度要求。而目前对该零部件传统的质量检测手段主要还是通过传统的接触式测量方式,如检测仪器有圆度测量仪、三坐标测量仪[1]等来完成。传统的接触式测量方法一方面设备昂贵,另一方面效率低下,精度不高且对测量人员技能要求较高,而且无法对所有的零件进行全面检测,只能抽检。近年来由于机器视觉相关技术的发展,国内外对机器视觉相关技术的研究不断升温,其应用领域越来越广泛[2-3]。

近年来随着机器视觉技术的发展,圆度测量技术得到不断提升,涌现出许多研究方法。计算几何理论由于其测量结果准确,测量直观和快速,在圆度测量中得到广泛的应用[4]。有学者利用群智能算法的较强寻优能力,将粒子群算法应用到圆度误差评定中[5],较好地解决了圆度误差评定这一非线性优化问题。吴新杰[6]等采用小波理论开展圆度误差的评定,基于小波变换理论可以较精确地提取被测零件的轮廓曲线,提高圆度误差的检测精度。

文中提出的基于机器视觉的销钉圆度测量技术,首先对销钉零件进行图像采集,利用Canny检测方法和边缘轮廓提取技术提取到被检测销钉的边缘轮廓,然后对销钉的边缘轮廓通过最小二乘法进行图像拟合,得到销钉的切面圆半径等数据,最后利用测量半径等数据计算出销钉切面的圆度。该方法采用非接触式测量技术,具有检测精度高、检测效率高的特点。

1 图像预处理

1.1 图像的灰度化处理

灰度数字图像是每个像素只有一个采样颜色的图像,彩色图像是指图像中的每个像素值都分成R、G、B三个基色分量。彩色图像的图像数据量较大,在图像运算过程中的运算量远远大于绘图图像的运算量,时间开销将会很大。在数字图像处理中,通常将彩色图像转变成灰度图像,而灰度化以后的图像描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征[7]。因此在测量销钉零件的圆度时使用灰度图像,从而可以减少系统的运算量,提高视觉系统的检测效率。

1.2 图像的噪声处理

图像噪声指图像中包含了图像数据以外的多余信息。成像设备本身和周边环境的变化等因素影响是噪声产生的原因,从而导致图像获取时掺杂了多余信息。噪声是不可避免的,因此系统获取到的销钉图像也不可避免地混入噪声。在图像处理过程中,需要首先对图像进行去噪,这样后续进行图像处理时才能更容易达到预期的效果。目前采用滤波器进行去噪,不同的滤波有其各自不同的特点。双边滤波是一种可以保边去噪的滤波器,它同时考虑空域信息和灰度相似性,是将图像的空间邻近度和像素值相似度进行折衷处理。其原理是在高斯滤波器基础上多了一个高斯方差,它是基于空间分布的高斯滤波函数,所以在边缘附近,离的较远的像素不会太多影响到边缘上的像素值,这样就保证了边缘附近像素值的保存,从而很好地保持了图像的边缘信息[8]。

2 图像的边缘检测和轮廓处理

2.1 改进的Canny边缘检测方法

Canny边缘检测算子[9]是John F. Canny于1986年开发出来的一个多级边缘检测算法。Canny算子是一种边缘检测算子,算法中体现了最优化的思想,在处理噪声抑制和边缘检测方面能很好地在二者之间进行平衡。虽然传统Canny算子具有很多优点,但是同时也存在3个方面的缺陷:高斯算法无法同时兼顾去噪和细节处理、梯度计算的伪边缘性、双阈值法检测边缘参数的不适应性。文中采用优化后的Canny检测方法,主要针对传统Canny算子的3个缺陷进行优化,从而达到比较理想的效果。

(1)引导滤波算法替代高斯滤波算法。

引导滤波属于可以保持边缘的一种滤波算法[10],能够在平滑图像的同时起到保持边界的作用,可以应用在图像去雾算法中对投射率进行优化,是一种高效的线性去噪算法[11-12]。引导滤波算法可以用于降噪抠图、去雾、细节平滑以及联合采样等方面。

高斯滤波算法采用的核函数相对于待处理的图像是独立无关的,平均权重鲁棒性差,可能引入梯度反转伪影[13]。引导滤波法在进行滤波时需要一幅引导图像,是一种自适应权重滤波器,在边缘检测精度方面要高于高斯滤波。引导滤波算法的一个重要假设是,认为保边滤波后的图像qi与引导图像Ii在滤波窗口内呈线性关系。算法首先建立qi与Ii的局部线性关系,如式(1)所示:

qi=akIi+bk,i∈ωk

(1)

其中,I是输入图像的值;q是输出像素的值;i和k是像素索引;a和b是系数;ωk是以像素点k为中心、半径为r的滤波窗口。

下式取极小值时,函数的输出值与真实值p的相似度最大。

(2)

其中,e表示滤波效果,p表示待滤波图像。

在局部线性模型中的关键是求解线性系数ak、bk,具体求解公式如下:

(3)

(4)

该算法所讨论的图像像素i是假设在一个中心位置为k的窗口内。

引导滤波对边缘起保留作用时,条件I=P一般成立,e=0时,a=1,b=0是点(a,b)为极小值的解,这时的滤波器没作用。e>0,在像素强度无显著变化的区域,a→0,b→0,即进行了一个加权均值滤波;若在显著变化的区域,a→1,b→0,则滤波效果差有利于保存原边缘信息。在同一窗口下,当e越大时,则滤波的效果越显著。

(2)采用Sobel算子求梯度。

检测图像x,y方向的Sobel算子分别为:

(5)

(6)

图像上任一点梯度的幅值与方向分别为:

(7)

θ=arctan[fy(x,y)/fx(x,y)]

(8)

(3)基于最大类间方差法(Otsu法)进行双阈值的确定。

最大类间方差算法(即Otsu法)是由Ostu在1979年提出来的[14]。Ostu法通过利用图像的灰度直方图做基础来进行阈值的选择。当图像的背景与所选取的目标区域的类间方差最大时来确定该阈值,该准则可以使得计算的图像达到最佳分割阈值。该算法具有计算简单、稳定、有效等优点。

如果两类图像的阈值是T,目标点数在图像中的占比为p0,其灰度的均值为g0;背景点数在图像中的占据比为p1,其灰度的均值为g1,则图像灰度的总均值为:

gT=p0·g0·p1·g1

(9)

目标和背景方差为:

σ2(T)=p0·(g0-gT)2+p1·(g1-gT)2

(10)

当T最大时,目标与背景的差异最显著。通过该算法可以取得最佳阈值。

2.2 轮廓提取

图像轮廓的提取,边缘检测就可以做到,但是得到的轮廓比较粗糙,所以需要再进行图像轮廓提取工作。在检测物体的轮廓时,通常会使用OpenCV图像处理库中的轮廓查找函数findcontour和提取函数drawcontour。轮廓查找函数findcontour的输入图像是一幅二值图像,是经过预处理的边缘图像,然后对边缘轮廓进行识别与定位,将检测到的轮廓像素进行存储[15]。轮廓绘制函数drawcontour是一个画轮廓的函数,将检测到的轮廓图像提出并绘制出来,并将边界以坐标点的形式进行保存。最后通过拟合算法求得待测零件的相关需求数据信息。

通过OpenCV函数库对零件的边缘轮廓进行轮廓查找与绘制的具体步骤是:

(1)采用改进后的Canny算子边缘检测算法对销钉零件图像进行预处理,预处理后得到包含销钉切面边缘信息的二值图像;

(2)使用轮廓查找函数findcontours和提取函数drawcontour来获取该销钉零件边缘图像中所有边界的连续像素序列,使用OpenCV中的contours向量对结果进行保存;

(3)将存储在结构中的contours向量中的销钉零件边缘像素及坐标信息用序列分别进行表示;

(4)查找到的销钉零件边缘轮廓信息中的坐标数据进行提取并处理。

3 基于最小二乘法的圆度测量

3.1 最小二乘法原理

最小二乘圆法(LSCM)[16-17]是一种数学优化技术,是将实际轮廓进行拟合得到一个理想圆,其中,圆心横坐标就是实际被测轮廓上点的横坐标的平均值,圆心纵坐标就是轮廓上点的纵坐标的平均值。该圆心坐标满足最小二乘条件,即圆心到实际被测轮廓上各个点距离的平方和最小。以该最小二乘圆圆心作为评定基准,做出包容被测轮廓曲线的两个同心圆,这两个同心圆的半径差即为圆度误差。在图1中O表示最小二乘圆的圆心,R为最小二乘圆的半径。被测轮廓最大圆的半径Rmax减去最小圆的半径Rmin即为被测轮廓的圆度误差Rerr,即Rerr=Rmax-Rmin。最小二乘圆算法对销钉切面的圆度评定可以达到很高的精度,因为销钉切面的变形主要是椭圆变形,而销钉切面圆度测量的数据又符合最小偏差假设,因此,最小二乘圆评定算法引起的误差相对于销钉切面圆度误差也很小。

图1 最小二乘法(LSCM)

3.2 基于最小二乘法的销钉切面圆度测量算法

图2为销钉切面图像,由于销钉不是标准的圆,有四个圆弧,因此采用最小二乘法拟合圆计算圆度的算法为:

(1)把销钉切面四个圆弧边缘的点取到对应的容器中;

(2)分别从四个圆弧中任意选三个圆弧拟合圆并求得半径R1、R2、R3、R4;

图2 销钉切面图像

(3)在求得的四个圆半径中取得最大半径Rmax和最小半径Rmin;

(4)销钉切面的圆度误差为:Rerr=Rmax-Rmin。

4 测试结果与分析

4.1 设备和软件平台

销钉圆度测量系统的实验设备包括计算机部分、工业相机、光源及固定支架等辅助设备。其中工业相机设备使用Basler系列的CCD工业数字相机,光源部分根据销钉零件的特点选择了环形的LED光源,使用这种光源容易突出销钉的特征。实验系统如图3所示,相机通过专用支架固定,光源通过背面方式进行照射,容易突出销钉的轮廓,确保待检测零件的尺寸范围及采集图像的质量。

机器视觉软件系统运行在PC上,运行环境是Windows系统,视觉软件系统是基于QT5.7环境开发的,其中视觉软件系统的图像处理部分是基于OpenCV来实现的。OpenCV是基于BSD许可的一种开源的跨平台计算机视觉库,OpenCV库中的函数实现过程简单且高效,并且易于二次开发,很多图像处理算法可以在其基础上做进一步优化和扩充,因此OpenCV视觉函数库被广泛应用于图像处理过程中。

4.2 实验结果分析

销钉零件左圆度、右圆度要求精度为0.01内,测量误差在0.05范围内。系统搭建好后通过对20个样本进行测量,其中有3个样本不合格,1个样本左圆度不合格,2个样本右圆度不合格,测量结果如表1所示。该系统能够准确地识别出不合格样本。并且重复测试20次结果稳定,测量精度误差在0.05内,结果符合要求。

表1 样本测量结果

续表1

4.3 误差影响分析

(1)噪声误差影响分析:在进行采集检测图像时会不可避免地混入一些噪声,虽然图像预处理环节能消除一部分噪声,但是图像中的噪声不可能完全消除。

(2)系统硬件误差影响分析:在读取销钉零件边缘等信息时,由于机器视觉的硬件系统和周边物理环境因素的影响,会产生误差,从而使得图像在读取过程中精度不够,造成对销钉切面圆度结果产生误差。

(3)系统软件误差影响:系统软件误差主要是由于算法等因素造成,一般情况下算法不可能百分之百准确,在图像去噪预处理环节,噪声不可能百分之百消除,因此未消除的噪声会对结果产生影响,另外边缘检测算法及圆度拟合算法等都会由于其算法局限性,从而使得计算出的圆度数据出现误差。

5 结束语

针对传统对航空销钉圆度的测量方法存在诸多限制和缺点,提出一种基于机器视觉的销钉圆度非接触式的测量方法,通过使用机器视觉系统采集销钉的两个切面图像,并对图像进行灰度化和去噪,在边缘检测环节通过使用改进后的Canny边缘检测算法,在对销钉边缘图的拟合过程中使用了基于最小二乘拟合算法进行拟合,最终获取到销钉切面的圆度。该测量方法具有较快的测量速度与较高的测量精度和实时性,提升了该零部件质量检测水平和检测效率。

猜你喜欢

轮廓滤波边缘
基于HP滤波与ARIMA-GARCH模型的柱塞泵泄漏量预测
基于改进自适应中值滤波的图像降噪方法*
跟踪导练(三)
基于非下采样剪切波变换与引导滤波结合的遥感图像增强
一张图看懂边缘计算
儿童筒笔画
合成孔径雷达图像的最小均方误差线性最优滤波
创造早秋新轮廓
在边缘寻找自我
走在边缘