目录
摘要
近年来,基于深度学习的表面缺陷检测技术在各种工业场景中广泛应用。本文对近年来基于深度学习的表面缺陷检测方法进行了梳理,根据数据标签的不同将其分为全监督学习模型方法、无监督学习模型方法和其他方法三大类,并对各种典型方法进一步细分归类和对比分析,总结了每种方法的优缺点和应用场景。本文探讨了表面缺陷检测中三个关键问题,介绍了工业表面缺陷常用数据集。最后,对表面缺陷检测的未来发展趋势进行了展望。
第一章 缺陷检测问题的定义
-
缺陷的定义:
- 在机器视觉任务中,缺陷是基于人类经验的概念,而不是纯粹的数学定义。根据对缺陷模式的不同认知,检测手段分为有监督方法和无监督方法。
- 有监督方法利用标记了标签的缺陷图像进行训练,关注缺陷特征。
- 无监督方法只需要正常样本进行训练,关注无缺陷特征,当检测到异常特征时认为是缺陷。第 2 种是无监督的缺陷检测方法, 通常只需要正常无缺陷样本进行网络训练, 也称为one-class learning. 该方法更关注无缺陷 (即正常样本) 特征, 当缺陷检测过程中发现未见过的特征 (异常特征) 时, 即认为检测出缺陷. 此时 “缺陷”意味着异常, 因此该方法也称作异常检测 (Anomaly detection)。
第二章 表面缺陷检测深度学习方法
本章主要介绍了基于深度学习的表面缺陷检测方法,具体分为三大类:全监督学习模型、无监督学习模型和其他方法(包括半监督学习模型和弱监督学习模型)。
2.1 表征学习
表征学习是现阶段大部分基于深度学习的表面缺陷检测方法的核心。表征学习将缺陷检测问题视为计算机视觉中的分类任务,包括粗粒度的图像标签分类或区域分类,以及最精细的像素分类。
2.1.1 分类网络
分类网络利用CNN的特征提取能力,已经成为表面缺陷分类中最常用的模式。常用的网络结构包括AlexNet、VGG、GoogLeNet、ResNet、DenseNet、SENet、ShuffleNet、MobileNet等。分类网络的实现任务可以细分为三个小类:
- 缺陷分类/识别:针对图像整体进行分类,识别图像中是否存在缺陷及其类型。
- 缺陷定位/检测:不仅识别缺陷,还需要标注缺陷在图像中的具体位置。
- 缺陷分割:对图像进行逐像素的分类,将缺陷区域从背景中分割出来。
2.2 度量学习
度量学习的方法主要用于表面缺陷定位,通过在特征空间中进行聚类。输入孪生网络的图像对需要具有统一的内容形式,因此要求比较严格,现阶段还无法适应复杂的工业环境。
2.3 正常样本学习
目前, 最常用于表面缺陷检测的无监督学习模型是基于正常样本学习的方法. 由于只需要正常无缺陷样本进行网络训练, 该方法也常称为 One-class-learning. 正常样本学习的网络只接受正常 (无缺陷) 样本进行训练, 使得其具备强大的正常样本分布的重建和判别能力. 因此, 当网络输入的样本存在缺陷时, 往往会产生与正常样本不同的结果. 相比于有监督学习模型, 它能够检测到偏离预期的模式或没有见过的模式, 这些模式都可以称为缺陷或者异常。
2.3.1 基于图像空间的方法
基于图像空间的方法是在图像空间上对缺陷进行检测,不仅能实现图像级别的分类和识别,还可以获取到缺陷的具体位置。常用的手段包括:
- 样本重建与补全:网络可以自动修复或补全缺陷区域,用输入图像减去重建图像可以获得缺陷区域。
- 利用网络实现异常区域分类: 这类网络通常采用 GAN 的判别器. 该方法原理是训练生成对抗网络 GAN 以生成类似于正常表面图像的伪图像,这意味着训练好的 GAN 可以在潜在特征空间中很好地学习正常样本图像。
2.3.2 基于特征空间的方法
基于特征空间的方法是在特征空间中, 通过正常样本与缺陷样本特征分布之间的差异来进行缺陷检测. 特征之间的差异也称为异常分数, 当异常分数高于某个值时, 即可认为出现缺陷。
综上, 目前基于正常样本学习方法常用于简单统一的纹理表面缺陷检测, 在复杂的工业检测环境下, 相比于监督学习的方法, 其检测效果还不太
理想。
第三章 关键问题
本章讨论了表面缺陷检测中的三个关键问题:小样本问题、模型选择和优化、以及实时性和鲁棒性。
3.1 小样本问题
工业环境中,缺陷样本通常非常有限,深度学习方法在小样本情况下的应用成为一个关键问题。解决方法包括:
- 数据扩增:通过镜像、旋转、平移、扭曲、滤波、对比度调整等图像处理操作获取更多样本。
- 数据合成:将单独缺陷融合到正常样本上构成缺陷样本。
- 生成对抗网络(GAN):通过GAN生成新的缺陷样本。
- 迁移学习:利用预训练模型,在小样本情况下进行微调。
3.2 模型选择和优化
针对具体的表面缺陷检测任务,选择合适的深度学习模型非常重要。常见的模型优化方法包括:
- 超参数优化:如学习率、批量大小等。
- 模型架构调整:如增加网络深度或宽度,添加注意力机制等。
- 损失函数改进:针对具体任务设计合适的损失函数。
3.3 实时性和鲁棒性
工业环境中,实时检测和鲁棒性要求高。提升方法包括:
- 模型压缩和加速:如剪枝、量化、蒸馏等技术。
- 硬件加速:利用GPU、FPGA等加速推理过程。
- 增强鲁棒性:通过数据增强、对抗训练等方法提升模型在复杂环境下的表现。
第四章 工业领域公开的缺陷检测数据集
本文介绍了在工业领域中常用的表面缺陷检测数据集,帮助研究人员了解不同数据集的特点和适用场景。
第五章 未来发展趋势
未来,基于深度学习的表面缺陷检测方法将朝着以下方向发展:
- 多模态数据融合
- 高效的模型压缩和加速
- 强大的泛化能力和鲁棒性
- 自适应和在线学习能力
通过对表面缺陷检测方法的详细综述,本文旨在帮助研究人员快速系统地了解该领域的相关方法与技术,为未来的研究提供参考。