在没有机器学习或设备特定部署的先验知识的情况下,可以将计算机视觉模型部署到各种设备和环境中。推理支持运行微调的对象检测、分类和实例分割模型,以及运行基础模型(CLIP和SAM)。以下模型和架构可以使用推理进行服务:
YOLOv5(对象检测、分类、分割)、YOLOv7(分割)、YOLOv8(对象检测、分类、分割)、CLIP、SAM。推理可以在两个命令中跨环境部署,从NVIDIA GPU设备到装有ARM CPU的计算机。使用推理,可以通过HTTP和UDP接口运行模型。这消除了在应用程序中直接编写特定于模型的推理代码的需要。
在本指南中,将介绍如何将计算机视觉模型部署到GCP Compute Engine上,使用RoboflowInference。将部署一台计算机在GCP上,并介绍如何将Roboflow Inference与模型一起设置。推理可以免费使用。更高级的功能,如设备管理,可通过Roboflow企业许可证获得。持有Roboflow企业许可证的用户还可以访问现场工程师,他们可以协助集成和基准测试。
要按照本指南操作,将需要:
推理支持部署在Roboflow上训练的模型和基础模型,如SAM和CLIP。在本指南中,将介绍如何在Roboflow上训练的模型上运行推理。如果还没有在Roboflow上训练的模型,请查看Roboflow入门指南。入门指南展示了如何在Roboflow上标记图像和训练模型。
打开Google Cloud Platform并搜索“Compute Engine”:打开Compute Engine并点击“创建实例”按钮以创建虚拟机。接下来,需要配置实例。配置要求取决于用例。如果正在为生产部署服务器,可能会选择更强大的机器配置。如果正在测试模型并计划将来在另一台机器上部署,可能会选择部署一台功能较弱的机器。
可以在CPU和GPU设备上部署Roboflow Inference。建议在GPU上部署以获得最佳性能。但是,GPU设备运行成本最高,并且使用GPU有额外的设置。在本指南中,将重点关注CPU。屏幕上右侧将出现一个成本面板,估计正在部署的机器的成本。填写必填字段以配置虚拟机。然后,点击“创建”按钮创建虚拟机。机器准备就绪需要一些时间。可以从Compute Engine实例页面查看状态:
当虚拟机部署完成后,点击Compute Engine实例页面上的虚拟机列表中的机器名称。对于本指南,将使用终端中的SSH登录到虚拟机。如果更喜欢,也可以通过GCP Web界面进行SSH。要使用终端中的SSH登录,请点击SSH按钮旁边的箭头,然后点击“查看gcloud命令”。如果尚未安装gcloud,请按照gcloud安装和配置说明进行操作以开始。安装gcloud后,运行GCP提供的命令。命令看起来像这样:
gcloud compute ssh --zone "europe-north1-a" "inference" --project "your-project-name"
运行命令后,将打开一个终端,可以在其中部署模型。
现在有了一台准备好的虚拟机,可以安装RoboflowInference。在本指南中,正在CPU机器上部署。因此,将介绍CPU安装说明。如果正在NVIDIA GPU上部署,请参考Roboflow Inference Docker安装说明以安装推理。无论使用GPU还是CPU,安装推理都有三个步骤:
Docker安装说明因操作系统而异。要找出机器使用的操作系统,运行以下命令:
lsb_release -a
将看到类似这样的输出:
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye
在这个例子中,正在Debian机器上部署。因此,需要按照Debian Docker安装说明进行。按照机器的Docker安装说明进行。安装Docker后,可以安装推理。以下是在CPU上安装推理的命令:
docker pull roboflow/roboflow-inference-server-cpu
将看到显示下载Docker容器状态的交互式输出。Docker容器下载完成后,可以使用以下命令运行推理:
docker run --network=host roboflow/roboflow-inference-server-cpu:latest
默认情况下,推理部署在http://localhost:9001。
推理在本地运行模型。因此,需要下载模型并将其加载到推理中,然后才能使用模型。模型下载和加载在第一次对新模型进行Web请求时自动进行。如果正在部署托管在Roboflow上的模型,请转到Roboflow仪表板并选择项目。然后,在项目的侧边栏中点击“版本”链接。在这个指南中,将部署一个建筑工地安全模型。
接下来,创建一个新的Python文件并添加以下代码:
import requests
dataset_id = ""
version_id = "1"
image_url = ""
api_key = "ROBOFLOW_API_KEY"
confidence = 0.5
url = f"http://localhost:9001/{dataset_id}/{version_id}"
params = {
"api_key": api_key,
"confidence": confidence,
"image": image_url,
}
res = requests.post(url, params=params)
print(res.json())
在上述代码中,用之前打开的版本页面上可用的信息替换以下值:
了解如何检索Roboflow API密钥。当替换了必要的值后,运行Python脚本。第一个请求将需要一些时间来处理,因为模型将被下载到推理中。模型下载后,推理将使用下载的模型处理请求。
现在已经在机器上配置了推理,下一步是设置一个Web服务器,如nginx,以便能够从不同的机器查询推理端点。所有请求都使用Roboflow API密钥进行身份验证。或者,可以将模型部署为VPC的一部分,以便只有某些系统可以查询推理服务器。推理旨在高性能设置。Roboflow使用推理为在Roboflow上部署的超过50,000个模型提供动力,为世界上一些最大的企业提供视觉部署需求。
有了Roboflow Inference企业许可证,可以访问额外的推理功能,包括:
联系Roboflow销售团队了解更多关于Roboflow企业产品的信息。当准备好开始编写使用模型的逻辑时,请查看监督。监督是一个开源Python包,提供了一系列用于构建计算机视觉应用程序的实用工具。监督由Roboflow团队积极维护。使用监督,可以: