Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)

论文地址:https://arxiv.org/abs/1903.08536v3

摘要

       基于机器学习的表面异常自动检测已经成为一个有趣且有前途的研究领域,对视觉检测的应用领域有着非常直接的影响。深度学习方法已经成为完成这项任务最合适的方法。它们允许检查系统学习通过简单地显示一些样本图像来检测表面异常。本文提出了一种基于分割的深度学习体系结构,用于表面异常的检测和分割,并在表面裂纹检测的特定领域进行了演示。该体系结构的设计使模型能够使用少量样本进行训练,这是实际应用的一个重要要求。将该模型与相关的深度学习方法(包括最先进的商业软件)进行了比较,结果表明,该方法在表面裂纹检测的特定领域优于相关方法。大量实验还揭示了注释所需的精度、所需训练样本的数量以及所需的计算成本。在一个基于真实质量控制案例的新创建的数据集上进行了实验,结果表明,所提出的方法能够在少量缺陷表面上进行学习,仅使用大约25-30个缺陷训练样本,而不是深度学习应用中通常使用的数百或数千个样本。这使得深度学习方法适用于可用缺陷样本数量有限的行业。该数据集还公开提供,以鼓励开发和评估表面缺陷检测的新方法。

介绍

       在工业过程中,当涉及到确保成品的适当质量时,最重要的任务之一是检查产品的表面。通常情况下,表面质量控制由人工进行,工人接受培训以识别复杂的表面缺陷。然而,这种控制非常耗时、低效,并可能导致生产能力严重受限。

       过去,经典的机器视觉方法足以解决这些问题;然而,随着工业4.0范式的发展,生产线正在向通用化方向发展,需要快速适应新产品。传统的机器视觉方法无法保证这种灵活性。通常,在传统的机器视觉方法中,功能必须手工制作以适应特定领域。然后使用手工制作的基于规则的方法或基于学习的分类器(如SVM、决策树或kNN)做出决策。由于这种分类器不如深度学习方法强大,因此手工制作的功能发挥着非常重要的作用。各种滤波器组、直方图、小波变换、形态学操作和其他技术被用来手工制作适当的特征。因此,特征的手工工程在经典方法中起着重要作用,但当机器视觉方法必须手动适应不同的产品时,这些特征不适合不同的任务,并导致较长的开发周期。可以在数据驱动的机器学习方法中找到一种提高灵活性的解决方案,在这种方法中,所开发的方法可以仅使用适当数量的训练图像快速适应新类型的产品和表面缺陷。

      本文的重点是使用最先进的机器学习方法来解决视觉表面缺陷的检测问题。重点是近年来成为计算机视觉领域最常见方法的深度学习方法。当应用于表面质量控制问题时,深度学习方法可以取得优异的效果,并适用于不同的产品。与经典的机器视觉方法相比,深度学习可以直接从底层数据中学习特征,并具有更高的复杂结构表示能力,从而完全用自动学习过程取代了特征的手工工程。随着对新产品的快速适应,这种方法非常适合工业4.0所需的灵活生产线。尽管如此,仍然存在一个悬而未决的问题:需要多少带注释的数据,以及注释需要多精确,才能实现适合实际应用的性能?在处理深度学习方法时,这是一个特别重要的问题,因为具有数百万个可学习参数的深度模型通常需要数千张图像,而在实践中往往很难获得这些图像。

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第1张图片

      本文探讨了适用于表面质量控制的深度学习方法。特别是,本文研究了应用于工业产品表面裂纹检测的深度学习方法(见图1)。不仅从总体分类性能,而且从对工业4.0特别重要的三个特征的角度,探索合适的网络体系结构:(a)注释要求,(b)所需训练样本的数量和(c)计算要求。数据需求通过利用一种基于两级架构的深度卷积网络的有效方法来解决。提出了一种新的分割和决策网络,该网络适用于从少量有缺陷的训练样本中学习,但仍能获得最先进的结果

       在一个名为Kolektor表面缺陷数据集(KolektorSDD)的新的真实数据集上对所提出的方法进行了广泛的评估。该数据集代表了工业半成品表面缺陷检测的现实问题,其中可用于培训的缺陷项目数量有限。通过强调三个重要方面,证明提议的方法已经适用于所研究的应用:(a)实现100%检测率所需的手动检查(通过额外的手动检测验证),(b)所需的注释细节和导致所需人力成本的培训样本数量,以及(c)所需的计算成本。在所研究的领域,所设计的网络表现出优于相关的最先进的方法,包括最新的商业产品和两个标准的细分网络

       本文其余部分的结构如下。相关工作见“相关工作”一节,细分和决策网的详细信息见“拟议方法”一节。“细分和决策网络评估”一节详细介绍了对拟议网络的广泛评估,而“与最新技术的比较”一节则介绍了与最新商业解决方案的比较。本文最后在“讨论与结论”部分进行了讨论。

