Surface Defect Detection Methods for Industrial Products : A Review

Surface Defect Detection Methods for Industrial Products : A Review (工业产品表面缺陷检测方法综述 )

文章来源:Appl. Sci.2021,11, 7657. https://doi.org/10.3390/app11167657 (Yuanyuan Ding)

论文亮点:本文综述了机器学习方法在工业产品质量检测中的研究现状
(1)根据表面特征的使用,从纹理特征、颜色特征和形状特征三个方面总结了传统机器视觉表面缺陷检测方法在工业产品表面缺陷检测中的应用
(2)从有监督方法、无监督方法和弱监督方法三个方面论述了近年来基于深度学习技术的工业产品表面缺陷检测的研究现状
(3)系统总结了工业表面缺陷检测中常见的关键问题及其解决方法;关键问题包括实时性问题、小样本问题、小目标问题、不平衡样本问题
(4)对近年来常用的工业表面缺陷数据集进行了较为全面的总结,并对MVTec AD数据集的最新研究方法进行了比较,以期为工业表面缺陷检测技术的进一步研究和发展提供一些参考

1.基于传统特征的机器视觉表面缺陷检测算法

1.1 基于纹理特征的方法:统计方法、信号处理方法、结构方法和模型方法

(1)统计方法:主要思想是将物体表面的灰度分布视为随机分布,从统计学的角度分析随机变量分布,通过直方图特征、灰度共生矩阵、局部二值模式等描述灰度的空间分布,自相关函数、数学形态学和其他特征。
(2)信号处理方法:主要思想是将图像视为二维信号,从信号滤波器设计的角度对图像进行分析,因此也称为频谱法;信号处理方法包括傅里叶变换法、Gabor滤波法、小波变换法等具体方法。
(3)结构方法:理论基础是纹理本原理论,纹理基本体理论指出,纹理由一些最小的图案(称为纹理基本体)组成,这些图案根据一定的规则在空间中重复出现。在模型方法上,常用的工业产品表面缺陷检测模型有MRF模型和分形模型。
(4)模型方法:常用的工业产品表面缺陷检测模型有MRF模型和分形模型。

1.2基于颜色特征的方法:颜色直方图、颜色矩、颜色聚合向量、颜色集、颜色相关图

(1)颜色直方图:描述了不同颜色在整个图像中的比例,是全局统计的结果(特点:对物理变换(旋转、缩放等)不敏感;如果图像有多个区域,且前景和背景之间的颜色分布存在明显差异,则颜色直方图将显示双峰。)
(2)颜色矩:图像中的任何颜色分布都可以用其每阶矩来表示,由于颜色分布的信息主要集中在低阶矩中,通常只有颜色的一阶矩(均值)、二阶矩(方差)和三阶矩(偏移)足以显示图像表面的颜色分布(特点:不考虑像素的空间位置;不需要对颜色特征进行矢量化;不需要颜色量化、平滑和其他后续处理)
(3)颜色聚合向量(颜色直方图的一种改进算法):主要思想是将直方图中的每个颜色簇分为两部分:聚集和非聚集;在图像相似性比较过程中,对图像的相似性分别进行比较,经过综合权衡后得到相似值,从而得到比较结果
(4)颜色集:一种全局颜色特征和匹配方法,它近似于颜色直方图,表示为二值特征向量;通过构造二叉搜索树,可以加快检索速度
(5)颜色相关图:颜色相关图描述了某一颜色的像素数在整个图像中的比例(概率),可以反映不同颜色对之间的空间相关性

1.3基于形状特征的方法:基于轮廓的方法(Hough变换和傅里叶形状描述符)

(1)基于轮廓的方法:通过描述物体的外边界特征来获取图像的形状参数;代表性的方法有Hough变换和傅里叶形状描述符
(2)Hough变换:利用图像的全局特征连接边缘像素,形成区域的闭合边界,其理论基础是点对线的对偶性
(3)傅里叶形状描述符:使用对象边界的傅里叶变换作为形状描述,并使用区域边界的闭合性和周期性将二维问题转换为一维问题

2.基于深度学习的工业产品表面缺陷检测方法
在这里插入图片描述
2.1 有监督方法:要求训练集和测试集是不可或缺的,训练集中的样本必须标记,其中训练集用于找到样本的内在规律,然后在测试集中应用这些规律

(1)基于度量学习:Siamese网络

  • Siamese网络:判断两个样本之间的相似性;其损失函数的核心思想是使相似类别的输入距离尽可能小,不同类别的输入距离尽可能大

