缺陷检测End-to-end training of a two-stage neural networkfor defect detection(端到端的两步神经网络的缺陷检测)

论文地址:(https://arxiv.org/pdf/2007.07676v1.pdf)
代码地址:添加链接描述
摘要——基于分割的两阶段神经网络在表面缺陷检测中表现出优异的效果,使网络能够从相对较少的样本中学习。在这项工作中,我们一起介绍了两阶段网络的端到端训练 对训练过程进行了多次扩展,减少了训练时间并提高了表面缺陷检测任务的结果。 为了实现端到端的训练,我们在整个学习过程中仔细平衡了这些分割和分类损失的贡献。我们调整了从分类到这些分割网络的梯度流,以防止不稳定的特征破坏学习。 作为对学习的额外扩展,我们提出了负样本的使用频率采样方案来解决训练过程中图像过采样和欠采样的问题,同时我们在基于区域的分割掩码上采用距离变换算法作为正样本的权重。在不需要详细注释的情况下,对存在缺陷的可能性较高的区域给予更大的重视。 我们在三个缺陷检测数据集——DAGM、KolektorSDD 和 SeverstalSteel 缺陷数据集——上展示了端到端训练方案的性能和提议的扩展,我们在其中展示了最先进的结果。 在 DAGM 和 KolektorSDD 上,我们展示了 100% 的检测率,因此完全解决了数据集。 对所有三个数据集进行的附加消融研究定量地证明了对每个提议扩展的整体结果改进的贡献。

I. INTRODUCTION

生产物品及其表面的质量检查是工业生产过程中非常重要的一部分。传统上,经典的机器视觉方法已被用于自动化视觉质量检查过程,但随着工业 4.0 范式的引入,更新的深度 已经开始使用基于学习的算法 [11]、[7]、[5]、[9]。 深度学习模型已经变得适合这项任务,因为它们具有更大的建模复杂特征的能力,并且更容易适应不同的产品,而无需明确的特征手工工程。
一种新颖的两阶段架构 [7]、[9]、[13] 已被证明在表面缺陷检测中非常成功。 最先进的性能可用于两阶段设计,其中在第一阶段执行缺陷分割,然后在第二阶段对有缺陷与无缺陷表面进行逐图像分类。正如我们之前的工作 [9] 所证明的那样,这使得仅使用少量可用的正训练样本就可以进行学习。该方法被证明优于相关方法,包括最先进的商业产品。 Raˇcki 等人也使用了类似的双阶段架构, [7] 在 DAGM [11] 数据集上,而 Xu 等人 [13] 将两阶段架构扩展为弱监督学习,减少了对像素级注释的需求,但结果略有妥协。 然而,现有的两阶段架构依赖于繁琐的训练过程,因为它们需要先训练分割层,然后冻结分割层,然后学习分类层。 虽然这种两阶段学习方法产生了最先进的结果,但它也会导致学习过程缓慢,因为需要多次学习.
在这项工作中,我们解决了用于表面缺陷检测的两阶段架构的缺点 [9],并提出了一种端到端的训练方案,该方案需要不太精确的像素级注释而不影响性能。 我们建议通过以端到端的方式引入分割和分类层的同时学习来改进学习过程。 所提出的架构不仅使网络学习更容易、更快,而且还提高了缺陷检测率。 为了实现这一点,我们提出了一种考虑像素级注释的梯度流调整。然而,由于难以获得精确的像素级注释,我们建议使用更容易获得的不太精确的注释。 我们没有像 Xu 等人那样使用仅具有图像级标签的弱监督学习,这会导致性能略低。 [13],而是扩展损失函数以考虑基于区域的注释的不确定性,这允许仍然相当容易获得的明显更粗的注释。 此外,我们还引入了无缺陷样本的使用频率采样,这进一步提高了缺陷检测性能。我们演示了对我们之前的两阶段架构 [9] 实施所提出的改进的使用,但是,相同的改进是通用的,可以应用于任何其他两阶段网络架构,例如 Xu 等人提出的。 [13]。所有提议的贡献都在详细的消融研究中进行了广泛评估,证明了每个单独组件的有用性。
提出的端到端学习方法在几个公开可用的缺陷检测数据集上进行了评估:Kolek-torSDD [9]、DAGM [11] 和 Severstal Steel 缺陷数据集 [1],证明了这种方法对大量缺陷域的普遍适用性 . 此外,所提出的方法被证明在 DAGM [11] 和 KolektorSSD 上实现了 100% 的检测率,从而优于所有其他先前提出的方法并完全解决了这些数据集。
本文的其余部分结构如下:在第 II 节中,我们介绍了相关工作,同时在第 III 节中详细介绍了提议的端到端学习以及其他改进。 在第四节中,我们在三个数据集上对所提出的方法进行了广泛的比较,包括详细的消融研究,同时我们在第五节中进行了讨论。

II. RELATED WORK

一些相关工作探索了深度学习在工业异常检测和识别中的应用 [6]、[11]、[7]、[5]、[9]。 Masci 等人的最早工作。 [6] 在使用浅层网络解决受监督的钢缺陷分类时显示出有希望的结果。 Weimer 等人对现代深度网络架构进行了更全面的研究。 [11]。 他们在 6 种不同类型的合成错误上评估了许多具有不同层深度的深度学习架构,并表明深度网络在合成数据集上的表现优于任何经典方法。 然而,他们通过处理单个图像块而不是使用完全卷积的方法来实现网络.。
大多数异常检测论文都专注于具有像素级标签的全监督学习。 Linet al 的作品。 [5] 部分为异常检测引入了弱标记监督。 他们提出了一个基于 AlexNet 架构和类激活图 (CAM) [14] 的 LED 芯片缺陷检测网络。 他们的网络允许仅使用图像级标签和 CAM 来定位缺陷的弱监督学习,但是,他们在学习过程中没有考虑像素级标签,未能在可用时利用这些信息。 我们之前的工作 [9] 也被 Xuet al 扩展到弱监督学习。 [13]。 他们使用了类似的两阶段架构,但为分割网络提出了一种新的损失,从而可以在没有像素级标签的情况下进行学习。 然而,为了实现这一点,他们提出了一个三阶段学习程序,其中每个网络首先单独训练,最后一起微调。 这导致了弱监督学习的最新成果,但没有优于标记学习,并且还保留了需要几个学习阶段的繁琐学习过程。
大多数异常检测论文都专注于具有像素级标签的全监督学习。 Linet al 的作品。 [5] 部分为异常检测引入了弱标记监督。 他们提出了一个基于 AlexNet 架构和类激活图 (CAM) [14] 的 LED 芯片缺陷检测网络。 他们的网络允许仅使用图像级标签和 CAM 来定位缺陷的弱监督学习,但是,他们在学习过程中没有考虑像素级标签,未能在可用时利用这些信息。 我们之前的工作 [9] 也被 Xuet al 扩展到弱监督学习。 [13]。 他们使用了类似的两阶段架构,但为分割网络提出了一种新的损失,从而可以在没有像素级标签的情况下进行学习。 然而,为了实现这一点,他们提出了一个三阶段学习程序,其中每个网络首先单独训练,最后一起微调。 这导致了弱监督学习的最新成果,但没有优于标记学习,并且还保留了需要几个学习阶段的繁琐学习过程。

III. END-TO-END LEARNING FOR TWO-STAGEARCHITECTURE

在本节中,我们提出了一种两阶段架构的端到端学习,该架构能够同时学习分割和分类(即 [9] 中的决策)层。 整体的两阶段网络架构如图 1 所示,更多细节请读者参考 [9]。我们还提出了额外的改进,进一步提高了缺陷检测任务的分类精度。
A. End-to-end learning
为了实现端到端学习,我们将分割损失和分类损失结合成一个单一的统一损失,允许同时学习。 新的组合损失定义为
在这里插入图片描述
其中LsegandLcls分别代表segmentation和classificationlosses,δ是一个额外的分类损失权重,防止分类损失主导总损失,而λ是一个混合因子,平衡每个网络在最终损失中的贡献。 请注意,λ 和 δ 不会替代 SGD 中的学习率η,而是对其进行补充。 他们充分控制了学习过程,因为损失可以是不同的规模。 分割损失是所有像素的平均值,更重要的是,只有少数像素是异常的,导致与分类损失相比的值相对较小,因此我们通常使用较小的δ值来防止分类损失主导总损失。
在分割网络特征稳定之前学习分类网络代表了同时学习的额外挑战。 我们通过建议在开始时只学习分割网络并逐渐向在最后只学习分类部分来解决这个问题。 我们通过将分割和分类混合因子计算为一个简单的线性函数来制定这一点。
在这里插入图片描述

其中n表示当前epoch的索引,total epoch表示训练epoch的总数。如果没有逐渐混合这两种损失,学习在某些情况下会导致梯度爆炸,从而使模型更难使用。 我们将逐步包含分类网络和排除分割网络的过程称为动态平衡损失。 此外,使用较低的δ值进一步减少了早期学习噪声分割特征的问题,而使用较大的值有时会导致梯度爆炸的问题。
a) Gradient-flow adjustments:
我们建议通过这些分割网络从分类网络中消除梯度流,这是以单一的端到端方式成功学习分割和分类层所必需的。 首先,我们通过 [9] 中提出的分类网络使用的最大/平均池化快捷方式去除梯度流。 在图 1 中,这用 (a) 标记。这些捷径利用分割网络的输出图来加速分类学习。 通过它们向回传播梯度会将误差梯度添加到分割的输出图中,但是,这可能是有害的,因为我们已经以像素级注释的形式对该输出产生了误差。
我们还建议限制源自分类网络的分割梯度。 在图 1 中,这用 (b) 标记。 在训练的初始阶段,分割网络还没有产生有意义的输出,因此从分类网络反向传播的梯度会对分割部分产生负面影响。 我们建议完全停止这些梯度,从而防止分类网络改变分割网络。 这与 [9] 中的两阶段学习的行为非常相似,首先训练分割网络,然后冻结分割层,最后只训练分类网络。
B. Frequency-of-use sampling
两阶段架构的当前实现采用了交替采样方案 [9],通过在每个训练步骤中交替正负样本来提供正负训练样本之间的平衡。 我们建议通过基于每个负样本的使用频率将原始随机采样替换为一个来改进交替采样方案。现有的交替采样方案强制在相同数量的正图像( P)。 然而,由于P << N,所选择的子集̃N 会相对较小。 由于当前的方法 [9] 对每个 epoch 使用负图像的均匀随机采样,这会导致一些样本的过度使用和其他样本的使用不足,如图 2 左侧所示。
在这里插入图片描述