相关工作

       在引入AlexNet后不久,深度学习方法开始更多地应用于表面缺陷分类问题。研究表明,对于表面缺陷分类,深度学习方法可以优于传统的机器视觉方法,其中手工设计的特征与支持向量机相结合。他们用五层卷积神经网络对几种钢材缺陷类型进行了图像分类,证明了这一点。取得了优异的成绩。然而,他们的工作仅限于浅层网络,因为他们没有使用ReLU和批处理规范化。Faghhroohi等人使用了类似的体系结构来检测钢轨表面缺陷。他们使用ReLU作为激活函数,并针对钢轨缺陷分类的具体问题评估了几种网络大小。

       在卷积网络的现代实现中,Chen和Ho(2016)应用OverFeat(Sermanet和Eigen 2014)网络来检测五种不同类型的表面误差。他们发现大量标记数据是深层网络的一个重要问题,并建议使用现有的预训练网络来缓解这一问题。他们利用OverFeat网络对来自ILSVRC2013数据集的120万张普通视觉对象图像进行训练,并将其用作表面缺陷图像的特征提取器。他们利用支持向量机在深层特征的基础上学习分类器,并证明预训练的特征优于LBP特征。通过提出的近似表面粗糙度启发法,他们能够进一步改进该结果;然而,他们的方法没有在目标领域学习网络,因此没有充分利用深度学习的潜力。

       Weimer等人(2016年)评估了几种具有不同层深的深度学习体系结构,用于表面异常检测。他们应用的网络从只有5层到11层不等。他们的评估集中在6种不同类型的合成错误上,结果表明,深度网络优于任何经典方法,在合成数据集上的平均准确率为99.2%。他们的方法还能够将误差定位在几个像素的精度范围内;然而,他们的定位方法效率低下,因为它从每幅图像中提取小补丁,并分别对每个单独的图像补丁进行分类。

       Raˇcki等人(2018)提出了一种更有效的网络,用于明确执行缺陷分割。他们实现了一个包含10层的完全卷积网络,使用ReLU和批量标准化对缺陷进行分割。此外,他们在分割网络的特征之上提出了一个额外的决策网络,以对缺陷的存在进行每幅图像分类。这使他们能够提高合成表面缺陷数据集的分类精度。

       最近,Lin等人(2018年)提出了一种LEDNet架构,用于使用包含30000个低分辨率图像的数据集检测LED芯片图像上的缺陷。他们提出的网络遵循AlexNet体系结构,但删除了完全连接的层,而是合并了类激活映射(CAM),类似于Zhou等人(2016)。这种设计允许他们学习仅使用每张图像的标签,并使用凸轮定位缺陷。与传统方法相比,所提出的LEDNet在缺陷检测率上有显著提高。

       与相关方法相比,本文提出的方法遵循了分段网络和决策网络的两阶段设计,类似于Raˇcki等人(2018)的体系结构。然而,提出的方法对分割和决策网络的体系结构进行了一些修改,目的是增加感受野的大小,并提高网络捕捉小细节的能力。与一些相关工作(Raˇcki et al.2018;W e i m r e t a l.2016)相反,拟议的网络应用于现实世界的例子,而不是使用合成的例子。本研究中使用的数据集也仅由少量缺陷训练样本(即30个缺陷样本)组成,而不是数百个(Raˇcki et al.2018;We e i m e r e t a l.2016)或数千个(Lin et al.2018)。这使得一些相关的体系结构,如LEDNet(Lin et al.2018),只使用每幅图像注释和大批量,不适合手头的任务。由于样本数量较少,因此网络设计的选择更为重要,本文评估了用两种不同的标准网络设计(通常用于语义切分)取代切分网络的效果,即DeepLabv3+(Chen等人,2018)和U-Net(Ronneberger等人,2015)。使用预训练模型的影响也通过使用DeepLabv3+网络进行评估,该网络对ImageNet(Russakovsky et al.2015)和M S C O(Lin et al.2014)数据集中的120多万张图像进行了预训练。

提议的方法

       表面异常检测问题是一个二值图像分类问题。这适用于表面质量控制,在这种情况下,对异常的存在进行精确的图像分类通常比精确定位缺陷更重要。然而,为了克服深度学习中样本数量少的问题,所提出的方法被描述为两阶段设计,如图2所示。第一阶段实现一个分割网络,对表面缺陷进行像素级定位。通过像素级损失训练该网络,有效地将每个像素视为单个训练样本,从而增加训练样本的有效数量并防止过度拟合。第二阶段是执行二值图像分类,包括一个附加网络,该网络建立在分割网络之上,并使用分割输出和分割网络的特征。第一阶段网络称为分段网络,而第二阶段网络称为决策网络。

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第2张图片

分割网络 

       该网络由11个卷积层和3个最大池化层组成,每个层将分辨率降低两倍。每个卷积层之后是一个特征归一化和一个非线性ReLU层,这两个层都有助于提高学习过程中的收敛速度。特征归一化将每个通道归一化为具有单位方差的零均值分布。前九个卷积层使用5×5的内核大小,而后两个层分别使用15×15和1×1的内核大小。不同数量的信道被分配给不同的层,如图2中的网络架构的详细描述所示。最终的输出掩模是在应用1×1卷积层后获得的,卷积层减少了输出通道的数量。这导致单通道输出贴图的分辨率比输入图像降低了8倍。由于卷积层中的权重共享提供了充分的正则化,因此在这种方法中不使用Drop-out。

       提出的分割网络的设计重点是在大分辨率图像中检测小的表面缺陷。为了实现这一点,网络的设计有两个重要的要求(a)在高分辨率图像中需要一个大的感受野大小;(b)需要捕捉小的特征细节。与Raˇcki等人(2018)的相关工作相比,这导致架构发生了几次重大变化。首先,一个额外的下采样层和更高层的大内核尺寸被用来显著增加感受野的大小。其次,每次向下采样之间的层数被更改为在架构的较低部分具有较少的层,而在较高部分具有较多的层。这增加了具有大接收野的功能的容量。最后,使用最大池化而不是大跨步卷积实现下采样。这确保了小而重要的细节在下采样过程中幸存下来,这在具有额外下采样层的网络中尤为重要。

