训练神经网络

在所有视图都被正确标注并分成训练图像和测试图像后,神经网络训练按以下一般方式进行:

  1. 配置工具参数并启动训练。按大脑图标训练工具。对于图像集中将用于训练的每个图像(在训练集对话框中定义),在架构为 聚焦 时将使用指定的特征尺寸对整个范围进行采样。
  2. 得到的样本提供给 VisionPro Deep Learning 深度神经网络,作为输入数据。
  3. 对于每个样本,神经网络产生特定的响应(取决于工具类型),并且将该响应与与训练图像中的样本位置相关联的图像标注进行比较。
  4. 在处理和重新处理样本时,网络内的内部权重会经历反复调整。网络训练系统不断调整网络权重,其目的是减少网络响应与用户提供的标注之间的误差(差异)。
  5. 整个过程重复多次,直到每个训练图像的每个样本都至少被包括了时期计数参数指定的次数。

 

 

  1. 采样区域。

  2. 用户绘制的已标注缺陷区域。

  3. 神经网络。

  4. 网络的反应。

  5. 调整权重以减少标注缺陷(黄色)和网络响应(蓝色)之间的差异(也就是误差)的迭代过程。

 

神经网络训练的具体特征在某种程度上取决于所训练的工具的类型。蓝色定位工具网络训练的目标是减少实际特征姿势和标识(如图像标注所定义)与检测到的姿势和标识之间的差异。对于蓝色定位,网络在训练后可定位和识别图像中的特征。您执行蓝色工具标注操作可识别图像中所有关注特征的位置和标识。对于图像内的给定采样区域,训练的目标是网络正确返回位于采样区域内的任何特征的姿势。如果采样区域不包含任何特征,则网络不应对样本产生响应。

 

  • 采样区域和采样参数

    蓝色定位 使用用户通过采样参数定义的采样区域相关的采样器对像素进行采样,因此在开始训练之前需要配置采样参数来确定采样区域。若采样区域不包括任何特征像素,则网络不应产生响应。

  • 验证训练

    蓝色定位 不支持使用验证方案进行训练,因此它没有验证数据集,也不需要在工具参数中配置验证集。采用验证数据的目的是验证每个训练的神经网络,并利用该验证数据的结果选择具有给定训练集的性能最好和最稳定的神经网络。

 

配置工具参数

添加工具之后,可以访问工具参数以在训练之前微调工具的性能,以及工具在运行时操作期间如何处理图像。VisionPro Deep Learning 工具参数调整如何训练神经网络模型,以及工具如何处理统计结果。对于大多数应用程序,要调整的最常用工具参数如下:

  • 特征尺寸
  • 训练集
  • 扰动
  • 采样密度

 

Tip: 通常,默认参数设置对于大多数图像集效果良好。在初始训练时,除了设置特征尺寸参数外,应尝试在不调整参数的情况下进行训练。

 

架构参数

架构参数选择将使用的神经网络模型的类型。如果想获得更准确的结果,此选项很有用,但要以增加训练和处理时间为代价。高细节和高细节快速架构设置将工具配置为平等地考虑整个图像,而聚焦模式设置则是选择性的,它聚焦于图像中包含有用信息的部分。由于这种聚焦,网络可能会丢失信息,尤其是当图像中到处都有重要细节时。

 

网络模型参数

通过网络模型参数,可以减小训练工具网络的大小,从而减少处理所需的时间。默认值(大)保留标准工具行为和性能。另外两个值(小)和(中)可以提供更快的运行时执行速度。

选择“大”以外的值可能会导致不同的工具结果。这些差异一般很小,但如果使用此选项,需要使用自己的标注数据验证工具性能。

 

训练参数

训练工具参数控制训练过程。如果在训练过工具之后对训练工具参数进行了任何更改,这将使训练无效,并且有必要对工具进行重新训练。

参数 说明

训练集

启动训练集对话框,用于指定样本集和已标注图像的百分比,以便在每次启动新训练时进行随机选择,作为神经网络的训练样本。

时期数

指定训练过程中的优化迭代次数。如果您的应用程序复杂性有限,或者在测试不同参数设置时较低质量的模型可能有用,可以降低此设置。

