Inferenz
Ultralytics Plattform bietet eine Inferenz-API zum Testen trainierter Modelle. Verwenden Sie die browserbasierte Predict Registerkarte für schnelle Validierung oder die REST API für programmatischen Zugriff.

Vorhersage-Registerkarte
Jedes Modell enthält ein Predict Registerkarte für browserbasierte Inferenz:
- Navigieren Sie zu Ihrem Modell
- Klicken Sie auf die Registerkarte „Vorhersagen “.
- Laden Sie ein Bild hoch, verwenden Sie ein Beispiel oder öffnen Sie Ihre Webcam.
- Prognosen sofort mit Begrenzungsrahmen-Overlays anzeigen

Eingabemethoden
Das Vorhersagefeld unterstützt mehrere Eingabemethoden:
| Methode | Beschreibung |
|---|---|
| Bild hochladen | Ziehen Sie das Bild per Drag & Drop oder klicken Sie darauf, um es hochzuladen. |
| Beispielbilder | Klicken Sie auf integrierte Beispiele (Datensatzbilder oder Standardeinstellungen). |
| Webcam-Aufnahme | Live-Kameraübertragung mit Einzelbildaufnahme |
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
Bild hochladen
Ziehen Sie Dateien per Drag & Drop oder klicken Sie zum Hochladen:
- Unterstützte Formate: JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP, DNG, MPO
- Maximale Größe: 10 MB
- Automatische Inferenz: Ergebnisse werden nach dem Hochladen automatisch angezeigt.
Automatische Schlussfolgerung
Das Vorhersagefeld führt automatisch eine Inferenz durch, wenn Sie ein Bild hochladen, ein Beispiel auswählen oder ein Webcam-Bild aufnehmen. Es ist kein Klick erforderlich.
Beispielbilder
Das Vorhersagefeld zeigt Beispielbilder aus dem verknüpften Datensatz Ihres Modells. Wenn kein Datensatz verknüpft ist, werden Standardbeispiele verwendet:
| Bild | Inhalt |
|---|---|
bus.jpg | Straßenszene mit Fahrzeugen |
zidane.jpg | Sportszene mit Personen |
Bei OBB-Modellen werden stattdessen Luftbilder von Booten und Flughäfen angezeigt.
Vorinstallierte Bilder
Beispielbilder werden beim Laden der Seite vorab geladen, sodass ein Klick auf ein Beispiel eine nahezu sofortige Inferenz ohne Wartezeit beim Herunterladen auslöst.
Webcam
Klicken Sie auf die Webcam-Karte, um eine Live-Kameraübertragung zu starten:
- Erteilen Sie die Kamera-Berechtigung, wenn Sie dazu aufgefordert werden.
- Klicken Sie auf die Videovorschau, um ein Bild aufzunehmen.
- Die Inferenz läuft automatisch auf dem erfassten Frame.
- Klicken Sie erneut, um die Webcam neu zu starten.
Ergebnisse anzeigen
Anzeige der Inferenz-Ergebnisse:
- Begrenzungsrahmen mit Klassenbezeichnungen als SVG-Overlays
- Konfidenzwerte für jede detection
- Klassenfarben aus der Farbpalette Ihres Datensatzes (oder der Standardpalette Ultralytics )
- Geschwindigkeitsaufschlüsselung: Vorverarbeitung, Inferenz, Nachbearbeitung und Netzwerkzeit

Das Ergebnisfenster zeigt:
| Feld | Beschreibung |
|---|---|
| Erkennungsliste | Jede Erkennung mit Klassennamen und Konfidenz |
| Geschwindigkeitsstatistiken | Vorverarbeitung, Inferenz, Nachbearbeitung, Netzwerk (ms) |
| JSON-Antwort | Roh-API-Antwort in einem Codeblock |
Inferenzparameter
Passen Sie das Erkennungsverhalten mit den Parametern im ausklappbaren Abschnitt „Parameter“ an:

