跳到主要内容

训练自定义检测器模型

通过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检测器训练Notebook启动Google Colab会话。

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

第1部分

  1. 展开第一部分,并点击前三个代码块左上角的播放按钮。最后的"测试"代码块可以跳过以节省时间。
LL4 Technical Drawing
  1. 如果您看到重启按钮,请忽略它。
LL4 Technical Drawing
  1. 如果您看到类似这样的窗口,请点击"取消"
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,上传8位tflite模型和labels.txt。您需要将运行时引擎从"coral"更改为"cpu"
  3. FRC团队 - 如果您有Google Coral,将limelight_neural_detector_coral.tflite和labels.txt文件上传到您的Limelight。