训练神经网络

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

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

 

 

  1. 采样区域。

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

  3. 神经网络。

  4. 网络的反应。

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

 

神经网络训练的具体特征在某种程度上取决于所训练的工具的类型。在监督模式下对红色分析工具进行网络训练的目的是,减少缺陷标注和检测到的缺陷之间的空间差异。对于红色分析高细节,网络在训练后可定位和识别图像内的缺陷区域,这与红色分析聚焦监督类似。您在高细节标签下为红色分析工具执行的标注操作会标注已标注图像中的所有缺陷像素。

 

  • 采样区域和采样参数

    尽管 红色分析聚焦监督 会对用户定义的采样区域的像素进行采样,但红色分析高细节从整幅图像中采样,所以它们没有采样区域,不需要在训练中采样参数。

  • 验证训练

    红色分析高细节 使用验证数据集来验证每个训练神经网络,并根据这些验证结果针对给定训练集选择性能最佳和最稳定的神经网络。

 

配置工具参数

添加工具之后,可以访问工具参数以在训练之前微调工具的性能,以及工具在运行时操作期间如何处理图像。VisionPro Deep Learning 工具参数调整如何训练神经网络模型,以及工具如何处理统计结果。

当红色分析工具的架构参数被设置为高细节时,该工具将被配置为平等地考虑整个图像。如果想以像素级别获得更准确或更详细的结果时,此选项很有用,但要以增加训练和处理时间为代价。高细节模式下的红色分析工具有 4 类工具参数。可以查看每个参数的更详细信息。 ​

Tip: 在许多情况下,默认参数设置对于大多数图像集效果良好。在初始训练时,应尝试在不调整参数的情况下进行训练。

 

架构参数

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

 

模式参数

在日常操作的前端新捕获的图像可能与构建现有工具的训练图像有所不同。通过模式参数,您可以调整之前训练的工具,使其适应生产线上出现变化的新图像。有关详细信息,请参阅适应模式:适应生产线变化

 

网络模型参数

网络模型参数允许您选择受过训练的工具网络的大小,这将改变训练和处理所需的时间。在高细节模式下,有 4 种不同的网络模型:小、普通、大、特大。

  • 普通网络模型(默认)通常用于常规项目。

  • 较大的网络模型对于更复杂的图像是有用的,但这并不意味着它的性能总是更好。较大的网络模型存在过度拟合的风险。较大的网络模型将增加训练和处理时间。

如果在“普通”网络模型中表现不佳(召回率、精度和 F1 得分),一般建议切换到“小”网络模型以提高性能。

 

训练参数

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

参数 说明

时期数

使用所有训练图像进行训练的次数。值越高,重复次数越多。取值范围是 1 到 100000。

Tip: 高细节模式使用与聚焦模式不同的时期数概念。与具有相同数据库的聚焦模式相比,高细节模式最好使用更高的时期计数。

训练集

用于创建深度学习模型的数据集。这意味着在深度学习期间,仅提取训练集中包含的图像的特征来创建深度学习模型。
可以在选择训练集对话框中选择训练集。

验证集比率

将在训练集中用作验证集的视图数的比率。可以输入 1% 到 50% 之间的验证集比率值。
如果在保持训练集数量不变的同时提高验证集比率,则用于训练的数据量将减少。因此,在使用小型训练集时,设置较高的验证集比率可能会对性能产生负面影响。
另一方面,验证集比率过低不利于为不可见的数据集选择良好的模型。

最小时期数

由于验证集的存在,高细节模式可以选择从低时期创建的模型作为最终模型,以防止过度拟合。如果设置了最小 Epoch,高细节模式将选择在此 Epoch 之后创建的模型作为最终模型。
如果对训练集的处理结果很好,但是对测试集的处理结果却不好,您可以认为是过度拟合。但是,如果对训练集和测试集的处理结果都不好,则会出现欠拟合。在这种情况下,建议使用更高的最小 Epoch。
在当前时期中,可用值为 0。

容忍度时期数

每次执行固定次数的迭代时,高细节模式都会测量模型的损失。如果在 N(容忍度时期数的值)个时期内没有观察到损失下降,高细节模式将停止训练,并选择时期结束前损失最低的模型。如果不需要继续训练,可以利用容忍度及早停止训练,除非在一段时间内损失下降。
可用值为 0 到 100000。

Tip:
  • 如果设置特定的 Epoch 计数很复杂,则可以增加 Epoch 计数并基于容忍度创建模型。
  • 可以使用工具 - 检查损失追踪每个时期的损失。
  • 损失是使用验证集而非训练集计算得出的。

像素块大小

