跳至内容

Roboflow

Roboflow拥有构建和部署计算机视觉模型所需的一切。利用应用程序接口(API)和软件开发工具包(SDK),您可以在管道中的任何步骤连接Roboflow ,也可以使用端到端接口自动完成从图像到推理的整个过程。无论您需要数据标注模型训练还是模型部署,Roboflow 都能为您提供构建模块,为您的项目提供定制的计算机视觉解决方案。

许可

Ultralytics 提供两种许可选项:

更多详情,请参阅Ultralytics Licensing

在本指南中,我们将展示如何查找、标记和组织数据,以用于训练自定义Ultralytics YOLOv8 模型。请使用下面的目录直接跳转到特定章节:

  • 收集数据用于训练自定义YOLOv8 模型
  • 为YOLOv8 格式上传、转换和标注数据
  • 预处理和扩充数据,提高模型的稳健性
  • 数据集管理 YOLOv8
  • 以 40 多种格式导出数据,用于模型训练
  • 上传自定义YOLOv8 模型权重,以便测试和部署
  • 为训练自定义YOLOv8 模型收集数据

Roboflow 提供了两种服务,可帮助您为YOLOv8 模型收集数据:UniverseCollect

Universe 是一个在线存储库,拥有超过 25 万个视觉数据集,总计超过 1 亿张图像。

Roboflow 宇宙

通过 Roboflow 免费账户,您可以导出 Universe 上的任何数据集。要导出数据集,请点击任何数据集上的 "下载此数据集 "按钮。

Roboflow 导出宇宙数据集

对于YOLOv8 ,选择 "YOLOv8"作为导出格式:

Roboflow 导出宇宙数据集

Universe 还有一个页面,汇集了上传到Roboflow 的所有公开的微调YOLOv8 模型。您可以使用该页面探索预训练模型,用于测试或自动数据标注,或使用Roboflow 推理进行原型设计。

如果你想自己收集图像,可以试试Collect,这是一个开源项目,允许你使用边缘网络摄像头自动收集图像。您可以使用 Collect 的文本或图像提示来指示应该收集哪些数据,这样您就可以只捕捉建立视觉模型所需的有用数据。

为YOLOv8 格式上传、转换和标注数据

Roboflow Annotate是一款在线注释工具,用于标注图像,以便进行对象检测、分类和分割。

要为YOLOv8 对象检测、实例分割或分类模型标注数据,首先要在Roboflow 中创建一个项目。

创建Roboflow 项目

然后,将图像和其他工具中已有的注释(使用 40 多种支持的导入格式之一)上传到Roboflow 。

上传图片至Roboflow

在 "注释 "页面上选择您上传的一批图像,上传图像后会进入该页面。然后,点击 "开始注释",为图片贴标签。

要使用边界框标注,请按 B 键或单击侧边栏中的方框图标。单击要开始创建边界框的点,然后拖动创建框:

在Roboflow

创建注释后,弹出窗口会要求您为注释选择一个类。

要使用多边形标注,按 P 键,或侧边栏中的多边形图标。启用多边形注释工具后,单击图像中的各个点即可绘制多边形。

Roboflow 提供了一个基于SAM 的标签助手,您可以用它以前所未有的速度对图像进行标注。SAM (Segment Anything Model)是一种先进的计算机视觉模型,可以精确地为图像贴标签。有了SAM ,您可以大大加快图像标注过程。用多边形标注图像变得简单,只需点击几下即可,而无需再精确点击物体周围的点。

要使用标签助手,请单击侧边栏中的光标图标,SAM ,即可在项目中使用。

使用SAM-powered 标签辅助工具在Roboflow 中注释图像

将鼠标悬停在图像中的任何对象上,SAM 就会推荐注释。您可以通过鼠标悬停来找到合适的注释位置,然后点击即可创建注释。要修改注释的具体内容,可以点击SAM 在文档上创建的注释的内部或外部。

您还可以通过侧边栏的标签面板为图像添加标签。您可以为特定区域的数据、特定相机拍摄的数据等添加标签。然后,您可以使用这些标签在数据中搜索与标签匹配的图像,并生成包含特定标签或标签集的数据集版本。

在Roboflow

托管在Roboflow 上的模型可与标签辅助工具(Label Assist)一起使用,后者是一种自动注释工具,可使用您的YOLOv8 模型来推荐注释。要使用标签辅助工具,首先要将YOLOv8 模型上传到Roboflow (请参阅本指南后面的说明)。然后,单击左侧边栏中的魔棒图标,选择要在标签辅助工具中使用的模型。

选择一个型号,然后点击 "继续 "启用标签辅助功能:

启用标签辅助

打开新图像进行注释时,标签助手会触发并推荐注释。

ALabel 助手推荐注释

数据集管理YOLOv8

Roboflow 提供了一套用于理解计算机视觉数据集的工具。

首先,您可以使用数据集搜索来查找符合语义文本描述(即查找包含人物的所有图像)或符合指定标签(即图像与特定标签相关联)的图像。要使用数据集搜索,请单击侧边栏中的 "数据集"。然后,使用页面顶部的搜索栏和相关筛选器输入搜索查询。

例如,以下文本查询可在数据集中找到包含人物的图像:

搜索图像

您可以使用 "标签 "选择器将搜索范围缩小到带有特定标签的图片:

按标签筛选图片