决策网络

       决策网络的体系结构使用分割网络的输出作为决策网络的输入。该网络将分段网络的最后一个卷积层(1024个通道)的输出与单个通道分段输出映射连接起来。这将产生1025个通道卷,代表剩余层(最大池层和5×5内核大小的卷积层)的输入。两层的组合重复3次,第一、第二和第三卷积层中分别有8、16和32个通道。该体系结构的详细描述如图2所示。通道的数量被选择为随着特征分辨率的降低而增加,因此每个层的计算要求相同。所提出的设计有效地使最后一个卷积层的分辨率比原始图像的分辨率低64倍。最后,网络执行全局最大和平均池,产生64个输出神经元。此外,分割输出图上的全局最大值和平均值池的结果被连接为两个输出神经元,以便为分割图已经确保完美检测的情况提供快捷方式。这种设计产生了66个输出神经元,这些神经元与线性权重组合成最终的输出神经元。

       决策网络的设计遵循两个重要原则。首先,通过使用几层卷积和下采样来确保大型复杂形状的适当容量。这使得网络不仅可以捕捉局部形状,还可以捕捉跨越图像大面积的全局形状。其次,决策网络不仅使用1×1核信道约简前分割网络最后一次卷积运算的输出特征量,还使用1×1核信道约简后得到的最终分割输出图。这引入了一个快捷方式,如果不需要,网络可以利用该快捷方式避免使用大量要素地图。它还将过度拟合减少到大量参数。这些快捷方式在两个层次上实现:一个在决策网络的开头,分割输出映射被送入决策网络的几个卷积层,另一个在决策网络的末端,将分割输出映射的全局平均值和最大值附加到最终完全连接层的输入。与Raˇcki等人(2018)的相关工作相比,决策网络开始处的捷径和具有下采样的几个卷积层是一个重要区别。与所提出的工作不同,它们只使用一层,在决策层中不使用下采样,不直接在卷积中使用分割输出映射,而是通过全局最大值和平均池间接使用。这限制了决策网络的复杂性,并阻止它捕获大型全局形状。

学习

       将分割网络学习为二进制分割问题;因此,分类是在单个图像像素的级别上执行的。评估了两种不同的训练方法:(a)使用具有均方误差损失(MSE)的回归和(b)使用具有交叉熵损失的二元分类。这些模型不是在其他分类数据集上预先训练的,而是使用正态分布随机初始化的。

       利用交叉熵损失函数对决策网络进行训练。学习与分割网络分开进行。首先,只对分割网络进行独立训练,然后冻结分割网络的权重,只训练决策网络层通过仅微调决策层,网络避免了分割网络中大量权重的过度拟合问题。这在学习决策层的阶段比学习分割层的阶段更重要。在学习决策层时,GPU内存的限制将批次大小限制为每批次仅一个或两个样本,但在学习分割层时,图像的每个像素被视为一个单独的训练样本,因此有效批次大小增加了几倍。

       同时考虑了分割网络和决策网络的同时学习。损失函数的类型在这种情况下起了重要作用。只有当两个网络都使用交叉熵时,同步学习才可能。由于损耗适用于不同的范围,即一个在每像素级别,另一个在每图像级别,因此两个层的精确归一化起到了关键作用。最后,事实证明,在实践中,将两种损失适当地正常化不仅比使用单独的学习机制更难实现,而且也没有带来任何性能增益。因此,两阶段学习机制被证明是一个更好的选择,并随后被用于所有实验。

推论

      该网络的输入是灰度图像。网络结构与输入大小无关,类似于完全卷积网络(Long et al.2015),因为在特征图中不使用完全连接的层,而是只有在通过全局平均和最大池消除空间维度之后。因此,根据问题的不同,输入图像的分辨率可以是高分辨率,也可以是低分辨率。本文探讨了两种图像分辨率:1408×512和704×256。

       提出的网络模型返回两个输出。第一个输出是作为分割网络输出的分割掩码。分割掩模输出8×8组输入像素的缺陷概率;因此,输出分辨率相对于输入分辨率降低了8倍。由于高分辨率图像中8×8像素块的分类足以解决当前的问题,因此输出贴图不会插值回原始图像大小。第二个输出是[0,1]范围内的概率分数,表示决策网络返回的图像中存在异常的概率。

   分割与决策网络评估

       在工业产品的表面裂纹检测中,对所提出的网络进行了广泛的评估。本节首先介绍数据集的详细信息,然后介绍评估及其结果的详细信息。

Kolektor表面缺陷数据集

       在缺少带有注释表面缺陷真实图像的公共可用数据集的情况下,创建了一个名为Kolektor表面缺陷数据集(KolektorSDD)的新数据集。数据集由Kolektor Group d.o.o.提供并注释的有缺陷电气换向器的图像(见图1)。具体而言,在嵌入电气换向器的塑料表面上观察到微观部分或裂纹。每个换向器的表面积被捕捉到八张不重叠的图像中。这些图像是在受控环境中拍摄的,确保了高质量图像的分辨率为1408×512像素。该数据集由50个有缺陷的电气换向器组成,每个换向器有八个相关表面。这一共产生了400张图片。对于每个项目,缺陷仅在一张图像中可见,这意味着有50张图像可以看到缺陷(即缺陷或阳性样本)。对于每幅图像,都提供了详细的像素注释掩码。剩下的350张图像用作无缺陷表面的反面示例。图3中描绘了具有可见缺陷和没有可见缺陷的图像的示例。  

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第3张图片

       此外,数据集还使用几种不同类型的注释进行注释。这使得能够在不同的注释精度下对建议的方法进行评估。注释的准确性在工业环境中尤其重要,因为它相当耗时,而且注释上花费的人力应该最小化。为此,通过使用不同的内核大小,即5、9、13和17像素,通过形态学操作扩展原始注释,生成了另外四种注释类型。请注意,这适用于原始分辨率的图像,在分辨率为一半的实验中,注释遮罩在放大后会缩小。所有注释,一个手册(a)和四个生成的注释(b-e),如图4所示。

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第4张图片

