戚嘉辉,赵一鸣,王 壮,胡燕海
(宁波大学 机械工程与力学学院,浙江 宁波 315211)
随着工业技术的发展,金属零部件越来越多地出现在生活和生产的各个领域中.然而由于生产和安装过程中的不确定因素,一些零部件会有磨损、划痕、安装失败等问题,目前大部分工厂都采用人工来检测零部件缺陷,但是人工检测效率低、劳动强度大,在检测过程中的准确率也无法保证,并且检测比如螺纹连接件这种表面反光强烈的零部件时,很容易产生视觉疲劳.鉴于零部件的缺陷和安装误差会对生产生活形成重大威胁,因此为保障机械零部件的稳定工作,对螺纹连接件类零部件进行高准确率检测具有重大意义.
张一明[1]对金属零部件表面进行亚像素边缘提取,并采用霍夫变换算法检测图像中的直线和圆,通过模板匹配对表面图像中的缺陷进行定位和识别.李佳伟[2]提出了一种新的阈值分割方法,针对小型机械零部件内外轮廓的几何特征,提出了一种新的最小包围圆检测的方法.Choi 等[3]采用Gabor 滤波器提取缺陷,并提出了一种形态学评分函数以评估缺陷的特征.
在螺纹连接件检测中,李顺[4]先将图片二值化,再对图像进行滤波处理、形态学处理和角度调整,采用Sobel 算子对螺纹连接件轮廓部分进行处理,并对检测出来的边缘进行角点删选.此方法对背景跟螺纹连接件差距较大的环境检测效果较好,但缺乏在工厂流水线实际生产环境下的实验验证.陈守恒等[5]采用模板匹配的定位方法,经过一系列预处理和区域搜索,以检测螺纹连接件是否存在,但是不能检测螺纹连接件是否歪斜,且准确率仅接近90%,平均耗时为102.4 ms.
本文针对背景与零部件灰度值接近、平均耗时长、准确率不够高的情况,提出用中值滤波去除图像中的噪声,利用图像微分法对图片进行锐化增强,并通过Sobel 边缘检测算子加强螺纹连接件端面边缘,利用方向梯度直方图确定图像上的边缘轮廓,以提高对螺纹连接件端面检测的准确率.
检测对象是报警器底盘上的螺纹连接件.报警器底盘是一个直径为10 cm 的圆,文中将螺纹连接件端面设置为ROI 区域(图1).
图1 报警器底盘及ROI 区域
检测系统硬件由图像采集系统、PLC、上位机和传送带组成[6-8],图像采集系统由光源、相机、镜头构成.由于检测工件为圆形工件,且表面反光比较强烈,因此采用蓝色高角度环形光源,可突出显示被测工件边缘变化和原本难以看清的高反光部分,并且光线扩散较为均匀,对工件后续检测的效果较好.由于安装有30 cm 高度限制,因此选取500万像素黑白CCD 相机和16 mm 工业镜头.
工件检测流程如下: 工件放在夹具上,通过传送带输送,当工件传送到环形光源下,被弹起的弹簧顶住,暂停输送,同时将拍照信号传给PLC,相机开始拍照.相机拍到的图像经过图像处理,将工件分为良品和瑕疵品.若为良品,则给PLC一个高电平信号,反之,则给PLC 一个低电平信号.PLC根据计算机的高低电平信号将瑕疵品和良品通过机械手进行分拣.瑕疵品缺陷特征为螺纹连接件端面磨损和螺纹连接件端面歪斜.
本文先将采集到的图像进行图像预处理[9-12],预处理包括灰度处理[13]、图像滤波和图像锐化增强.将经过图像预处理的图片进行Sobel 边缘检测,通过每个目标图像的方向梯度直方图分布提取出螺纹连接件端面的轮廓特征,即可以得到螺纹连接件端面的磨损情况.同时,对图像进行二值化处理,通过处理后的图像可以判断螺纹连接件端面的歪斜情况.如果螺纹连接件端面的磨损和歪斜情况在一定范围内,就判定该工件为良品.
通常相机采集到的图像有很多噪声,图像中的噪声主要分为高斯噪声和椒盐噪声两类.高斯噪声是由于摄影机扫描图片产生的,椒盐噪声是由于光电转变及解码处理产生的.一般情况下,噪声可通过滤波方法进行处理.本文分别使用高斯滤波、均值滤波、中值滤波进行比对.
通过分析实验图像可发现,均值滤波对椒盐噪声的去除效果较差,而高斯滤波能有效清除椒盐噪声和高斯噪声.但经过高斯滤波处理后,螺纹连接件端面边缘变得更加模糊,缺少了像素细节.中值滤波对噪声的处理效果较好,并且保留了较为完整的螺纹连接件端面边缘细节.综上所述,本文采取中值滤波对图像进行处理.
图像锐化增强[14-15]的效果是增强图像的灰度值变化剧烈部分,使图像更加清晰.图像边缘信息主要集中在图像频谱的高频部分,因此用微分法来抑制图像的中低频分量,让图像的高频分量顺利通过.本文使用梯度微分法对图像进行锐化处理,梯度方向是图像灰度值变化最大的方向,对图像f(x,y)在点(x,y)的梯度 ∇f(x,y)定义为矢量,计算如下:
通过梯度 ∇f(x,y)可以得到锐化结果,本文采用比较梯度 ∇f(x,y)与阈值T的方法确定锐化后的输出图像f′(x,y),对比方法如下.
本文采用Sobel 边缘检测器[16-18]对处理后的图像进行边缘查找.
Sobel 边缘检测对噪声较多的图像以及水平和垂直方向灰度渐变的边缘图像处理效果较好,而且检测速度比较快,符合该类对检测速度有要求的检测项目,且对硬件需求不高.而Canny 算法会导致选取区域的灰度值差值较大,并使图像的边缘信息丢失细节,且Canny算法对人工选取阈值依懒性强,不同环境的阈值需要人工调整.Laplacian算法对图像的噪声比较敏感,会使处理后的图像产生许多不是边缘的冗杂信息.
设输入图像为F,用3×3 的矩阵与图像F做卷积,Gx和Gy分别代表横向和纵向边缘检测的灰度值,计算如下:
上述方法得到的螺纹连接件端面图形比较稳定,能对图形进行轮廓提取[19].由于传统方向梯度直方图只能提取直线,对曲线提取效果不佳,且当图形中存在多个目标的直线边缘时,该方法可能会失效.
本文在使用方向梯度直方图提取轮廓的基础上对曲线提取做了优化.由于需要检测的螺纹连接件端面轮廓是统一且已知的,可以把经过Sobel算子处理后的曲线部分当作目标图像的理想轮廓,将目标图像的理想轮廓以1 像素为步长,在检测图像上进行扫描,找到与目标图像理想轮廓重合度最高的轮廓,再在该轮廓周围进行方向梯度直方图处理和特征的提取.
通过式(5)和式(6)得到的梯度幅值图G(i,j)和梯度方向图θ(i,j)计算出梯度方向编码图O(i,j)和方向梯度直方图H(k),通过方向梯度直方图可以得到最强梯度的方向为kmax.由于螺纹连接件端面的大小是固定的,因此可以将扫描线lp换成经过Sobel 处理后的螺纹连接件端面曲线,对lp在检测区域内沿直线方向以1 像素为步长进行扫描,x轴扫描完毕后,则向y轴的下1 像素继续扫描,具体示意如图2 所示.
图2 曲线边缘位置直方图
沿着最强梯度方向kmax,在图像上按式(7)进行统计,统计每条lp上的灰度值总和,算法如下:
得到扫描曲线在最强梯度方向上当前位置p的边缘位置直方图,在图像上具有最强边缘方向的直线边缘处,边缘位置直方图会有较大响应,据此就可以定位边缘位置.
本文方法对直线和曲线轮廓均可以提取,能检测出螺纹连接件端面的缺陷特征.将检测出的轮廓与模板轮廓作比较,当与模板的轮廓不一致时,有磨损的螺纹连接件端面表面轮廓就会有错误的边缘信息,从提取出的螺纹连接件端面表面轮廓信息中得到上述轮廓点的像素值,并与模板轮廓的像素值做差.根据多次实验结果比对发现,当差值像素点数量超过20 时,即可视该螺纹连接件存在磨损.
在安装螺纹连接件的过程中可能会出现螺纹连接件歪斜的情况,歪斜了的螺纹连接件端面在环形光照条件下采集到的图像像素值会因为反光原因而偏大,因此本文将检测区域进行二值化处理.设定阈值T,对每个像素值G(x,y)进行判定,小于阈值T的判定为检测目标,也就是螺纹连接件大于阈值T的即为背景.螺纹连接件端面歪斜或者螺纹连接件没打上的目标像素值远远低于良品的目标像素值,根据多次实验结果比对,发现二值化图像中暗的部分小于24%时,即视该螺纹连接件端面存在歪斜.二值化处理公式如下.
本文研究的报警器底盘螺纹连接件检测系统实验装置如图3 所示.
图3 报警器底盘螺纹连接件检测系统
Canny 轮廓提取方法和本文轮廓提取方法如图4 所示.
图4 Canny 轮廓提取与本文方法的对比图
传统Canny 轮廓提取的高低阈值需要自己设置,根据阈值的不同提取出来的轮廓效果也不同.但本文方法能自动提取边缘而无需设定阈值,通过模板轮廓对曲线进行了拟合,能够自动确定轮廓的方向和位置.
原图和经过本文方法处理后的图片对比如图5和图6 所示.
图5 原图
图6 本文方法处理后图像
为了取得真实数据,在生产线的真实环境进行测试.本实验对生产线1 d产量的2 500个报警器底盘进行了检测,然后人工复检,以验证检测的准确率.检测结果见表1,从表中数据可见,对螺纹连接件端面磨损和螺纹连接件端面歪斜的检测准确率分别达到了99.4%和98.6%.由表2 的检测结果可见,相比传统Canny 算法[20]和Sobel 算法[21],本文方法明显提高了检测的准确率,能满足工业使用的要求.
表1 算法测试结果
表2 本文方法与传统算法对比
本文针对实际生产需求,设计了报警器底盘螺纹连接件的检测系统,采用了灰度化处理、中值滤波、Sobel 边缘检测、梯度直方图轮廓提取、二值化等方法对图像进行处理,对螺纹连接件端面磨损和螺纹连接件端面歪斜的实测检测准确率分别达到了99.4%和98.6%,平均检测时长83.46 ms.相比其他传统算法,大大提高了检测的准确率,有效克服了传统检测检测准确率不高、人工检测效率过低的弊端,为检测螺纹连接件等反光零部件提供了有效思路.下一步将针对不同环境的情况进行研究,尝试使用深度学习方法对检测出来的缺陷进行处理及分类,在增加实验场景前提下,使检测工作在任何实验环境下都能进行,并进一步提升准确率,增加实时性.