将每个视图分成几块的正方形的大小。基于每个块训练(特征检测)和处理每个视图。一般来说,就训练的收敛速度而言,较小的像素块大小更适合捕捉细微的小斑点,而较大的像素块大小更适合捕捉明显的大斑点。
Note: 像素块大小参数仅在启用专家模式时可用。这是通过帮助菜单启用的。

 

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

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

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

 

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

由于验证集的存在,高细节模式可以选择从低 Epoch 创建的模型作为最终模型,以防止过度拟合。如果设置了最小 Epoch,高细节模式将选择在此 Epoch 之后创建的模型作为最终模型。
如果对训练集的处理结果很好,但是对测试集的处理结果却不好,您可以认为是过度拟合。但是,如果对训练集和测试集的处理结果都不好,则会出现欠拟合。在这种情况下,建议使用更高的最小 Epoch。

 

训练参数详细信息:容忍度时期数

每次执行固定次数的时期(1/8 时期)时,高细节模式都会测量模型的损失。如果在 N(容忍度时期数的值)个时期内没有观察到损失下降,高细节模式将停止训练,并选择时期结束前损失最低的模型。如果不需要继续训练,可以利用容忍度及早停止训练,除非在一段时间内损失下降。

Tip: 如果设置特定的 Epoch 计数很复杂,则可以增加 Epoch 计数并基于容忍度创建模型。

 

训练参数详细信息:容忍度时期数和最小时期数

VisionPro Deep Learning 2.1.1 或更低版本的训练中,容忍度时期数之前已应用最小时期数。这意味着在经过最小时期数后,开始计算容忍度时期数。与此形成对比的是,在 VisionPro Deep Learning 3.0 或更高版本中,训练中应用的容忍度时期数与最小周期数无关。因此,与 VisionPro Deep Learning 的较低版本相比,VisionPro Deep Learning 3.0 或更高版本中的最小时期数和容忍度时期数的工作方式有所不同请参阅下面的示例,了解在 VisionPro Deep Learning 3.0 的训练中如何应用容忍度时期数和最小周期数。

 

下面的所有示例都使用以下参数设置:

  • 容忍度时期数:5

  • 最小时期数:10

 

示例 1。该工具等了 5 个时期,希望到目前为止的最佳损失 (0.1960) 被再次更新,不考虑最小时期数。因为在等待后未更新最佳损失 (0.1960),该工具会停止训练并在最小时期数后的时期数中选择最佳损失。时期数 14 的对应最佳损失是 0.2135。

 

 

示例 2。该工具等了 5 个时期,希望到目前为止的最佳损失 (0.1911) 被再次更新,不考虑最小时期数。尽管在等待后没有更新最佳损失 (0.1911) ,但该工具会继续朝向时期数 10 进行训练,以满足最小时期数条件。当到达时期 10 时,该工具会选择其最佳损失,相应的最佳损失在时期 3 是 0.1911。

 

 

示例 3。该工具等了 5 个时期,希望到目前为止的最佳损失 (0.1965) 被再次更新,不考虑最小时期数。因为在等待后未更新最佳损失 (0.1965),该工具会停止训练并在最小时期数后的时期数中选择最佳损失。时期数 11 的对应最佳损失是 0.2106 。

 

 

训练参数详细信息:验证集比率

它是训练集中用作验证集的视图数的比率。如果在保持训练集数量不变的同时提高验证集比率,则用于训练的数据量将减少。因此,在使用小型训练集时,设置较高的验证集比率可能会对性能产生负面影响。
另一方面,验证集比率过低不利于为不可见的数据集选择良好的模型。

 

训练参数详细信息:像素块大小

像素块大小是将每个视图分成几块的正方形的大小。基于每个块训练(特征检测)和处理每个视图。一般来说,就训练的收敛速度而言,较小的像素块大小更适合捕捉细微的小斑点,而较大的像素块大小更适合捕捉明显的大斑点。

 

扰动参数

只能训练 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: 扰动不能代替收集和训练实际图像。特别是,图像扰动只能近似逼近实际部分或场景的外观实际变化。

 

高细节模式提供 13 个扰动选项。仅使用可以在生产线上实际获得的扰动选项。

扰动 说明

水平翻转

 

它在水平方向执行翻转。
当对象的位置和角度没有严格固定时,在大多数情况下可以使用此选项。

 

垂直翻转

 

它在垂直方向执行翻转。
当对象的位置和角度没有严格固定时,在大多数情况下可以使用此选项。

旋转 90°

 

它仅执行 +90° 旋转。
如果选中三个选项“水平翻转”、“垂直翻转”和“旋转 90°”,可能会执行 0°、90°、180° 和 270° 旋转。

旋转

 