实验 

       首先在几种不同的训练设置下对所提出的网络进行评估,包括不同类型的注释、输入数据旋转和分割网络的不同损失函数。总共,该网络在四个配置组下进行了评估:

–五种注释类型,

–分割网络的两种损失函数类型(均方误差和交叉熵),

–两种尺寸的输入图像(全尺寸和半尺寸),

–无90度和有90度输入图像旋转。

       每个配置组都可以从四个方面评估网络的性能。不同的注释类型允许评估注释精度的影响,而不同的图像分辨率允许以较低的计算成本评估对分类性能的影响。此外,还评估了不同损失函数的影响,以及通过以0.5的概率旋转图像来增加训练数据的影响。

       为了进行评估,将表面缺陷检测问题转化为二值图像分类问题。主要目的是将图像分为两类:(a)存在缺陷和(b)不存在缺陷。虽然可以从分割网络中获得缺陷的像素级分割,但评估并不测量像素级误差,因为它在工业环境中并不重要。相反,只测量每幅图像的二值图像分类误差。分割输出仅用于可视化目的。

性能指标

       评估是通过三重交叉验证进行的,同时确保同一物理产品的所有图像处于相同的折叠中,因此不会同时出现在培训和测试集中。考虑到三种不同的分类指标:(a)平均精度(AP),(b)假阴性数(FN)和(c)假阳性数(FP),对所有评估的网络进行比较。注意,阳性样品被称为具有可见缺陷的图像,阴性样品被称为没有可见缺陷的图像。评估中使用的主要指标是平均精度。这比FP或FN更合适,因为平均精度被计算为精度召回曲线下的面积,并在单个值中准确捕获不同阈值下模型的性能。另一方面,未分类的数量(FP和FN)取决于应用于分类分数的特定阈值。我们报告了在达到最佳F-度量的阈值下未分类的数量。此外,请注意,选择AP而不是ROC曲线下的面积(AUC),因为AP比AUC更准确地捕捉大量阴性(即无缺陷)样本的数据集中的性能。

实施和学习细节

       该网络架构是在TensorFlow框架中实现的(Abadi et al.2015),两个网络都使用无动量的随机梯度下降进行训练。均方误差(MSE)的学习率为0.005,交叉熵损失的学习率为0.1。每次迭代只使用一个图像,即批大小设置为一,主要是由于图像大小较大和GPU内存限制。

       在学习过程中,随机抽取训练样本;然而,对选择过程进行了修改,以确保网络观察到的缺陷图像和非缺陷图像数量平衡。这是通过为每个偶数迭代拍摄有缺陷的图像,以及为每个奇数迭代拍摄无缺陷的图像来实现的。该机制确保系统以恒定速率观察缺陷图像;否则,学习是不平衡的,有利于无缺陷样本的学习,并且由于数据集中有更大的无缺陷图像集,学习速度会明显较慢。应该注意的是,这导致了并非由epoch独家完成的培训,因为非缺陷图像的数量是缺陷图像数量的8倍,并且网络在接收所有非缺陷图像之前接收到相同的缺陷图像。

       这两个网络都接受了多达6600个步骤的培训。每个训练集中有33个缺陷图像,在每个步骤中交替出现缺陷图像和非缺陷图像,这将转化为100个epochs。只有当所有缺陷图像至少观察一次,但并非所有非缺陷图像都必须观察时,一个epoch才被视为结束。

分割与决策网络

       首先对由第一阶段的分割网络和第二阶段的决策网络组成的网络进行评估。详细结果如图5所示。此图显示了不同颜色的不同注释类型的实验结果,以及在虚线中使用图像旋转的实验结果。在顶部组中报告了全图像分辨率的实验,在底部组中报告了一半分辨率的实验。使用5×5核尺寸(扩张=5)的注释、交叉熵损失函数、全图像分辨率和无任何图像旋转,可获得最佳结果。该网络的平均精确度(AP)为99.9%,无假阳性(FP)和假阴性(FN)。

       接下来,可以通过观察每个特定环境变化的平均绩效改善来评估个人学习环境的影响。报告了以下设置更改对性能的影响:(a)分割网络的交叉熵损失函数从均方误差损失更改,(b)从完整图像分辨率更改为更小的图像分辨率,以及(c)输入数据旋转90度◦ 从没有旋转。图6显示了所有实验中平均AP的改善情况。特定设置更改的结果,例如,将全图像分辨率更改为图像分辨率的一半,通过首先计算所有设置(图5中报告的)的所有可能配置的AP,然后计算两个实验之间AP的差异,其中只有相关设置发生了变化,例如,在使用半图像分辨率的实验和使用全图像分辨率的实验之间,但所有其他设置都是一样的。性能的整体改善通过AP与所有其他保持不变的设置之间的差异平均值来体现。正方向和负方向的标准偏差也分别报告。

      损失函数  当比较图5中的均方误差损失(MSE)和交叉熵损失函数时,很明显,使用交叉熵损失函数训练的网络可以获得最佳性能。这反映在AP度量和FP/FN计数中,以及图6中所有其他设置的平均交叉熵的改进中。平均而言,交叉熵使AP提高了7个百分点(pp)。

      图像分辨率  如图6所示,图像分辨率降低的网络平均在AP差5%的情况下运行。对图5的仔细观察表明,较小的图像主要对使用MSE损失函数训练的网络产生负面影响,而使用交叉熵训练的网络不受影响。交叉熵对降低的图像分辨率不太敏感,在某些情况下,分辨率降低的图像表现稍好(在AP中约为1%)。

      图像旋转 另一方面,随机旋转的图像没有被证明是有用的,也没有带来任何显著的性能提升。在某些情况下,收益最多为百分之一点;然而,在其他情况下,性能下降的幅度要大得多。

      注释类型 最后,对比图5中不同的标注类型,在较小的标注(原始标签或小核膨胀)训练和考虑交叉熵损失时,对性能的负面影响很小。这种差异在均方误差损失函数中更为明显。总的来说,最好的结果似乎是实现了以中等到较大的膨胀率膨胀的注释。

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第5张图片

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第6张图片

