基于深度学习的工业缺陷检测方法可以降低传统人工质检的成本, 提升检测的准确性与效率, 因而在智能制造中扮演重要角色, 并逐渐成为计算机视觉领域新兴的研究热点之一. 其被广泛地应用 于无人质检、智能巡检、质量控制等各种生产与运维场景中. 本综述旨在对工业缺陷检测的任务定义、 难点、挑战、主流方法、公共数据集及评价指标等进行全面归纳, 以帮助研究人员快速了解该领域. 具 体而言, 本文首先介绍工业缺陷检测的背景与特点. 接着, 按照实际数据标注情况, 划分出缺陷模式已 知、缺陷模式未知与少量缺陷标注 3 种研究任务设置, 并根据方法类型作进一步归纳与分析, 探讨了 各方法的性能优劣与适用场景, 阐明了方法与实际应用需求的关联性. 此外, 本文还归纳了方法部署 中的关键辅助技术, 总结了现有方法在实际产业落地中存在的局限性. 最后, 本文对该领域未来的发 展趋势和潜在研究方向进行了展望.
引言
大到飞机机翼, 小到芯片晶粒, 工业制品在现代社会中无处不在. 工业缺陷检测, 旨在发现各种工 业制品的外观瑕疵, 是保障产品质量、维持生产稳定的重要技术之一. 以往的缺陷检测需要人工筛查, 成本高、效率低, 难以覆盖大规模的质检需求. 近年来, 随着工业成像、计算机视觉和深度学习等领域 的新技术层出不穷, 基于视觉的工业缺陷检测技术得到了长足的发展, 成为了针对产品外观质检的一 种有效的解决方案, 引发了学术界和工业界的强烈关注. 工业缺陷检测不仅可以用于检测各种工业制 品, 如金属、纺织物、半导体等, 而且具有优秀的检测精度与效率, 还能提供简便、安全的操作环境. 因 此, 工业缺陷检测已成为智能制造领域重要的基础研究与技术之一, 并被广泛应用于无人质检、智能巡检、生产控制和异常溯源等场景. 《中国制造 2025》行动纲领指出, 建设制造强国任务艰巨而紧迫, 需要加速推进信息化与工业化的深度融合, 推进生产过程的智能化. 因此, 基于视觉的工业缺陷检测 不仅具有非常重要的研究价值, 同时也拥有广阔的应用前景. 然而, 相比于一般的目标检测任务, 工业 缺陷检测面临着诸多难点, 如, 缺陷样本匮乏、缺陷的可视性低、形状不规则、类型未知等, 导致许多 现有方法难以同时满足高精度、高速度的任务需求, 因此在实现落地应用的道路上依然存在大量问题 亟待解决.
由于工业缺陷可以视为工业产品的外观 “异常”, 因此也有部分工业缺陷检测方法采用了异常检 测的思路. 然而异常检测的定义与工业缺陷检测也有所区别. 具体而言, 异常检测的概念更加广泛与 抽象, 其中图像异常检测主要关注输入图像是否为异常实例, 而工业缺陷检测更关注像素层面的检出 任务. 在像素层面上, 异常与正常模式的差别更加细微, 检测难度也大幅增加. 因此直接使用异常检测 方法难以满足工业缺陷检测的任务需求.
近年来, 深度学习方法因其在处理背景复杂、缺陷微弱的工业图像时展现出卓越的性能优势, 逐 渐在该领域占据主导地位. 鉴于此, 本文对基于深度学习的工业缺陷检测方法进行综述, 旨在帮助研 究人员快速对该领域的任务设置、主流方法、评价体系等方面有系统性的了解. 由于该任务具有较强 的应用驱动性, 本文按照实际情况中数据样本的标注与使用情况, 划分出 3 种任务设置: 缺陷模式已 知、缺陷模式未知和少量缺陷标注. 特别地, 本文还归纳了促进方法落地的关键辅助技术, 其有助于提 升方法的实用性. 本文关注各方法间的共性与不同, 按照问题导向逐步剖析其发展脉络, 并结合领域 研究现状对未来发展趋势进行展望, 希望帮助研究者们开拓思路.
目前国内外的综述 [1∼5] 大多探讨广义的异常检测领域的方法, 试图涵盖图像、视频、表格和序列 等各种数据形式. 文献 [2, 3] 对基于深度学习的异常检测方法进行了综合性的归纳与分析, 但缺乏针 对工业场景的探讨. 文献 [6, 7] 虽然以工业生产为背景来综述, 但主要着眼于传统方法与系统控制. 文 献 [8] 对基于深度学习的表面缺陷检测方法进行了系统性的归纳, 但主要梳理有监督方法. 而近期, 基 于无监督、半监督等设置的研究同样涌现出许多新的成果, 但目前尚无相应针对工业缺陷检测领域的 全面而细致的综述文献. 因此, 本综述希望填补这一空缺, 并着重对此类新方法进行介绍与总结. 本文后续内容的组织如下: 第 2 节介绍工业缺陷检测问题的定义, 分析研究难点与挑战; 第 3 节 基于 3 种任务设置介绍近年主流的工业缺陷检测方法, 并按照方法的设计原理进一步归纳与分析; 第 4 节梳理针对实际部署的关键辅助技术; 第 5 节介绍常用的公开数据集与评价指标, 并比较典型方法 的性能; 最后, 第 6 节总结了当前研究的状况与局限性, 并对未来发展趋势与潜在研究方向进行展望.
2 问题定义与研究现状
2.1 问题定义
基于视觉的工业缺陷检测旨在发现织物、芯片、药品乃至基建材料等各种工业制品的外观可见缺 陷. 这些缺陷虽然微小, 却可能严重危害产品的正常功能. 它们可能发生在工业产品的生命周期中任何 时期, 如产品的生产、运输与使用过程等. 缺陷 (defect) 的概念可类比到异常 (anomaly). 异常指超出预期模式范围的数据[1] , 目前已有大量 工作对其进行定义与归类 [1∼5, 9, 10] . 通常学者根据数据之间是否存在上下文关系, 将异常分为点异常、 上下文异常和集群异常 [1, 5, 10] . 如图 1(a) 所示, 点异常又称为离群值 (outliers) [9] , 描述数值上偏离正 常样本的独立数据; 上下文异常同样描述数据点, 其数值属于正常范围, 但不符合局部上下文规律; 集群异常描述一系列相关数据的集合, 集合中的每一个实例的数值在单独考察时都处于正常值域, 但集 合整体的相关性特征不服从正常模式. 具体到图像数据, 文献 [5] 根据异常是否存在明显的语义性将 图像异常分为低级纹理异常和高级语义异常. 与异常相近的概念还包括新颖点 (novelty) 和分布外数 据 (out-of-distribution, OOD) [4] . 在图 1(b) 所示的图像分类任务中, 基于白猫样本定义猫类. 白狗即 使颜色相近, 但因语义类别不同而属于离群值; 黑猫属于猫类, 语义类别相同, 但其颜色属性未在训练 集中出现过, 而属于新颖点; OOD 则关注数据集合的分布差异, 文本数据集与自然场景中猫的数据集 的分布呈现出明显差异. 类似地, 如图 1(c) 所示, 工业缺陷检测中, 正常样本包括多类产品, 缺陷可被 视为其外观上的 “异常”. 不同的是, 工业缺陷往往出现在图像中的小部分区域, 显著程度更低, 且语义 概念模糊. 因而, 一般的图像异常检测往往仅需区分正常与异常样本, 而工业缺陷检测更关注于检测 图像中的异常像素. 在实际工业场景中, 缺陷的定义更加主观, 因而学者们试图寻求其与异常检测的 关联. 考虑到上述几种任务的相似性, 在部分缺陷检测方法中也采用了异常检测、新颖点检测与 OOD 检测的思路. 例如, 单独考虑缺陷的像素值, 可类比为新颖点或离群值; 考虑像素间的关联时, 又可将 其类比上下文异常或集群异常.
虽然缺陷通常属于未知模式, 但仍然可以从已有的缺陷样本中发现一定的共性, 因此总结缺陷与 背景的类型有助于针对性地设计检测方法. 如图 2 所示, 依据缺陷出现的位置与表现形式, 本文将工 业缺陷分为表面缺陷与结构缺陷. 表面缺陷主要出现在产品表面的局部位置, 通常表现在纹理突变、 异状区域、反规律模式或错误的图案. 例如, 表面裂纹、色块、织物的稀织以及商标文字的印刷错误 等. 根据缺陷区域的像素值与周围背景的差异性可将其类比为离群值或集群异常: 离群值型缺陷的像 素值通常与正常图像具有明显差异; 集群异常型缺陷的像素值与周围正常区域属于同一范围, 因而更 难被发现. 结构缺陷主要是由产品整体的结构错误所致, 包括形变、错位、缺损与污染. 例如铁丝的弯 曲、二极管的边缘缺损或处于错误的位置等. 相应地, 根据是否包含产品整体结构, 背景可分为纹理类 与物体类. 纹理类聚焦产品的局部表面, 按照复杂程度依次划分为简单纹理、规则纹理与无规则纹理. 物体类包含产品整体, 结构更加复杂, 且存在产品之外的背景干扰. 此时, 不仅需要考虑表面缺陷, 也 要考虑结构缺陷. 可见, 在不同的背景上, 不同种类的缺陷微弱程度不同. 即使是同种缺陷的不同实例 之间, 可视性也可能有较大差异.
根据输出结果粒度的不同, 工业视觉缺陷检测任务一般包括分类和定位. 如图 3 所示, 对于一个 待测图像实例, 分类任务首先将其二分类为正常样本或缺陷样本; 当缺陷类型已知时, 还可进一步对缺陷类型进行判别, 例如, 织物上可能存在穿线、异色等多种缺陷. 定位任务的目标是找到缺陷在图像 中的具体区域, 根据缺陷区域的描述方式可分为检测 (检测框) 与分割 (像素级). 事实上, 上述任务有 时是可以同时进行的, 例如, 在分类模型上利用可视化方法 [11∼13] 可实现像素级的定位, 分割结果同 样可以用来判断整图的分类. 由于工业缺陷的形状不规则、尺寸变化较大, 检测框难以精确表示缺陷 的位置, 而且容易引入较多无关的背景信息, 对缺陷检测性能的评估造成麻烦. 因而, 在实际的缺陷定 位任务中, 研究者们更关注缺陷分割方法. 鉴于此, 本文将重点论述分类与分割任务的工作。
2.2 研究概述
工业缺陷检测长期以来都是工业视觉领域最重要的研究之一. 近年来, 随着深度学习在计算机视 觉任务中的普及, 基于深度学习的工业缺陷检测方法也得到了飞速发展, 并逐渐占据主流. 得益于卷 积神经网络 (convolutional neural network, CNN) 强大的特征提取能力与对高维数据的表征能力, 基 于深度学习的方法可以自动学习人工难以设计的特征, 不仅节约了手工设计特征的成本, 还令检测精 度大幅提高. 相比基于图像处理与统计学习的传统方法, 它更擅长处理复杂的工业图像数据. 本文将 近年国内外工业缺陷检测领域的热点研究进展组织为图 4 所示的结构. 检测算法依据实际工业场景 中数据情况的不同, 被分为缺陷模式已知、缺陷模式未知与少量缺陷标注 3 种设置. 缺陷模式已知时, 一般采用有监督深度学习方法, 需要充足而精确的样本标注, 可以从分类、检测与分割 3 种角度进行 方法设计. 缺陷模式未知时, 一般采用无监督深度学习方法构造比较对象. 根据比较对象维度的不同, 可分为在图像维度与在特征维度比较相似度, 并基于方法的原理进一步细分. 少量缺陷标注的场景贴 近实际工业情况, 训练集中包含比例不均衡正负样本, 且只有少量的缺陷样本具有精确或不精确的标注. 此时, 根据具体的数据标注情况, 分别采用小样本、半监督和弱监督等新兴方法来处理, 近年来这 些方法也逐渐得到学术界与工业界的高度重视. 自监督学习属于无监督学习的一种, 其从无标注数据 中挖掘自身的监督信息, 最近也在工业缺陷检测领域得到了广泛的应用. 因此, 本文从构建监督信息 的角度对自监督方法予以归纳. 辅助技术主要用于提升检测方法的实用性, 本文主要从 3 个角度讨论. 数据增强与合成为数据贪婪的检测模型提供足够的训练集; 模型压缩与加速技术面向落地使用中的低 存储开销与实时性需求; 阈值设置旨在找到推理阶段最合适的分类边界.
3 检测算法
3.1 缺陷模式已知
在许多实际工业场景中, 大部分缺陷的类型已事先经过专业的统计与归纳, 因而在方法设计时可 以利用缺陷的特征直接检测, 或者利用先验知识搜集、标注数据集来训练模型. 基于有监督设置的深度学习方法已经在许多视觉任务上取得了较为成熟的发展与应用. 当缺陷种 类已知且具有充足的标注样本, 或者需要解决缺陷种类的多分类问题时, 工业缺陷检测往往采用有监 督方法. 这些方法大多是将已有的通用目标的分类、检测、分割模型应用于工业场景, 并根据实际情 况中缺陷的微弱性与模型的速度需求进行微调.有监督的方法可以解决缺陷多分类的问题, 适合于大部分缺陷的类型已知或缺陷特点鲜明的情况. 尽管需要高昂的标注成本, 但是此类方法在样本充足的情况下具有优良的性能, 并已在部分实际应用 中检验了方法的有效性. 现有方法在简单规则的工业场景中已较为成熟, 而对于复杂背景及无规则微 弱缺陷的检测仍有发展空间. 然而, 面对样本匮乏、缺陷模式未知的情况时, 有监督方法本身依然存在 不足.
3.2 缺陷模式未知
在实际情况中, 含有缺陷的样本极难获取. 面对缺陷的未知性与无规则性, 基于缺陷先验知识的 方法存在较大的局限性. 因此, 无监督的设置已经引起了广泛重视. 此类方法大多借鉴异常检测的思 路, 对易于获取与描述的正常样本进行建模. 缺陷被定义为正常范围之外的模式. 无监督设置下的任 务目标通常是判断待测样本是否包含缺陷, 或对缺陷区域进行定位, 此时定位结果的输出一般是像素 级的分割结果。基于无监督设置的深度学习方法仅需要易于获取的正常样本用于模型训练, 无需使用真实缺陷样 本. 其不仅能解决有监督深度学习方法无法发现未知缺陷的问题, 而且拥有比传统方法更强的对图像 特征的表达能力, 因而成为了当今的研究热点. 此类方法的核心思想是构建出一个与待测样本最相近 的 “模板” 与之比较, 根据像素或特征的差异性实现缺陷的检出与定位. 根据比较维度的不同, 本文将 方法划分为基于图像相似度的方法与基于特征相似度的方法.
3.3 少量缺陷标注
实际工业场景的情况往往介于上述两种设置之间. 不仅可以获得相对充分的正常样本, 还可以事 先收集少量缺陷样本, 并进行标注. 即使缺陷样本只有粗粒度的标注也能为检测性能带来提升, 因此 纯粹的有监督与无监督方法均难以充分利用提供的数据, 而不是最佳的解决方案. 此时, 面对样本稀 少、数据不均衡、标注不精确等问题, 研究者们尝试基于小样本、半监督和弱监督的设置来设计更加合理的方法.
4 辅助技术
检测方法设计不仅要考虑方法本身的检测精度, 还需要根据实际情况, 利用一些辅助技术帮助其 投入产业使用. 对此, 本文主要综述 3 种关键的辅助技术: 数据扩增旨在利用合成等手段增加样本的 多样性, 以提升有监督和自监督方法的性能; 轻量化技术关注模型在实际部署时的时间与空间复杂度, 帮助模型在低功耗设备上达到实时检测的水平; 阈值设置是区分正常与异常样本的关键, 合适而可控 的阈值设置有助于方法实现较高的实际性能。
5 数据集与性能评估
5.1 常用数据集
当前常被用于工业缺陷检测研究的数据集如表 3 [19, 30, 39, 173∼182]1)所示. 本文具体介绍近年提出的契合不同任务设置的典型数据集.
5.2 评价指标
由于分类与分割通常在工业缺陷检测中具有较大的实用价值, 本文主要介绍这两类任务的评价 指标. 分类的性能通常采用准确率 (accuracy)、精确率 (precision) 和召回率 (recall) 进行评估. 准确率指所有预测正确的类占全部的比重; 精确率也被称查准率, 指预测为缺陷的样本中正确预测所占的比例; 召回率也被称为查全率、真阳性 率 (true positive rate, TPR), 指所有缺陷中被正确检出的比例. 在实际应用中, 往往还会关注误检率 (false drop rate, FPR) 与漏检率 (false negatives rate, FNR), 它们衡量模型的不足之处。像素级缺陷定位的任务可视为前景与背景的两类分割问题. 当输出的异常分数图是表示对应像素 为缺陷概率的热力图时, 需要对其设定相应阈值获得二值化分割结果. 因此, 分割指标也可分为固定 阈值的指标和与阈值无关的指标。
6 总结与展望
6.1 总结
作为工业视觉的核心技术, 基于视觉的工业缺陷检测因其广泛而重要的应用价值, 逐渐成为炙手 可热的新兴研究问题之一. 近年来已经涌现出大量的新理论和新方法, 并已逐渐投入实际产业. 本文对 该领域的任务定义、研究难点、检测方法、辅助技术、常用公开数据集、评价指标与典型方法性能等 进行了综合梳理, 重点综述了深度学习方法的重要进展然而, 尽管目前工业缺陷检测方法已在部分工业数据上表现出较高的性能, 但现有研究依然存在 很大的局限性, 限制了相关方法的进一步研究与落地.
6.1.1 更贴近实际的任务设置
基于有监督的缺陷检测方法已逐渐趋于成熟, 展现出了优越的性能. 但是有监督方法依赖于大规 模带有精确标注数据的支持, 而数据的搜集与标注过程成本高昂, 使之无法与实际工业场景完全吻合. 同时, 有监督方法无法处理新类别缺陷的检测问题. 无监督方法虽然大大降低了数据标注的需求, 也 能检测未知型缺陷, 但是在定位性能与可解释性方面仍然无法替代有监督方法. 在实际生产环境中, 少量缺陷标注的情况更加常见. 用户不仅可以提供大量的正常样本, 同时也 能提供少量具有精确或粗糙标注的缺陷样本. 相比于上述两种设置, 小样本、半监督和弱监督的方法 更加贴合工业场景, 可以更加充分地利用资源, 因而其关注度迅速增加. 目前, 这些方法仍然处于发展 的初期, 仍有待进一步的研究与发展.
6.1.2 缺乏完备的数据集
数据集是深度学习方法研究的基础. 目前常用于工业缺陷检测任务的数据集主要存在着背景类型 单一、缺陷种类单一等不足, 无法模拟现实中复杂的检测场景. 在实际工业生产过程中, 所拍摄的产品 图像也可能来源于不同的成像条件、不同的拍摄角度或者不同制程, 在同一产品上也会出现不同类型 的缺陷. 构建更贴近实际工业场景与任务设置的数据集不仅有助于更加实用的算法的开发, 也有助于 算法实际部署. 例如, 多重成像的数据集可以将在一种成像条件下难以被发现的缺陷在另一成像中凸 显, 从而给缺陷发现带来了便利. 工业缺陷检测方法在无人巡检、异常溯源等延伸性工作的性能也需 要经过相应数据集的检验. 因此, 新数据集的建立与完善也非常重要, 只有构造出合适的数据集, 才能 支撑各种新场景、新任务和新设置下方法的发展.
6.2 展望
除了上述总结的目前研究中的不足, 该领域还有许多极具潜力的研究方向有待进一步探索.
6.2.1 神经架构搜索
现有的基于深度学习的方法大多依靠手工设计深度神经网络, 依照经验设置超参数. 因此, 现有 的模型结构可能并非面向工业缺陷检测的最优解. Rippel 等 [132] 比较了多种基础网络对模型性能的 影响, 其中基于自动机器学习 (automated machine learning, AutoML) 获得的 EfficientNet [187] 的性能 优于人工设计的 ResNet [188] . EfficientNet 高效的网络结构与 Swish 激活函数被认为是提升性能的主 要原因. 相比于其他通用的视觉检测任务, 大部分工业视觉的使用场景更加具体, 利用神经架构搜索 (neural architecture search, NAS) 的方法自动搜索针对特定任务场景的最优模型是一种可行的解决方 案, 不仅有助于弥补人工经验设置的不足, 还能提升模型的效率. AutoOD [189] 基于 NAS 搜索 AE 架 构的模型参数, 实现了优于手工模型的检测性能. 然而, 目前 NAS 在无监督与半监督设置中的应用尚 少, 未来可能在工业视觉领域的相关任务上得到发展.
6.2.2 Transformer 的应用
近年来, Transformer 模型 [190] 被引入到计算机视觉领域, 并在多种视觉任务上展现出优越的性 能[191∼195] . 相比于 CNN 关注局部特征关系, 视觉 Transformer 利用注意力机制, 可以建模图像中的长 距离关系. Xie 等 [196] 将高效的 Swin Transformer[194] 改进后用于有监督的太阳能电池板的缺陷检测.其增加窗间注意力来增强全局语义特征的提取, 用多尺度聚合模块结合不同层级的特征, 实现了较高 的分类性能. 然而, Transformer 模型的性能优势通常需要足够的训练数据支撑, 而大部分工业缺陷检 测场景难以获取充足的缺陷数据. 因此, 研究者们尝试在无监督设置下引入 Transformer, 一般将其用 于基于图像相似度的方法. Mishra 等 [180] 将基于图像重建模型的编码器改为 Transformer 结构, 以增 强全局特征的提取能力. 同时, 用 GMM 对 Transformer 的编码结果进行密度估计. 在测试阶段, 根据 GMM 对图像块的密度估计结果进行缺陷定位, 同时结合重建误差实现图像级分类. Pirnay 等 [157] 认 为在基于图像复原任务的缺陷检测方法 [114] 中, 长距离信息有利于高质量的图像复原, 从而提升缺陷 分割能力, 因而将 CNN 替换为 Transformer, 根据周围信息来复原图像块, 最终根据重建误差进行缺陷 分割. Pinaya 等 [197] 首先训练 VQ-VAE [198] 对图像进行离散编码, 然后利用多个高效的 Transformer 模型 Performer [195] 对不同顺序的离散编码进行自回归建模. 最终基于重建误差和隐空间编码的似然 进行异常分割, 从而减少误检. Transformer 具有全局关系建模的能力, 且具有更好的可解释性 [199] . 但是其对计算资源的需求也 相应增大, 对工业场景的低开销需求提出挑战. 目前也有相关工作继续在高效 Transformer 模型[194, 195] 与小数据集 [199] 的应用上进行探索. 尽管目前 Transformer 在工业缺陷检测领域的实用性还尚未得到 充分探索, 但现有研究已经指出了 Transformer 的潜力.
6.2.3 多重成像与多模态
早期的工业缺陷检测方法利用光学方法提升缺陷的显著性, 从而使其易于被检出. 事实上, 工业 缺陷的种类千差万别, 可能存在各自适合的成像方式, 因此, 利用不同成像条件的差异产生区分力是 一个具有潜力的方案. 在实际场景下, 红外线、X 射线等其他成像方式可能适合特定产品的质检任务; 结构光、激光等方式获得的 3D 信息还能进一步提升产品结构性缺陷的表达能力. 目前大部分的方法 仅关注于单一的 RGB、灰度图像或其他成像形式的输入. 为了综合不同成像条件的感知能力, 模型可 以进一步考虑融合多模态数据的特征来增强检测性能, 以应对更复杂的场景.
6.2.4 更具可解释性的方法
尽管深度学习极大地促进了工业缺陷检测的发展, 新兴的方法拥有卓越的检测性能, 但是不少方 法仍缺乏完备的可解释性. 许多基于无监督的方法还依赖大量的经验性假设. 对模型解释性的研究不 仅有助于人们理解模型工作机制, 还能促进新型方法的研发. 从辅助人工检测的角度而言, 建立人机 互信在实际应用落地的推进中至关重要. 因此, 置信度预测 [200] 和模型可视化等模型理解的研究不只 在工业缺陷检测领域, 也在整个人工智能领域极具意义.
6.2.5 在线学习与联邦学习
现有方法大多采用离线学习的方法, 即预先根据对应所给数据集训练模型, 然后部署到产线中. 但 由于训练初期通常缺乏有标签的缺陷样本, 部署时模型的实际性能难达最佳. 在实际应用中, 产线可 以不断地提供新样本, 也可能发现新的缺陷类型. 因此, 运用在线学习的方法对模型进行快速实时的 调整也将成为后续研究与应用的重点之一. 由于某些产品及其缺陷存在一定的共性特征, 结合不同生 产线上的样本有助于充分训练与调整模型. 考虑到工业数据往往容易涉及隐私问题, 引入联邦学习的 框架有助于在保障各个合作者隐私安全的前提下, 有效地结合各方的样本数据.