(2)基于表征学习:分类网络、检测网络和分割网络

  • 分类网络:重点是解决“什么”问题,即确定图像的类型(图像是否包含缺陷以及缺陷的类型);[ShuffleNet:一种计算效率高的轻量级网络,采用了点态组卷积和信道洗牌两种新方法来保证计算精度并有效降低计算成本]

  • 检测网络:重点是解决“缺陷在哪里”的问题,即通过确定缺陷的位置来获取缺陷的具体位置信息和类别信息;[Faster RCNN:在Fast RCNN的基础上引入了一个区域建议网络(RPN),将生成区域推荐的步骤放入神经网络,并在端到端学习模式下实现了几乎无成本的区域推荐算法,大大提高了目标检测的速度,还提到了滑动窗口方法]

  • 分割网络:重点是解决“缺陷数量”问题,即从背景中分割出缺陷区域,获取缺陷的位置、类别、属性等信息;[FCN(全卷积网络):(端到端图像分割方法)网络中的所有层都是卷积层;该网络主要采用三种技术:卷积、上采样和跳层;通过对网络进行像素级预测,可以直接得到标签图。其核心思想之一是增加数据量的反褶积层,以便输出准确的结果; Mask RCNN:是Faster-R-CNN的扩展形式,它集成了两阶段框架网络的对象检测和实例分割功能:第一阶段扫描图像并生成建议(建议可能包含目标区域),第二阶段对建议进行分类并生成边界框和遮罩 ]

2.2 无监督方法:当输入的训练数据只是数据本身,而没有标签信息时,机器学习这些未标签数据的模式,以获得数据的一些固有特征和连接,并自动对数据进行分类,然后,当遇到新数据时,它可以根据先前学习的模型来判断新数据属于哪个模型

(1)自动编码器(AE):编码器和解码器是自编码器的两个核心部分。编码器对应于网络模型中的隐层,用于学习输入信号的低维特征;解码器对应于模型中的输出层,用于尽可能多地再现输入信号。因此,使编码器能够学习输入信号的良好低维特性并重构输入信号是自编码器的最终目标
(2)生成对抗网络(GAN):生成性对抗网络由两个参与者组成:生成器和鉴别器。生成器用于获取样本数据的分布,鉴别器用于估计样本训练数据的概率。该模型的最终目标是了解真实数据的内在规律,预测和估计真实数据的分布或密度,并根据所学知识生成新数据,即生成对抗性网络数据
(3)深度信念网络(DBN):由多个RBM(受限Boltzmann机器)组成,整个网络的训练是通过对RBM进行分层训练来完成的
(4)自组织映射(SOM):模拟人脑不同区域神经网络细胞的不同分工,并通过搜索最佳参考向量集对输入模式集进行分类

2.3弱监督方法 :结合了监督方法和非监督方法的特点,弱监督方法可以在避免更高的标记成本的同时获得更好的性能

(1)不完全监督:大多数训练样本并没有标记,只有少数样本被标记,这部分标记样本不足以训练出一个好的模型。在不完全监督方法中,半监督方法(可以在不需要人工干预的情况下自动生成未标记的样本数据,提高学习效果)是工业产品表面缺陷检测中常用的方法。
(2)不精确的监督方法:提供监控信息,但信息不精确的情况,即只包含粗粒度标签

2.4 总结:在三种深度学习方法中,有监督的方法由于其良好的准确性而得到了最广泛的应用,但它有明显的缺点;无监督方法符合产业发展的进程,但有其自身的特点;弱监督方法目前应用不广泛,但有着广阔的发展前景

3.关键问题

3.1 实时问题:模型加速是解决实时性问题的重要思路之一,模型加速主要可以从算法和硬件两个方面进行,具体如下:

(1)算法:对于网络算法层,可以使用轻量级网络加速模型。常用的轻量级机型包括MobileNet、ShuffleNet、SqueezeNet和EfficientNet。此外,蒸馏和剪枝也可用于在算法级加速网络。在计算算法方面,可以优化卷积运算,达到模型加速的目的。典型的算法包括FFT、Winograd等。
(2)硬件:目前通过硬件加速模型的主要方式是使用GPU、FPGA、DSP等。

3.2 小样本问题:从少量样本中学习的问题通常称为小样本问题,这很容易导致训练过程中的过度拟合问题。目前,解决小样本问题的主流解决方案主要有以下四种:
(1)数据扩充 :常用的数据增强方法包括平移、旋转、镜像、对比度调整和数据合成。通过数据放大,可以获得大量的样本图像。
(2)无监督/半监督模型 :无监督模型的优点之一是只需要用正样本而不是负样本进行训练,这为解决小样本问题提供了方向。另外,半监督模型只需要标记少量样本,也是解决小样本问题的替代模型之一
(3)迁移学习:从一项任务中学到的知识可以应用于其他不同但相关的任务,尤其是当目标任务的数据不足时,因此,迁移学习也是解决小样本问题的主要思路之一
(4)优化网络结构:网络结构的优化也是解决小样本问题的一个方向

3.3 小目标检测问题 :指图像中尺寸较小的目标,一个是绝对尺寸较小,通常被认为是尺寸小于32*32像素的小目标。另一种是相对尺寸较小,即目标尺寸小于原始图像尺寸的一定比例。解决小目标检测问题有一些技巧,总结如下:

