准备训练集、验证集和测试集

对于 VisionPro Deep Learning高细节 工具的训练,首先需要 3 个图像数据集类型:训练集、验证集和测试集。

 

 

准备训练集

VisionPro Deep Learning 工具基于深度学习,深度学习通过提供网络数据并使机器从已学习数据中推导出应该达成的目的来教导神经网络。因此,输入网络的数据至关重要。您可以用来影响网络训练阶段的最大单一决定因素是训练图像集。也就是说,机器学习领域的一句名言“Garbage in, garbage out”同样适用于VisionPro Deep Learning工具的训练。如果有用的图像被恰当地标记并输入到神经网络中,训练的结果可能是良好,但如果不是这样,就没有机会得到良好的结果。因此,最重要的是要问自己,“我在向网络传授什么?”

您向网络传授的内容基于您的训练集。训练集表示您为网络提供的数据。对于 VisionPro Deep Learning 工具,图像构成了将用于训练工具的数据集的主干。通过深度学习,大量数据被输入系统,然后系统将从数据中推断出我们正在努力实现的目标。因此,在这种情况下,数据(也就是图像)至关重要。

在深度学习领域内,训练图像集表示将被传递到网络中的数据。构建训练图像集时,您需要考虑以下事项:

  • 相对于运行时图像,我的训练图像集是否具有代表性?这包括以下内容:

    • 照明 - 如果存在照明变化,则您的训练集应包括您预计的运行时照明变化。
    • 颜色 - 零件是否会在运行时改变颜色?然后您应该包括所有不同的颜色变化。
    • 旋转/缩放 - 当零件呈现给相机时,是否会显示旋转或缩放?然后应该包括这些变化。
    • 部件间差异 - 如果被检查的零件可能有微妙的变化,则这些变化应该包含在您的训练集中。
    • 背景 - 在很多情况下,您的零件的图像可能会被捕获在您的桌面上。但是,这些零件最终将在传送带上运行,这为 Deep Learning 工具提供了更加有趣的背景。如果是这种情况,您应该获取传送带零件的训练集。而且,如果背景对检查不重要,您可以将其遮蔽。遮蔽背景不向网络传授无关信息,因此通常可以改善工具的性能。
  • 我的训练图像集是否提供了足够的数据?对 Deep Learning 工具编程时遇到的许多问题可以通过提供更多图像和数据并重新训练工具来解决。
Tip: 如果您为图像添加注释,也就是在文件名中提供描述性信息,例如“良好”、“不良”等,有助于加速标注您的图像。

 

构建图像样本集

收集图像后,可以将其安排到样本集中。图像样本集提供了有用的机制来管理并组织图像数据库。通过图像集可以将图像集划分为可用于训练、测试、实验和验证的类别。通过针对您定义的特定类型图像执行工具,这些图像集将有助于建立对结果的信心。

 

例如,您可以将图像数据库划分为以下类别:

  • 训练 – 线 1 (04082019)
  • 训练 - 线 1(04222019)
  • 训练 - 线 2(03292019)
  • 测试 - 线 1(04092019)
  • 测试 - 线 2(03302019)
  • 测试 - 不良部件

 

Note: 有关设置图像示例集的详细信息,请参阅 创建和编辑集
Tip: 在制作了图像样本集后,可以使用显示和数据库概览筛选条件(显示显示筛选条件)轻松筛选和排序您的图像。

 

构建训练集

您对图像进行分类和采集之后,就可以创建一个图像样本集,并在训练集中使用。所有工具的默认行为是随机选择图像集中 50% 的图像进行训练。测试/训练图像集拆分是指标注图像中用于训练和测试的部分。默认情况下,VisionPro Deep Learning 在训练集对话框中使用 50% 的测试/训练拆分。但是,可以根据应用程序需求对此进行修改。

 

 

精选训练集对话框用于确定将用于训练您的 VisionPro Deep Learning 工具的样本。为此,通过“选择训练集”对话框,您可以根据图像数据库中的所有视图或一个或多个图像集以及这些图像/视图的百分比来定义工具的训练集。该工具将使用指定的选择百分比随机选择一部分已标注图像进行训练,而其余图像将用于计算有关该工具的结果统计数据,这意味着其余的图像将自动成为测试集。

视图是否属于训练集由图像显示视图右上角的训练指示器以图形方式说明(如下所示)。

Note:
  • 在训练工具之前,必须标注所有视图。
  • 理想情况下,在训练您的工具之前,您已经设置了图像样本集。
  • 训练集在流级别设置,因为每个流都可以拥有自己的图像数据库。
  • 您也可以使用“已训练”的默认显示筛选条件查看具有训练标志设置的所有视图。

 