我们建议用基于使用频率的随机抽样替换负样本的随机抽样。 我们以与该图像的使用频率成反比的概率对每个图像进行采样。 如图 2 右侧的直方图所示,使用频率采样显着降低了所有样本中的过度使用和使用不足,并确保在训练过程中均匀使用每个负图像。
C. Loss weighting for positive pixels
当只有近似的、基于区域的标签可用时,如图3所示,我们建议以不同的方式考虑注释缺陷区域的不同像素。特别地,我们给了更多的重要的中心的注释区域,而不太重要的外部部分。这减轻了在缺陷边缘产生的歧义,在那里我们不能确定缺陷是否存在。我们通过加权分割损失来实现标签在不同区域的重要性。利用距离变换算法,根据每个正标签像素到最近的负标签像素的距离,对每个正标签像素的影响进行加权。
在这里插入图片描述
我们将正像素的权重公式化为
在这里插入图片描述
其中 ˆL(pix) 是像素的原始损失,D(pix)/D(pixmax) 是到由真实区域内的最大距离值归一化的最近负像素的距离,Ω(x) 是转换相对值的缩放函数 距离值转化为损失的权重。 通常,缩放函数Ω(x)可以根据缺陷和注释类型进行不同的定义。 但是,我们发现简单的多项式函数为不同的缺陷类型提供了足够的灵活性:
在这里插入图片描述
其中 p 控制像素重要性随着它远离中心而降低的速率,而 wposis 是所有正像素的附加标量权重。 我们经常发现 p= 1 和 p= 2 作为最佳表现,这取决于注释类型。 分割掩码和双权重掩码的示例如图 3 所示。请注意,负标记像素的权重仍然是1。

