部署Hugging Face计算机视觉模型至Roboflow

在本文中,将探讨如何将Hugging Face托管的计算机视觉模型部署到边缘或私有云上。将以部署一个Ultralytics YOLOv8模型为例,展示整个过程。Roboflow支持多种视觉模型架构,包括但不限于YOLOv5、YOLOv7、YOLOv8和YOLOv9等。

支持的模型权重

截至目前,Roboflow支持多种视觉模型架构,包括但不限于:

  • YOLOv5(n, s, m, l, x)目标检测和实例分割
  • YOLOv7 实例分割(yolov7-seg)
  • YOLOv8(n, s, m, l, x)目标检测、实例分割、分类和关键点检测
  • YOLOv9(n, s, m, l, x)目标检测
  • YOLOv10(n, s, m, l, x)目标检测

本指南将展示如何将UltralyticsYOLOv8模型部署到Roboflow。如需查看可以上传到Roboflow的完整模型列表,请参考Roboflow文档中的“权重上传”功能。

步骤1:从Hugging Face选择模型

访问Hugging Face并找到需要的模型权重。模型应该附带权重或训练文件。本教程中,将使用Hugging Face上的默认UltralyticsYOLOv8权重。

为了从Hugging Face导出模型,需要安装Git和Git-LFS。Git-LFS允许下载较大的git文件,这对于下载权重是必需的。

在Mac上下载git:

brew install git (必须已安装brew) brew install git-lfs (必须已安装brew)

在Linux Ubuntu/Debian上下载git:

sudo apt install git sudo apt install git-lfs

在Fedora上下载git:

sudo dnf install git sudo dnf install git-lfs

使用git,可以下载模型权重。使用选择的模型链接,命令格式如下:

git clone https://huggingface.co/<user>/<model>

以下是需要运行的命令,以下载本指南中使用的模型权重:

git clone https://huggingface.co/Ultralytics/YOLOv8/

然后将在本地拥有权重,准备使用。

步骤4:上传数据集和模型到Roboflow

要将模型上传到Roboflow,需要在账户中拥有与模型相关联的数据集。可以上传超过一打支持格式的注释或原始计算机视觉数据。

请查看支持的上传格式列表。

转到工作区并创建一个项目。自定义项目名称和注释组为选择。如果想遵循本指南,请确保创建一个目标检测项目。

接下来,将图像添加到数据集中。使用了一个用于检测铁轨附近人类的数据集。如果需要注释图像,可以在Roboflow中进行。Roboflow提供了一套广泛的工具用于图像注释。

了解更多关于Roboflow的注释工具。

现在已经拥有注释和图像,可以生成标记图像的数据集版本。每个版本都是唯一的,并与训练模型相关联,因此可以迭代增强和数据实验。

所有模型都与数据集版本相关联。一旦有了数据集版本,就可以上传与数据集相关的模型权重。现在有了数据集,可以上传相关的模型权重并部署模型。

步骤5:上传模型权重

在克隆的Hugging Face文件中,应该看到一个以“pt”结尾的文件。这是模型。

首先,转到版本标签并点击自定义训练和上传。

接下来,选择想要的数据类型。每个模型都训练在不同的数据类型上。因此,需要指定需要的数据类型。在情况下,需要YOLOv8。选择YOLOv8后,点击获取代码片段。

将代码复制并粘贴到喜欢的IDE中。

接下来,为了部署模型,使用.deploy方法并指定模型路径以及数据集版本。

from roboflow import Roboflow rf = Roboflow(api_key="API_KEY") project = rf.workspace("nathan-yan").project("project-id") project.version(VERSION).deploy(model_type="yolov8", model_path=f"content/runs/detect/train/")

代码的输出应该类似于此:

Roboflow处理模型权重需要几分钟时间。可以在Roboflow仪表板中检查部署状态。当模型准备好后,将在Roboflow仪表板中看到一个交互式的可视化页面,可以从中测试模型。要导航到页面,请点击仪表板上的可视化。

要使用代码部署模型,请转到仪表板中的部署页面,并使用推理部署模型。接下来,需要安装推理和监督,以便部署有效的模型。

!pip install inference supervision

复制并粘贴推理部署代码,并确保将图像路径替换为测试图像。

from inference_sdk import InferenceHTTPClient CLIENT = InferenceHTTPClient(          api_url="https://detect.roboflow.com",          api_key="API_KEY"    ) result = CLIENT.infer("IMAGE_PATH", model_id="humans-m1zdv/7")

将使用此图像作为当前的测试图像。最后,通过将图像路径转换为图像,并使用边界框注释显示检测结果。

from PIL import Image import supervision as sv image_path = "IMAGE_PATH" image = Image.open(image_path) detections = sv.Detections.from_inference(result) annotated_image = sv.BoxAnnotator().annotate(          scene=image.copy(), detections=detections    ) annotated_image = sv.LabelAnnotator().annotate(          scene=annotated_image, detections=detections    ) sv.plot_image(annotated_image)

结论:可以将使用支持的架构训练的计算机视觉模型部署Roboflow从Hugging Face。例如,可以将YOLOv8目标检测模型上传到Robfolow。然后,该模型可以与Roboflow推理一起部署,这是一个高性能的计算机视觉推理服务器。

通过遵循本教程中概述的步骤,可以将Hugging Face模型部署到边缘或自己的私有云中,用于实时目标检测系统。

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