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