Roboflow提供了多种方式来运行模型推理,包括Python SDK、REST API和命令行界面(CLI)。本文将详细介绍如何使用这些工具来执行模型推理任务。
若要使用Python SDK进行模型推理,首先需要导入Roboflow库,并使用 API 密钥创建一个 Roboflow 实例。然后,可以加载项目和模型,并设置置信度和重叠阈值。最后,可以对本地图像或托管图像进行预测,并以交互式环境展示预测结果或将预测结果转换为 JSON 格式。
import roboflow as rf
# 使用 API 密钥创建 Roboflow 实例
rf = roboflow.Roboflow(api_key="YOUR_API_KEY_HERE")
# 加载项目
project = rf.workspace().project("PROJECT_ID")
# 加载模型
model = project.version("1").model
# 设置置信度和重叠阈值(可选)
model.confidence = 50
model.overlap = 25
# 对本地图像进行预测
prediction = model.predict("YOUR_IMAGE.jpg")
# 对托管图像通过文件名进行预测
prediction = model.predict("YOUR_IMAGE.jpg", hosted=True)
# 对托管图像通过 URL 进行预测
prediction = model.predict("https://...", hosted=True)
# 在交互式环境中绘制预测结果
prediction.plot()
# 将预测结果转换为 JSON 格式
prediction.json()
如果通过容器部署(如 NVIDIA Jetson 或 Raspberry Pi 容器)运行了本地推理服务器,可以通过指定本地运行的推理服务器的 IP 地址来指向该服务器,而不是远程端点。在执行 Python 脚本之前,必须确保本地推理服务器正在运行并且可以进行通信。当使用带有 --net=host 标志的 Docker 容器时,建议通过 localhost 格式进行引用。
local_inference_server_address = "http://localhost:9001/"
version_number = 1
local_model = project.version(version_number=version_number, local=local_inference_server_address).model
REST API提供了不同的端点,取决于想要在其上运行推理的项目类型。以下是针对每种项目类型运行推理的相关文档:对象检测、分类、实例分割和语义分割。
要从CLI运行推理,可以使用以下命令。-m 选项指定了用于推理的模型和版本。如果已经训练了自己的自定义模型,可以替换为自己的模型/版本。这适用于对象检测、分类、实例分割或语义分割模型。有关此 CLI 命令的更多信息,请参考 CLI 文档中的推理部分。
roboflow infer -m <project-name>/<version-number> <image-name>