YOLOv9

Use YOLOv9 object detection through our Serverless Hosted API

We support YOLOv9 object detection inferencing via our Serverless Hosted API. Training YOLOv9 is not supported on Roboflow, but you can upload pretrained weights for an existing Project and serve them through the Serverless Hosted API.

For self-hosted deployment, see Roboflow Inference.

YOLOv9 input size is set when you train your model outside Roboflow (typical values: 640x640 or 1280x1280).

Aliases

YOLOv9 has no default Roboflow Universe aliases. To run inference, use your own trained YOLOv9 model_id in the form project/version (from a Project where you uploaded YOLOv9 weights).

Code sample

Install the SDK and supervision for decoding and annotation:

pip install inference-sdk supervision

Replace your-project/1 with your own model_id. Pass your Roboflow API Key via the API_KEY environment variable.

import os
import urllib.request

import cv2
import supervision as sv
from inference_sdk import InferenceHTTPClient

image_url = "https://storage.googleapis.com/com-roboflow-marketing/notebooks/examples/cars-highway.png"
image_path = "cars-highway.png"
urllib.request.urlretrieve(image_url, image_path)

image = cv2.imread(image_path)

client = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",
    api_key=os.getenv("API_KEY"),
)
result = client.infer(image, model_id="your-project/1")

detections = sv.Detections.from_inference(result)

box_annotator = sv.BoxAnnotator()
label_annotator = sv.LabelAnnotator()

annotated = box_annotator.annotate(scene=image.copy(), detections=detections)
annotated = label_annotator.annotate(scene=annotated, detections=detections)

cv2.imwrite("annotated.png", annotated)

Set api_url to match your deployment target:

  • https://serverless.roboflow.com for the Serverless Hosted API.

  • http://localhost:9001 for a local Inference server.

  • Your Dedicated Deployment URL for a private endpoint.

Last updated

Was this helpful?