Inferenza#
Ultralytics Platform offre un'inferenza basata su browser per testare modelli addestrati e endpoint dedicati per l'accesso programmatico.

Scheda Predici#
Ogni modello con pesi include una scheda Predict per l'inferenza basata su browser:
- Naviga verso il tuo modello
- Fai clic sulla scheda Predict
- Carica un'immagine, usa un esempio o apri la tua webcam
- Esamina la sovrapposizione specifica per il task, il sommario delle predizioni, i tempi e la risposta grezza
I modelli senza pesi mostrano invece uno stato vuoto: addestra prima il modello o carica i pesi.

Metodi di input#
Il pannello di previsione supporta molteplici metodi di input:
| Metodo | Descrizione |
|---|---|
| Caricamento immagine | Trascina o fai clic per caricare un'immagine |
| Immagini di esempio | Fai clic sugli esempi integrati (immagini del dataset o predefinite) |
| Acquisizione webcam | Feed della telecamera dal vivo con acquisizione di singoli fotogrammi |
graph LR
A[Upload Image]:::start --> D[Auto-Inference]:::proc
B[Example Image]:::start --> D
C[Webcam Capture]:::start --> D
D --> E[Results + Overlays]:::out
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef out fill:#9C27B0,color:#fffCarica immagine#
Trascina o fai clic per caricare:
- Formati supportati: JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP
- Dimensione massima: 10 MB
- Auto-inferenza: I risultati appaiono automaticamente dopo il caricamento
Il pannello di previsione esegue l'inferenza automaticamente quando carichi un'immagine, selezioni un esempio o acquisisci un fotogramma dalla webcam. Non è necessario fare clic su alcun pulsante.
Prima del caricamento, il pannello ridimensiona l'immagine in modo che il suo lato più lungo corrisponda al Image Size selezionato e richiede coordinate normalizzate. Questo mantiene veloce il testing nel browser; le richieste inviate autonomamente non vengono ridimensionate.
Immagini di esempio#
Il pannello di previsione mostra fino a due immagini di esempio dal dataset collegato del modello, preferendo la suddivisione val, poi test, infine train. Se nessun dataset è collegato, vengono usati gli esempi predefiniti:
| Immagine | Contenuto |
|---|---|
bus.jpg | Scena stradale con veicoli |
zidane.jpg | Scena sportiva con persone |
Per i modelli OBB, vengono invece mostrate immagini aeree di barche e di un aeroporto.
Le immagini di esempio sono precaricate al caricamento della pagina, quindi fare clic su un esempio attiva un'inferenza quasi istantanea senza tempi di attesa per il download.
Webcam#
Fai clic sulla scheda della webcam per avviare un feed della telecamera dal vivo:
- Concedi l'autorizzazione per la fotocamera quando richiesto
- Fai clic sull'anteprima video per acquisire un fotogramma
- L'inferenza viene eseguita automaticamente sul fotogramma acquisito
- Fai clic di nuovo per riavviare la webcam
Visualizza risultati#
I risultati dell'inferenza mostrano l'output appropriato per il task del modello: box, maschere, keypoint, box orientati, punteggi di classificazione, copertura semantica o una mappa di profondità. I risultati degli oggetti utilizzano i colori delle classi del dataset quando disponibili. Il pannello mostra anche i tempi di preprocessamento, inferenza, post-processamento e rete.
Il pannello dei risultati mostra:
| Campo | Descrizione |
|---|---|
| Sommario dei risultati | Elenco per rilevamento, oppure le prime 5 classi per i modelli di classificazione e semantici |
| Statistiche di velocità | Preprocessamento, inferenza, post-processamento e rete (ms) |
| Versioni | Versioni di Ultralytics e PyTorch, oltre all'intervallo di profondità o alla dimensione della maschera ove applicabile |
| Risposta JSON | Risposta API grezza in un blocco di codice, con i dati della mappa base64 omessi |
Due controlli si trovano sopra l'anteprima una volta ottenuti i risultati: fai clic sull'immagine per ingrandirla con le sovrapposizioni intatte e usa il pulsante di download per salvare un JPEG annotato del risultato corrente.
Parametri di inferenza#
Regola il comportamento dell'inferenza con i tre cursori sotto l'immagine:

| Parametro | Intervallo | Predefinito | Descrizione |
|---|---|---|---|
| Confidenza | 0.01 – 1.0, incrementi di 0.01 | 0.25 | Soglia minima di confidenza |
| IoU | 0.0 – 0.95, incrementi di 0.01 | 0.7 | Soglia IoU per NMS |
| Dimensione immagine | 32 – 1280, incrementi di 32 | 640 | Dimensione di ridimensionamento dell'input |
La modifica di qualsiasi parametro riesegue automaticamente l'inferenza sull'immagine corrente con un debounce di 500ms. Non c'è bisogno di ricaricare.
Soglia di confidenza#
Filtra le previsioni in base alla confidenza:
- Più alta (0.5+): Previsioni meno numerose, ma più certe
- Più bassa (0.1-0.25): Più previsioni, presenza di rumore
- Predefinita (0.25): Bilanciata per la maggior parte dei casi d'uso
Soglia IoU#
Controlla la soppressione dei non massimi (NMS):
- Più alta (0.7+): Consenti più riquadri sovrapposti
- Inferiore (0.3-0.5): Sopprimi i rilevamenti sovrapposti in modo più aggressivo
- Predefinita (0.7): Comportamento NMS bilanciato per la maggior parte dei casi d'uso
Previsione su deployment#
Ogni endpoint dedicato in esecuzione include una scheda Predict direttamente sulla sua scheda di deployment. Questo utilizza il servizio di inferenza del deployment anziché il servizio di predizione condiviso, permettendoti di testare l'endpoint distribuito dal browser.
API per endpoint dedicato#
La scheda API Docs nel tab del modello Predict contiene richieste di esempio in Python, JavaScript e cURL, precompilate con confidenza, IoU e dimensione dell'immagine attualmente impostate sui cursori. L'URL e la chiave sono segnaposto fino a quando non distribuisci il modello; un pulsante Deploy accanto alle schede di codice passa alla scheda Deploy del modello. Dopo la distribuzione, la scheda Code della scheda di distribuzione inserisce l'URL di quell'endpoint e, per i proprietari dello spazio di lavoro, la chiave API associata, pronta per essere copiata ed eseguita.
Autenticazione#
Includi la tua chiave API nelle richieste:
Authorization: Bearer YOUR_API_KEYPer eseguire l'inferenza dai tuoi script, notebook o app, includi una chiave API. Generane una in Settings > API Keys. Un endpoint dedicato accetta solo la singola chiave con cui è stato creato; l'API del modello condiviso accetta qualsiasi chiave attiva nello spazio di lavoro e i modelli pubblici accettano anche richieste anonime.
Endpoint#
Gli endpoint dedicati ricevono richieste sul proprio URL:
POST https://YOUR_DEPLOYMENT_URL.run.app/predictL'inferenza condivisa utilizza la Platform API con il percorso completo del modello:
POST https://platform.ultralytics.com/api/models/{owner}/{project}/{model}/predictEntrambi accettano lo stesso corpo multipart/form-data e restituiscono la stessa forma di risposta. Con il Python SDK, usa client.models.predict(owner, project, model, body=...) per l'inferenza condivisa o client.deployments.predict(owner, deployment, body=...) per un deployment dedicato:
from ultralytics_platform import Platform
client = Platform() # reads ULTRALYTICS_API_KEY
with open("image.jpg", "rb") as f:
results = client.models.predict("acme-vision", "inspection", "v3", body={"file": f, "conf": 0.25})Richiesta#
import requests
url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}
with open("image.jpg", "rb") as image_file:
response = requests.post(url, headers=headers, files={"file": image_file}, data=data)
print(response.json())
Parametri della richiesta#
| Parametro | Tipo | Predefinito | Intervallo | Descrizione |
|---|---|---|---|---|
file | file | - | - | File di immagine o video (obbligatorio a meno che non sia impostato source) |
conf | float | 0.25 | 0.01 – 1.0 | Soglia minima di confidenza |
iou | float | 0.7 | 0.0 – 0.95 | Soglia IoU per NMS |
imgsz | int | 640 | 32 – 1280 | Dimensione dell'immagine in input in pixel |
normalize | bool | false | - | Restituisci le coordinate del BBox come 0 – 1 |
decimals | int | 5 | 0 – 10 | Precisione decimale per i valori delle coordinate |
bits | int | 8 | 8, 12, 16 | Quantizzazione della mappa di profondità, solo per i modelli di profondità |
source | stringa | - | - | URL dell'immagine o stringa base64 (alternativa a file) |
Risposta#
{
"images": [
{
"shape": [1080, 1920],
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
},
{
"class": 2,
"name": "car",
"confidence": 0.87,
"box": { "x1": 400, "y1": 200, "x2": 600, "y2": 350 }
}
],
"speed": {
"preprocess": 1.2,
"inference": 12.5,
"postprocess": 2.3
}
}
],
"metadata": {
"imageCount": 1,
"functionTimeAlive": 1284.51,
"functionTimeCall": 0.018,
"task": "detect",
"version": {
"ultralytics": "8.x.x",
"torch": "2.6.0",
"torchvision": "0.21.0",
"python": "3.13.0"
}
}
}
Campi di risposta#
| Campo | Tipo | Descrizione |
|---|---|---|
images | array | Elenco di immagini elaborate, una voce per fotogramma video per i video |
images[].shape | array | Dimensioni immagine [altezza, larghezza] |
images[].results | array | Elenco delle rilevazioni |
images[].results[].class | int | Indice della classe (ID intero) |
images[].results[].name | stringa | Nome della classe |
images[].results[].confidence | float | Confidenza della rilevazione (0-1) |
images[].results[].box | oggetto | Coordinate della bounding box |
images[].semantic_mask | oggetto | Mappa delle classi per pixel (solo modelli semantici) |
images[].depth | oggetto | Mappa di profondità per pixel (solo modelli di profondità) |
images[].speed | oggetto | Tempi di elaborazione in millisecondi |
metadata | oggetto | Conteggio immagini, tempi del servizio, attività e versioni di Ultralytics/PyTorch |
Risposte specifiche per attività#
Il formato della risposta varia a seconda dell'attività:
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}Limiti di frequenza#
L'API del modello condiviso è limitata a 20 richieste/minuto per ciascuna chiave API, chiamante autenticato o IP anonimo. Quando viene limitata, l'API restituisce 429 con un'intestazione Retry-After. Consulta la guida di riferimento sui limiti di frequenza completa per tutte le categorie di endpoint.
Le richieste inviate direttamente a un endpoint dedicato non passano attraverso il limitatore di velocità della Platform API. L'endpoint rilascia comunque il carico con 429 e un'intestazione Retry-After quando è temporaneamente a capacità massima. Per l'inferenza locale ad alto volume, consulta la guida alla modalità Predict.
Gestione errori#
Risposte di errore comuni:
| Codice | Messaggio | Soluzione |
|---|---|---|
| 400 | Immagine non valida | Controlla il formato del file o verifica che il modello disponga di pesi addestrati |
| 401 | Non autorizzato | Verifica l'API key |
| 404 | Modello non trovato | Controlla i nomi del proprietario, del progetto e del modello |
| 413 | Input troppo grande | Riduci la dimensione del file al di sotto del limite dell'endpoint |
| 429 | Limite di richieste superato | Attendi e riprova, oppure invia le richieste direttamente a un endpoint dedicato |
| 500 | Errore del server | Riprova la richiesta |
| 503 | Servizio non disponibile | Il servizio Predict si sta avviando o non è raggiungibile; attendi brevemente e riprova |
FAQ#
Entrambi i metodi di inferenza accettano file video:
- Gli endpoint dedicati accettano file video direttamente. Formati supportati (fino a 100 MB): ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV. Ciascun fotogramma viene elaborato singolarmente e i risultati vengono restituiti per fotogramma. Vedi endpoint dedicati per i dettagli.
- L'inferenza condivisa (
POST /api/models/{owner}/{project}/{model}/predict) utilizza lo stesso servizio di previsione e accetta gli stessi formati video. Il tab Predict del browser seleziona solo le immagini, quindi usa l'API o un endpoint dedicato per i video.
Nel tab Predict, il pulsante di download sopra l'anteprima salva il risultato corrente come JPEG annotato. L'API stessa restituisce previsioni JSON. Per visualizzarle:
- Utilizza le previsioni per disegnare le box localmente
- Usa il metodo
plot()di Ultralytics:
from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model("image.jpg") results[0].save("annotated.jpg")Consulta la documentazione della modalità Predict per l'API dei risultati completa e le opzioni di visualizzazione.
- Limite del tab Predict: 10 MB
- Limite API: 100 MB sia per l'inferenza condivisa che per gli endpoint dedicati
- Ridimensionamento automatico nella scheda Predict: le immagini vengono ridimensionate al
Image Sizeselezionato prima del caricamento
Le immagini grandi vengono automaticamente ridimensionate nel browser preservando le proporzioni. Le richieste inviate autonomamente non vengono ridimensionate, quindi le immagini che superano il limite vengono rifiutate con
413.L'API attuale elabora un'immagine per richiesta. Per il batch:
- Invia richieste separate per ciascuna immagine
- Distribuisci le richieste su endpoint dedicati quando appropriato
- Usa l'inferenza locale per batch di grandi dimensioni
Inferenza batch con Pythonimport concurrent.futures import requests url = "https://YOUR_DEPLOYMENT_URL.run.app/predict" headers = {"Authorization": "Bearer YOUR_API_KEY"} images = ["img1.jpg", "img2.jpg", "img3.jpg"] def predict(image_path): with open(image_path, "rb") as f: return requests.post(url, headers=headers, files={"file": f}).json() with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor: results = list(executor.map(predict, images))