决策网络的贡献

       同时也评估了决策网络对最终性能的贡献。这一贡献是通过将前一节的结果与没有决策网络的分割网络的结果进行比较来衡量的。采用简单的二维描述符和逻辑回归来代替决策网络。根据分割输出映射的全局最大池值和平均池值创建一个二维描述符,作为逻辑回归的特征,在网络已经训练后,从分割网络中单独学习逻辑回归。

       结果如图7所示。当关注具有交叉熵损失的模型时,很明显,只有分割网络的网络已经取得了相当好的结果。通过dilate=9标签获得的最佳配置,平均精度(AP)为98.2%,假阳性0例,假阴性4例。然而,决策网络在大多数实验中都改进了这一结果。决策网络对均方误差损失的贡献较大。当只使用分割网络的时候,MSE损失函数的平均精度达到了小于90%AP。但是当使用决策网络时,MSE损失函数的AP达到了95%以上。对于交叉熵训练的网络,决策网络也有助于提高性能,但由于分割网络的性能已经很好,改进幅度略小,决策网络平均AP提高了3.6%,达到98%以上。在理想阈值处,错误分类的数量也有同样的趋势,当包含决策网络时,平均4次的分割网络误分类次数减少到2次。

       这些结果表明了决策网络的重要作用。简单像素输出分割似乎没有足够的信息来预测图像中缺陷的存在,就像决策网络一样。另一方面,所提出的决策网络能够从最后分割层的丰富特征中获取信息,并通过增加决策层,将噪声与正确的特征分离出来。决策网络中额外的下采样也有助于提高性能,因为这增加了感受野的大小,使决策网络能够捕获缺陷的全局形状。全局形状对分类很重要,但对像素级分割不重要。

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第7张图片

注释的精度要求

       上一节的实验已经证明,大型注释比精细注释的性能更好。本节将通过评估更粗的注释对分类性能的影响来进一步探讨这一点。为此,创建了两种额外类型的注释,称为:(a)带有边界框的大注释和(b)带有旋转边界框的粗注释。两种注释如图8所示。这种类型的注释对于人类注释器来说花费的时间更少,并且在工业环境中效果更好。

       结果如图9所示。本实验仅使用具有交叉熵损失的网络,因为在之前的实验中均方误差损失被证明不太适用。实验表明,大的注释几乎和细的注释一样好。大标注的表现稍差,最佳AP值为98.7%,有3次误分类,而粗标注的AP值为99.7%,有2次误分类。注意,对于较小的图像分辨率,两种注释都实现了类似的APs,但分类错误的数量相同。

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第8张图片

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第9张图片

       这些结果可以与上一节中通过更精细的注释获得的结果相媲美,在上一节中,只有一个错误分类获得了99.9%的AP。更精细的注释确实能获得更好的结果;但是,考虑到这种级别的细节注释花费的时间太长,使用粗糙的注释仍然是可行的,而且性能损失很小或者没有损失。

与先进水平的比较


       在相关工作的背景下,对几个国情模型进行了进一步评估,以评估所提议的方法的表现。本节首先演示了一个最先进的商业产品和两个标准分割网络在不同的训练配置下的性能。这为每一种最先进的方法提供了最好的培训配置,并允许与提议的网络架构进行比较,这将在本节的最后进行。

商业软件
       首先评估的是基于深度学习的最先进的工业图像分析商业软件Cognex ViDi Suite (Cognex2018)。Vidi公司于2012年从CSEM中脱颖而出,CSEM是一家私营的、非盈利的瑞士研究和技术组织,并于2017年被Cognexin收购。该软件包有三个不同的深度学习工具:ViDi blue(固定、定位),ViDi Red(分割和异常检测),ViDi green(物体和场景分类)。

       Vidi Red是一个用于异常检测、审美视觉检查和分割的工具。该工具可以在无监督或监督模式下运行。在前一种情况下只需要非缺陷样本的图像,而在后一种情况下只需要缺陷样本的图像。用户可以从四个不同的区域调整各种参数:采样(特征尺寸,颜色),训练(计数新纪元,序列选择),扰动(旋转,比例,纵横比,剪切,翻转,亮度,对比度)和处理(采样密度,简单区域)。

       在本文中,所有使用Cognex ViDi Suite v2.1的实验都是在监督模式下使用ViDi Red工具进行的。软件将在不同的学习配置下进行广泛的评估,以找到最佳的条件,以便与下一节提出的方法进行公平的比较。以下学习配置可用于此评估:

