其他
新闻详情

基于机器视觉的工业缺陷检测常用的5种方法

发布时间:2024-01-09 09:13:44 浏览次数:420

目前基于机器视觉的缺陷检测技术已经大量应用于纺织品、汽车零部件、半导体、光伏组件等产品的缺陷检测中,大大提升了制造业的质检效率。

但是,缺陷检测在视觉需求中难度较大,不同于二维码识别和OCR等算法容易去做成标准化的工具,稳定性和精度需要依据具体的行业和具体的设备进行量化。凹凸、污点、瑕疵、划痕、裂缝等都是比较常见的缺陷,如图1所示。

▲图1污渍、划痕图

目前,基于成本和算法稳定性的考虑,机器视觉也依旧拥有广泛的用处。笔者在近期的实际应用中总结了几种比较常用的缺陷检测方法,下面对此进行详细介绍。

01预处理

这一部分的操作可选性较多,主要有图像增强、平滑滤波、锐化等。

1.1图像增强

图像增强主要是为了改善图像质量以及增强感兴趣部分,使图像变得更利于计算机处理,例如图2,曝光不足的图像需要增强处理。

▲图2图像增强处理前和后对比图

常用算法是scale_image()和emphize()。

scale_image()的作用是增强图像的色彩对比度,让图像中黑的地方更黑,亮的地方更亮,其原理计算公式为:

其中表示为灰度范围。

emphasize()的作用是增强图像的高频区域(边缘和拐角),使图像看起来更清晰。原理是使用平均图像进行滤波,根据获得的灰度值(平均值)和原始灰度值计算得到灰度值,计算公式为:

其中,是对比度因子,则是对溢出灰度进行裁剪。

1.2图像锐化

图像锐化是为了补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使得图像变得更加清晰。

常用算子是shock_filter(),原理是基于图像的灰度值进行膨胀和侵蚀从两侧向边缘传输,并满足微分方程:

其中,图像的灰度值,因此,离散化的方程在长度为Theta的迭代时间步长中求解,因此输出图像包含迭代Theta时的灰度值函数。

1.3图像平滑

图像平滑主要是为了减小噪声,改善图像质量,有时还可以模糊图像,方便目标内的小间断进行连接。这一部分大家都比较熟悉,常用的是以下三种方法:

· 均值滤波是对输入图像的灰度值进行线性平滑,原理是将像素灰度值与其邻域内的像素灰度值相加取平均值;

· 中值滤波适合于去除一些孤立的点,保留边缘信息,原理是以像素为中心,取一个指定形状的邻域作为滤波器,然后将区域内的灰度值排序,取排序的中值替换像素中心;

· 高斯滤波是适合于去除高斯噪声,原理是利用一个二维离散的高斯函数进行计算。

值得注意的是:应该生成合适的滤波器,并注意频域和空间域的转换。

02Blob分析+特征

Blob分析是对图像中相同像素的连通域进行分析,该连通域称为Blob。因此,能够通过对前景、背景分离后的二值图像,进行连通域提取和标记。标记完成的每一个Blob都代表一个前景目标,然后就可以计算Blob的一些相关特征,从而定位到准确的区域。相对于单纯的角点,它的稳定性要更好,抗噪声能力也更强。

其步骤为:

特征筛选是根据计算出的Blob区域进行计算,然后根据选择的特征,比如Area(面积)、Width(宽)、Circularity(圆度)、inner_radius(内接半径)、anisometry(长宽比)等等,最终得出需要的区域,如图3所示,根据面积和圆度来筛选得出。

▲图3-1Blob分析+特征的原图

▲图3-2Blob分析=特征的结果图

03模板匹配+差分

▲图4模板匹配+差分的检测结果

04频域+空间域

首先介绍一下频域和空间域,空间域是指自变量是图像中的像素点位置,而值域是针对这个位置所标记的像素值进行一些操作和变换,类似于是像数坐标,表示是一种映射关系,最终得出一个输出结果。而频域的自变量是频率,因变量是该频率信号的幅度,通常空间域经过傅里叶变换后得到的是图像频谱。

在数字图像处理中,我们知道光在计算机内部进行采样和量化,可用函数来表示这些数据。根据傅里叶变换将一个信号函数分解成多个三角函数的线性组合的思想,图像是由多个正弦函数构成,每个正弦函数都有一个自己的频率。低频特征的灰度变化不明显,例如图像整体轮廓,中频特征的灰度变化居中,代表图像边缘、纹理等细节,高频特征的图像灰度变化剧烈,如图像边缘和噪声。

因此,频域+空间域形式组合的缺陷检测常常用于微小的瑕疵检测,主要有两种:

那么,先进行频域部分的处理方法如下:

之后,空间域的处理分为三部分:

05几何测量

几何测量也是一种常见的工业应用,基本思想是利用工件图像中的参考物体来建立尺度关系,然后根据已知的尺度关系计算工件的实际尺寸,等式关系为:物体实际宽度/照片中物体的宽度=参考物实际宽度/照片中参考物的宽度,主要步骤是:

利用以上几种或一种方法就能够得到对缺陷的处理结果,里面的一些参数需要不断去调试,从而找到最优的参数。但是,集合到项目平台时,算法的一些判定参数应该开放出来,以便使用者挑选,从而判断该图到底是NG还是OK。最后,优秀的算法功能应该能够做好足够防护措施,避免程序闪退。

在线客服 双翌客服
客服电话
  • 0755-23712116
  • 13822267203