时期是将整个训练集传递到神经网络的术语。

工具通常需要学习训练图像集数据大约 50 次(在微调区域),这是默认设置,并且通常足以满足大多数标准应用程序的要求。

选择使用较少的时期可能导致神经网络卡在学习阶段或无法准确解决问题,而时期太多可能导致过度拟合(换句话说,就是过度训练)结果,即它只会学习训练后的图像,将训练图像之外的任何内容都视为无效。必须将网络训练到能推及整个训练图像集的程度。如果过多地增加时期,则存在过度训练和过度拟合训练图像集数据的风险。

Tip:
  • 如果训练图像集包含大量图像,或者训练图像集中的图像尺寸与特征尺寸相比较大,则可能需要提高“时期数”设置。
  • 如果您的训练图像集非常小,则存在过度拟合的风险。如果您有一个较大的训练图像集,并且网络寻找该集合中的所有样本,则相比您拥有较小的训练集,并且将较小的样本集导入网络,您的网络会更泛化。

 

训练参数详细信息:时期数

时期数参数允许您控制执行网络细化的程度。如神经网络训练主题所述,训练过程通过网络反复处理输入样本,将网络结果与用户提供的标签进行比较,然后调整网络权重以减少此类错误。由于网络节点(因此权重)数量很大,这个过程几乎可以无限期地重复,每次迭代都会逐步减小误差。增加时期数参数设置会增加执行的训练迭代次数。这将减少训练图像上的网络错误,但需要更多的训练时间。

但是,要切记训练网络的目标是准确地对所有图像执行,而不仅是用于训练图像。随着时期数的增加,网络往往会经历过度拟合(术语),其中未经训练的图像上的错误增加,同时训练图像上的错误减少。因此,在调整时期数时,应仔细监控所有图像的网络性能。您必须为数据集选择一个最优时期,因为最优值因数据集而异,尤其是数据集的统计多样性。

 

扰动参数

只能训练 VisionPro Deep Learning 神经网络去学习它实际看到的图像中的特征。在理想情况下,训练图像集将包括表示所有正常图像和部分变化的代表性图像集。但是,在大多数情况下,需要使用没有代表性的图像集合进行训练。特别是,通常在很短时间内收集图像集,这样就不能反映正常部分和照明随时间的变化,以及相机光学和外在特征的变化与调整。

VisionPro Deep Learning 训练系统允许您通过指定操作期间所期望的外观变化类型来扩充图像集,方法是使用如下扰动参数:

  • 亮度
  • 对比度
  • 旋转
  • 缩放

 

The Perturbation parameters allow the VisionPro Deep Learning tools to artificially generate images to be trained on, improving results for applications with high amounts of variance. 这些参数在所有工具中通用。扰动参数也可以组合使用。这允许通过单独使用参数以及结合使用来生成更复杂的图像。

Tip: 如果您的训练图像集不包括您的零件可能在运行时出现的所有变化,则可以使用扰动参数。例如,如果您的零件将旋转 +/- 45 度,您可以设置旋转参数,软件将在训练期间使图像按照该参数旋转。但是,为了获得最佳效果,Cognex 建议使用零件变化的实际样本图像。当零件旋转时,可能存在不同的阴影,如果旋转基于人工旋转,工具就不会捕获这些阴影。
Note: 扰动不能代替收集和训练实际图像。特别是,图像扰动只能近似逼近实际部分或场景的外观实际变化。

 

可以指定每个扰动类型的扰动范围。

参数 说明

旋转

指定可能的方向,定义据此绘制扰动旋转角度(如设置为 [0°,0°],则不会使用旋转扰动)的分段均匀分布。

例如,通过 [-10°, 10°] 或 [170°, 190°] 的设置,可以在 -10 到 10 度之间或 170 到 190 度之间检测到该零件。如果您的零件可以定向为规则方向,或者上下颠倒且角度仅有细微变化,但从不介于两者之间,则这些类型的设置特别有用。

缩放

指定大约为 1 的正态分布差值,由此得出扰动比例因子(如果设置为 0%,则不使用)。

例如,缩放设置为 100% 将提供尺寸为原始尺寸一半到二倍的图像(原始尺寸的 0.5 到 2.0 倍)。

