roboflow / inference

A fast, easy-to-use, production-ready inference server for computer vision supporting deployment of many popular model architectures and fine-tuned models.
https://inference.roboflow.com
Other
1.12k stars 84 forks source link
classification computer-vision deployment docker inference inference-api inference-server instance-segmentation jetson machine-learning object-detection onnx python server tensorrt vit yolact yolov5 yolov7 yolov8


[notebooks](https://github.com/roboflow/notebooks) | [supervision](https://github.com/roboflow/supervision) | [autodistill](https://github.com/autodistill/autodistill) | [maestro](https://github.com/roboflow/multimodal-maestro)
[![version](https://badge.fury.io/py/inference.svg)](https://badge.fury.io/py/inference) [![downloads](https://img.shields.io/pypi/dm/inference)](https://pypistats.org/packages/inference) ![docker pulls](https://img.shields.io/docker/pulls/roboflow/roboflow-inference-server-cpu) [![license](https://img.shields.io/pypi/l/inference)](https://github.com/roboflow/inference/blob/main/LICENSE.md) [![huggingface](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Spaces-blue)](https://huggingface.co/spaces/Roboflow/workflows) [![discord](https://img.shields.io/discord/1159501506232451173)](https://discord.gg/GbfgXGJ8Bk)

πŸ‘‹ hello

Roboflow Inference is an open-source platform designed to simplify the deployment of computer vision models. It enables developers to perform object detection, classification, and instance segmentation and utilize foundation models like CLIP, Segment Anything, and YOLO-World through a Python-native package, a self-hosted inference server, or a fully managed API.

Explore our enterprise options for advanced features like server deployment, device management, active learning, and commercial licenses for YOLOv5 and YOLOv8.

πŸ’» install

Inference package requires Python>=3.8,<=3.11. Click here to learn more about running Inference inside Docker.

pip install inference
πŸ‘‰ additional considerations - hardware Enhance model performance in GPU-accelerated environments by installing CUDA-compatible dependencies. ```bash pip install inference-gpu ``` - models The `inference` and `inference-gpu` packages install only the minimal shared dependencies. Install model-specific dependencies to ensure code compatibility and license compliance. Learn more about the [models](https://inference.roboflow.com/#extras) supported by Inference. ```bash pip install inference[yolo-world] ```

πŸ”₯ quickstart

Use Inference SDK to run models locally with just a few lines of code. The image input can be a URL, a numpy array (BGR), or a PIL image.

from inference import get_model

model = get_model(model_id="yolov8n-640")

results = model.infer("https://media.roboflow.com/inference/people-walking.jpg")
πŸ‘‰ roboflow models
Set up your `ROBOFLOW_API_KEY` to access thousands of fine-tuned models shared by the [Roboflow Universe](https://universe.roboflow.com/) community and your custom model. Navigate to πŸ”‘ keys section to learn more. ```python from inference import get_model model = get_model(model_id="soccer-players-5fuqs/1") results = model.infer( image="https://media.roboflow.com/inference/soccer.jpg", confidence=0.5, iou_threshold=0.5 ) ```
πŸ‘‰ foundational models - [CLIP Embeddings](https://inference.roboflow.com/foundation/clip) - generate text and image embeddings that you can use for zero-shot classification or assessing image similarity. ```python from inference.models import Clip model = Clip() embeddings_text = clip.embed_text("a football match") embeddings_image = model.embed_image("https://media.roboflow.com/inference/soccer.jpg") ``` - [Segment Anything](https://inference.roboflow.com/foundation/sam) - segment all objects visible in the image or only those associated with selected points or boxes. ```python from inference.models import SegmentAnything model = SegmentAnything() result = model.segment_image("https://media.roboflow.com/inference/soccer.jpg") ``` - [YOLO-World](https://inference.roboflow.com/foundation/yolo_world) - an almost real-time zero-shot detector that enables the detection of any objects without any training. ```python from inference.models import YOLOWorld model = YOLOWorld(model_id="yolo_world/l") result = model.infer( image="https://media.roboflow.com/inference/dog.jpeg", text=["person", "backpack", "dog", "eye", "nose", "ear", "tongue"], confidence=0.03 ) ```

πŸ“Ÿ inference server

πŸŽ₯ inference pipeline

The inference pipeline is an efficient method for processing static video files and streams. Select a model, define the video source, and set a callback action. You can choose from predefined callbacks that allow you to display results on the screen or save them to a file.

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()

πŸ”‘ keys

Inference enables the deployment of a wide range of pre-trained and foundational models without an API key. To access thousands of fine-tuned models shared by the Roboflow Universe community, configure your API key.

export ROBOFLOW_API_KEY=<YOUR_API_KEY>

πŸ“š documentation

Visit our documentation to explore comprehensive guides, detailed API references, and a wide array of tutorials designed to help you harness the full potential of the Inference package.

Β© license

See the "Self Hosting and Edge Deployment" section of the Roboflow Licensing documentation for information on how Roboflow Inference is licensed.

πŸ† contribution

We would love your input to improve Roboflow Inference! Please see our contributing guide to get started. Thank you to all of our contributors! πŸ™