YOLOv11 是由 Ultralytics 开发的计算机视觉模型,适用于从对象检测到分割再到分类等多种任务。据 Ultralytics 称,“YOLO11m 在 COCO 数据集上实现了比 YOLOv8m 更高的均值平均精度(mAP)得分,同时使用的参数减少了 22%。” 由于参数更少,模型运行速度更快,因此该模型更适合用于实时计算机视觉应用。
本指南将带了解如何使用自定义数据集训练 YOLOv11对象检测模型。将执行以下步骤:
- 创建带有标记图像的自定义数据集
- 导出数据集以用于模型训练
- 使用 Colab 训练笔记本训练模型
- 使用模型进行推理
以下是使用训练有素的模型识别货运集装箱的预测示例:
# 模型预测示例代码
为提供了一个 YOLOv11 Colab 笔记本,供按照本教程使用。让开始吧!
步骤 #1:创建 Roboflow 项目
要开始,需要以YOLOv11所需的格式准备一个标记数据集。可以使用 Roboflow 来完成。创建一个免费的 Roboflow 账户。创建账户后,在 Roboflow 仪表板上点击“创建新项目”。将被带到一个可以配置项目的页面。
为项目设置一个名称。选择“对象检测”数据集类型:
# 创建项目示例代码
然后,点击“创建项目”以创建项目。
步骤 #2:上传和注释图像
接下来,需要上传数据以用于项目。可以上传标记数据以进行审核或转换为 YOLO PyTorch TXT 格式,或者上传原始图像以在项目中注释。
在本指南中,将训练一个检测货运集装箱的模型。在 Roboflow Universe 上有一个开放的货运集装箱数据集,可以使用。或者,可以使用自己的数据。
将原始或注释图像拖放到上传框中:
# 上传数据示例代码
当拖入数据时,数据将在浏览器中处理。点击“保存并继续”将数据上传到 Roboflow 平台。
有了数据在 Roboflow 中,可以注释图像。
# 注释图像示例代码
要注释一个图像,点击左侧边栏中的“注释”。点击一个图像开始注释。将被带到 Roboflow 注释界面,可以在这里标记数据:
# 标记数据示例代码
要绘制边界框,选择右侧边栏中的边界框标记工具。
# 绘制边界框示例代码
建议使用 Roboflow Smart Polygon 工具来加快标记过程。Smart Polygon 允许使用 SAM-2 基础模型,通过单击即可标记对象。Smart Polygons 在导出数据时会自动转换为对象检测格式。
# 使用 Smart Polygon 工具示例代码
要启用 Label Assist,点击注释界面右侧边栏中的魔术棒图标。选择增强标记选项。
# 启用 Label Assist 示例代码
然后,可以指向任何想要包含在注释中的区域:
# 标记区域示例代码
要扩展一个标签,点击工具选择的区域之外。要细化多边形,点击已注释的区域内。
# 保存注释示例代码
一旦标记了数据集,就可以生成一个数据集版本。数据集版本是数据集的快照,固定在时间点上。可以将预处理和增强数据集应用于版本,允许在不改变底层数据集的情况下尝试预处理和增强。
# 生成数据集版本示例代码
步骤 #4:导出数据
有了数据集版本准备好后,可以导出它以用于训练 YOLO11 模型。
# 导出数据示例代码
步骤 #5:训练 YOLOv11 模型
有了导出的代码片段准备好后,可以开始训练 YOLO11 模型。准备了一个笔记本,可以用它来训练模型。
# 训练模型示例代码
首先,需要安装一些依赖项:
# 安装依赖项示例代码
然后,更新数据集下载部分以使用数据集导出代码片段:
# 更新数据集下载示例代码
接下来,需要对数据集文件进行一些更改以适应 YOLOv11 训练程序:
# 更改数据集文件示例代码
然后,可以使用以下命令训练模型:
# 训练模型命令示例代码
在这里,训练了一个 YOLO11s 模型。如果想训练一个不同大小的模型,将 yolo11s 替换为要使用的基模型权重的 ID。
# 训练模型示例代码
将训练 10 个周期以测试训练。对于想在生产中使用的模型,可能想训练 50-100 个周期。
# 查看混淆矩阵示例代码
然后,可以使用 Ultralytics yolo 命令行界面进行推理:
# 运行推理示例代码
这将在数据集中的 test/images 测试集上的图像上运行推理。此命令将返回所有置信度大于 0.25(25%)的预测。
# 可视化模型结果示例代码
部署
恭喜!已经成功训练了一个 YOLO11 模型。让通过将其部署到 Roboflow 并使用推理来完成。
# 部署模型示例代码
这可能需要几分钟才能完成。完成后,将能够从任何设备访问模型:
# 访问模型示例代码
YOLOv11 是由 Ultralytics 开发的计算机视觉模型,是 YOLOv5 和 YOLOv8 的创造者。可以使用 YOLOv11 训练对象检测、分割、分类等任务的模型。
在本指南中,介绍了如何训练 YOLOv11 模型。在 Roboflow 中准备了数据集,然后以 YOLOv11 PyTorch TXT 格式导出数据集以用于训练模型。在 Google Colab 环境中使用 YOLO11n 权重训练了模型,评估了它在模型测试集上的图像,并将其部署到 Roboflow。
# 完整代码示例