以下是初始化训练集的步骤:

  1. 您首次添加工具但尚未定义训练集时,如果按下“训练”图标,则会显示:

    Note: 按下“训练”图标之前,首先标注一个或多个视图。

  2. 这将启动“选择训练集”对话框。

    Note: 您也可以通过按“工具参数”中的“编辑”链接以启动“选择训练集”对话框。
  3. 如果之前未定义图像样本集,请使用从所有视图中选择训练集选项。
  4. 然后定义“选择”,从而确定训练集中将随机选取并用于训练工具的已标注图像/视图的百分比。
  5. 如果之前未定义图像样本集,请使用从图像集中选择训练集选项。

  6. 从列表中选择之前定义的图像样本集。
  7. 定义“选择”,从而确定训练集中将随机选取并用于训练工具的已标注图像/视图的百分比。

    Note: 使用从图像集选择训练集选项时,选择百分比以所选图像集中图像/视图的组合总数为基础,而不是每个单独集合的百分比。进行选择是为了完全确保覆盖所有受过训练的类。例如,如果您有三个训练图像集,其中 A 包含 20 个样本,B 包含 10 个,C 包含 40 个(总共 70个),并且您的选择是默认的 50%,该工具可以从 A 中随机选择 5 个图像,从 B 中选择 8 个图像,并从 C 中选择 22 个图像(35 个视图)。
  8. 按“确定”按钮接受训练集配置。
  9. 训练集中包含的图像将显示在图像显示视图的右上角。

 

修改训练集

创建训练集后,如果将新图像/视图添加到数据库,则训练集不会包括这些图像/视图。这表明如果在“选择训练集”对话框中按下“确定”按钮后,将图像/视图添加到数据库或图像集,则训练集不会包含这些图像/视图。有几种不同的方法可以修改以前配置的训练集。如果要在训练集中包括一些新添加的图像/视图,可以重新打开“选择训练集”对话框并再次按“确定”按钮。这将丢弃当前的训练集,并创建随机选择的新集合。或者,您可以使用下面介绍的方法手动添加图像/视图。

Note: 下次打开“选择训练集”对话框并按“确定”按钮时,对训练集进行的任何手动调整都将被覆盖。

 

您可以通过以下某种方式,明确地将图像/视图添加到训练集或从中移除:

  • 在图像显示区域中,右键单击图像/视图,如果该图像/视图不是训练集的一部分,则可以选择性地将其添加到训练集,如果已在训练集中使用,则将其删除。

    ]

  • 在“视图浏览器”中,如果使用“显示筛选条件”,则可以使用“N 视图操作”菜单选项将选定视图添加到训练集从训练集中移除视图将多个视图添加到训练集,或从中将其移除。

  • 从“数据库”菜单中,可以打开选择训练集对话。

 

准备验证集

验证集仅用于绿色分类和红色分析的高细节模式。验证集用于在某个迭代期间评估从训练集中创建的模型。这就像一个深度学习模型在真实考试前进行模拟考试。根据验证集的评估结果,高细节架构将计算验证集中的损失并选择损失最低的最终模型。

Note: 绿色分类高细节快速中未使用验证集。

 

验证集比率

验证集比率用于绿色分类和红色分析的高细节模式。验证集比率是验证集在训练集中的比率。每次单击训练按钮时,都会从训练集中随机选择验证集。

验证集与测试集不同,因为验证集将参与训练,但测试集则根本不参与。测试集仅用于在训练结束后选择在一般数据集中表现出最佳性能的模型。例如,当您在没有验证集的情况下设置较高的 Epoch 计数时,可能会得到训练集的过度拟合模型。如果您设置了较高的 Epoch 计数并在没有验证集的情况下开始训练,那么直到训练结束,您都无法知道是否发生过度拟合。在这种情况下,最终将生成过度拟合模型作为最终模型。

但是,如果存在验证集,则在经过一定量的训练之后,如果验证集的性能过分低于训练集的性能,则可以确定发生了过度拟合。而且,在整个训练完成后,在发生过度拟合之前生成的模型将被选为最终模型。这样,验证集不会直接用于训练,而是在训练期间通过检查不可见数据的性能来参与模型的校准。

在“选择训练集”上编辑完训练集后,被选作验证集的视图将具有特殊的指示器,这些指示器指示这些视图包含在训练集中图像的验证集中。

 

在显示筛选条件中输入“已验证”或“未验证”以仅显示包含在验证集中的视图,或者在视图浏览器和图像显示区域中将其排除。

 

在数据库概览筛选条件中输入“已验证”或“未验证”,以仅显示验证集中包括的视图的结果,或者将其排除在数据库概述之外。

Note: 只有在启用专家模式时,才会激活数据库概述筛选条件。

 

准备测试集

与训练集类似,您将希望让测试集包含您在运行时期望遇到的有代表性的变体。训练集和测试集之间的关键差异是,工具训练不包括测试集。相反,测试集用于评估训练的结果,因此测试集也被称为评估集。从训练集中排除的剩余图像将自动成为测试集。

您还希望以与标注训练集相同的方式标注测试集。这样您可以对训练集执行统计分析,确定工具概括结果的效果。