原始 = 可能扰动 =

宽高比

指定大约为 1 的正态分布差值,由此得出扰动宽高比因子(如果设置为 0%,则不使用)。

剪切

指定大约为 1 的正态分布差值,由此得出扰动剪切因子(如果设置为 0%,则不使用)。

翻转

指定在水平、垂直方向或双向采样期间是否随机翻转图像。该功能对于对象或表面会显示相应对称性的应用很有帮助。

此设置有助于大幅增加训练数据的数量。

水平
垂直
两者

亮度

指定大约为 1 的正态分布差值,由此得出扰动亮度因子(如果设置为 0%,则不使用)。

对比度

指定大约为 1 的正态分布差值,由此得出扰动对比度因子(如果设置为 0%,则不使用)。

反转对比度

指定是否随机反转对比度以模拟训练样本的对比度反转。

Note: 反转对比度参数仅在启用专家模式时可用。这是通过帮助菜单启用的。

 

扰动参数详细信息:在启用“缩放”或“定向”(特征参数)时

启用特征参数中的缩放参数并设置为一致后,将删除缩放扰动参数,并添加尺寸范围处理参数,以便您可以在运行时修改比例。

启用缩放参数并设置为不一致后,将删除缩放宽高比扰动参数,并添加尺寸范围宽高比范围处理参数,以便您可以在运行时修改它们。

启用定向参数后,将删除旋转扰动参数,并添加角度范围处理参数,以便您可以在运行时修改方向范围。

Note: 有关缩放参数的详细信息,请参阅 已缩放
Note: 有关定向参数的详细信息,请参阅 定向

 

恢复最后的参数:恢复参数

“恢复参数”按钮用于将工具参数值轻松地恢复为您在上次训练任务中选择的值。它会记住上次训练会话中使用的工具参数中的所有值。因此,如果您更改了它的任意值,现在要恢复此更改,可以单击它以回滚到上次训练中使用的工具参数值。请注意,当工具从未训练过或工具参数值的初始集没有更改时,此按钮将被禁用。

以下步骤解释了“恢复参数”按钮的工作原理:

  1. 当前工具未经训练时,“恢复参数”按钮始终处于禁用状态。

  2. 当前工具训练完成后,参数回滚的检查点被设置为上次训练会话工具参数中的值。此时,如果您更改工具参数中的任意值,将启用该按钮。

  3. 单击“恢复参数”按钮,则将更改的值恢复为检查点的值。

  4. 如果再次训练当前工具,并对工具参数进行一些更改,则参数回滚的检查点将被更新为更改后的参数值。同样,除非您对工具参数中的值进行其他更改,否则该按钮将被禁用。

  5. 如果您进行其他更改并再次单击“恢复参数”按钮,则将更改的值恢复为已更新的检查点的值。

请注意,如果您在更改处理参数中的值之后重新处理经过训练的工具,则不会更新参数回滚的检查点,因此“恢复参数”按钮将保持启用状态。仅在完成工具训练后更新检查点。

已禁用

已启用

Note: 由于不可避免的原因,有些参数无法恢复为上次训练会话中的值。
  1. 不可逆参数,更改这些参数将重置工具

    1. 网络模型、独占、特征尺寸、遮蔽模式、颜色、居中、缩放、缩放模式(均匀/非均匀)、遗留模式、定向、细节

  2. 不可逆参数,这些参数在本质上是不可逆的

    1. 低精度、简单区域

  3. 其他不可逆参数

    1. 训练集、绿色分类高细节模式下的热力图和 绿色分类高细节快速(此参数不影响预测性能)

    2. 蓝色读取中遮蔽模式下的叠加参数

 

控制神经网络训练

可以通过配置工具参数和训练集来控制蓝色定位的训练。

 

训练集

影响网络训练阶段的最大单一决定因素是训练集组成。控制网络训练阶段的最佳方法是构建工具的正确训练集。通过这种方式,您可以将图像/视图分成几类,以确定工具是否正确地概括了图像/视图。

Note: 有关如何加速训练或处理的信息,请参阅 优化速度
Note: 有关训练和处理的一般提示和技巧,请参阅应用设计