Vai al contenuto

Ultralytics API di inferenza HUB

Dopo aver addestrato un modello, puoi utilizzare gratuitamente la Shared Inference API. Se sei un utente Pro, puoi accedere alla Dedicated Inference API. L'API di inferenza di Ultralytics HUB ti permette di eseguire l'inferenza attraverso la nostra API REST senza dover installare e configurare localmente l'ambiente Ultralytics YOLO .

Ultralytics Schermata HUB della scheda Deploy all'interno della pagina Model con una freccia che punta alla scheda Dedicated Inference API e una alla scheda Shared Inference API


Guarda: Ultralytics Passaggio all'API di inferenza HUB

API di inferenza dedicata

In risposta alla grande richiesta e all'interesse diffuso, siamo entusiasti di presentare l'API Dedicated Inference di Ultralytics HUB, che offre un'implementazione in un solo clic in un ambiente dedicato ai nostri utenti Pro!

Nota

Siamo entusiasti di poter offrire questa funzione GRATUITAMENTE durante la nostra beta pubblica come parte del Piano Pro, con la possibilità di avere livelli a pagamento in futuro.

  • Copertura globale: Distribuito in 38 regioni del mondo, garantisce un accesso a bassa latenza da qualsiasi luogo. Consulta l'elenco completo delle regioni di Google Cloud.
  • Google Supportato da Cloud Run: Supportato da Google Cloud Run, che fornisce un'infrastruttura infinitamente scalabile e altamente affidabile.
  • Alta velocità: la latenza inferiore a 100 ms è possibile per l'inferenza di YOLOv8n a risoluzione 640 da regioni vicine, in base ai test di Ultralytics .
  • Sicurezza avanzata: Offre solide funzioni di sicurezza per proteggere i tuoi dati e garantire la conformità agli standard del settore. Per saperne di più sulla sicurezza di Google Cloud.

Per utilizzare l'API di inferenza dedicata di Ultralytics HUB, clicca sul pulsante Start Endpoint. Successivamente, utilizza l'URL unico dell'endpoint come descritto nelle guide seguenti.

Ultralytics Schermata HUB della scheda Deploy all'interno della pagina Model con una freccia che punta al pulsante Start Endpoint della scheda Dedicated Inference API

Suggerimento

Scegli la regione con la latenza più bassa per ottenere le migliori prestazioni, come descritto nella documentazione.

Per spegnere l'endpoint dedicato, clicca sul pulsante Stop Endpoint.

Ultralytics Schermata HUB della scheda Deploy all'interno della pagina Model con una freccia che punta al pulsante Stop Endpoint nella scheda Dedicated Inference API

API di inferenza condivisa

Per utilizzare l'API di inferenza condivisa di Ultralytics HUB, segui le guide riportate di seguito.

Gli utenti gratuiti hanno i seguenti limiti di utilizzo:

  • 100 chiamate all'ora
  • 1000 chiamate al mese

Gli utenti Pro hanno i seguenti limiti di utilizzo:

  • 1000 chiamate/ora
  • 10000 chiamate al mese

Python

Per accedere all'API di inferenza di Ultralytics HUB utilizzando Python, usa il seguente codice:

import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (optional)
data = {"imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())

Nota

Sostituisci MODEL_ID con l'ID del modello desiderato, API_KEY con la tua chiave API attuale e path/to/image.jpg con il percorso dell'immagine su cui vuoi eseguire l'inferenza.

Se stai utilizzando il nostro API di inferenza dedicata, sostituisci il url anche.

cURL

Per accedere all'API di inferenza di Ultralytics HUB utilizzando cURL, usa il seguente codice:

curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"

Nota

Sostituisci MODEL_ID con l'ID del modello desiderato, API_KEY con la tua chiave API attuale e path/to/image.jpg con il percorso dell'immagine su cui vuoi eseguire l'inferenza.

Se stai utilizzando il nostro API di inferenza dedicata, sostituisci il url anche.

Argomenti

Vedi la tabella sottostante per un elenco completo degli argomenti di inferenza disponibili.

Argomento Predefinito Tipo Descrizione
file file File immagine o video da utilizzare per l'inferenza.
imgsz 640 int Dimensione dell'immagine di input, l'intervallo valido è 32 - 1280 Pixel.
conf 0.25 float Soglia di confidenza per le stime, intervallo valido 0.01 - 1.0.
iou 0.45 float Intersezione oltre la soglia dell'Unione (IoU), intervallo valido 0.0 - 0.95.

Risposta

L'API di inferenza di Ultralytics HUB restituisce una risposta JSON.

Classificazione

Modello di classificazione

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-cls.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (optional)
data = {"imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  "images": [
    {
      "results": [
        {
          "class": 0,
          "name": "person",
          "confidence": 0.92
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

Rilevamento

Modello di rilevamento

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (optional)
data = {"imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  "images": [
    {
      "results": [
        {
          "class": 0,
          "name": "person",
          "confidence": 0.92,
          "box": {
            "x1": 118,
            "x2": 416,
            "y1": 112,
            "y2": 660
          }
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

OBB

Modello OBB

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-obb.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (optional)
data = {"imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  "images": [
    {
      "results": [
        {
          "class": 0,
          "name": "person",
          "confidence": 0.92,
          "box": {
            "x1": 374.85565,
            "x2": 392.31824,
            "x3": 412.81805,
            "x4": 395.35547,
            "y1": 264.40704,
            "y2": 267.45728,
            "y3": 150.0966,
            "y4": 147.04634
          }
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

Segmentazione

Modello di segmentazione

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-seg.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (optional)
data = {"imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  "images": [
    {
      "results": [
        {
          "class": 0,
          "name": "person",
          "confidence": 0.92,
          "box": {
            "x1": 118,
            "x2": 416,
            "y1": 112,
            "y2": 660
          },
          "segments": {
            "x": [
              266.015625,
              266.015625,
              258.984375,
              ...
            ],
            "y": [
              110.15625,
              113.67188262939453,
              120.70311737060547,
              ...
            ]
          }
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

Pose

Modello di posa

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-pose.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (optional)
data = {"imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  "images": [
    {
      "results": [
        {
          "class": 0,
          "name": "person",
          "confidence": 0.92,
          "box": {
            "x1": 118,
            "x2": 416,
            "y1": 112,
            "y2": 660
          },
          "keypoints": {
            "visible": [
              0.9909399747848511,
              0.8162999749183655,
              0.9872099757194519,
              ...
            ],
            "x": [
              316.3871765136719,
              315.9374694824219,
              304.878173828125,
              ...
            ],
            "y": [
              156.4207763671875,
              148.05775451660156,
              144.93240356445312,
              ...
            ]
          }
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

📅 Created 7 months ago ✏️ Updated 2 days ago

Commenti