Inferenz
Ultralytics bietet eine Inferenz-API zum Testen trainierter Modelle. Verwenden Sie die browserbasierte Registerkarte „Test“ für eine schnelle Validierung oder die REST API den programmatischen Zugriff.
Test-Registerkarte
Jedes Modell enthält eine Registerkarte „Test“ für browserbasierte Inferenz:
- Navigieren Sie zu Ihrem Modell
- Klicken Sie auf die Registerkarte „Test “.
- Laden Sie ein Bild hoch oder verwenden Sie Beispiele.
- Prognosen sofort anzeigen
Bild hochladen
Per Drag & Drop oder Klick hochladen:
- Unterstützte Formate: JPG, PNG, WebP, GIF
- Maximale Größe: 10 MB
- Automatische Schlussfolgerung: Ergebnisse werden automatisch angezeigt
Beispielbilder
Verwenden Sie integrierte Beispielbilder für schnelle Tests:
| Bild | Inhalt |
|---|---|
bus.jpg | Straßenszene mit Fahrzeugen |
zidane.jpg | Sportszene mit Menschen |
Ergebnisse anzeigen
Anzeige der Inferenz-Ergebnisse:
- Begrenzungsrahmen mit Klassenbezeichnungen
- Vertrauenswürdigkeitsscores für jede Erkennung
- Klassenfarben passend zu Ihrem Datensatz
Inferenzparameter
Erkennungsverhalten mit Parametern anpassen:
| Parameter | Bereich | Standard | Beschreibung |
|---|---|---|---|
| Vertrauen | 0,0–1,0 | 0.25 | Mindestvertrauensschwelle |
| IoU | 0,0–1,0 | 0.45 | NMS IoU |
| Bildgröße | 32-1280 | 640 | Eingabe-Größenänderung |
Vertrauensschwelle
Filtervorhersagen nach Konfidenz filtern:
- Höher (0,5+): Weniger, aber sicherere Vorhersagen
- Niedriger (0,1–0,25): Mehr Vorhersagen, etwas Rauschen
- Standard (0,25): Ausgewogen für die meisten Anwendungsfälle
IoU
Steuerung der Nicht-Maximalunterdrückung:
- Höher (0,7+): Überlappende Boxen zulassen
- Niedriger (0,3–0,45): Nahegelegene Erkennungen zusammenführen
- Standard (0,45): NMS
REST API
Programmgesteuerter Zugriff auf die Inferenz:
Authentifizierung
Fügen Sie Ihren API-Schlüssel in Anfragen ein:
Authorization: Bearer YOUR_API_KEY
Endpunkt
POST https://platform.ultralytics.com/api/models/{model_slug}/predict
Anfrage
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())
Antwort
{
"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
}
}
Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
success | Boolesch | Anfragestatus |
predictions | Array | Liste der Erkennungen |
predictions[].class | Zeichenfolge | Klassenname |
predictions[].confidence | Schwimmer | Erkennungszuverlässigkeit (0-1) |
predictions[].box | Objekt | Koordinaten der Begrenzungsrahmen |
image | Objekt | Originalbildabmessungen |
Aufgabenspezifische Antworten
Das Antwortformat variiert je nach Aufgabe:
{
"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}
]
}
Ratenbegrenzungen
Gemeinsame Inferenz hat Ratenbeschränkungen:
| Plan | Anfragen/Minute | Anfragen/Tag |
|---|---|---|
| Kostenlos | 10 | 100 |
| Pro | 60 | 10,000 |
Für höhere Grenzwerte setzen Sie einen dedizierten Endpunkt ein.
Fehlerbehandlung
Häufige Fehlermeldungen:
| Code | Nachricht | Lösung |
|---|---|---|
| 400 | Ungültiges Bild | Dateiformat überprüfen |
| 401 | Unbefugt | API-Schlüssel überprüfen |
| 404 | Modell nicht gefunden | Modell-Slug überprüfen |
| 429 | Ratenbegrenzt | Warten oder Plan upgraden |
| 500 | Serverfehler | Anfrage wiederholen |
FAQ
Kann ich Inferenz auf Videos anwenden?
Die API akzeptiert einzelne Frames. Für Videos:
- Frames lokal extrahieren
- Sende jeden Frame an die API
- Gesamtergebnisse
Für Echtzeitvideos sollten Sie die Bereitstellung eines dedizierten Endpunkts in Betracht ziehen.
Wie erhalte ich das mit Anmerkungen versehene Bild?
Die API gibt JSON-Vorhersagen zurück. Zur Veranschaulichung:
- Verwenden Sie Vorhersagen, um lokal Felder zu zeichnen
- Verwenden Sie Ultralytics
plot()Methode auf:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")
Was ist die maximale Bildgröße?
- Upload-Limit: 10 MB
- Recommended: <5MB for fast inference
- Automatische GrößenanpassungBilder werden in der Größe angepasst auf
imgszParameter
Große Bilder werden automatisch in der Größe angepasst, wobei das Seitenverhältnis beibehalten wird.
Kann ich eine Batch-Inferenz ausführen?
Die aktuelle API verarbeitet ein Bild pro Anfrage. Für Stapelverarbeitung:
- Parallele Anfragen senden
- Verwenden Sie einen dedizierten Endpunkt für einen höheren Durchsatz.
- Lokale Inferenz für große Chargen in Betracht ziehen