项目介绍
Roboflow Inference 是一个开源平台,旨在简化计算机视觉模型的部署。它支持开发人员进行目标检测、分类和实例分割,并利用基础模型,如 CLIP、Segment Anything 以及 YOLO-World。开发者可以通过 Python 原生包、自托管推理服务器或完整管理的 API 来使用这些功能。
安装指南
要使用 Inference 包,用户需要安装 Python 版本 3.8 到 3.11。用户可以通过以下命令安装 Inference 包:
pip install inference
在硬件方面,用户可以通过安装 CUDA 兼容的依赖项来提高模型在 GPU 加速环境中的性能:
pip install inference-gpu
对于特定模型的依赖项,可以执行以下命令:
pip install inference[yolo-world]
快速入门
Inference SDK 可以在本地运行模型,仅需几行代码。输入图像可以是 URL、numpy 数组(BGR)或 PIL 图像。
from inference import get_model
model = get_model(model_id="yolov8n-640")
results = model.infer("https://media.roboflow.com/inference/people-walking.jpg")
用户可以设置 ROBOFLOW_API_KEY
来访问由 Roboflow Universe 社区共享的数以千计的精细化模型和自定义模型。
基础模型使用
- CLIP 嵌入可用于生成文本和图像嵌入,可以用于零样本分类或评估图像相似性。
- Segment Anything可以分割图像中所有可见对象或与选定点和框相关的对象。
- YOLO-World几乎实时零样本检测器,能够检测未经过训练的任何对象。
推理服务器
推理服务器通过 Docker 进行分发,适合不同硬件环境。可以通过以下命令启动推理服务器:
inference server start
用户可以通过 Inference SDK 中的 HTTP 客户端使用推理服务器进行预测。
from inference_sdk import InferenceHTTPClient
client = InferenceHTTPClient(
api_url="http://localhost:9001",
api_key=<ROBOFLOW_API_KEY>
)
with client.use_model(model_id="soccer-players-5fuqs/1"):
predictions = client.infer("https://media.roboflow.com/inference/soccer.jpg")
推理管道
推理管道是一种处理静态视频文件和流的高效方法。它允许用户选择模型、定义视频源和设置回调动作。
from inference import InferencePipeline
from inference.core.interfaces.stream.sinks import render_boxes
pipeline = InferencePipeline.init(
model_id="yolov8x-1280",
video_reference="https://media.roboflow.com/inference/people-walking.mp4",
on_prediction=render_boxes
)
pipeline.start()
pipeline.join()
API 密钥
Inference 可以在没有 API 密钥的情况下部署各种预训练和基础模型。若需访问 Roboflow Universe 社区分享的精细化模型,用户需配置 API 密钥:
export ROBOFLOW_API_KEY=<YOUR_API_KEY>
文档和许可证
用户可以查阅官方文档以探索全面的指南、详细的 API 参考和丰富的教程。此外,关于 Roboflow Inference 的许可证信息可以查阅 Roboflow Licensing 文档中的“自托管和边缘部署”部分。
贡献
Roboflow 欢迎用户贡献力量来改进 Inference 平台。用户可以参考贡献指南开始贡献。
Roboflow Inference 是一个强大且灵活的工具,为开发人员带来了极大的便利和效率,尤其在计算机视觉应用领域有着广泛的应用场景。