论文地址:https://arxiv.org/abs/1903.08536v3
摘要
介绍
在工业过程中,当涉及到确保成品的适当质量时,最重要的任务之一是检查产品的表面。通常情况下,表面质量控制由人工进行,工人接受培训以识别复杂的表面缺陷。然而,这种控制非常耗时、低效,并可能导致生产能力严重受限。
过去,经典的机器视觉方法足以解决这些问题;然而,随着工业4.0范式的发展,生产线正在向通用化方向发展,需要快速适应新产品。传统的机器视觉方法无法保证这种灵活性。通常,在传统的机器视觉方法中,功能必须手工制作以适应特定领域。然后使用手工制作的基于规则的方法或基于学习的分类器(如SVM、决策树或kNN)做出决策。由于这种分类器不如深度学习方法强大,因此手工制作的功能发挥着非常重要的作用。各种滤波器组、直方图、小波变换、形态学操作和其他技术被用来手工制作适当的特征。因此,特征的手工工程在经典方法中起着重要作用,但当机器视觉方法必须手动适应不同的产品时,这些特征不适合不同的任务,并导致较长的开发周期。可以在数据驱动的机器学习方法中找到一种提高灵活性的解决方案,在这种方法中,所开发的方法可以仅使用适当数量的训练图像快速适应新类型的产品和表面缺陷。
在一个名为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在缺陷检测率上有显著提高。
提议的方法
表面异常检测问题是一个二值图像分类问题。这适用于表面质量控制,在这种情况下,对异常的存在进行精确的图像分类通常比精确定位缺陷更重要。然而,为了克服深度学习中样本数量少的问题,所提出的方法被描述为两阶段设计,如图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内存的限制将批次大小限制为每批次仅一个或两个样本,但在学习分割层时,图像的每个像素被视为一个单独的训练样本,因此有效批次大小增加了几倍。
同时考虑了分割 络和决策 络的同时学习。损失函数的类型在这种情况下起了重要作用。只有当两个 络都使用交叉熵时,同步学习才可能。由于损耗适用于不同的范围,即一个在每像素级别,另一个在每图像级别,因此两个层的精确归一化起到了关键作用。最后,事实证明,在实践中,将两种损失适当地正常化不仅比使用单独的学习机制更难实现,而且也没有带来任何性能增益。因此,两阶段学习机制被证明是一个更好的选择,并随后被用于所有实验。
推论
提出的 络模型返回两个输出。第一个输出是作为分割 络输出的分割掩码。分割掩模输出8×8组输入像素的缺陷概率;因此,输出分辨率相对于输入分辨率降低了8倍。由于高分辨率图像中8×8像素块的分类足以解决当前的问题,因此输出贴图不会插值回原始图像大小。第二个输出是[0,1]范围内的概率分数,表示决策 络返回的图像中存在异常的概率。
分割与决策 络评估
在工业产品的表面裂纹检测中,对所提出的 络进行了广泛的评估。本节首先介绍数据集的详细信息,然后介绍评估及其结果的详细信息。
Kolektor表面缺陷数据集
在缺少带有注释表面缺陷真实图像的公共可用数据集的情况下,创建了一个名为Kolektor表面缺陷数据集(KolektorSDD)的新数据集。数据集由Kolektor Group d.o.o.提供并注释的有缺陷电气换向器的图像(见图1)。具体而言,在嵌入电气换向器的塑料表面上观察到微观部分或裂纹。每个换向器的表面积被捕捉到八张不重叠的图像中。这些图像是在受控环境中拍摄的,确保了高质量图像的分辨率为1408×512像素。该数据集由50个有缺陷的电气换向器组成,每个换向器有八个相关表面。这一共产生了400张图片。对于每个项目,缺陷仅在一张图像中可见,这意味着有50张图像可以看到缺陷(即缺陷或阳性样本)。对于每幅图像,都提供了详细的像素注释掩码。剩下的350张图像用作无缺陷表面的反面示例。图3中描绘了具有可见缺陷和没有可见缺陷的图像的示例。
此外,数据集还使用几种不同类型的注释进行注释。这使得能够在不同的注释精度下对建议的方法进行评估。注释的准确性在工业环境中尤其重要,因为它相当耗时,而且注释上花费的人力应该最小化。为此,通过使用不同的内核大小,即5、9、13和17像素,通过形态学操作扩展原始注释,生成了另外四种注释类型。请注意,这适用于原始分辨率的图像,在分辨率为一半的实验中,注释遮罩在放大后会缩小。所有注释,一个手册(a)和四个生成的注释(b-e),如图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中不同的标注类型,在较小的标注(原始标签或小核膨胀)训练和考虑交叉熵损失时,对性能的负面影响很小。这种差异在均方误差损失函数中更为明显。总的来说,最好的结果似乎是实现了以中等到较大的膨胀率膨胀的注释。
决策 络的贡献
同时也评估了决策 络对最终性能的贡献。这一贡献是通过将前一节的结果与没有决策 络的分割 络的结果进行比较来衡量的。采用简单的二维描述符和逻辑回归来代替决策 络。根据分割输出映射的全局最大池值和平均池值创建一个二维描述符,作为逻辑回归的特征,在 络已经训练后,从分割 络中单独学习逻辑回归。
结果如图7所示。当关注具有交叉熵损失的模型时,很明显,只有分割 络的 络已经取得了相当好的结果。通过dilate=9标签获得的最佳配置,平均精度(AP)为98.2%,假阳性0例,假阴性4例。然而,决策 络在大多数实验中都改进了这一结果。决策 络对均方误差损失的贡献较大。当只使用分割 络的时候,MSE损失函数的平均精度达到了小于90%AP。但是当使用决策 络时,MSE损失函数的AP达到了95%以上。对于交叉熵训练的 络,决策 络也有助于提高性能,但由于分割 络的性能已经很好,改进幅度略小,决策 络平均AP提高了3.6%,达到98%以上。在理想阈值处,错误分类的数量也有同样的趋势,当包含决策 络时,平均4次的分割 络误分类次数减少到2次。
这些结果表明了决策 络的重要作用。简单像素输出分割似乎没有足够的信息来预测图像中缺陷的存在,就像决策 络一样。另一方面,所提出的决策 络能够从最后分割层的丰富特征中获取信息,并通过增加决策层,将噪声与正确的特征分离出来。决策 络中额外的下采样也有助于提高性能,因为这增加了感受野的大小,使决策 络能够捕获缺陷的全局形状。全局形状对分类很重要,但对像素级分割不重要。
注释的精度要求
上一节的实验已经证明,大型注释比精细注释的性能更好。本节将通过评估更粗的注释对分类性能的影响来进一步探讨这一点。为此,创建了两种额外类型的注释,称为:(a)带有边界框的大注释和(b)带有旋转边界框的粗注释。两种注释如图8所示。这种类型的注释对于人类注释器来说花费的时间更少,并且在工业环境中效果更好。
结果如图9所示。本实验仅使用具有交叉熵损失的 络,因为在之前的实验中均方误差损失被证明不太适用。实验表明,大的注释几乎和细的注释一样好。大标注的表现稍差,最佳AP值为98.7%,有3次误分类,而粗标注的AP值为99.7%,有2次误分类。注意,对于较小的图像分辨率,两种注释都实现了类似的APs,但分类错误的数量相同。
这些结果可以与上一节中通过更精细的注释获得的结果相媲美,在上一节中,只有一个错误分类获得了99.9%的AP。更精细的注释确实能获得更好的结果;但是,考虑到这种级别的细节注释花费的时间太长,使用粗糙的注释仍然是可行的,而且性能损失很小或者没有损失。
与先进水平的比较
在相关工作的背景下,对几个国情模型进行了进一步评估,以评估所提议的方法的表现。本节首先演示了一个最先进的商业产品和两个标准分割 络在不同的训练配置下的性能。这为每一种最先进的方法提供了最好的培训配置,并允许与提议的 络架构进行比较,这将在本节的最后进行。
商业软件
首先评估的是基于深度学习的最先进的工业图像分析商业软件Cognex ViDi Suite (Cognex2018)。Vidi公司于2012年从CSEM中脱颖而出,CSEM是一家私营的、非盈利的瑞士研究和技术组织,并于2017年被Cognexin收购。该软件包有三个不同的深度学习工具:ViDi blue(固定、定位),ViDi Red(分割和异常检测),ViDi green(物体和场景分类)。
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%的数据都不能提高性能。在这两种情况下,性能都会略微下降,尽管二者的性能下降都很小。
使用先进的分割 络
接下来,我们评估了两个标准的分割 络,即DeepLabv3+ (Chen etal. 2018)和U-Net (Ronnebergeretal.2015)。DeepLab架构被选为在当前语义分割基准上达到最先进结果的预训练模型的代表,而U-Net架构被选为精确像素分割的模型的代表。读者可以参考Chenetal.(2018)获得关于DeepLabv3+方法的更详细信息,也可以参考(Ronneberger etal. 2015)获得关于U-Net模型的详细信息。两种模型在不同的标签下进行评估,但是损失函数只考虑了交叉熵,并且只使用了没有数据旋转的全分辨率图像大小,因为这些设置在之前的实验中被证明是最好的。
结果。结果如图11所示。在标准 络中,性能最好的模型,即DeepLabv3+使用dilate=9个注释进行训练,AP达到98.0%,在理想的F-measure下获得2个FP和4个FN。总的来说,稍微放大的注释可以得到最好的结果,而用大内核放大的注释得到的结果更差。平均而言,无论标签类型是什么,DeepLabv3+的平均精度也比U-Net架构高出2个百分点。
与已提出的算法进行比较
结果 如图12所示。建议的方法,显示在最左边的条形图中,在所有指标上都优于所有最先进的方法。商业产品表现第二好,而两种标准分割方法表现最差,其中DeepLabv3+架构的表现略好于U-Net。观察理想f测度下的误分类数量,发现所提出的分割和决策 络能够将误分类减少到只有一个假阴性,而其余所有方法都引入了5个或更多的误分类。
当考虑在工业环境中使用所提出的模型时,重要的是要确保检测出所有的缺陷项目,即使是以牺牲更多的误 为代价。由于之前的指标没有捕捉这些条件下的性能,本节进一步阐明了如果需要零遗漏率,即如果需要100%的召回率,将会获得的误 数量。这些假阳性表示需要由熟练的工作人员手工验证的项目的数量。
对训练样本数量的敏感性
在工业环境下,一个非常重要的因素也是所需的缺陷训练样本的数量,因此我们也评估了较小的训练样本规模的效果。评估是使用三倍交叉验证与同样的训练/测试分裂使用在所有之前的实验,因此有效地使用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%。
实验结果表明,在训练样本较少的情况下,该方法仍能保持较好的稳定性能。
计算成本
讨论总结
该方法的性能是通过从33个有缺陷的样本中学习来实现的。图17中描述了几个正确分类的例子。此外,仅使用25个有缺陷的样本,仍然可以获得良好的性能,而相关方法在该案例中的效果较差。这表明所提出的深度学习方法适用于缺陷样本数量有限的工业应用。此外,为了进一步考虑在工业环境中的应用,评估了三个重要特征:(a)达到100%检测率的性能,(b)注释的细节和(c)计算成本。在达到100%检测率的性能方面,所提出的模型已经被证明在所有400幅图像中,人工检测只需要3幅图像,导致了0.75%的检测率。大型和粗糙的注释也被证明足以实现与更精细的注释类似的性能。在某些情况下,更大的注释甚至比使用精细的注释带来更好的性能。这个结论似乎是反直觉的;然而,一种可能的解释可以在用于分类每个像素的接受域大小中找到。稍微远离缺陷区域的像素的接收域仍然会覆盖缺陷区域的一部分,因此如果注释正确,可以帮助发现对缺陷区域的检测很重要的特征。这一结论可以减少人工工作时,适应新的领域,并将导致降低劳动力成本和增加生产线的灵活性。
然而,所提议的方法仅限于特定类型的任务。特别是,该体系结构是为那些可以被框定为具有像素级注释的分割问题的任务而设计的。对于其他质量控制问题,基于细分的解决方案不太适合。例如,复杂3D物体的质量控制可能需要检测破损或缺失的部分。这些问题可以通过检测方法来解决,例如Mask RCNN (kaim et al. 2017)。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!