IV. EXPERIMENTS

在本节中,我们在几个异常检测任务上广泛评估了所提出的方法。 首先,我们将其与众所周知的合成基准数据集 DAGM 2007 [11] 数据集上的相关方法进行比较。 使用 KolektorSDD [9] 数据集的完全监督问题。 我们还在 SeverstalSteel Defect [1] 数据集上对其进行了评估,该数据集具有更大和更难的图像集,以证明所提出架构的普遍适用性。 最后,我们评估了在消融研究中单独提出的组件的贡献。
A. Performance metrics
在所有实验中,我们专注于评估每张图像分类指标,这是工业质量控制中最相关的指标。 特别是,我们观察了平均精度 (AP),它被计算为精度-召回曲线下的面积,并且比其他既定指标(如 AUC)更好地捕捉模型在高度不平衡的数据集中的性能。 我们还报告了错误分类、假阳性 (FP) 和假阴性 (FN) 的数量,它们取决于应用于分类分数的特定阈值。 我们报告了达到最高 F 度量的阈值处的错误分类数。

ROC曲线的横坐标是伪阳性率(也叫假正类率,False Positive Rate),纵坐标是真阳性率(真正类率,True Positive Rate)在这里插入图片描述

B. Implementation details
提议的架构和所有改编都在 PyTorch 中实现。 在所有实验中,网络均采用随机梯度下降进行训练,没有动量,也没有权重衰减。 交叉熵损失已应用于分割和分类网络。 在任何实验中都没有使用图像调整和数据增强。
C. The DAGM 2007 dataset
在 DAGM 2007 [11] 数据集上对表面缺陷检测的相关方法进行了比较,该数据集是众所周知的表面缺陷检测基准数据库。 它包含具有人工生成缺陷的各种表面的图像。 表面和缺陷分为 10 个不同难度的类别。 在我们的评估中,我们将每个类视为自己的二元分类问题。
以下超参数用于所有类。 我们训练了 50 个 epoch,学习率为 η= 0.01,分类损失权重设置为 δ= 1。我们使用的批次大小为 5。由于提供的标签并不总是直接以异常为中心,我们使用线性缩放函数Ω(x),p= 1 . 这防止了稍微偏心的缺陷像素的权重快速下降,但仍然降低了最有可能没有缺陷的更远像素的重要性。 我们对正样本的加权是负样本的 20 倍(wpos = 20)。
所有类别的真阳性 (TPR) 和真阴性 (TNR) 率的性能如表 I 所示。所提出的方法在所有类别上都实现了 100% 的检测率,从而完全解决了这个数据集。 Raˇcki 等人提出的具有独立学习的两阶段架构。 [7] 在一半的类上达到了 100% 的比率,但在另一半上仍然存在一些假阴性。 Huang等人提出的紧凑架构。 [3] 在前 6 个类中实现了 99.79% mAcc(平均准确度)。 提议的端到端学习和额外的改进进一步增加了这一结果,并在其余表面上实现了 100% 的检测率。 图像、缺陷和分割网络输出的几个例子如图 5 所示。。
在这里插入图片描述
D. The KolektorSDD
接下来,我们在 Kolek-torSDD [9] 上评估所提出的方法,以将其与现有的两阶段最先进架构进行比较。 我们遵循与 [9] 中描述的相同的评估协议,使用具有相同训练测试拆分的 3 倍交叉验证。 与[9]相反,我们在学习过程中没有将指数移动平均应用于网络的权重。 在报告交叉验证的性能指标时,我们避免结合来自单个折叠的未校准分数,而是计算每个单独折叠的指标并报告 AP 的所有三个折叠的平均值,而对于 FP 和 FN,我们报告总和 所有三个折叠的错误值。
我们使用了由距离变换加权的旋转边界框注释,因为该注释需要较少的人工操作才能获得。 对于应用于注释的缩放函数Ω(x),我们使用wpos=1and p=2,因为KolektorSDD 主要包含在注释中心相当突出的薄表面裂缝。
学习率为 η=0.5,而分类损失权重设置为 δ=0.01。 当使用所有样本进行训练时,网络训练了 35 个 epoch,而在使用较少数量正样本的实验中,步数保持大致相同,并且由于较小的训练集大小导致训练 40、50、70 , 90 和 150 epochs 分别用于具有 25、20、15、10 和 5 个正样本的训练集。
结果在表 II 中报告,并显示了使用不同数量的正样本的平均精度 (AP)。作为基线,我们使用两阶段架构 [9] 训练有相同的旋转边界框注释,但使用两阶段学习程序代替 端到端的学习,没有我们的改进。 我们提出的方法在所有情况下都优于基线,如表 II 所示。 这在不同数量的正训练样本中显示出来,因为在大多数情况下,端到端学习的性能比基线高出约 1-2%。 此外,我们的方法在使用所有正训练样本时实现了 100% 的 AP,没有错误分类。 所提出的方法也优于所有其他相关方法,包括使用更精确注释训练的商业软件,以及使用弱监督训练的两阶段架构 [13]。 [13] 仅使用图像级标签,我们使用一些像素级注释的方法在不影响整体性能的情况下在无注释和精确注释之间实现了更好的权衡。 图 5 展示了一些图像、缺陷和检测的示例,其中包含来自分割网络的输出。
在这里插入图片描述
E. The Severstal Steel defect dataset
前两个数据集的结果显示为饱和,因为两个数据集包含的示例太少,这对于深度学习方法来说是困难的。 因此,我们额外评估了 Severstal 钢缺陷 [1] 数据集,该数据集包含更大的更难样本集。 数据集共包含 12,568 张图像,有 4 种不同类型的缺陷。 我们使用了一组图像进行评估。 特别地,我们使用了所有负面图像和所有正面图像,只有类3缺陷存在,这是该数据集中最常见的缺陷。没有使用也有其他类型缺陷的图像。 这产生了 6,666 张负图像和 4,759 张正图像,它们被进一步分为训练集、验证集和测试集。 对于训练,我们使用了 3,000 张正图像和 4,143 张负图像,对于验证,使用了 559 张正图像和负图像,对于测试,使用了 1,200 张正图像和负图像。 图 4 中展示了数据集中的少量图像,以及分割网络输出的检测结果。 Severstal Steel 数据集上的现有基准是通过逐像素基础评估来执行的,但是,我们改为报告基于每个图像库的度量,因为 分割的每像素精度对于缺陷检测的实际应用并不重要。 相反,将图像正确分类为有缺陷或无缺陷更为重要。
在这里插入图片描述
结果示于表IV。 正训练样本大小也在 300、750、1500 和 3000 个样本之间变化。 我们训练了 90、70、50 和 40 个 epoch,分别使用 300、750、1500 和 3000 个正样本,然后根据验证集上的 AP 使用最佳模型进行评估。 学习率设为η=0.1,分类损失权重设为δ=0.1,我们使用p=2对正像素进行加权。 我们使用的批量大小为 10。结果表明,在 300 个正训练样本的情况下,所提出的方法能够实现 97.78% 的 AP,而在所有 3000 个训练样本中,AP 增加到 99.04%,错误分类的数量几乎减半。尽管 AP 值很高 这仍然留下 34 个误报和 54 个误报。 图 4 中描述了几个很好地证明了该数据集难度的检测示例。
在这里插入图片描述
F. Ablation study
最后,我们评估各个组件对上述结果的影响。 我们对所有三个数据集进行消融研究, KolektorSDD, DAGM,and Severstal Steel Defect dataset,然而,对于 SeverstalSteel 数据集,我们只使用了一个图像子集来减少训练时间。 我们使用了 1,000 个正负样本进行训练,使用相同数量的测试。
我们报告了两个实验,显示了各个组件的贡献。 在这两个实验中,使用相同的设置和超参数作为之前报告的那些。 在第一个实验中,我们通过仅禁用特定组件,同时启用所有剩余组件来报告性能。 结果在表III中报告。第二个实验在表V中报告,对各个组件逐渐启用时的性能进行策略分析,包括完全不启用任何组件时的性能。 结果很好地表明,在所有三个数据集上都没有启用任何组件时,性能最差,而只有在启用所有四个组件时,才能实现所有三个组件的最佳结果。 我们在下面更详细地描述每个组件对整体改进的贡献。
在这里插入图片描述
a) Dynamically balanced loss and gradient-flow adjust-ment:
仅通过逐步包含分类网络启用损失的动态平衡已经为所有三个数据集提供了显着的性能提升。 在没有动态平衡损失的情况下,即没有使用任何λ,DAGM、KolektorSDD 和 Severstal Steel 数据集的 AP 分别为 90.84%、99.77% 和 95.90%。 然而,对于 DAGM、KolektorSDD 和 Severstal Steel 数据集,随着 λ 在训练时期内动态平衡损失,AP 分别增加到 97.60%、99.88% 和 97.43%,如表 V 所示。
仅用梯度流调整代替动态平衡损失,即停止梯度分割,将在 KolektorSDD 和 Severstal Steel 数据集上产生相似的性能,如表 III 的前两行所示。 由于两种方法都有效地防止了不稳定的分割特征在学习的早期阶段显着影响分类层的学习,因此它们自然会产生相似的性能。 在不进一步将学习率降低到 η= 0.01 的情况下,模型根本不会收敛的学习过程。更稳健的解决方案是同时使用梯度流调整和动态平衡损失,同时保持 η= 0.1,这会产生更好的结果。 这消除了收敛问题,同时也显着改善了 DAGM 数据集的结果,其中一个错误分类可以达到 99.998% 的检测率。 当使用两个组件时,其他两个数据集的性能也略有提高。
上述结果表明,仅使用动态平衡损失或仅使用梯度流调整不足以引入端到端学习。 相反,需要两种改进才能在不同的缺陷检测问题上实现收敛和良好的结果。
b) Frequency-of-use sampling:
将交替方案中的朴素随机采样替换为基于使用频率的随机采样进一步改善了结果。 如表 V 所示,在 Severstal Steel 数据集上,使用前两个组件启用使用频率采样将性能从 97.59% 提高到 98.24% AP,在 DAGM 数据集上从 99.998% 提高到 100%。 在 KolektorSDD 上,尽管 AP 略有减少,但使用频率抽样没有显着影响,因为错误分类的数量保持不变。
c) Loss weighting for positive pixels:
最后,启用距离变换作为正像素的权重将 KolektorSDD 的性能提升到 100% 检测率,因此完全解决了 KolektorSDD 和 DAGM 数据集。 损失加权也改善了 Severstal Steeldataset 的结果,将 AP 从 98.24% 增加到 98.70%,如表 V 所示。此外,如表 III 中所观察到的,只有特定组件被禁用,使用频率采样确实可以改善结果 KolektorSDD 时也考虑了距离变换。 结果从不使用使用频率采样时的 99.77% AP 和一次错误分类提高到使用时的 100% 检测率。 这表明距离变换和使用频率采样的组合在不同的数据集上效果最好。

