Roboflow模型部署指南

边缘设备上部署经过验证的概念模型时,如何有效扩展模型部署?如何确保推理API的可靠性?这些问题都可以通过Roboflow Deploy解决。Roboflow提供了一个安全、可无限扩展的API,用于工作流程,并附带SDKs以便于在常见的部署设备上使用。一旦训练了模型,就可以在任何需要的地方获得预测,而无需触及模型架构。模型将自动在任何需要的地方运行。

通过最新发布,可以使用自己的自定义工作流程来训练模型,然后将生成的模型权重上传到基础设施进行部署。此外,对于目标检测和实例分割模型,还可以使用模型为RoboflowAnnotate中的自动注释提供动力。借助这种能力,可以在享受灵活和对训练过程的额外控制的同时,从一套经过现场测试的部署选项和SDKs中受益。

从今天开始,可以使用Roboflow部署以下模型架构:

YOLOv5 Object Detection YOLOv5 Instance Segmentation YOLOv8 Object Detection YOLOv8 Image Segmentation YOLOv8 Classification YOLOv7 Instance Segmentation

本指南将展示如何将这些模型的自定义模型权重上传到Roboflow平台。让开始吧!

在Roboflow上部署自定义权重的好处

在Roboflow上上传自定义权重,可以让在利用基础设施和SDKs减少与部署模型相关的编码、配置、基础设施和开发者操作工作的同时,完全控制训练过程。通过在Roboflow上部署,可以从以下方面受益:

  • 为多个边缘设备提供的现场测试SDK,提供了一种更直观的方式来将模型部署到边缘并将其与后端逻辑集成。
  • 强大且可扩展的API。借助Roboflow的无服务器架构,API将随着增长而扩展,使能够比以往更快地部署到生产环境中,并拥有可靠的基础设施。
  • 模型与计算机视觉工作流程的其余部分集成。使用模型在Roboflow的Label Assist功能中,该功能使用模型的现有版本进行预测并推荐注释。

上传自定义权重到Roboflow

要将自定义权重上传到Roboflow进行部署,需要在Roboflow平台上拥有一个与版本相关联的数据集。“版本”是数据的快照,冻结在某个时间点,可以随时引用。权重将与该数据集版本相关联,并且所有数据集版本都将提供API。

让讨论一下需要遵循的步骤,以将自定义模型权重上传到Roboflow平台。

在本指南中,将使用在Roboflow Universe上可用的建筑工地安全数据集,这是一个拥有超过200,000个开源计算机视觉数据集的存储库。如果还没有用于训练模型的数据集,可以使用免费的Roboflow账户从Roboflow Universe下载数据集。鼓励使用数据集搜索功能探索Universe,以找到满足需求的数据。Universe搜索使用查询来找到语义相似的数据集。

当找到数据集后,点击“下载此数据集”并按照应用程序中的说明下载数据集的ZIP版本。解压缩文件。

接下来,前往Roboflow仪表板并创建一个新项目:

# 假设项目ID是123456 rf = Roboflow(api_key="API密钥") project = rf.workspace().project("123456") project.version("数据集版本号").deploy(model_type="yolov8", model_path="/path/to/your/model/")

如果数据集中包含未注释的图像,可以在Roboflow中注释它们。阅读关于图像注释最佳实践的指南,以获取如何为训练模型准备高质量数据集的建议。注释越准确,模型在生产中的性能就越好。

一旦上传并注释了所有图像,点击Roboflow仪表板侧边栏中的“版本”选项卡。这将带到一个页面,可以在其中查看所有活动的数据集版本并创建新的版本。点击“创建新版本”。

在此页面上,系统会询问是否希望在数据集中的图像添加任何预处理步骤或生成增强图像。默认情况下,页面上会出现一些预处理步骤。除非需要应用其他预处理步骤,否则建议保持这些步骤不变。两个默认步骤——自动定向和调整图像大小——可以提高模型性能。

图像增强功能允许使用数据集中的现有图像生成新图像。每个增强图像至少会应用在仪表板中选择的一个指定增强。这些增强范围从翻转图像到应用模糊效果。

通过添加增强图像,可以帮助模型更有效地学习数据集中的特征,从而提高性能。查看图像增强文档,以获取有关生成增强的指导。(注意:添加更多增强并不总是可取的。应该添加适合数据的增强。)

准备好后,点击“生成”。这将创建数据集的新快照。根据数据集的大小,这可能需要一些时间。

新的数据集准备好后,从Roboflow导出数据。在数据集版本页面的“自定义训练和部署”部分,选择将用于训练的模型。将只看到适合项目类型的模型。

复制提供的代码片段,并使用它下载数据以用于训练脚本。在GitHub上有超过20个笔记本,这些笔记本详细介绍了如何使用常见架构训练计算机视觉模型。查看与使用的模型架构相关的指南,以获取有关如何在训练过程中使用Roboflow API的参考材料。

一旦拥有经过训练的模型,就可以使用以下代码上传它:

project.version("数据集版本号").deploy(model_type="MODEL_TYPE", model_path="/path/to/your/model/")

替换以下值:

  • DATASET_VERSION:与数据集相关联的版本号(可在Roboflow仪表板的版本页面上访问)。
  • MODEL_TYPE:与训练的模型相关的ID。有效的ID可在文档页面的平台操作validFormats对象中找到。
  • HOME:项目文件所在的目录。

如果不使用Roboflow笔记本,请使用此长形式片段:

from roboflow import Roboflow rf = Roboflow(api_key="API密钥") project = rf.workspace().project("项目ID") project.version("数据集版本号").deploy(model_type="yolov8", model_path="/path/to/your/model/")

运行此代码后,权重将上传到Roboflow。上传、处理权重并准备使用可能需要一些时间。当权重被处理后,Roboflow仪表板将显示有训练好的模型可用。将显示一个“模型类型”标签,显示上传的模型权重类型:

测试模型

可以在浏览器中测试模型。导航到Roboflow仪表板中的“部署”选项卡。在此选项卡中,可以通过上传图像和视频、使用测试集中的图像、粘贴图像和YouTube视频的URL,或使用网络摄像头来测试模型:

当准备部署模型时,请查看模型部署文档。以下是对象检测部署文档:

  • NVIDIA Jetson 部署
  • iOS 部署
  • Luxonis OAK 部署
  • Web浏览器部署
  • Raspberry Pi 部署
  • Python SDK 部署
  • Web API 部署

注意:仅支持使用托管API进行分类和分割模型。

在这个博客上有大量的详细教程,介绍了部署。

在本指南中,已经介绍了如何将自定义模型权重上传到Roboflow平台。使用此功能,可以在自己的基础设施上使用自定义设置训练自定义模型,并在准备部署模型时将其上传到Roboflow。

在Roboflow上部署意味着可以减少对管理基础设施的担忧,更多地关注将模型连接到业务逻辑。Roboflow提供了一个无限可扩展的API,用于运行推理,并提供一系列SDK和教程,指导如何将托管的模型用于生产。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485