AI 训练

AI Builder 中的 AI 训练过程涉及使用在步骤 1 - 数据记录器中生成的合成数据来微调预训练的 AI 模型。虽然 AI Builder 提供了与 YOLO (You Only Look Once) 的内置集成用于实时对象检测,但训练管道设计灵活,可与多种 AI 框架和训练方法配合使用。

前置条件

  • realvirtual.io 许可证:需要 realvirtual.io Starter 或 Professional 版本
  • Unity 6:Unity 6000.0.28f1 或更高版本
  • Ultralytics YOLO 管道:可通过 AI Builder 界面自动安装

YOLO 集成和许可

在开始训练会话之前,您需要安装我们的 Ultralytics 管道。在 Select Step 2 - Training 的 Inspector 中,只需点击安装 Ultralytics pipeline 按钮。该管道是开源的,发布在我们的 GitHub 上。

⚠️

重要许可声明

YOLO 集成使用 Ultralytics YOLO,其许可协议为 AGPL-3.0。这意味着:

* 开源使用:在 AGPL-3.0 下开源项目可免费使用

* 商业使用:需要仔细审查许可条款

* 分发:使用此集成的任何软件都必须遵守 AGPL-3.0 要求

有关商业许可选项,请查看 Ultralytics 许可条款 或直接联系 Ultralytics。

详细信息请参见 Ultralytics YOLO 文档。

训练管道灵活性

AI Builder 支持多种训练方法:

内置 YOLO 集成

  • 一键训练:集成的 YOLO 管道可立即进行对象检测模型训练
  • 多种模型尺寸:支持 Nano、Small、Medium、Large 和 XLarge YOLO 变体
  • 自动配置:针对工业场景优化的预配置训练参数

自定义训练管道

AI Builder 生成的合成训练数据可用于外部训练框架:

  • 标准导出格式:训练数据以行业标准格式导出(图片 + 标注)
  • 框架兼容性:兼容 TensorFlow、PyTorch、Detectron2 及其他机器学习框架
  • 云端训练:数据可导出到基于云的 AI 训练服务
  • 自定义工作流程:开发者可以集成自己的训练管道和方法论

概述

执行 AI 训练:

  1. AI Builder 下选择 Step 2 - Training
  2. 使用在步骤 1 - 数据记录器(生成 AI 训练数据)中生成的合成数据进行训练。内置训练微调预训练的 YOLO 模型,可选择适合不同应用的不同模型尺寸。
  3. 或者,导出生成的训练数据用于您偏好的 AI 训练框架。
AI 训练

AI 训练属性

AI Training 组件有几个关键参数和设置,必须配置才能启动训练过程:

  • Data Folder

指定存储记录的训练数据的文件夹路径。该文件夹应包含在步骤 1 期间生成的图像和标注。这些文件用作训练过程的输入。

  • Base Model

允许选择一个 YOLO 预训练模型作为训练的起点。可以根据应用需求选择不同的模型尺寸。选项包括:

  1. Nano
    • 描述:Nano 模型是 YOLO 中最小的、最轻量的版本。它具有最少的层数和参数,使其在计算能力有限的设备(如嵌入式系统或移动设备)上进行实时推理时效率极高。
    • 用例:适用于速度至关重要且硬件资源受限的应用。适合低功耗设备、实时应用或仅需要基本对象检测的场景。
    • 性能:推理时间最快,但与较大模型相比精度较低。
    • Small
    • 描述:Small 模型比 Nano 版本稍大,具有更多的层数和参数,以改善检测精度。它仍然保持相对较低的计算占用,适用于需要在速度和精度之间取得平衡的场景。
    • Use Case:适用于需要实时检测但可以比 Nano 承受稍多计算负载的边缘设备。对于无人机或工业机器人等设备上的中等复杂任务,这是一个很好的选择。
    • 性能:比大型模型更快,精度相比 Nano 有中等提升。
    • Medium
    • 描述:Medium 模型通过使用具有更多参数的更大网络,在精度上提供更显著的改进。它比 Nano 和 Small 需要更多的处理能力,但对于通用任务来说,在性能和精度之间提供了更好的平衡。
    • Use Case:适用于桌面 GPU 或强大的嵌入式设备,这些设备仍然需要实时性能但具有更高的精度需求。非常适合自动化质量检测或监控等应用。
    • 性能:在速度和检测精度之间提供良好的折中。
    • Large
    • 描述:Large 模型是 YOLO 的一个更复杂版本,具有显著更多的层数和参数。它专为检测精度至关重要但可能需要牺牲一些实时性能的场景而设计。
    • Use Case:适用于具有强大 GPU 的系统,其中高精度至关重要,如医学成像、自动驾驶或详细的工业检测任务。
    • 性能:比 Medium 精度更高,但需要更多计算资源且推理时间较慢。
    • XLarge
    • 描述:XLarge 模型是 YOLO 中最大、最强大的版本,具有最多的层数和参数。它以增加的计算需求为代价提供最佳的检测精度。
    • Use Case:适用于服务器级硬件或基于云的 AI 服务,其中最高精度是首要任务,而实时性能不太受关注。适合复杂任务,如高分辨率视频分析、研究或需要细粒度对象检测的场景。
    • 性能:最准确的模型,但由于其复杂性,推理速度最慢。

