Vai al contenuto

Inferenza

Ultralytics Platform fornisce un'Inference API per testare i modelli addestrati. Utilizza l'interfaccia basata su browser Predict scheda per una rapida validazione o la REST API per l'accesso programmatico.

Piattaforma Ultralytics Scheda Predict del Modello con Sovrapposizione delle Detezioni

Scheda Prevedi

Ogni modello include un Predict scheda per l'inferenza basata su browser:

  1. Naviga al tuo modello
  2. Clicca la scheda Prevedi
  3. Carica un'immagine, usa un esempio o apri la tua webcam
  4. Visualizza le previsioni istantaneamente con sovrapposizioni di riquadri di delimitazione

Piattaforma Ultralytics Scheda Predict Dropzone Caricamento Immagini

Metodi di Input

Il pannello di previsione supporta molteplici metodi di input:

MetodoDescrizione
Caricamento immagineTrascina e rilascia o clicca per caricare un'immagine
Immagini di esempioClicca gli esempi integrati (immagini del dataset o predefinite)
Acquisizione da webcamFeed della telecamera in tempo reale con acquisizione di un singolo fotogramma
graph LR
    A[Upload Image] --> D[Auto-Inference]
    B[Example Image] --> D
    C[Webcam Capture] --> D
    D --> E[Results + Overlays]

    style D fill:#2196F3,color:#fff
    style E fill:#4CAF50,color:#fff

Carica Immagine

Trascina e rilascia o clicca per caricare:

  • Formati supportati: JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP, DNG, MPO
  • Dimensione massima: 10MB
  • Auto-inferenza: I risultati appaiono automaticamente dopo il caricamento

Inferenza Automatica

Il pannello di previsione esegue l'inferenza automaticamente quando si carica un'immagine, si seleziona un esempio o si cattura un frame dalla webcam. Non è necessario cliccare alcun pulsante.

Immagini di Esempio

Il pannello di previsione mostra immagini di esempio dal dataset collegato al modello. Se nessun dataset è collegato, vengono utilizzati esempi predefiniti:

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

Per i modelli obb, vengono mostrate invece immagini aeree di imbarcazioni e aeroporti.

Immagini precaricate

Le immagini di esempio vengono precaricate al caricamento della pagina, quindi cliccando su un esempio si attiva un'inferenza quasi istantanea senza attese di download.

Webcam

Fai clic sulla scheda della webcam per avviare un feed della telecamera in tempo reale:

  1. Consenti l'accesso alla fotocamera quando richiesto
  2. Fai clic sull'anteprima del video per acquisire un fotogramma
  3. L'inferenza viene eseguita automaticamente sul frame acquisito
  4. Clicca di nuovo per riavviare la webcam

Visualizza Risultati

Visualizzazione dei risultati dell'inferenza:

  • Riquadri con etichette di classe come sovrapposizioni SVG
  • Punteggi di confidenza per ogni detect
  • Colori delle classi dalla palette di colori del tuo dataset (o dalla palette predefinita di Ultralytics)
  • Ripartizione della velocità: Preprocessing, inferenza, post-processing e tempo di rete

Piattaforma Ultralytics Scheda Predict Risultati Con detect e Statistiche di Velocità

Il pannello dei risultati mostra:

CampoDescrizione
Elenco delle rilevazioniOgni detect con nome della classe e confidenza
Statistiche di velocitàPre-elaborazione, inferenza, post-elaborazione, rete (ms)
Risposta JSONRisposta API grezza in un blocco di codice

Parametri di Inferenza

Regola il comportamento di detect con i parametri nella sezione espandibile Parameters:

Piattaforma Ultralytics Scheda Predict Slider Parametri

ParametroIntervalloPredefinitoDescrizione
Confidenza0.01-1.00.25Soglia minima di confidenza
IoU0.0-0.950.70Soglia IoU NMS
Dimensione dell'immagine320, 640, 1280640Dimensione di ridimensionamento dell'input (toggle del pulsante)

Riesecuzione Automatica

La modifica di qualsiasi parametro riesegue automaticamente l'inferenza sull'immagine corrente con un debounce di 500ms. Non è necessario ricaricare.

Soglia di Confidenza

Filtra le predizioni per confidenza:

  • Più alta (0.5+): Meno predizioni, più certe
  • Più bassa (0.1-0.25): Più predizioni, con un certo rumore
  • Predefinita (0.25): Bilanciata per la maggior parte dei casi d'uso

Soglia IoU

Controllo della Soppressione Non-Massima:

  • Superiore (0,7+): consentire una maggiore sovrapposizione delle caselle
  • Inferiore (0,3-0,5): unisce i rilevamenti vicini in modo più aggressivo
  • Predefinito (0,70): NMS bilanciato per la maggior parte dei casi d'uso

Previsione del Deployment

Ogni esecuzione endpoint dedicato include un Predict scheda direttamente sulla sua card di deployment. Questo utilizza il servizio di inferenza proprio del deployment piuttosto che il servizio di predizione condiviso, permettendoti di testare il tuo endpoint deployato dal browser.

