跳至内容

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 提供了可无限扩展的 API,可与NVIDIA 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 一起创建计算机视觉模型的众多反馈中的几条。

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

常见问题

如何使用Roboflow 为YOLOv8 模型标注数据?

通过Roboflow Annotate,可直接使用Roboflow 为YOLOv8 模型标注数据。首先,在Roboflow 上创建一个项目并上传图像。上传后,选择一批图像并点击 "开始标注"。您可以使用 B 键用于边界框或 P 键用于多边形。要加快标注速度,可点击侧边栏中的光标图标,使用基于SAM 的标签助手。详细步骤可参见 这里.

Roboflow 在收集YOLOv8 培训数据方面提供哪些服务?

Roboflow 为收集YOLOv8 培训数据提供了两项关键服务:UniverseCollect。Universe 可以访问超过 25 万个视觉数据集,而 Collect 则可以帮助您使用网络摄像头和自动提示收集图像。

如何使用Roboflow 管理和分析YOLOv8 数据集?

Roboflow 提供强大的数据集管理工具,包括数据集搜索、标记和健康检查。使用搜索功能可根据文本描述或标签查找图像。健康检查可深入了解数据集质量,显示类平衡、图像大小和注释热图。这有助于在训练YOLOv8 模型之前优化数据集性能。详细信息请点击此处

如何从Roboflow 导出YOLOv8 数据集?

要从Roboflow 导出YOLOv8 数据集,您需要创建一个数据集版本。单击侧边栏中的 "版本",然后单击 "创建新版本 "并应用所需的增强功能。版本生成后,单击 "Export Dataset(导出数据集)"并选择YOLOv8 格式。请点击此处

如何将YOLOv8 模型与Roboflow 集成并部署?

通过几行Python 代码上传您的YOLOv8 权重,在Roboflow 上集成和部署YOLOv8 模型。使用提供的脚本验证和上传您的模型,这将创建一个用于部署的 API。有关脚本的详细信息和进一步说明,请参阅本节

Roboflow 为评估YOLOv8 模型提供了哪些工具?

Roboflow 提供模型评估工具,包括混淆矩阵和矢量分析图。通过模型页面上的 "查看详细评估 "按钮访问这些工具。这些功能有助于发现模型性能问题并找到需要改进的地方。有关详细信息,请参阅本节



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

评论