Inferenza
Ultralytics fornisce un'API di inferenza per testare i modelli addestrati. Utilizza la scheda Test basata su browser per una rapida convalida o REST API l'accesso programmatico.
Scheda Test
Ogni modello include una scheda Test per l'inferenza basata su browser:
- Passa al tuo modello
- Fai clic sulla scheda Test
- Carica un'immagine o utilizza degli esempi
- Visualizza le previsioni all'istante
Carica immagine
Trascina e rilascia o clicca per caricare:
- Formati supportati: JPG, PNG, WebP, GIF
- Dimensione massima: 10 MB
- Auto-inferenza: i risultati vengono visualizzati automaticamente
Esempi di immagini
Utilizza le immagini di esempio integrate per eseguire test rapidi:
| Immagine | Contenuto |
|---|---|
bus.jpg | Scena di strada con veicoli |
zidane.jpg | Scena sportiva con persone |
Visualizza risultati
Visualizzazione dei risultati dell'inferenza:
- Riquadri con etichette di classe
- Punteggi di affidabilità per ciascun rilevamento
- Colori delle classi corrispondenti al set di dati
Parametri di inferenza
Regola il comportamento di rilevamento con i parametri:
| Parametro | Intervallo | Predefinito | Descrizione |
|---|---|---|---|
| Fiducia | 0,0-1,0 | 0.25 | Soglia minima di confidenza |
| IoU | 0,0-1,0 | 0.45 | IoU NMS |
| Dimensione dell'immagine | 32-1280 | 640 | Dimensioni di ridimensionamento dell'input |
Soglia di confidenza
Filtra le previsioni in base all'affidabilità:
- Superiore (0,5+): previsioni meno numerose ma più certe
- Inferiore (0,1-0,25): più previsioni, qualche rumore
- Predefinito (0,25): bilanciato per la maggior parte dei casi d'uso
IoU
Controllo della soppressione non massima:
- Superiore (0,7+): Consenti la sovrapposizione delle caselle
- Inferiore (0,3-0,45): unisci rilevamenti vicini
- Predefinito (0,45): NMS standard NMS
REST API
Accedere all'inferenza a livello di programmazione:
Autenticazione
Includi la tua chiave API nelle richieste:
Authorization: Bearer YOUR_API_KEY
Punto finale
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.45"
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.45}
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 di risposta
| Campo | Tipo | Descrizione |
|---|---|---|
success | booleano | Stato della richiesta |
predictions | matrice | Elenco dei rilevamenti |
predictions[].class | stringa | Nome della classe |
predictions[].confidence | galleggiare | Affidabilità del rilevamento (0-1) |
predictions[].box | oggetto | Coordinate del riquadro di delimitazione |
image | oggetto | Dimensioni dell'immagine originale |
Risposte specifiche per attività
Il formato della risposta varia a seconda dell'attività:
{
"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 velocità
L'inferenza condivisa ha limiti di velocità:
| Piano | Richieste/Minuto | Richieste/giorno |
|---|---|---|
| Gratuito | 10 | 100 |
| Pro | 60 | 10,000 |
Per limiti più elevati, implementare un endpoint dedicato.
Gestione degli errori
Risposte di errore comuni:
| Codice | Messaggio | Soluzione |
|---|---|---|
| 400 | Immagine non valida | Controlla il formato del file |
| 401 | Non autorizzato | Verifica chiave API |
| 404 | Modello non trovato | Controllare lo slug del modello |
| 429 | Velocità limitata | Aspetta o aggiorna il piano |
| 500 | Errore del server | Riprova richiesta |
FAQ
Posso eseguire inferenze sui video?
L'API accetta singoli fotogrammi. Per i video:
- Estrai fotogrammi localmente
- Invia ogni frame all'API
- Risultati complessivi
Per i video in tempo reale, valuta la possibilità di implementare un endpoint dedicato.
Come posso ottenere l'immagine annotata?
L'API restituisce previsioni JSON. Per visualizzare:
- Utilizza le previsioni per disegnare riquadri localmente
- Utilizza Ultralytics
plot()metodo:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")
Qual è la dimensione massima dell'immagine?
- Limite di caricamento: 10 MB
- Recommended: <5MB for fast inference
- Ridimensionamento automatico: Le immagini vengono ridimensionate a
imgszparametro
Le immagini di grandi dimensioni vengono automaticamente ridimensionate mantenendo le proporzioni.
Posso eseguire l'inferenza batch?
L'API attuale elabora un'immagine per ogni richiesta. Per i batch:
- Invia richieste simultanee
- Utilizza un endpoint dedicato per un throughput più elevato
- Considerare l'inferenza locale per lotti di grandi dimensioni