Vai al contenuto

Inferenza

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

Scheda Test

Ogni modello include una scheda Test per l'inferenza basata su browser:

  1. Naviga al tuo modello
  2. Clicca sulla scheda Test
  3. Carica un'immagine o usa gli esempi
  4. Visualizza le predizioni istantaneamente

Carica Immagine

Trascina e rilascia o clicca per caricare:

  • Formati supportati: JPG, PNG, WebP, GIF
  • Dimensione massima: 10MB
  • Auto-inferenza: I risultati appaiono automaticamente

Immagini di Esempio

Usa le immagini di esempio integrate per test rapidi:

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

Visualizza Risultati

Visualizzazione dei risultati dell'inferenza:

  • Bounding box con etichette di classe
  • Punteggi di confidenza per ogni detect
  • Colori delle classi corrispondenti al tuo dataset

Parametri di Inferenza

Regola il comportamento del detect con i parametri:

ParametroIntervalloPredefinitoDescrizione
Confidenza0.0-1.00.25Soglia minima di confidenza
IoU0.0-1.00.70Soglia IoU NMS
Dimensione dell'immagine32-1280640Dimensione di ridimensionamento dell'input

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

REST API

Accedi all'inferenza programmaticamente:

Autenticazione

Includi la tua chiave API nelle richieste:

Authorization: Bearer YOUR_API_KEY

Endpoint

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

Richiesta

curl -X POST \
  "https://platform.ultralytics.com/api/models/username/project/model/predict" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@image.jpg" \
  -F "conf=0.25" \
  -F "iou=0.7"
import requests

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

response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())

Risposta

{
    "success": true,
    "predictions": [
        {
            "class": "person",
            "confidence": 0.92,
            "box": {
                "x1": 100,
                "y1": 50,
                "x2": 300,
                "y2": 400
            }
        },
        {
            "class": "car",
            "confidence": 0.87,
            "box": {
                "x1": 400,
                "y1": 200,
                "x2": 600,
                "y2": 350
            }
        }
    ],
    "image": {
        "width": 1920,
        "height": 1080
    }
}

Campi della Risposta

CampoTipoDescrizione
successbooleanoStato della richiesta
predictionsarrayElenco di detect
predictions[].classstringNome della classe
predictions[].confidencefloatConfidenza del detect (0-1)
predictions[].boxoggettoCoordinate del bounding box
imageoggettoDimensioni dell'immagine originale

Risposte Specifiche per Task

Il formato della risposta varia in base al task:

{
  "class": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}
{
  "class": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "segments": [[100, 50], [150, 60], ...]
}
{
  "class": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "keypoints": [
    {"x": 200, "y": 75, "conf": 0.95},
    ...
  ]
}
{
  "predictions": [
    {"class": "cat", "confidence": 0.95},
    {"class": "dog", "confidence": 0.03}
  ]
}

Limiti di Frequenza

L'inferenza condivisa ha limiti di frequenza:

PianoRichieste/MinutoRichieste/Giorno
Gratuito10100
Pro6010,000

Per limiti superiori, implementare un endpoint dedicato.

Gestione degli Errori

Risposte di errore comuni:

CodiceMessaggioSoluzione
400Immagine non validaControllare il formato del file
401Non autorizzatoVerificare la chiave API
404Modello non trovatoControllare lo slug del modello
429Limite di frequenza raggiuntoAttendere o aggiornare il piano
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")

Qual è la dimensione massima dell'immagine?

  • Limite di caricamento: 10MB
  • Recommended: <5MB for fast inference
  • Ridimensionamento automatico: Le immagini vengono ridimensionate a imgsz 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


📅 Creato 20 giorni fa ✏️ Aggiornato 14 giorni fa
glenn-jocherLaughing-q

Commenti