它在 0° 至 45° 之间执行旋转。
因此,应用四个选项“旋转 90°”、“旋转”、“水平翻转”和“垂直翻转”与在 0° 到 360° 之间随机旋转是相同的。

对比度

 

它通过为所有通道乘以一个随机值来调整对比度。随机值在 0 到 2 范围内遵循均匀分布。
获取图像时因照明环境不稳定而导致对比度不一致时,可以使用此选项

亮度

 

它通过为所有通道增加一个随机值来调整亮度。随机值在 -255 至 255 范围内遵循均匀分布。
获取图像时因照明环境不稳定而导致亮度不一致时,可以使用此选项。

颜色

 

它通过为每个通道乘以和/或增加不同的随机值来调整颜色。
应该与“对比度”和/或“亮度”选项一起使用。通过更改“对比度”和“亮度”选项的应用方式(从为所有通道应用相同值到为每个通道应用不同的随机值)来应用颜色选项。
获取图像时因照明环境不稳定而导致色调不一致时,可以使用此选项。

层次

 

它随机调整层次。
获取图像时因照明环境不稳定而导致层次不一致时,可以使用此选项。

放大

 

它从中心随机放大视图。最大缩放比例为原始视图大小的 5/6。随机变量遵循均匀分布。
当要检测的缺陷具有不规则的产品大小时,可以使用此选项。

锐化

 

它通过 0 到 2 范围内的图像筛选来随机锐化视图。
当焦点导致图像过于模糊时,可以使用此选项。

模糊

 

它将高斯模糊随机应用于视图。随机变量在 0 到 2 范围内遵循高斯 Sigma 分布。
当焦点使图像过于清晰时,可以使用此选项。

畸变

 

通过选择视图中的点并移动它们,可以对视图施加变形。点数等于或小于 6。
当光学设备品质降低而导致图像发生畸变时,可以使用此选项。

噪音

 

它通过对所有通道的每个像素乘以一个随机值来应用噪音。随机值在 0 到 2 范围内遵循均匀分布。
当光学设备品质降低而导致图像畸变或被灰尘污染时,可以使用此选项。

Note: 所有训练图像都可以应用于扰动。每个训练图像都有 50% 的机会被独立地增加到每个选中的选项。
根据大数定律,所有扰动选项都可以平等地应用,并且可以通过增加 Epoch 数进行训练。

 

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

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

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

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

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

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

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

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

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

已禁用

已启用

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

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

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

    1. 低精度、简单区域

  3. 其他不可逆参数

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

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

Note: 仅对于高细节(绿色分类和红色分析)和高细节快速模式(绿色分类),如果您中止当前训练并选择保存工具,则单击恢复参数将恢复此保存工具的参数值。如果不选择保存工具,单击恢复参数将恢复当前初始化训练前已完成训练的参数值。

 

控制神经网络训练

可以通过配置工具参数和训练集来控制红色分析高细节的训练。

 

训练集

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

 

验证集和验证损失

训练集的使用对所有工具来说都是通用的,但高细节工具有另一个称为“验证集”或“验证数据”的数据集,它是训练集的一部分,其数据量由用户选择。对于高细节模式,在训练阶段为每个模型计算验证损失(=从验证数据计算的损失),最终选择在性能和可用性方面给出最佳验证损失的模型作为训练结果。

验证数据的目的是在从训练数据生成的众多神经网络模型中选择最佳模型作为训练的最终输出。采用验证数据来实现这一目标的训练策略在这里称为“带验证的训练”。与聚焦模式工具不同,高细节模式工具(绿色分类高细节模式和红色分析高细节模式)为训练提供验证,您可以通过监控验证损失来控制网络训练。在训练期间的每 1/8 时期结束时,神经网络会根据您之前配置的验证集计算损失值。

验证损失表示经过训练的网络在分类(绿色分类高细节模式)或分割(红色分析高细节模式)准确性方面的性能,也就是说,损失越小通常意味着网络越好。因此,最好让值接近于 0。红色分析高细节模式的验证损失是按像素计算的,因为分割(即“良好”或“缺陷”的二元分类)是在每个像素上执行的。但是,为了全面了解网络的真正表现如何,您必须针对一些单独的数据(测试数据)测试经过训练的网络,以防止过度拟合。

 

验证损失 (从 0 到 1)

  • 1 - IOU

 

IOU (单位:%)

  • IOU 是并集的交集,用于测量预测面积与真值的相等程度。计算 IOU 的公式为:

    (真值面积 ∩ 预测面积) / (真值面积 ∪ 预测面积)

Tip: 可以使用损失检查器 在每个高细节模式的训练中监控验证损失的变化。
Note: 有关如何加速训练或处理的信息,请参阅 优化速度
Note: 有关训练和处理的一般提示和技巧,请参阅应用设计