–五种注释类型,

–三个特征尺寸(20、40、60像素),

–两种输入图像的尺寸(全尺寸和半尺寸),

–有/无90度输入数据旋转。

       不同的设置类似于“分割和决策网络评估”部分的设置,不同之处在于不同的损失函数没有被评估,因为软件没有提供如此详细的控制级别。取而代之的是评估不同大小的特征,这些特征已经被证明在被提出的数据集中起着至关重要的作用。评估大小在20到60个像素之间的特征。根据说明书的要求,不建议使用小于15像素的特征,而大于60像素的特征会产生更糟糕的结果。

       实现细节 可以通过生产和培训API访问ViDi套件的学习和推理核心。所有的实验都是在C#变成语言下进行的。评估是通过三重交叉验证和与之前实验相同的训练/测试分割来执行的,使用灰度图像(颜色通道数设置为1)和100个epoch的学习。对来自训练数据集的所有图像进行训练;因此,training selection = 100%。模型是在生产模式下被导出和评估的,其中,使用测试数据集,参数simple regions=enabled,sampling density=1。这保证了在深度学习模型中所使用的处理过程是等价的。对于参数sampling density,我们使用供应商推荐的默认值。也进行了以较慢的推断为代价的更密集的采样值的实验,但这并没有提高结果。

       结果 结果如图10所示。在不同的学习设置中,使用dilate=5d的标记样本训练的模型,使用最小的特征尺寸(20个像素),不旋转图像和使用原始图像尺寸获得最佳性能。该模型的AP达到99.0%,有5个误分类,即FN为5,FP为0。值得注意的是,一个模型只完成了4个误分类,尽管总体上AP较低。

       标签尺寸 在不同的标签类型中,膨胀标签的性能优于未膨胀标签。然而,在不同的膨胀率之间,性能增益最小,dilate=5和dilate=17之间只有0.1 pp的差异。

       特征尺寸  通过比较不同的特征大小,无论标签精度如何,具有小特征的模型始终优于具有大特征的模型这一点归因于具有高图像分辨率和许多小的表面缺陷的数据集。此外,对半分辨率图像的实验表明,在这种情况下,大特征的表现明显差于小特征。这导致了一个结论,即大的特征尺寸不能捕捉小的细节,这是重要的分类

       图像大小和旋转 最后,实验还表明,半分辨率图像和随机旋转输入数据中90%的数据都不能提高性能。在这两种情况下,性能都会略微下降,尽管二者的性能下降都很小。

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第10张图片

 使用先进的分割网络

       接下来,我们评估了两个标准的分割网络,即DeepLabv3+ (Chen etal. 2018)和U-Net (Ronnebergeretal.2015)。DeepLab架构被选为在当前语义分割基准上达到最先进结果的预训练模型的代表,而U-Net架构被选为精确像素分割的模型的代表。读者可以参考Chenetal.(2018)获得关于DeepLabv3+方法的更详细信息,也可以参考(Ronneberger etal. 2015)获得关于U-Net模型的详细信息。两种模型在不同的标签下进行评估,但是损失函数只考虑了交叉熵,并且只使用了没有数据旋转的全分辨率图像大小,因为这些设置在之前的实验中被证明是最好的。

       实现细节。通过替换网络的分割部分,将两种分割方法嵌入到本文提出的方法中。嵌入到提出网络中的两个网络的都是基于TensorFlow实现的。这些实验中使用的DeepLabv3+基于包含65个卷积层的Xception (Chollet 2017)架构,在单一尺度上训练和评估,使用16的输出步长。实验中使用的U-Net是经过改进的U-Net架构,有24个卷积层,唯一的修改是对每个卷积都增加了批处理归一化。原U-Net也以全输入分辨率输出分割,但由于全分辨率的像素级精确分割不符合本实验的需要,因此输出映射分辨率降低了8倍。这与提出的网络中的输出分辨率相同。

       对于这两个分割网络,分割层和决策层是分开训练的,类似于所提出的方法,使用三倍交叉验证与之前所有实验相同的训练/测试分割。这两种方法也用logistic回归代替决策网络进行了评价,但结果证明其性能较差。使用ImageNet (Russakovsky et al. 2015)和COCO数据集(Lin et al. 2014)预训练的模型初始化DeepLabv3+网络的参数。而U-Net网络的参数是按照正态分布随机初始化的,类似于本文网络的初始化。两个网络都训练了100个epoch,学习过程与所提出的模型相同,即在没有动量的情况下使用0.1的学习率,批大小为1,每一步都在缺陷图像和非缺陷图像之间交替进行。

       结果。结果如图11所示。在标准网络中,性能最好的模型,即DeepLabv3+使用dilate=9个注释进行训练,AP达到98.0%,在理想的F-measure下获得2个FP和4个FN。总的来说,稍微放大的注释可以得到最好的结果,而用大内核放大的注释得到的结果更差。平均而言,无论标签类型是什么,DeepLabv3+的平均精度也比U-Net架构高出2个百分点。

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第11张图片

 与已提出的算法进行比较

       最后,将三种最先进的方法与本文提出的网络进行了比较。并与分割和决策网络相结合的方法进行了比较。为了进行公平的比较,本节报告的所有方法都是根据前几节评估的最佳训练设置选择的。对于所有的方法,包括使用原始图像大小(1408 512分辨率),不输入图像旋转,使用最小的特征尺寸20像素的商业软件和使用交叉熵损失函数的所有其他的方法。对于标签类型,不同的方法在不同的标签上表现最好。商业软件和本文提出的分割和决策网络方法在dilate=5标签上训练时性能最好,而DeepLabv3+和U-Net在dilate=9标签上训练时性能最好。为每个选项选择的配置设置如表1所示。

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第12张图片

       结果 如图12所示。建议的方法,显示在最左边的条形图中,在所有指标上都优于所有最先进的方法。商业产品表现第二好,而两种标准分割方法表现最差,其中DeepLabv3+架构的表现略好于U-Net。观察理想f测度下的误分类数量,发现所提出的分割和决策网络能够将误分类减少到只有一个假阴性,而其余所有方法都引入了5个或更多的误分类。

       图13、图14中显示了几种不同方法的误分类图像。如图13所示,真阳性和假阴性检测在第一列显示了本文方法的单个缺失检测。这个样本包含一个小的缺陷,很难检测到,也没有被其他任何方法检测到。对于其余的例子,本文提出的方法能够正确地预测缺陷的存在,包括在最后一栏中看到的一个小缺陷。所提出的方法也能够准确地定位缺陷。在相关方法中也能观察到较好的局部化;然而,对缺陷存在或不存在的预测很差。注意,在某些情况下,分数是很大的;然而,为了正确地将所有的缺陷从非缺陷中分离出来,阈值也需要设置得很高,指向无缺陷图像上的许多误报。这在图14中得到了很好的证明,显示了几个错误的检测。除本文所提出的方法和商业软件外,其他相关方法都存在较高的假阳性。特别是,U-Net返回的输出带有大量的噪声,即使使用附加的决策网络,也无法将真实缺陷与错误检测彻底分离。另一方面,本文提出的方法没有任何问题的假阳性,并能够正确地预测缺陷在这些图像中没有。

       当考虑在工业环境中使用所提出的模型时,重要的是要确保检测出所有的缺陷项目,即使是以牺牲更多的误报为代价。由于之前的指标没有捕捉这些条件下的性能,本节进一步阐明了如果需要零遗漏率,即如果需要100%的召回率,将会获得的误报数量。这些假阳性表示需要由熟练的工作人员手工验证的项目的数量。

      结果显示,在所有400幅图像中,本文所提出的模型在零缺失率下只引入了3个假阳性。这代表了所有图像的0.75%。另一方面,相关方法的效果较差,商业产品需要手工验证7幅图像,而标准分割网络DeepLabv3+和U-Net分别需要68幅和108幅手动验证。注意,结果报告的两个标准分段包括使用建议的决策网络。使用逻辑回归代替所提出的决策网络会导致显著的性能下降。

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第13张图片

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第14张图片

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第15张图片