| Parameter | Bereich | Standard | Beschreibung |
|---|---|---|---|
| Konfidenz | 0,01–1,0 | 0.25 | Minimaler Konfidenzschwellenwert |
| IoU | 0,0–0,95 | 0.70 | NMS IoU-Schwellenwert |
| Bildgröße | 320, 640, 1280 | 640 | Eingabe-Größenänderung (Schaltfläche umschalten) |
Automatischer Neustart
Das Ändern eines Parameters führt automatisch zu einer erneuten Inferenz für das aktuelle Bild mit einer Entprellzeit von 500 ms. Ein erneutes Hochladen ist nicht erforderlich.
Konfidenzschwelle
Vorhersagen nach Konfidenz filtern:
- Höher (0.5+): Weniger, sicherere Vorhersagen
- Niedriger (0.1-0.25): Mehr Vorhersagen, etwas Rauschen
- Standard (0.25): Ausgewogen für die meisten Anwendungsfälle
IoU-Schwelle
Non-Maximum Suppression steuern:
- Höher (0,7+): Mehr überlappende Felder zulassen
- Niedriger (0,3–0,5): Ähnliche Erkennungen aggressiver zusammenführen
- Standard (0,70): Ausgewogenes NMS für die meisten Anwendungsfälle
Bereitstellungsprognose
Jeder Lauf dedizierter Endpunkt umfasst ein Predict Registerkarte direkt auf der Bereitstellungskarte. Dabei wird der eigene Inferenzdienst der Bereitstellung anstelle des gemeinsamen Vorhersagedienstes verwendet, sodass Sie Ihren bereitgestellten Endpunkt über den Browser testen können.
REST API
Programmatischer Zugriff auf die Inferenz:
Authentifizierung
Ihren API-Schlüssel in Anfragen einfügen:
Authorization: Bearer YOUR_API_KEY
API-Schlüssel erforderlich
Um Inferenz aus Ihren eigenen Skripten, Notebooks oder Apps auszuführen, fügen Sie einen API-Schlüssel hinzu. Generieren Sie einen in Settings (Abschnitt „API-Schlüssel“ auf der Registerkarte „Profil“).
Endpunkt
POST https://platform.ultralytics.com/api/models/{modelId}/predict
Anfrage
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);

Antwort
{
"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"
}
}
}

Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
images | Array | Liste der verarbeiteten Bilder |
images[].shape | Array | Bildabmessungen [Höhe, Breite] |
images[].results | Array | Liste der detections |
images[].results[].name | string | Klassenname |
images[].results[].confidence | float | detections-Konfidenz (0-1) |
images[].results[].box | Objekt | Bounding-Box-Koordinaten |
images[].speed | Objekt | Verarbeitungszeiten in Millisekunden |
metadata | Objekt | Metadaten und Versionsinformationen anfordern |
Aufgabenspezifische Antworten
Antwortformat variiert je nach Aufgabe:
{
"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}
}
Ratenbegrenzungen
Die gemeinsame Inferenz ist auf eine Rate begrenzt von 20 Anfragen/Minute pro API-Schlüssel. Bei Drosselung gibt die API Folgendes zurück: 429 mit einem Retry-After Kopfzeile. Siehe die vollständige Referenz zur Ratenbegrenzung für alle Endpunktkategorien.
Benötigen Sie mehr Durchsatz?
Stellen Sie einen dedizierten Endpunkt für unbegrenzte Inferenz ohne Ratenbeschränkungen, vorhersehbaren Durchsatz und konsistente Antworten mit geringer Latenz bereit. Informationen zur lokalen Inferenz finden Sie im Leitfaden zum Vorhersagemodus.
Fehlerbehandlung
Häufige Fehlerantworten:
| Code | Nachricht | Lösung |
|---|---|---|
| 400 | Ungültiges Bild | Dateiformat prüfen |
| 401 | Nicht autorisiert | API-Schlüssel überprüfen |
| 404 | Modell nicht gefunden | Modell-ID überprüfen |
| 429 | Ratenbegrenzung erreicht | Warten und erneut versuchen oder einen dedizierten Endpunkt für unbegrenzten Durchsatz verwenden |
| 500 | Serverfehler | Anfrage wiederholen |
FAQ
Kann ich Inferenz auf Videos durchführen?
Die API akzeptiert einzelne Frames. Für Videos:
- Frames lokal extrahieren
- Jeden Frame an die API senden
- Ergebnisse aggregieren
Für Echtzeit-Videos sollten Sie die Bereitstellung eines dedizierten Endpunkts in Betracht ziehen.
Wie erhalte ich das annotierte Bild?
Die API gibt JSON-Vorhersagen zurück. Zur Visualisierung:
- Vorhersagen nutzen, um Boxen lokal zu zeichnen
- Ultralytics verwenden
plot()Methode auf:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")
Die vollständigen Ergebnisse der API und Visualisierungsoptionen finden Sie in der Dokumentation zum Vorhersagemodus.
Was ist die maximale Bildgröße?
- Upload-Limit: 10MB
- Recommended: <5MB for fast inference
- Automatische GrößenanpassungBilder werden auf die ausgewählte Größe geändert.
Image SizeParameter
Große Bilder werden automatisch skaliert, wobei das Seitenverhältnis erhalten bleibt.
Kann ich Batch-Inferenz durchführen?
Die aktuelle API verarbeitet ein Bild pro Anfrage. Für Batch:
- Gleichzeitige Anfragen senden
- Einen dedizierten Endpunkt für höheren Durchsatz verwenden
- Für große Batches lokale Inferenz in Betracht ziehen
Batch-Inferenz mit 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))