跳到主要内容

训练自定义检测器模型

使用 Roboflow、Google Colab 和您自己的数据集,您可以快速为 Limelight 训练自定义检测器模型。

以下是您需要执行的步骤概述:

  • 收集并标注感兴趣对象的图像。
    • 在此上下文中,"标注"是指在感兴趣对象周围绘制边界框的过程。所有这些都可以在 Roboflow 的网页界面中完成。
    • 或者,您可以从 Roboflow Universe 选择公共数据集
  • 将标注的数据集导出为 .tfrecord,上传到 Google Drive,并使用我们免费的训练 Notebook 配合 Google Colab。
    • Google Colab 允许您免费使用云端强大的 GPU 训练神经网络。

教程:

1. 数据集

Limelight 训练 Notebook 需要一个压缩的 .tfrecord 数据集。Roboflow 可以一键导出 .tfrecord 压缩包。

您可以使用 Roboflow 构建自己的数据集,或浏览 Roboflow Universe 获取预标注的数据集。

如果您选择构建自己的数据集,请阅读以下内容:

  • 您应该最大化数据集的多样性。数据集的多样性应该超过 Limelight 部署后将看到的内容的多样性。

  • 数据集的质量和准确性极其重要。确保您的边界框准确并遵循统一的约定。 例如,部分被遮挡对象的边界框应该只捕获对象的可见部分。

  • 类别标签使用全小写字母

  • 尽量减少类别标签的数量。

  • 利用 Roboflow 的数据增强功能,但确保它们合理。例如,如果您正在检测红色和蓝色球,请确保在增强数据集中不要反转或大幅修改色调。

标注或找到数据集后,使用 Roboflow 的"Download Dataset"按钮将其导出为 Tensorflow TFRecord。将此压缩包上传到您的 Google Drive。

2. 训练模型

要训练您的自定义检测器,请使用 Limelight Detector Training Notebook 启动 Google Colab 会话。

该 Notebook 不需要任何代码更改。按照以下步骤训练您的模型:

第 1 节

  1. 展开第一节,点击前三个代码块左上角的播放按钮。最后的"testing"代码块可以跳过以节省时间。
LL4 Technical Drawing
  1. 如果您看到重启按钮,请忽略它。
LL4 Technical Drawing
  1. 如果您看到这样的窗口,请点击"Cancel"
LL4 Technical Drawing

第 1.1 节

  1. 展开该节,运行第一个代码块,然后输入您的 tfrecord.zip 文件的 Google Drive 链接。确保您的 tfrecord.zip 在 Google Drive 中设置为"知道链接的任何人"可访问

第 2 节

  1. 运行两个代码块来解压和解析 tfrecord.zip

第 3 节

  1. 运行第 3 节中的所有代码块以准备训练

第 4 节

  1. 运行第 4 节中的所有代码块以开始训练。

  2. 在训练脚本运行时,您可以刷新文件面板和 tensorboard 来监控进度。每 2000 步会在"training_progress"文件夹中出现一个新的检查点。

  3. 虽然训练会在 40000 步时自动停止,但您可以随时使用本节最后一个代码块中的停止按钮来停止它。只要有可用的检查点,您就可以继续进行量化和编译。

第 5-7 节

  1. 运行第 5 节中的所有代码块以生成标签文件并将模型转换为兼容的 FlatBuffer 格式
  2. 运行第 6 节中的所有代码块以将模型量化为 INT8 / 8位推理。
  3. 运行第 7 节中的所有代码块以为 Google Coral 和 Limelight 准备模型。最后一个代码块需要一些时间,它会将训练好的模型下载为 .zip 文件。

上传到 Limelight

  1. 解压来自 Colab 会话的压缩包。
  2. FTC 团队 - 如果您有 Limelight3A,请上传 8bit tflite 模型和 labels.txt。您需要将运行时引擎从"coral"更改为"cpu"
  3. FRC 团队 - 如果您有 Google Coral,请将 limelight_neural_detector_coral.tflite 和 labels.txt 文件上传到您的 Limelight。