原文链接:https://www.mdpi.com/2076-3417/11/16/7657
摘要
1. 简介
2. 用于表面缺陷检测的传统基于特征的机器视觉算法
2.1. 基于纹理特征的方法
2.2.基于颜色特征的方法
2.2.1.颜色直方图
2.2.2.色彩时刻
2.2.3.颜色相干矢量
2.2.4.其他颜色特征
2.3.基于形状特征的方法
3. 基于深度学习的工业产品表面缺陷检测方法
3.1.监督方法
3.1.1. Siamese Network
3.1.2. ShuffleNet
3.1.3. Faster RCNN
3.1.4.全卷积网络
3.1.5. Mask RCNN
3.2. 无监督方法
3.2.1. Autoencoder
3.2.2. 生成对抗网络
3.2.3. 深度信念网络
3.2.4. Self‐Organizing Map
3.3. 弱监督方法
3.3.1. 不完全监督方式
3.3.2. Inexact Supervision Method
3.4 总结
4. 关键问题
4.1. 实时问题
4.2. 小样本问题
4.2.1. 数据增强
4.2.2. 无监督/半监督模型
4.2.3. 迁移学习
4.2.4. 优化网络结构
4.3.小目标检测问题
4.4. 数据不均衡样本识别问题
4.4.1. 数据层面
4.4.2. 模型层面
4.4.3. 特征层面
4.4.4. 评估指标级别
5. 工业产品缺陷检测数据集
6 总结
制造业的全面智能化发展对工业产品的质量检测提出了新的要求。本文总结了机器学习方法在表面缺陷检测中的研究现状,表面缺陷检测是工业产品质量检测的关键部分。首先,根据表面特征的用途,从纹理特征、颜色特征、形状特征三个方面总结了传统机器视觉表面缺陷检测方法在工业产品表面缺陷检测中的应用。其次,从监督法、无监督法、弱监督法三个方面论述了近年来基于深度学习技术的工业产品表面缺陷检测的研究现状。然后,系统总结了工业表面缺陷检测中常见的关键问题及其解决方法;关键问题包括实时问题、小样本问题、小目标问题、不平衡样本问题。最后对近年来常用的工业表面缺陷数据集进行比较全面的总结,并比较了MVTec AD数据集的最新研究方法,为工业表面缺陷检测技术的进一步研究和发展提供一定的参考。
在工业生产过程中,由于现有技术、工作条件等因素的不足和局限性,极易影响制成品的质量。其中,表面缺陷是产品质量受到影响的最直观表现。因此,为了保证合格率和可靠的质量,必须进行产品表面缺陷检测。 “缺陷”一般可以理解为与正常样品相比的缺失、缺陷或面积。工业产品正常样品与缺陷样品对比如图1所示。 表面缺陷检测是指检测样品表面的划痕、缺陷、异物遮挡、颜色污染、孔洞等缺陷,从而获得被测样品表面缺陷的类别、轮廓、位置、大小等一系列相关信息。人工缺陷检测曾经是主流方法,但这种方法效率低下;检测结果容易受人为主观因素的影响,不能满足实时检测的要求。它已逐渐被其他方法所取代。
目前,已有学者开展了表面缺陷检测的相关研究,涉及最新的方法、应用、关键问题等诸多方面,文献[5]总结了磁粉探伤、渗透探伤、涡流检测、超声波检测、机器视觉和深度学习 [6,7];比较分析上述方法的优缺点;梳理了电子元器件、管道、焊接件、机械零件中的缺陷检测技术,以及在质量控制中的典型应用。从监督学习模型法、无监督学习模型法[8]和其他方法[9](半监督学习模型法和弱监督学习模型法),文献[10]分析了基于深度学习的表面缺陷检测方法,以及然后,讨论了表面缺陷检测中实时性、小样本以及与传统的基于图像处理的缺陷检测方法的比较三个关键问题。在回顾了自动光学(视觉)检测(AOI)技术后,文献[11]系统地描述了该技术用于表面缺陷检测的几个步骤和相关方法。文献[12]首先列举了缺陷领域的不同对象;介绍和比较了用于缺陷检测的主流技术和深度学习方法。然后分析了超声波检测和深度学习方法在缺陷检测中的应用。最后,对现有应用进行了调查,并基于缺陷检测设备,提出了三维目标检测、高精度、高定位、快速检测、小目标等缺陷检测面临的几个挑战。通过调查可以发现:在工业产品表面缺陷检测领域,目前关于机器学习方法的文献综述很少,一些文献虽然总结了工业产品表面缺陷检测中存在的问题和挑战,但其解决方案和方向还不够系统。此外,在数据集方面,目前还没有对工业产品表面缺陷检测数据集进行全面整理。因此,为了解决上述问题,本文首先从传统的机器视觉方法和深度学习方法总结了工业产品表面缺陷检测的研究现状,然后,工业产品表面缺陷检测过程中的关键问题,真实讨论了时间问题、小样本问题、小目标问题、不平衡样本问题,并给出了每个问题的一些解决方案。最后,总结了全面的工业表面缺陷检测数据集,并比较了几种使用 MVTec AD 数据集的新方法。
本综述参考文献的发表时间主要集中在2016年以后,因为这些文献可以代表最新技术的发展。 通过参考相关评论,确定本文的组织顺序为传统方法、最新方法、关键问题和工具(数据集),这也是本文的研究范围。 本文的主要内容如下: 第二部分,基于传统基于特征的机器视觉算法的工业产品表面缺陷检测方法总结; 第三节,基于深度学习的工业产品表面缺陷检测方法总结; 第四节,关键问题及其解决方案分析讨论; 第五节,工业产品表面缺陷检测数据集的整理和总结以及MVTec AD数据集最新方法的比较。
传统的表面缺陷检测方法在一段时间内发挥了巨大的作用。 本章从特征提取层面对传统的基于机器视觉的工业产品表面缺陷检测方法进行分类。 根据特征的不同,主要分为三类:基于纹理特征的方法、基于颜色特征的方法、基于形状特征的方法。 具体的进一步章节安排如图2所示。
纹理特征反映了图像中的同质化现象,可以通过像素及其附近空间邻域的灰度分布来反映图像表面的组织结构和排列特性。 基于纹理特征的方法可以进一步分为四类:统计方法、信号处理方法、结构方法、模型方法[14,15]。
对于统计方法,主要思想是将物体表面的灰度值分布视为随机分布,从角度分析随机变量的分布 通过直方图特征、灰度共生矩阵、局部二值模式、自相关函数、数学形态等特征描述灰度值的空间分布。
对于信号处理方法,主要思想是将图像作为二维信号处理,从信号滤波器设计的角度对图像进行分析,因此也称为频谱法;信号处理方法包括傅里叶变换法、Gabor滤波器法、小波变换法等具体方法。
对于结构方法,其理论基础是纹理原语理论。纹理原语理论指出,纹理是由一些按照一定规则在空间中重复出现的最小图案(称为纹理原语)组成的。
对于模型方法,工业产品表面缺陷检测常用的模型有MRF模型和分形模型。
对于基于纹理特征的方法,本文总结了近期在工业产品表面缺陷检测中的一些应用实例,按图2中的分类顺序排列,具体如表1所示。
颜色特征计算量小,对图像本身的大小、方向、视角等因素的依赖性小,鲁棒性高。它是图像检索中广泛使用的视觉特征之一。
颜色直方图描述了整个图像中不同颜色的比例,是全局统计的结果;它不注意空间位置颜色,不能描述图像中的物体。
特点:对物理变换(旋转、缩放等)不敏感;如果图像有多个区域,且前景和背景之间的颜色分布有明显差异,则颜色直方图会出现双峰。
文献[27]提出了一种基于颜色直方图的相似度评价方法,用于电阻断层扫描(ERT)图像评价。对于木材表面的缺陷检测,文献[28]提出了一种基于图像块百分比颜色直方图特征和特征向量纹理特征的分类方法;该方法已被实验证明是有效的,特别是对于结型缺陷。文献[29]设计了刨花板缺陷检测的2步工艺流程,利用SVM和颜色直方图特征完成缺陷检测,利用平滑和阈值技术完成缺陷定位。
颜色矩的主要思想是图像中的任何颜色分布都可以用其每个阶的矩来表示。由于颜色分布的信息主要集中在低阶矩,通常只有颜色的一阶矩(均值)、二阶矩(方差)和三阶矩(偏移)就足以表示图像表面的颜色分布。
特点:不考虑像素空间位置;无需矢量化颜色特征;无需进行颜色量化、平滑等后续处理。
文献[30]提出了一种根据影响大小对色矩特征和FSIFT特征进行加权融合的方法,解决了单个特征不能明显表达瓷砖表面缺陷内容的问题。文献[31]利用余弦相似度检验磁光图像的周期规律,证明了色矩特征概括规律的正确性,从而选择合适的磁光图像进行焊接缺陷检测和定位。
颜色相干向量是颜色直方图的改进算法;其主要思想是将直方图中的每个颜色簇分为聚合和非聚合两部分;在图像相似度比较过程中,分别比较相似度,综合权衡后得到相似值,从而得到结果。
文献[32]将LBP特征与颜色聚合向量特征加权融合相结合,并结合基于RBF的SVM,提出了一种图像分类方法
可以提高分类精度和计算速度的方法。文献[33]将提取的颜色聚合向量和纹理特征以特征的形式存储
用于后续网络训练的向量。
除了颜色直方图、颜色矩和颜色聚合向量外,工业产品表面缺陷检测常用的颜色特征包括颜色集和颜色相关图。其中,颜色集也是一种全局颜色特征和匹配方法;它是颜色直方图的近似,表示为二值特征向量;通过构造二叉搜索树,可以加快检索速度。颜色相关图描述了整个图像中某种颜色的像素数所占的比例(概率),可以反映不同颜色对之间的空间相关性;通常,它需要较高的硬件条件。
基于形状的方法有效地利用图像中感兴趣的目标进行检索。其中,基于轮廓的方法是主要的方法类型。基于轮廓的方法通过描述对象的外边界特征来获得图像的形状参数;代表性的方法是霍夫变换和傅立叶形状描述符。
霍夫变换利用图像的全局特征连接边缘像素形成区域的封闭边界,其理论基础是点对线的对偶性。文献[34]提出了一种检测瓶子表面缺陷的方法;在ROI提取阶段,采用快速霍夫变换检测光源的边界线。文献[35]利用Gabor滤波器和Hough变换实现了E-TPU中间表面线状缺陷(如压痕、凹凸)的检测。文献[36]基于圆霍夫变换、极坐标变换、加权Sobel滤波器和SVM实现了小型相机镜头的表面缺陷检测。
傅里叶形状描述符使用物体边界的傅里叶变换作为形状描述,利用区域边界的闭合性和周期性,将二维问题转化为一维问题。文献[37]提出了一种基于全局傅里叶图像重建和模板匹配的非周期图像小缺陷检测和定位方法。文献[38]提出了一种磁体表面切割缺陷的检测方法;该方法采用傅里叶变换和霍夫变换对磁体表面图像进行重构,通过比较重构图像与原始图像的灰度差异,得到缺陷信息。
除上述三类特征外,其他一些特征,如空间关系特征,也可用于工业产品的表面缺陷检测。由于工业产品的表面大多包含多种信息,通常仅使用单一特征或单一类别特征是不够的。因此,在实际应用中,往往会结合使用多个特征和多类特征。
深度学习的快速发展使其在缺陷检测领域得到越来越广泛的应用。 本章基于深度学习的常见分类:监督方法、无监督方法、弱监督方法,简要介绍了工业产品表面缺陷检测的研究现状。 具体的缺陷检测方法如图3所示。
监督方法要求训练集和测试集缺一不可,训练集中的样本必须被标记[39],其中训练集用于寻找样本的内在规律,然后将规律应用到测试集。监督方法可以分为基于度量学习的监督方法和基于表示学习的监督方法。在上述有监督的表面缺陷检测方法中,基于度量学习的常见模型包括Siamese Network;根据缺陷检测的三个阶段,基于表征学习的方法大致可以分为三类:分类网络、检测网络和分割网络。其中,常用的分类网络是ShuffleNet;通常用作检测网络的是 Faster RCNN;常用的分割网络有:FCN、Mask RCNN等,本节以上述网络模型为例,简要介绍其在表面缺陷检测任务中的研究现状。在缺陷检测的任务中,分类网络的重点是解决“缺陷是什么”问题,即确定图像的类型(图像是否包含缺陷,缺陷的类型是什么);检测网络的重点是解决“缺陷在哪里”的问题,即获取具体的位置信息和通过确定缺陷的位置来确定缺陷的类别信息;分割网络的焦点是为了解决“有多少缺陷”的问题,即分割从背景中修正缺陷区域,获取位置、类别、属性和缺陷的其他信息。
Siamese网络可以用来判断两个样本之间的相似度; 其损失函数的核心思想是使相似类别的输入距离尽可能小,不同类别的输入距离尽可能大[40]。
文献[41]提出了一种两阶段多尺度特征相似度测量模型。在使用 Siamese 网络作为主干架构完成成对图像的特征提取后,将空间金字塔池化网络纳入每个卷积模块的特征图中以融合多尺度特征向量,然后进行判别特征嵌入和通过在训练过程中使用对比损失获得相似度度量。测试在PCB数据集上进行了短路、开路、鼠咬、毛刺、漏电、覆铜6类缺陷,所有类型的ROC曲线下面积均在0.92以上。文献 [42] 提出了一种用于跨类别缺陷检测的两层神经网络(SSIM 层:生成模拟 SSIM 组件的功能;SNN 层:由连接到 SSIM 层的连体网络组成),无需重新训练。该方法从包含一些结构相似性的图像对中学习差异特征,并假设不同的分类对象可以共享由这些学习图像对的差异引起的一些结构相似性。在实际工厂数据集中的实验表明:该方法具有跨类缺陷检测的能力。
ShuffleNet 是一种计算效率高的轻量级网络,它采用了逐点组卷积和通道 shuffle 两种新方法来保证计算精度并有效降低计算成本。
基于Shuffle Net V2框架,文献[43]提出了一种新颖的塑料容器复杂背景代码在线检测解决方案,该算法还可以处理复杂背景下的图像,并应用于实际的工业检测系统。 文献[44]提出了一种基于深度学习的Shuffle DefectNet缺陷检测系统,在NEU数据集上达到了99.75%的平均准确率
Faster RCNN是在Fast RCNN的基础上引入了区域提议网络(RPN),将生成区域推荐的步骤放入神经网络中,在端到端的学习模式下实现了几乎无成本的区域推荐算法,极大地提高了 提高了目标检测的速度,还提到了滑动窗口方法。
文献[45]提出了一种基于Faster R-CNN的级联结构,将电力线绝缘子的缺陷检测问题转化为两级目标检测问题。 其中,第一阶段用于定位绝缘子区域; 第二阶段用于定位绝缘体区域。 基于Faster R-CNN,文献[46]提出了一种新的PCB表面缺陷检测网络,该网络使用具有特征金字塔的ResNet50作为主干,同时使用GRAPN的残差单元和ShuffleNetV2的残差单元。
在 FCN 中,一种端到端的图像分割方法,网络中的所有层都是卷积层;网络主要使用三种技术:卷积、上采样和跳过层;可以通过让网络做像素级预测直接得到标签图。核心思想之一是反卷积层,增加了数据规模,从而可以输出准确的结果。
文献[47]提出了一种利用深度神经网络结合Autoencoder和FCN来区分键盘漏光缺陷和灰尘的算法。在由1632张图像组成的测试集中对所提出的方法进行测试,漏光缺陷的误报率从6.27%降低到2.37%。文献[48]设计了一套完整的绝缘子串自动识别和诊断系统,该系统结合了不同的基于深度学习的组件,分别包括一个绝缘子串分割组件和两个绝缘子片缺失和损坏诊断组件。文献[49]提出了一种太阳能电池电致发光(EL)图像的缺陷分割方法;该方法使用FCN和U-net的特定架构,可以一步得到缺陷分割图;与重复执行CNN滑动窗口的方法相比,该方法获得了相似的结果。文献[50]结合FCN和Faster RCNN,设计了基于FCN的隧道缺陷检测深度学习模型;该模型可以准确快速地检测管道的污渍、泄漏和堵塞等缺陷。
Mask RCNN 是 Faster-R-CNN 的一种扩展形式,它为两阶段框架网络集成了目标检测和实例分割功能:第一阶段扫描图像并生成建议(建议可能包含目标区域),第二阶段分类 建议并生成边界框和掩码。
文献[51]提出了Mask RCNN的改进模型——IPCNN。 该模型首先使用深度残差神经网络对来自图像金字塔的图像进行处理以提取特征; 提取的特征通过特征金字塔生成金字塔特征,然后由RPN处理生成缺陷边界框并对其进行分类,然后使用FCN在缺陷边界框中生成缺陷掩码。 文献[52]设计了一个端到端的系统,可以定位太阳能电池板污染; 该系统基于Mask FCNN(Fully Convolutional Mask RCNN),它由一个分类网络ImageNet和一个自底向上对特征图像进行上采样的综合网络组成; 通过上采样消除了信息丢失的影响。
在工业产品表面缺陷检测领域,由于精度高、适应性好,监督法是目前深度学习方法中最主流的方法,其应用范围也越来越广。 但是,这种方法的缺点在实际应用中逐渐凸显,即数据集的提前标注带来的工作量巨大,尤其是在一些高精度场景下; 同时,产业水平的不断提升导致不良样品不断减少,这也对监管方式产生了一定的影响。
针对有监督方法的缺点,一些研究人员开始研究无监督方法。 当输入的训练数据只有数据信息本身,没有标签信息时,机器学习这些无标签数据的模式,得到数据的一些内在特征和联系并自动对数据进行分类 [53]。 然后,当遇到新数据时,可以根据之前学习到的模型判断新数据属于哪个模型(这里的模型是指由原始数据组成的模型)。这个过程属于无监督学习。
在无监督学习方法中,最常用的表面缺陷检测方法主要包括基于重建的方法和基于嵌入相似性的方法。对于前者,神经网络结构的训练仅用于正常训练图像的重建,异常图像由于不能很好地重建而容易被发现;异常分数通常用重建误差表示。最常见的基于重建的方法是自动编码器(AE)和生成对抗网络(GAN)。对于后者,深度神经网络用于提取描述整幅图像的有意义的向量,异常分数通常由测试图像的嵌入向量与训练数据集中表示正态性的参考向量之间的距离表示。典型的算法主要有SPADE[54]、PaDIM[55]、PatchCore[56]等。除了这两种类型之外,Deep Belief Network(DBN)和Self-Organizing Map(SOM)也可以用于表面缺陷检测.
本节将首先以自编码器(AE)、生成对抗网络(GAN)、深度信念网络(DBN)和自组织映射(SOM)四种网络模型为例,简要介绍它们在表面缺陷检测任务中的研究现状 . 第 5 节将介绍基于嵌入相似性方法的三种典型算法。
编码器和解码器是自编码器的两个核心部分。 其中,encoder对应网络模型中的隐藏层,用于学习输入信号的低维特征; 解码器对应模型中的输出层,用于尽可能地再现输入信号。 因此,使编码器能够学习输入信号良好的低维特征并重构输入信号是自编码器的最终目标。
文献[57]将传统图像处理中的SSIM指标作为重建损失引入到基于AE的图像重建中;对编织纹理数据集和纳米纤维材料数据集进行了测试,与 L2 损失相比,两者都获得了显着差异。为了解决AE对异常样本重构能力强的缺点。文献[58]将异常检测转化为补丁序列修复[59]问题;同时,为了弥补该类方法难以覆盖较大异常区域的缺点,提出transformer network仅重构覆盖的patch,并针对不同情况设计了局部和全局嵌入方法。文献 [60] 设计了一种具有多尺度特征聚类的全卷积 AE(MS-FCAE),使用多个不同尺度的 FCAE 子网络重建纹理图像背景,然后从输入图像中减去纹理背景以获得残差图像,最后合并它们得到缺陷图像,其中每个 FCAE 子网络使用全卷积神经网络从输入图像中直接获取原始特征图像并进行特征聚类。文献[61]提出了一种多尺度卷积去噪自编码器(MSCDAE),它使用多模态策略来综合多个金字塔层次的结果,并在LCD面板、瓷砖和纺织品上进行测试;实验证明该方法具有较高的准确率和鲁棒性。文献[62]采用卷积自编码器(CAE)检测手机logo图像,提取CAE生成的模板图像与输入图像的差异,然后通过数学形态学处理,达到异常检测的目的。文献[63]提出了一种用于无监督特征学习的卷积自动编码器(CAE)。每个 CAE 都使用传统的在线梯度下降训练,没有额外的正则化项。在 MNIST 和 CIFAR10 上获得了良好的结果。
生成对抗网络由两个参与者组成:生成器和鉴别器。 生成器用于获取样本数据的分布,鉴别器用于估计样本训练数据的概率。 该模型的最终目标是学习真实数据的内在规律,预测和估计真实数据的分布或密度,并根据学到的知识生成新的数据,即生成对抗网络制造数据。
GAN判别器用于生成缺陷分布似然图;然后,将编码器引入标准DCGAN重构检测到的图像,从原始图像中减去,得到突出潜在缺陷区域的残差图像;之后结合残差图和缺陷分布似然图得到增强融合图,最终在融合图上通过阈值分割得到缺陷的准确位置。文献[65]提出了一种基于GAN的带钢表面缺陷检测的一类分类方法,其中生成器G采用编解码器,输入编码得到的隐藏空间的特征(GAN生成器的倒数第二层输出)引入支持向量机进行缺陷分类,该模型在邯钢提供的图像上取得了良好的测试效果。文献[66]提出了一种基于GAN的检测方法。在第一阶段,使用生成网络和基于统计的表示学习机制检测新区域。在第二阶段,在潜在空间中直接使用 Frechet 距离来区分缺陷和正常样本。该方法在太阳能电池板数据集上达到了 93.75% 的准确率。文献[67]设计了一个基于GAN的表面视觉检测框架,它使用多尺度融合策略融合GAN判别器三个卷积层的响应,然后使用OTSU对融合特征响应图进行分割以进一步分割缺陷位置。在木材和道路裂缝数据集上的实验证明了该框架的有效性。为了检测织物表面的各种缺陷,文献[68]提出了一种基于GAN框架的模型。该模型首先使用多种纹理融合到特定位置,然后通过多级GAN不断更新现有的织物缺陷数据集;因此,网络模型不断微调,以达到更好的检测效果。
深度信念网络由多个RBM(受限玻尔兹曼机)组成,整个网络的训练是通过逐层单独训练RBM来完成的。
文献[69]提出了一种基于DBN的太阳能电池缺陷检测算法。 该算法以重建图像和训练图像作为监督数据,通过BP算法的微调网络建立训练样本和非缺陷图像之间良好的映射关系。 文献[70]提出了一种DS-DBN-SVM(差分搜索-深度信念网络-支持向量机)模型来识别螺栓缺陷的类型。 在该模型中,采用DS算法优化DBN网络的权值和阈值; DS-DBN模型用于提取螺栓数据的特征,提取的特征作为SVM的输入来识别螺栓缺陷类型。
自组织图模拟人脑不同区域神经网络细胞的不同分工,通过搜索最优参考向量集对输入模式集进行分类。
文献 [71] 提出了一种使用 SOM 来区分正常木材和缺陷木材的检测方法。第一阶段检测疑似缺陷区域,第二阶段单独检查缺陷区域。在松木数据集上的测试得到了比较理想的结果。文献[72]结合Otsu和SOM实现TSV缺陷的检测和定位。
无监督方法有效地弥补了监督方法的不足,但由于其自身的特点仍然存在一些问题。由于只训练了正例,无监督方法无法确定什么是正确的输出,因此不能保证对每种类型的缺陷样本(在训练中没有出现)都有良好的检测效果。因此,无监督方法的准确率还有很大的提升空间,总的来说,无监督方法对纹理图像有更好的检测效果。
有的学者结合了有监督方法和无监督方法的特点; 因此,产生了弱监督方法。 与监督和非监督方法相比,弱监督方法可以在避免更高的标记成本的同时获得更好的性能。 目前,工业表面缺陷检测中常用的弱监督方法有不完全监督法和不准确监督法。
不完全监督意味着大部分训练样本没有标记,只有少数样本被标记,这部分标记样本不足以训练一个好的模型。 在不完全监督方法中,半监督方法常用于工业产品的表面缺陷检测。
半监督方法可以在没有人工干预的情况下自动开发未标记的样本数据,以提高学习效果。文献[73]设计了一种基于残差网络结构的深度卷积神经网络结构,将两层残差构建模块堆叠在一起形成一个43层的卷积神经网络,同时为了达到网络深度之间的平衡和网络宽度,提高精度,适当增加网络宽度。该网络结构在 DAGM、NEU 钢数据集和覆铜板数据集上表现出良好的性能。文献[74]提出了一种基于卷积自动编码器(CAE)和生成对抗网络(SGAN)的半监督模型,堆叠的CAE用未标记的数据训练,其编码器网络被保留并作为GAN鉴别器输入到SoftMax层,使用GAN 生成钢铁表面缺陷的假图像来训练鉴别器。文献[75]设计了一个由样本生成和半监督学习组成的钢铁表面缺陷检测系统。在半监督学习部分,使用了CDCGAN和ResNet18两个分类器,并在NEU-CLS数据集上进行了对比实验。其结果,证明该方法优于监督学习和迁移学习。文献[76]提出了一种PCB焊点缺陷检测框架。在该框架的分类任务中,采用了基于“样本-查询-建议”算法的主动学习的概念和基于“自训练”的半监督学习的概念,该框架已被证明可以改善分类性能,同时大大减少注释的数量。
不精确监督侧重于给出了监控信息,但信息不精确,即只包含粗粒度标签的情况。 对于更多包含像素级标签的任务,图像级标签是粗粒度标签。
文献[77]在原有ResNet-50网络的基础上,删除原有的全连接层和池化层,在网络末端增加两个1×1的卷积,得到缺陷对应的特征图,实现了仅通过 图像标签完成对太阳能电池板裂纹的初步检测。 文献 [78] 开发了一个由定位网络(LNet)和决策网络(DNet)组成的 WSL 框架用于钢铁表面缺陷检测,其中 LNet 使用图像级标签训练并输出潜在缺陷位置的热图作为 DNet 输入,DNet 使用 RSAM 对 LNet 识别的区域进行加权,所提出框架的性能在实际工业数据集上得到了证明。
目前,弱监督方法在工业产品表面缺陷检测领域还比较少见,但由于同时具有监督学习方法和无监督学习方法的优点,这类方法的应用前景也很广阔 .
综上所述,在深度学习的三种方法中,监督方法的应用最为广泛,因为它具有较好的准确性,但也存在明显的缺点; 无监督方法符合产业发展的进程,但有其自身的特点; 弱监督方法目前应用并不广泛,但具有广阔的发展前景。
在实际工业场景中的表面缺陷检测任务中,实时性问题不容忽视。在一些特殊场景中,如在线分析、在线监控等,实时性问题处于极其重要的地位。处理实时性问题的目标是在准确率大致相同的前提下,减少检测时间,提高检测效率。目前,已有学者对实时性问题进行了一定的研究。例如,文献[79]设计了一种新型的 11 层 CNN 模型,用于机器人焊接制造中的焊接缺陷检测。该方法为金属增材制造(AM)的在线检测提供了指导,即该方法可以满足一定的实时性要求。文献 [80] 提出了一种结合 SSIM 和 MobileNet 的两阶段算法来检测印刷电路板上的表面缺陷,在保持高精度的同时,其速度至少比 Faster RCNN 快 12 倍。
目前,模型加速是解决实时性问题的重要思路之一。 模型加速主要可以从算法和硬件两个方面进行,具体如下:
(1)算法:对于网络算法层面,可以采用轻量级网络对模型进行加速。 常用的轻量级模型包括 MobileNet、ShuffleNet、SqueezeNet 和 EfficientNet。 此外,蒸馏和修剪也可以用于在算法级别加速网络。 在计算算法上,可以优化卷积运算,达到模型加速的目的。 典型的算法包括FFT、Winograd等。
(2)硬件:使用GPU、FPGA、DSP等是目前通过硬件加速模型的主要方式。
现实中,基于深度学习的表面缺陷检测方法往往不能直接用于工业产品的表面缺陷检测任务。 主要原因之一是现代工业流程的不断优化导致缺陷样本越来越少,即缺陷图像的数量非常有限。 这种从少量样本中学习的问题通常称为小样本问题[81],在训练过程中很容易导致过拟合问题。 目前解决小样本问题的主流方案主要有以下四种:
数据增强的常用方法包括平移、旋转、镜像对比度调整和数据合成。 通过数据放大,可以获得大量的样本图像。
文献[82]在无缺陷图像的表面添加合成缺陷以完成装饰塑料零件数据集的扩展。 文献 [83] 以互补的方式将手工制作的特征与无监督学习特征融合在一起,生成更具辨别力的缺陷表示。
无监督模型的优点之一是它只需要用正样本而不是负样本进行训练,这为解决小样本问题提供了方向。 另外,只需要标记少量样本的半监督模型也是解决小样本问题的替代模型之一。 具体内容参见3.2、3.3.1。
通过迁移学习,已经从一项任务中学到的知识可以应用于其他不同但相关的任务,尤其是当目标任务的数据不足时。 实际上,大多数数据或任务都是相关的。 因此,迁移学习也是解决小样本问题的主要思路之一。 文献 [84,85] 结合迁移学习和 Alex Net 来检测太阳能电池板和织物的表面缺陷。 文献[86-90]将迁移学习与VGG网络结合用于乳液泵体、印刷电路板、传输线组件、钢板和木材的表面缺陷检测。 文献 [91] 将迁移学习和 DenseNet 结合到织物表面缺陷检测中。
网络结构的优化也是解决小样本问题的一个方向。以GAN为例,AnoGAN模型在2017年的文献[92]中被提出,首次将GAN用于图像异常检测。该模型不断迭代优化固定生成器 G 的参数,在潜在空间中寻找与测试图像最接近的生成图像,然后使用 DCGAN 进行图像异常检测。 2019年,文献[93]对AnoGAN进行了改进,提出了f-AnoGAN模型。在该模型中,建议使用编码器将图像快速映射到潜在空间中的一个点,然后使用 WGAN 进行异常检测。 Encoder的引入解决了AnoGAN迭代优化需要大量时间的问题。此外,GANomaly模型(整体结构为encoder-decoder-encoder)在2018年的文献[94]中提出;通过比较编码得到的潜变量和重构编码得到的潜变量的差异,检测异常样本。值得注意的是,上述模型都不需要用负样本进行训练。
小目标检测问题也是工业产品表面缺陷检测领域的难点之一。小目标是指图像中尺寸较小的目标。 “小”有两种定义。一种是绝对尺寸小,通常认为是尺寸小于32*32像素的小目标。另一种是相对尺寸小,即目标尺寸小于原始图像尺寸的一定比例,如0.1,即该目标被认为是小目标。文献[95]通过彩虹级联(pooling and deconvolution)整合不同层的特征,增加不同层的特征图数量的同时增加不同层之间的特征图关系,一定程度上解决了小目标问题。文献[96]提出了一个由多个不同IOU阈值的检测器组成的Cascade R-CNN多阶段目标检测框架,在整个框架中,将前一阶段调整后的proposal作为下一阶段训练的输入。该方法用于小目标,通过该方法显着提高了小目标的检测结果。目前有一些技巧可以解决小目标检测问题,总结如下:
(1)特征融合:将深层语义信息融合为浅层特征图,利用深层特征丰富语义信息,同时利用浅层特征适合检测小目标的特点;
(2) 数据增强:增加训练集中小目标的样本类型和数量;
(3) Image Pyramid + Multi-scale Sliding Window:为图像设置不同的输入尺寸,训练时随机选择一个尺度,将输入图像缩放到这个尺度,发送到网络;
(4)降低网络下采样率:通过降低下采样率来减少特征图上物体的损失,常用的方法是直接去掉池化层,同时使用空洞卷积;
(5)合理的anchor设计:主要方法包括:边界聚类,即在训练集的标签上聚类一组合适的anchor;统计实验,即把anchor和label的中心点放在一起,只利用宽高信息进行匹配实验,找出一组宽高比分布最一致的anchor;设置更小更密集的anchor和匹配策略,比如不要为小物体设置太严格的IoU阈值;
(6)合适的训练方法:使用高分辨率图像进行预训练,同时放大输入图像,然后在小分辨率图像上进行微调;
(7) 使用GAN将小物体放大然后检测;
(8)使用Context信息:在目标与其Context之间建立连接。
不平衡样本的识别 [97,98] 是基于深度学习方法用于工业产品表面缺陷检测的另一个难点。在深度学习中,在训练模型时,通常要求样本集中各类别的样本数量平衡。然而,这种理想情况在现实中很少发生。在更多情况下,数据集中“正常”样本的数据量通常占多数,而“缺陷”或“异常”样本的数据量仅占总样本的一小部分。这种现象称为“样本不平衡”现象。样本识别不平衡的问题主要存在于监督学习的任务中。这个问题的出现会导致算法更加关注数据量较大的类别而低估数据量较小的类别,从而影响模型在测试数据中的泛化和预测能力。
目前,不平衡样本的识别可以从数据层面、模型层面、特征层面、评价指标层面四个方面来处理。
数据层面的处理方法思想是改变训练集的样本分布,使训练集中的样本分布趋于平衡,即各类样本的数量趋于一致。 可以从数据源、数据增强、数据重采样[99,100]、类均衡采样、合成样本[101]五个方面进行,如图4所示。
(1) Cost-sensitive:cost-sensitive思想是在目标函数中增加误分类小类样本的损失值,通过优化目标函数来调整模型对小类样本的注意力。有两种主要的成本敏感方法:重建训练集或引入成本敏感因素。
重构训练集:在不改变现有算法的情况下,根据样本的不同误分类代价为训练集中的每个样本分配权重,根据权重重构原始样本集。
引入成本敏感因素:为小类样本分配较高的成本,为大类样本分配较低的成本,以平衡样本数量的差异。成本敏感因素包括成本敏感矩阵和成本敏感向量,成本敏感方法需要在处理前指定成本敏感矩阵(或成本敏感向量)。在实际情况中,成本敏感矩阵(或成本敏感向量)中误分类权重的具体值通常可以根据样本间的比率和分类结果的混淆矩阵等信息来指定。
(2)集成学习:使用集成学习进行缺陷检测主要有两种方式,分别是:
A:集成学习+数据预处理:典型的算法包括Smote bagging、Smote boost、Easy Ensemble和Balance cascade;
B:集成学习+成本敏感:典型的算法是AdaCost [102],Rare Boost。
(3) 转化为异常检测问题:当样本类别极不平衡时,缺陷检测问题可以看成是异常检测问题,异常检测算法(如One-Class SVM、SVDD等)可以 用于建立单个分类器来检测异常点(即小类别的样本)。
从特征选择的角度,根据与分类器的关系,可以进一步分为三种方法:
由于样本不平衡的问题对准确度(Accuracy)的影响最大,因此在实际中通常不会单独使用该指标。 一些评价指标是专门为解决样本不平衡问题而设计的,如召回率、F1测度、Kappa系数、ROC(AUC)等。
数据集是研究工作的基础。 一个好的数据集更有利于问题的发现和总结,从而便于解决。 目前,工业产品表面缺陷检测领域还没有一个庞大而统一的数据集。 对于特定的研究对象和研究场景,经常使用不同的数据集。 本节根据对象和应用场景的不同,对工业领域常用的数据集进行分类,并给出相关链接。 如表 2 所示,这些数据集涵盖了广泛的工业应用,包括:热轧钢带、钢轨、电子换向器、太阳能电池板、印刷电路板、磁瓦、织物等。 鉴于现有数据集的总结,希望能为学者在该领域的研究提供相同的数据来源。 此外,图 5 选取了部分数据集并在一定程度上展示了它。
MVTec AD 数据集共包含 15 个类别,其中 5 个类别为不同类型的纹理,其余 10 个类别为 10 个不同类型的对象。 在这个数据集中,3629幅图像用于训练和验证,1725幅图像用于测试。 训练集仅包含无缺陷图像,而测试集包含无缺陷图像和各种类型的缺陷图像。 该数据集通常用于无监督缺陷/异常检测。
MVTec AD 数据集共包含 15 个类别,其中 5 个类别为不同类型的纹理,其余 10 个类别为 10 个不同类型的对象。 在这个数据集中,3629幅图像用于训练和验证,1725幅图像用于测试。 训练集仅包含无缺陷图像,而测试集包含无缺陷图像和各种类型的缺陷图像。 该数据集通常用于无监督缺陷/异常检测。
表面缺陷检测是智能生产不可或缺的一部分。 因此,研究工业产品表面缺陷检测具有很强的现实意义。 本文对机器学习方法在工业产品表面缺陷检测中的现状进行了一定的调查。 我们首先讨论传统机器视觉方法和深度学习方法在表面缺陷检测领域的应用。 同时指出工业产品表面缺陷检测领域的一些关键问题并总结其解决方案。 此外,我们概括了一个相对完整的工业产品表面缺陷检测数据集,可以帮助研究人员对工业产品表面缺陷检测进行更深入的研究。
我们通过简要解释一些具体的研究方法来支持我们的观点,这是有效的。 考虑到文章的篇幅和可读性,我们只选取了一些研究方法进行扩展和解释,因此存在一些方法的文献不够或不最新的问题。 但是,我们相信我们的综述可以帮助研究人员了解工业产品表面缺陷检测的相关研究进展,并起到一定的参考作用。