对训练样本数量的敏感性 

       在工业环境下,一个非常重要的因素也是所需的缺陷训练样本的数量,因此我们也评估了较小的训练样本规模的效果。评估是使用三倍交叉验证与同样的训练/测试分裂使用在所有之前的实验,因此有效地使用33个阳性(缺陷)样本在每个折叠时,所有的训练样本。然后减少正训练样本的数量,有效地得到每一次训练的样本大小N为25、20、15、10和5个,而每一次训练的测试集保持不变。取出的训练样本是随机选取的,但所有方法取出的样本相同。与之前的所有实验一样,采用了同样的训练和测试程序。

       将所提出的分割与决策网络与商用软件Cognex ViDi Suite和两种最先进的分割网络进行了比较。所有的方法都是使用在前几节中给出的实验中确定的最佳训练设置来评估的。使用dilated=5个注释(或者dilated=9用于分割网络),全图像分辨率,交叉熵损失和无图像旋转。结果如图15所示。在仅使用25个有缺陷的训练样本的情况下,分割和决策网络保留了99%以上的AP和一个误分类结果。当使用更少的训练样本时,结果会下降,但仅使用5个有缺陷的训练样本时,该方法仍能达到96%左右的AP。然而,在Cognex ViDi组中可以观察到更明显的性能下降,在这种情况下,在N=25到AP时,结果已经下降了97.4%。当只使用5个有缺陷的训练样本时,商业软件的AP值略低于90%。图15的下半部分所示的误分类数也有同样的趋势,暗色代表误阳性,浅色代表误阴性。

       另一方面,当使用较少的训练样本时,DeepLab v3+和U-Net的性能比所提出的方法差。U-Net的性能迅速下降,而DeepLab即使只对15个有缺陷的训练样本保持了相当好的结果。需要注意的是,在20个和15个有缺陷的训练样本中,其性能略优于在所有训练样本中得到的结果,说明DeepLab对特定的训练样本比较敏感,去除这些样本有助于提高性能。U-Net对训练样本数量的减少明显更敏感;结果在平均精度上从75%到略高于90%不等。然而,对于10个和5个有缺陷的训练样本,DeepLab表现最差,AP分别为46%和16%。

       实验结果表明,在训练样本较少的情况下,该方法仍能保持较好的稳定性能

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第16张图片

