训练自定义检测器模型
使用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部分
- 展开第一部分,点击前三个代码块左上角的播放按钮。最后的"测试"代码块可以跳过以节省时间。
第2部分
-
展开第二部分。点击第一个代码块的播放按钮,将您的Google Drive文件夹挂载到Colab会话的"Files"窗格中。通过点击屏幕左侧的文件夹按钮打开文件窗格。
-
一旦您的Google Drive挂载完成,点击"Files"窗格中的刷新按钮。运行本部分的第二个代码块以选择您已上传到gdrive文件夹中的.tfrecord.zip文件。找到该文件,并点击"select"按钮。
-
运行接下来的两个代码块以解压缩并验证TFRecord。
第3部分
- 运行第3部分的所有代码块以准备训练
第4部分
-
运行第4部分的所有代码块以开始训练。
-
在训练脚本运行时,您可以刷新文件窗格和tensorboard来监控进度。每2000步应该会在"training_progress"文件夹中出现一个新的检查点。
-
虽然训练将在40000步自动停止,但您可以随时使用本部分最后一个代码块中的停止按钮停止训练。只要有检查点可用,您就可以继续进行量化和编译。
第5-7部分
- 运行第5部分的所有代码块以生成标签文件并将模型转换为兼容的FlatBuffer格式
- 运行第6部分的所有代码块以将模型量化为INT8 / 8位推理。
- 运 行第7部分的所有代码块以准备模型用于Google Coral和Limelight。最后的代码块将需要一些时间,它会将训练好的模型下载为.zip文件。
上传到Limelight
- 解压您的Colab会话中的压缩包。
- FTC团队 - 如果您有Limelight3A,上传8位tflite模型和labels.txt。您需要将运行时引擎从"coral"更改为"cpu"
- FRC团队 - 如果您有Google Coral,将limelight_neural_detector_coral.tflite和labels.txt文件上传到您的Limelight。