Vai al contenuto

Inference API di Ultralytics HUB

Dopo aver addestrato un modello, puoi utilizzare la Shared Inference API gratuitamente. Se sei un utente Pro, puoi accedere alla Dedicated Inference API. La Ultralytics HUB Inference API ti consente di eseguire l'inference tramite la nostra REST API senza la necessità di installare e configurare localmente l'ambiente Ultralytics YOLO.

Screenshot di Ultralytics 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: Tutorial sull'Inference API di Ultralytics HUB

Inference API Dedicata

In risposta all'elevata domanda e al diffuso interesse, siamo entusiasti di presentare la Ultralytics HUB Dedicated Inference API, che offre una distribuzione con un solo clic in un ambiente dedicato per i nostri utenti Pro!

Nota

Siamo entusiasti di offrire questa funzionalità GRATUITAMENTE durante la nostra beta pubblica come parte del Pro Plan, con possibili livelli a pagamento in futuro.

  • Copertura globale: Distribuito in 38 regioni in tutto il mondo, garantendo un accesso a bassa latenza da qualsiasi posizione. Consulta l'elenco completo delle regioni di Google Cloud.
  • Basato su Google Cloud Run: Supportato da Google Cloud Run, che fornisce un'infrastruttura infinitamente scalabile e altamente affidabile.
  • Alta velocità: È possibile una latenza inferiore a 100 ms per l'inferenza YOLOv8n a risoluzione 640 da regioni vicine in base ai test Ultralytics.
  • Sicurezza Migliorata: Fornisce robuste funzionalità di sicurezza per proteggere i tuoi dati e garantire la conformità agli standard del settore. Scopri di più sulla sicurezza di Google Cloud.

Per utilizzare l'Inference API Dedicata di Ultralytics HUB, fare clic sul pulsante Start Endpoint. Quindi, utilizzare l'URL endpoint univoco come descritto nelle guide seguenti.

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

Suggerimento

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

Per arrestare l'endpoint dedicato, fai clic sul pulsante Stop Endpoint.

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

Inference API condivisa

Per utilizzare l'Inference API Condivisa di Ultralytics HUB, seguire le guide seguenti.

La Shared Inference API di Ultralytics HUB ha i seguenti limiti di utilizzo:

  • 100 chiamate / ora

Python

Per accedere alla Inference API di Ultralytics HUB tramite Python, utilizza il seguente codice:

import requests

# API URL
url = "https://predict.ultralytics.com"

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

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "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 effettiva, e path/to/image.jpg con il percorso dell'immagine su cui si desidera eseguire l'inferenza.

Se state usando il nostro Inference API Dedicata, sostituire il url pure.

cURL

Per accedere alla Inference API di Ultralytics HUB tramite cURL, utilizza il seguente codice:

curl -X POST "https://predict.ultralytics.com" \
  -H "x-api-key: API_KEY" \
  -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
  -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 effettiva, e path/to/image.jpg con il percorso dell'immagine su cui si desidera eseguire l'inferenza.

Se state usando il nostro Inference API Dedicata, sostituire il url pure.

Argomenti

Consulta la tabella seguente per un elenco completo degli argomenti di inferenza disponibili.

ArgomentoPredefinitoTipoDescrizione
filefileFile immagine o video da utilizzare per l'inferenza.
imgsz640intDimensione dell'immagine di input, l'intervallo valido è 32 - 1280 pixel.
conf0.25floatSoglia di confidenza per le previsioni, intervallo valido 0.01 - 1.0.
iou0.45floatIntersezione sull'Unione soglia (IoU), intervallo valido 0.0 - 0.95.

Risposta

L'Inference API 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].to_json())
curl -X POST "https://predict.ultralytics.com" \
  -H "x-api-key: API_KEY" \
  -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
  -F "file=@/path/to/image.jpg" \
  -F "imgsz=640" \
  -F "conf=0.25" \
  -F "iou=0.45"
import requests

# API URL
url = "https://predict.ultralytics.com"

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

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "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 Detection

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].to_json())
curl -X POST "https://predict.ultralytics.com" \
  -H "x-api-key: API_KEY" \
  -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
  -F "file=@/path/to/image.jpg" \
  -F "imgsz=640" \
  -F "conf=0.25" \
  -F "iou=0.45"
import requests

# API URL
url = "https://predict.ultralytics.com"

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

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "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://predict.ultralytics.com" \
  -H "x-api-key: API_KEY" \
  -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
  -F "file=@/path/to/image.jpg" \
  -F "imgsz=640" \
  -F "conf=0.25" \
  -F "iou=0.45"
import requests

# API URL
url = "https://predict.ultralytics.com"

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

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "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://predict.ultralytics.com" \
  -H "x-api-key: API_KEY" \
  -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
  -F "file=@/path/to/image.jpg" \
  -F "imgsz=640" \
  -F "conf=0.25" \
  -F "iou=0.45"
import requests

# API URL
url = "https://predict.ultralytics.com"

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

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "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": ...
}

Posa

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://predict.ultralytics.com" \
  -H "x-api-key: API_KEY" \
  -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
  -F "file=@/path/to/image.jpg" \
  -F "imgsz=640" \
  -F "conf=0.25" \
  -F "iou=0.45"
import requests

# API URL
url = "https://predict.ultralytics.com"

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

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "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": ...
}


📅 Creato 1 anno fa ✏️ Aggiornato 8 mesi fa
glenn-jochersergiuwaxmannMatthewNoycejk4eUltralyticsAssistantRizwanMunawarpriytosh-tripathi

Commenti