YOLO Vision 2026:

Inferenza#

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

Ultralytics Platform Model Predict Tab With Detections Overlay

Scheda Predici#

Ogni modello con pesi include una scheda Predict per l'inferenza basata su browser:

  1. Naviga verso il tuo modello
  2. Fai clic sulla scheda Predict
  3. Carica un'immagine, usa un esempio o apri la tua webcam
  4. 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.

Ultralytics Platform Predict Tab Image Upload Dropzone

Metodi di input#

Il pannello di previsione supporta molteplici metodi di input:

MetodoDescrizione
Caricamento immagineTrascina o fai clic per caricare un'immagine
Immagini di esempioFai clic sugli esempi integrati (immagini del dataset o predefinite)
Acquisizione webcamFeed 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:#fff

Carica 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
Inferenza automatica

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.

Ridimensionamento lato client

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:

ImmagineContenuto
bus.jpgScena stradale con veicoli
zidane.jpgScena sportiva con persone

Per i modelli OBB, vengono invece mostrate immagini aeree di barche e di un aeroporto.

Immagini precaricate

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:

  1. Concedi l'autorizzazione per la fotocamera quando richiesto
  2. Fai clic sull'anteprima video per acquisire un fotogramma
  3. L'inferenza viene eseguita automaticamente sul fotogramma acquisito
  4. 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.

Ultralytics Platform Predict Tab Results With Detections And Speed Stats Il pannello dei risultati mostra:

CampoDescrizione
Sommario dei risultatiElenco per rilevamento, oppure le prime 5 classi per i modelli di classificazione e semantici
Statistiche di velocitàPreprocessamento, inferenza, post-processamento e rete (ms)
VersioniVersioni di Ultralytics e PyTorch, oltre all'intervallo di profondità o alla dimensione della maschera ove applicabile
Risposta JSONRisposta 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:

Ultralytics Platform Predict Tab Parameters Sliders

ParametroIntervalloPredefinitoDescrizione
Confidenza0.01 – 1.0, incrementi di 0.010.25Soglia minima di confidenza
IoU0.0 – 0.95, incrementi di 0.010.7Soglia IoU per NMS
Dimensione immagine32 – 1280, incrementi di 32640Dimensione di ridimensionamento dell'input
Auto-Rerun

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_KEY
Chiave API richiesta

Per 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/predict

L'inferenza condivisa utilizza la Platform API con il percorso completo del modello:

POST https://platform.ultralytics.com/api/models/{owner}/{project}/{model}/predict

Entrambi 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())

Ultralytics Platform Predict Tab Code Examples Python Tab

Parametri della richiesta#

ParametroTipoPredefinitoIntervalloDescrizione
filefile--File di immagine o video (obbligatorio a meno che non sia impostato source)
conffloat0.250.01 – 1.0Soglia minima di confidenza
ioufloat0.70.0 – 0.95Soglia IoU per NMS
imgszint64032 – 1280Dimensione dell'immagine in input in pixel
normalizeboolfalse-Restituisci le coordinate del BBox come 0 – 1
decimalsint50 – 10Precisione decimale per i valori delle coordinate
bitsint88, 12, 16Quantizzazione della mappa di profondità, solo per i modelli di profondità
sourcestringa--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"
        }
    }
}

Ultralytics Platform Predict Tab Json Response View

Campi di risposta#

CampoTipoDescrizione
imagesarrayElenco di immagini elaborate, una voce per fotogramma video per i video
images[].shapearrayDimensioni immagine [altezza, larghezza]
images[].resultsarrayElenco delle rilevazioni
images[].results[].classintIndice della classe (ID intero)
images[].results[].namestringaNome della classe
images[].results[].confidencefloatConfidenza della rilevazione (0-1)
images[].results[].boxoggettoCoordinate della bounding box
images[].semantic_maskoggettoMappa delle classi per pixel (solo modelli semantici)
images[].depthoggettoMappa di profondità per pixel (solo modelli di profondità)
images[].speedoggettoTempi di elaborazione in millisecondi
metadataoggettoConteggio 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.

Ti serve maggiore throughput?

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:

CodiceMessaggioSoluzione
400Immagine non validaControlla il formato del file o verifica che il modello disponga di pesi addestrati
401Non autorizzatoVerifica l'API key
404Modello non trovatoControlla i nomi del proprietario, del progetto e del modello
413Input troppo grandeRiduci la dimensione del file al di sotto del limite dell'endpoint
429Limite di richieste superatoAttendi e riprova, oppure invia le richieste direttamente a un endpoint dedicato
500Errore del serverRiprova la richiesta
503Servizio non disponibileIl 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:

    1. Utilizza le previsioni per disegnare le box localmente
    2. 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 Size selezionato 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:

    1. Invia richieste separate per ciascuna immagine
    2. Distribuisci le richieste su endpoint dedicati quando appropriato
    3. Usa l'inferenza locale per batch di grandi dimensioni
    Inferenza batch con Python
    import 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))

Commenti