基础模型摘要表

Model尺寸和复杂度推理速度精度Use Case
Nano非常小最快较低低功耗设备,基本实时任务
Small更快中等边缘设备,中等复杂任务
Medium中等均衡良好通用,桌面 GPU
Large较慢高精度任务,强大 GPU
XLarge非常大最慢最高最高精度,服务器或云端
  • Model Name

分配给正在创建和训练的新模型的名称。用于在系统中识别模型,特别是在管理多个训练会话时。

  • Epochs

指定训练 epoch 的数量。一个 epoch 代表完整遍历一次整个训练数据集。增加 epoch 数量可能会改善模型性能,但也会增加训练时间。通常,根据您的视觉任务,应选择 30 到 200 之间的 epoch 数。

启动训练

  1. 选择数据文件夹

设置包含在步骤 1 中生成的合成数据的文件夹路径。

  1. 配置模型
    • 选择适合您需求的 Base Model(YOLO 变体)。
    • 提供一个 Model Name 以便于识别。
    • 设置所需的训练 Epochs 数量。
    • 开始训练

点击 Start New Session 开始训练过程。AI 模型将使用指定的设置进行训练,每个 epoch 更新其参数以改善在给定数据集上的性能。

训练过程中

当训练过程开始时,一个 Windows 命令行窗口将打开,显示训练会话的进度。

ℹ️

第一个训练 epoch 开始可能需要一些时间,因为系统需要准备数据并初始化模型。

训练期间显示训练状态的命令行

在训练期间进行更高级的分析,您可以使用 TensorBoard 监控各种指标。TensorBoard 是一个强大的可视化工具,通过显示以下内容提供对模型性能的洞察:

  • Loss 和 Accuracy 图表:显示模型损失随时间的下降以及精度随时间的提高,有助于评估模型是否在学习。
  • Scalars:提供数值数据,如训练速度、内存使用和其他自定义指标。
  • Histograms 和 Distributions:可视化模型中权重和偏差的分布,指示这些参数在训练过程中如何变化。
  • Graphs:显示计算图,有助于理解神经网络的结构和数据流。

请注意,TensorBoard 在训练过程中不会自动刷新数据。要查看最新更新,您需要定期重启 TensorBoard 以获取刷新后的统计数据。

有关如何使用 TensorBoard 及其各种功能的更多详细信息,请参考 TensorBoard 文档

显示训练统计的 Tensorboard

训练之后

训练完成后,您将在 "ONNX" 文件夹中找到结果。每个训练好的模型将存储在其自己的子文件夹中,包含训练好的 ONNX 模型和相关文件。这个 ONNX 模型现在可以在后续步骤中使用,例如部署到 Unity 应用程序中或导出到外部推理系统使用。

TensorBoard 也可以在训练后使用,�更彻底地分析结果,提供有关模型最终性能的洞察以及可能需要额外调优或重新训练的领域。

另请参阅