Vai al contenuto

Ultralytics API di inferenza HUB

Dopo aver addestrato un modello, è possibile utilizzare gratuitamente la Shared Inference API. Se si è un utente Pro, si può accedere alla Dedicated Inference API. L'API di inferenza di Ultralytics HUB consente di eseguire l'inferenza attraverso la nostra API REST senza la necessità di 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 di inferenza dedicata a Ultralytics HUB, che offre un'implementazione con un solo clic in un ambiente dedicato ai nostri utenti Pro!

Nota

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

  • Copertura globale: Distribuito in 38 regioni in tutto il mondo, garantisce un accesso a bassa latenza da qualsiasi luogo. Consultate l'elenco completo delle regioni di Google Cloud.
  • Google Sostenuto da 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 di YOLOv8n a risoluzione 640 da regioni vicine, in base ai test di Ultralytics .
  • Sicurezza avanzata: Offre solide funzioni di sicurezza per proteggere i 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, fare clic sul pulsante Start Endpoint. Quindi, utilizzare 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 nella scheda Dedicated Inference API

Suggerimento

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

Per chiudere l'endpoint dedicato, fare clic sul pulsante Arresta 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, seguire le guide riportate di seguito.

Gli utenti gratuiti hanno i seguenti limiti di utilizzo:

  • 100 chiamate/ora
  • 1000 chiamate al mese

Gli utenti Pro hanno i seguenti limiti di utilizzo:

  • 1000 chiamate/ora
  • 10000 chiamate / mese

Python

Per accedere all'API di inferenza di Ultralytics HUB utilizzando Python, utilizzare 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

Sostituire MODEL_ID con l'ID del modello desiderato, API_KEY con la chiave API effettiva e path/to/image.jpg con il percorso dell'immagine su cui si vuole eseguire l'inferenza.

Se si utilizza il nostro API di inferenza dedicata, sostituire il url anche.

cURL

Per accedere all'API di inferenza di Ultralytics HUB usando cURL, utilizzare 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

Sostituire MODEL_ID con l'ID del modello desiderato, API_KEY con la chiave API effettiva e path/to/image.jpg con il percorso dell'immagine su cui si vuole eseguire l'inferenza.

Se si utilizza il nostro API di inferenza dedicata, sostituire il url anche.

Argomenti

Per un elenco completo degli argomenti di inferenza disponibili, vedere la tabella seguente.

Argomento Predefinito Tipo Descrizione
file file File immagine o video da utilizzare per l'inferenza.
imgsz 640 int Dimensione dell'immagine di ingresso; l'intervallo valido è 32 - 1280 pixel.
conf 0.25 float Soglia di fiducia per le previsioni, intervallo valido 0.01 - 1.0.
iou 0.45 float Intersezione su Union (IoU) soglia, 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].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 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].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": ...
}

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://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": ...
}
📅C reato 10 mesi fa ✏️ Aggiornato 2 mesi fa

Commenti