V. CONCLUSION

在本文中,我们提出了一种用于表面异常检测的两阶段深度学习架构的同步学习方案。 我们提出了一种端到端机制,通过动态平衡分割学习和分类网络之间的损失,以及相应地调整从分类到分割层的梯度流来促进同步学习。 虽然分割层的训练不受源自分类层的错误的影响,但我们仍然认为这种方法是一种端到端的学习,因为训练是在一个前向后向的统一网络中进行的。我们还建议扩展损失函数以解决基于区域的注释的不确定性,从而允许使用比高精度标签更容易获得的不太精确的像素级注释。 此类标签可用于工业缺陷检测中的许多不同情况,其中缺陷的像素位置并不总是很容易定义,例如在 KolektorSDD,以及在 DAGM [11] 数据集的几个类别中。在这种情况下,更广泛的区域可以轻松地包含缺陷像素,因此可以花费更少的精力进行注释。 最后,我们还引入了缺陷样本的使用频率抽样,以确保不平衡数据集中负样本的均匀使用。
我们证明了所提出的方法对三个缺陷检测问题的好处。 特别是,在 DAGM [11] 和 KolektorSDD [9] 数据集上实现了 100% 的检测率,从而超越了所有最先进的方法并完全解决了这些问题。 在 KolektorSDD 上,我们还展示了 端到端方案可以成功取代 [9] 中的两阶段学习过程,导致所需的训练迭代次数减半,同时甚至提高分类精度。 由于现在解决了 DAGM 和 KolektorSDD,我们还展示了在 Severstal Steel de-fect [1] 数据集,其中包含大量比前两个数据集更困难的缺陷。 由于该数据集的规模和难度,我们希望结果将作为未来的基准模型来比较新的表面缺陷检测方法的性能。
最后,广泛的消融研究证明了单独提出的改进的行为。 每个提议的组件都被证明是重要和有益的,因为删除任何一个都会降低准确性。 该研究还表明,要正确实现端到端学习,需要在分割和分类网络之间动态平衡损失和梯度流调整。 没有它们,结果要么更糟,要么学习难以收敛。 研究还表明,使用频率采样和距离变换在改进特定数据集的结果方面分别很重要。然而,事实证明两者的结合要好得多,从而使所提出的改进互惠互利。 这极大地有助于在三个不同的缺陷检测问题上实现最先进的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值