(1)特征融合:将深层语义信息融合成浅层特征图,利用深层特征丰富语义信息,同时利用浅层特征适合检测小目标的特点
(2)数据扩充:增加训练集中小目标样本的类型和数量
(3)图像金字塔+多尺度滑动窗口:为图像设置不同的输入大小,训练时从中随机选择一个尺度,将输入图像缩放到此尺度,并发送到网络
(4)降低网络下采样率:通过降低下采样率来减少特征图上对象的丢失,常用的方法是直接去除池层,同时使用孔卷积
(5)合理的锚定设计:主要方法包括:边界聚类,即在训练集的标签上聚类出一组合适的锚定;统计实验,即将锚和标签的中心点放在一起,仅利用宽度和高度信息进行匹配实验,找到一组纵横比分布最一致的锚;设置更小、更密集的锚定和匹配策略,例如不要为小对象设置太严格的IoU阈值
(6)适当的训练方法:使用高分辨率图像进行预训练,同时放大输入图像,然后对小分辨率图像进行微调
(7)使用GAN放大小物体,然后检测它们
(8)使用上下文信息:在目标与其上下文之间建立连接

3.4 不平衡样本识别问题:将导致算法更多地关注数据量较大的类别,而低估数据量较小的类别,从而影响模型在测试数据中的泛化和预测能力。不平衡样本的识别可以从数据层、模型层、特征层和评价指标层四个方面进行

(1)数据层:改变训练集中的样本分布,使训练集中的样本分布趋于平衡,即各类样本的数量趋于一致。可以从五个方面进行:数据源、数据扩充、数据重采样、类均衡采样和合成采样
在这里插入图片描述
(2)模型层:

(2.1)成本敏感:成本敏感的思想是增加目标函数中小类别错误分类样本的损失值,并通过优化目标函数调整模型对小类别样本的关注度。有两种主要的成本敏感方法:重构培训集或引入成本敏感因素。

  • 重构训练集:在不改变现有算法的情况下,根据样本的不同误分类代价为训练集中的每个样本分配权重,并根据权重重构原始样本集。
  • 引入成本敏感因素:将较高的成本分配给小类样本,将较低的成本分配给大类样本,以平衡样本数量的差异。

(2.2)集成学习:使用集成学习进行缺陷检测主要有两种方法:

  • 集成学习+数据预处理:典型算法包括Smote bagging、Smote boost、Easy集成和平衡级联;
  • 集成学习+成本敏感:典型的算法是AdaCost[102],罕见的Boost

(2.3)转化为异常检测问题:当样本类极不平衡时,缺陷检测问题可视为异常检测问题,而异常检测算法(如单类SVM、SVDD等)可以用来建立单个分类器来检测异常点(即小类别样本)

(3)特征层

  • 与分类器无关(典型算法:过滤器)
  • 独立于分类器(典型算法:包装器)
  • 结合分类器(典型算法:嵌入式)

(4)评价指标层:由于样本不平衡问题对准确度(准确度)的影响最大,因此在实践中通常不单独使用该指标

4. 工业产品缺陷检测数据集
MVTec ad数据集是一个模拟真实工业检测场景的缺陷检测数据集,具有很强的参考意义。MVTec AD数据集共包含15个类别,其中5个类别是不同类型的纹理,其余10个类别是10种不同类型的对象。在该数据集中,3629幅图像用于培训和验证,1725幅图像用于测试。训练集仅包含无缺陷图像,而测试集同时包含无缺陷图像和各种类型的缺陷图像。该数据集通常用于无监督缺陷/异常检测。
5. 总结
本文首先讨论了传统机器视觉方法和深度学习方法在表面缺陷检测领域的应用。同时,指出了工业产品表面缺陷检测领域中的一些关键问题,并总结了解决方法。此外,我们还总结了一个比较完整的工业产品表面缺陷检测数据集,这有助于研究人员对工业产品表面缺陷检测进行更深入的研究

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于软件测试使用机器学习的缺陷预测:回顾与展望 软件测试是软件开发过程中非常重要的一环,而缺陷预测则是测试过程中的关键任务。近年来,机器学习技术的发展为缺陷预测提供了新的可能性。 在这篇文章中,我们对使用机器学习进行软件测试的缺陷预测进行了回顾和展望。首先,我们总结了过去几年来在这一领域取得的重要研究成果。这些研究包括贝叶斯网络、决策树、支持向量机等不同的机器学习算法,在不同的数据集和软件项目上的应用。通过分析这些研究,我们发现机器学习可以在缺陷预测中取得很好的效果,能够提高测试的效率和准确率。 接着,我们对未来的研究方向进行了展望。我们认为,未来的研究可以集中在以下几个方面:首先,进一步改进机器学习算法的性能,使其更适用于不同类型的软件项目和不同的数据集。其次,探索更多的特征选择和特征提取方法,以提高预测模型的准确性。第三,结合其他的软件测试技术,如静态分析和动态分析,进一步提高缺陷预测的效果。最后,对机器学习算法在实际软件测试项目中的应用进行深入研究,以解决实际应用中的挑战和问题。 总之,使用机器学习进行软件测试的缺陷预测已经取得了一些重要的研究成果,但仍有很多挑战和问题需要解决。通过将机器学习算法与其他软件测试技术相结合,进一步提高预测模型的性能,我们可以期待在未来实现更准确和高效的缺陷预测。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值