计算成本 

        本文提出的方法在计算成本方面优于目前最先进的分割方法,并与商业软件具有竞争力。与平均精度相关的正向通过时间报告在图16中。结果是在单个NVIDIA TITAN X (Pascal) GPU上获得的。与DeepLab v3+和UNet相比,该方法的速度明显快于DeepLab v3+和UNet,精度也更高。这是用较少的参数实现的,这反映在图16的标记大小,也显示在表2中。对于所提出的模型,仅使用15.7 mio参数就可以实现这一性能,而U-Net和DeepLab v3+的参数是U-Net和DeepLab v3+的两倍多,分别为31.1 mio和41.1 mio参数。Cognex ViDi套件的参数数量尚未公开。所提出的方法和商业软件也以图16中星点标记所示的一半分辨率显示。这表明,与全分辨率的半分辨率图像33 ms和全分辨率图像110 ms相比,该方法的前向传递速度快了3倍。最快的性能是通过商业软件Cognex ViDi Suite实现的,每幅图像10毫秒。然而,当使用一半的图像分辨率时,提出的最佳性能模型只需要稍微大一点的计算成本就可以获得类似的性能。请注意,本文提出的模型在TensorFlow框架中实现了这种性能,而没有应用任何计算优化,而我们可以安全地假设,商业软件已经经过了高度优化,以尽可能地降低计算成本。

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第17张图片

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第18张图片

 讨论总结

       本文从具体工业应用的角度,探讨了一种基于分割网络的深度学习表面缺陷检测方法。提出了一种两阶段的方法。第一阶段包括在缺陷的像素级标签上训练的分割网络,第二阶段包括在分割网络之上建立的一个额外的决策网络,用于预测整个图像异常的存在。在半成品工业产品上对所提议的方法进行了广泛的评估,例如,电换向器,其表面缺陷表现为材料的断裂。这个问题域已经作为基准数据集公开提供,称为Kolektor表面缺陷数据集(KolektorSDD)。在此领域,本文提出的方法与几种最先进的分割方法进行了比较,包括专用软件和两种基于深度学习的标准分割方法。

       在KolektorSDD上的实验表明,与只有一个误分类的相关方法相比,所提出的模型取得了显著的好结果,而相关方法取得了五个或更多的误分类结果。这可以归因于提出的分割和决策网络的两阶段设计,以及改进的接受域大小和增加的能力,以捕捉缺陷的细节。相关的方法缺少其中的一些特征。例如,性能最差的分割方法U-Net接受野大小有限,只有45像素,而本文方法的接受野大小为205像素。虽然DeepLabv3+提高了接受野的大小,但它是以牺牲太多参数为代价的,这会导致模型过拟合,尽管它是在单独的数据集上进行的预训练。

       另一方面,很难评估与商业软件的差异,因为该方法的细节尚未公开。然而,实验表明,当使用较低分辨率的图像时,商业软件的性能明显不如本文提出的方法。这个实验表明,商业软件努力捕捉缺陷的更精细的细节,并需要更高的分辨率来获得良好的性能。然而,即使使用高分辨率的图像,它仍然不能达到与本文方法相同的性能。

       该方法的性能是通过从33个有缺陷的样本中学习来实现的。图17中描述了几个正确分类的例子。此外,仅使用25个有缺陷的样本,仍然可以获得良好的性能,而相关方法在该案例中的效果较差。这表明所提出的深度学习方法适用于缺陷样本数量有限的工业应用。此外,为了进一步考虑在工业环境中的应用,评估了三个重要特征:(a)达到100%检测率的性能,(b)注释的细节和(c)计算成本。在达到100%检测率的性能方面,所提出的模型已经被证明在所有400幅图像中,人工检测只需要3幅图像,导致了0.75%的检测率。大型和粗糙的注释也被证明足以实现与更精细的注释类似的性能。在某些情况下,更大的注释甚至比使用精细的注释带来更好的性能。这个结论似乎是反直觉的;然而,一种可能的解释可以在用于分类每个像素的接受域大小中找到。稍微远离缺陷区域的像素的接收域仍然会覆盖缺陷区域的一部分,因此如果注释正确,可以帮助发现对缺陷区域的检测很重要的特征。这一结论可以减少人工工作时,适应新的领域,并将导致降低劳动力成本和增加生产线的灵活性。

       然而,所提议的方法仅限于特定类型的任务。特别是,该体系结构是为那些可以被框定为具有像素级注释的分割问题的任务而设计的。对于其他质量控制问题,基于细分的解决方案不太适合。例如,复杂3D物体的质量控制可能需要检测破损或缺失的部分。这些问题可以通过检测方法来解决,例如Mask RCNN (kaim et al. 2017)。

       这项研究证明了所提出的方法在特定任务(裂纹检测)和特定表面类型上的性能,但网络的体系结构并非只为这一特定领域而设计。学习新领域是可能的,无需任何修改。该体系结构可以应用于包含多个复杂表面的图像,也可以用于检测其他不同的缺陷模式,如划痕、污点或其他不规则性,假设有足够数量的缺陷训练样本可用,并且特定缺陷检测的任务可以被框定为一个表面分割问题。然而,为了进一步评估这一点,需要新的数据集。据我们所知,DAGM数据集(Weimer et al. 2016)是唯一一个公开可用的带注释的数据集,具有多种表面和缺陷类型,适合评估基于学习的方法。本文提出的方法在该数据集上取得了很好的效果,但该数据集是根据所得到的结果综合生成的,也是饱和的。因此,未来的工作还应该集中于获取基于真实世界视觉检测问题的新的复杂数据集,深度学习(和其他)方法可以在实际的全面评估;本文给出的数据集是朝着这个方向迈出的第一步。

Segmentation-based deep-learning approach for surface-defectdetection(基于分割的表面缺陷深度学习检测方法)_第19张图片

你可能感兴趣的:(人工智能,深度学习,计算机视觉,人工智能,目标检测)