在开始使用数据集训练模型之前,我们建议您使用Roboflow Health Check,这是一款网络工具,可帮助您深入了解数据集,以及如何在训练视觉模型之前改进数据集。

要使用 "健康检查",请单击 "健康检查 "侧边栏链接。将出现一个统计列表,显示数据集中图像的平均大小、类平衡、图像中注释位置的热图等。

Roboflow 健康检查分析

健康检查可能会建议进行更改,以帮助提高数据集性能。例如,类平衡功能可能会显示标签不平衡,如果解决了这个问题,就能提高性能或模型的性能。

以 40 多种格式导出数据,用于模型培训

要导出数据,您需要一个数据集版本。版本是数据集冻结在时间中的一种状态。要创建版本,首先点击侧边栏中的 "版本"。然后点击 "创建新版本 "按钮。在此页面中,您可以选择应用于数据集的增强和预处理步骤:

创建数据集版本Roboflow

对于您选择的每种增强效果,都会出现一个弹出窗口,让您根据需要调整增强效果。下面是一个在指定参数范围内调整亮度增强功能的示例:

对数据集应用增强功能

数据集版本生成后,您可以将数据导出为一系列格式。点击数据集版本页面上的 "导出数据集 "按钮即可导出数据:

导出数据集

现在,您已准备好在自定义数据集上训练YOLOv8 。请按照本书面指南YouTube 视频中的步骤进行操作,或参考Ultralytics 文档

上传自定义YOLOv8 模型权重,以便测试和部署

Roboflow 为已部署的模型和 SDK 提供了可无限扩展的应用程序接口,可与英伟达 Jetsons、Luxonis OAK、Raspberry Pis 和基于 GPU 的设备等配合使用。

您可以通过将YOLOv8 权重上传到Roboflow 来部署YOLOv8 模型。只需几行Python 代码就可以做到这一点。创建一个新的Python 文件并添加以下代码:

import roboflow  # install with 'pip install roboflow'

roboflow.login()

rf = roboflow.Roboflow()

project = rf.workspace(WORKSPACE_ID).project("football-players-detection-3zvbc")
dataset = project.version(VERSION).download("yolov8")

project.version(dataset.version).deploy(model_type="yolov8", model_path=f"{HOME}/runs/detect/train/")

在此代码中,用您的账户和项目的值替换项目 ID 和版本 ID。了解如何检索Roboflow API 密钥

运行上述代码时,系统会要求您进行身份验证。然后,您的模型将被上传,并为您的项目创建一个 API。这个过程可能需要 30 分钟才能完成。

要测试您的模型并查找受支持 SDK 的部署说明,请访问Roboflow 侧边栏中的 "部署 "选项卡。在该页面顶部会出现一个小工具,您可以使用它来测试您的模型。您可以使用网络摄像头进行实时测试,也可以上传图片或视频。

在示例图像上运行推理

您还可以将上传的模型用作标注助手。该功能使用您训练好的模型对上传到Roboflow 的图像推荐注释。

如何评估YOLOv8 模型

Roboflow 提供了一系列用于评估模型的功能。

一旦将模型上传到Roboflow ,您就可以访问我们的模型评估工具,该工具提供了显示模型性能的混淆矩阵以及交互式矢量分析图。这些功能可以帮助您找到改进模型的机会。

要访问混淆矩阵,请访问Roboflow 面板上的模型页面,然后单击 "查看详细评估":

启动Roboflow 模型评估

弹出窗口显示混淆矩阵:

混淆矩阵

将鼠标悬停在混淆矩阵上的方框上,可查看与该方框相关的值。点击方框可查看相应类别的图像。点击图像可查看与该图像相关的模型预测和地面实况数据。

要了解更多信息,请单击矢量分析。这将显示使用 CLIP 计算出的数据集中图像的散点图。图像在散点图中的距离越近,说明它们在语义上越相似。每张图片都用一个点来表示,颜色介于白色和红色之间。点越红,模型的表现就越差。

矢量分析图

您可以使用矢量分析来

  • 查找图像集群
  • 确定模型表现不佳的群组,并
  • 可视化模型表现不佳的图像之间的共性。

学习资源

想了解有关使用Roboflow 创建YOLOv8 模型的更多信息吗?以下资源可能会对您的工作有所帮助。

  • 在自定义数据集上训练YOLOv8 :我们的互动笔记本将向您展示如何在自定义数据集上训练YOLOv8 模型。
  • Autodistill:使用大型基础视觉模型为特定模型标注数据。您可以使用 Autodistill 对图像进行标注,以用于训练YOLOv8 分类、检测和分割模型。
  • 监督:Python 软件包,其中包含用于计算机视觉模型的实用工具。您可以使用监督功能过滤检测结果、计算混淆矩阵等,所有这些只需几行Python 代码即可完成。
  • Roboflow 博客:Roboflow 博客有 500 多篇关于计算机视觉的文章,涵盖从如何训练YOLOv8 模型到注释最佳实践等主题。
  • Roboflow YouTube 频道:在我们的 YouTube 频道上浏览数十种深入的计算机视觉指南,涵盖从训练YOLOv8 模型到自动图像标注等主题。

项目展示

以下是我们收到的关于使用YOLOv8 和Roboflow 一起创建计算机视觉模型的众多反馈中的几条。

展示图片 展示图片 展示图片



创建于 2023-11-12,更新于 2024-05-08
作者:Burhan-Q(1)、glenn-jocher(8)、capjamesg(1)

评论