REST API

Accedi all'inferenza programmaticamente:

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 (sezione Chiavi API nella scheda Profilo).

Endpoint

POST https://platform.ultralytics.com/api/models/{modelId}/predict

Richiesta

import requests

url = "https://platform.ultralytics.com/api/models/MODEL_ID/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"file": open("image.jpg", "rb")}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}

response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
curl -X POST \
  "https://platform.ultralytics.com/api/models/MODEL_ID/predict" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@image.jpg" \
  -F "conf=0.25" \
  -F "iou=0.7" \
  -F "imgsz=640"
const formData = new FormData();
formData.append("file", fileInput.files[0]);
formData.append("conf", "0.25");
formData.append("iou", "0.7");
formData.append("imgsz", "640");

const response = await fetch(
  "https://platform.ultralytics.com/api/models/MODEL_ID/predict",
  {
    method: "POST",
    headers: { Authorization: "Bearer YOUR_API_KEY" },
    body: formData,
  }
);

const result = await response.json();
console.log(result);

Piattaforma Ultralytics Scheda Predict Esempi di Codice Scheda python

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,
        "functionTimeCall": 0.018,
        "model": "model.pt",
        "version": {
            "ultralytics": "8.4.14",
            "torch": "2.6.0",
            "torchvision": "0.21.0",
            "python": "3.13.0"
        }
    }
}

Piattaforma Ultralytics Scheda Predict Vista Risposta Json

Campi della Risposta

CampoTipoDescrizione
imagesarrayElenco delle immagini elaborate
images[].shapearrayDimensioni immagine [altezza, larghezza]
images[].resultsarrayElenco di detect
images[].results[].namestringNome della classe
images[].results[].confidencefloatConfidenza del detect (0-1)
images[].results[].boxoggettoCoordinate del bounding box
images[].speedoggettoTempi di elaborazione in millisecondi
metadataoggettoRichiedi metadati e informazioni sulla versione

Risposte Specifiche per Task

Il formato della risposta varia in base al task:

{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}
{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "segments": [[100, 50], [150, 60], ...]
}
{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "keypoints": [
    {"x": 200, "y": 75, "conf": 0.95},
    ...
  ]
}
{
  "results": [
    {"class": 0, "name": "cat", "confidence": 0.95},
    {"class": 1, "name": "dog", "confidence": 0.03}
  ]
}
{
  "class": 0,
  "name": "ship",
  "confidence": 0.89,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "obb": {"x1": 105, "y1": 48, "x2": 295, "y2": 55, "x3": 290, "y3": 395, "x4": 110, "y4": 402}
}

Limiti di Frequenza

L'inferenza condivisa è limitata a 20 richieste/min per chiave API. Quando limitata, l'API restituisce 429 con un Retry-After header. Consulta l'intero Riferimento al limite di frequenza per tutte le categorie di endpoint.

Hai bisogno di maggiore throughput?

Implementa un endpoint dedicato per un'inferenza illimitata senza limiti di frequenza, throughput prevedibile e risposte a bassa latenza costanti. Per l'inferenza locale, consulta la guida alla modalità di previsione.

Gestione degli Errori

Risposte di errore comuni:

CodiceMessaggioSoluzione
400Immagine non validaControllare il formato del file
401Non autorizzatoVerificare la chiave API
404Modello non trovatoVerifica l'ID del modello
429Limite di frequenza raggiuntoAttendi e riprova, oppure usa un endpoint dedicato per un throughput illimitato
500Errore del serverRiprovare la richiesta

FAQ

È possibile eseguire l'inferenza su video?

L'API accetta singoli frame. Per i video:

  1. Estrarre i frame localmente
  2. Inviare ogni frame all'API
  3. Aggregare i risultati

Per i video in tempo reale, considerare l'implementazione di un endpoint dedicato.

Come si ottiene l'immagine annotata?

L'API restituisce previsioni JSON. Per visualizzare:

  1. Utilizzare le predizioni per disegnare riquadri localmente
  2. Utilizzare Ultralytics plot() metodo:
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")

Consultare la documentazione della modalità di predizione per l'API completa dei risultati e le opzioni di visualizzazione.

Qual è la dimensione massima dell'immagine?

  • Limite di caricamento: 10MB
  • Recommended: <5MB for fast inference
  • Ridimensionamento automatico: Le immagini vengono ridimensionate al valore selezionato Image Size parametro

Le immagini di grandi dimensioni vengono ridimensionate automaticamente, preservando il rapporto d'aspetto.

È possibile eseguire l'inferenza in batch?

L'attuale API elabora un'immagine per richiesta. Per il batch:

  1. Inviare richieste concorrenti
  2. Utilizzare un endpoint dedicato per un throughput più elevato
  3. Considerare l'inferenza locale per grandi batch

Inferenza Batch con Python

import concurrent.futures

import requests

url = "https://predict-abc123.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))


📅 Creato 2 mesi fa ✏️ Aggiornato 25 giorni fa
glenn-jochersergiuwaxmannLaughing-q

Commenti