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 .
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.
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.
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
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())
Rilevamento
Modello di rilevamento
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())
OBB
Modello OBB
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
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
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": ...
}