Zum Inhalt springen

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.

Ultralytics „Model Predict“ (Modellvorhersage) mit Überlagerung der Erkennungen

Vorhersage-Registerkarte

Jedes Modell enthält ein Predict Registerkarte für browserbasierte Inferenz:

  1. Navigieren Sie zu Ihrem Modell
  2. Klicken Sie auf die Vorhersage-Registerkarte.
  3. Laden Sie ein Bild hoch, verwenden Sie ein Beispiel oder öffnen Sie Ihre Webcam.
  4. Prognosen sofort mit Begrenzungsrahmen-Overlays anzeigen

Ultralytics „Vorhersagen“ Registerkarte „Bild hochladen“ Dropzone

Eingabemethoden

Das Vorhersagefeld unterstützt mehrere Eingabemethoden:

MethodeBeschreibung
Bild hochladenBild per Drag & Drop hochladen oder anklicken
BeispielbilderKlicken Sie auf integrierte Beispiele (Datensatzbilder oder Standardwerte).
Webcam-AufnahmeLive-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 erscheinen automatisch nach dem Hochladen

Auto-Inferenz

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:

BildInhalt
bus.jpgStraßenszene mit Fahrzeugen
zidane.jpgSportszene 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 einen Live-Kamera-Feed zu starten:

  1. Erteilen Sie die Kamera-Berechtigung, wenn Sie dazu aufgefordert werden.
  2. Klicken Sie auf die Videovorschau, um einen Frame aufzunehmen.
  3. Die Inferenz läuft automatisch auf dem erfassten Frame.
  4. Klicken Sie erneut, um die Webcam neu zu starten.

Ergebnisse anzeigen

Anzeige der Inferenz-Ergebnisse:

  • Bounding Boxes mit Klassenlabels als SVG-Overlays
  • Konfidenzwerte für jede detection
  • Klassenfarben aus der Farbpalette Ihres Datensatzes (oder der Ultralytics Standardpalette)
  • Geschwindigkeitsaufschlüsselung: Vorverarbeitung, Inferenz, Nachverarbeitung und Netzwerkzeit

Ultralytics „Predict Tab“ – Ergebnisse mit Erkennungen und Geschwindigkeitsstatistiken

Das Ergebnisfenster zeigt:

FeldBeschreibung
DetektionslisteJede Erkennung mit Klassennamen und Konfidenz
GeschwindigkeitsstatistikenVorverarbeitung, Inferenz, Nachbearbeitung, Netzwerk (ms)
JSON-AntwortRoh-API-Antwort in einem Codeblock

Inferenzparameter

Passen Sie das Detektionsverhalten mit Parametern im ausklappbaren Parameter-Abschnitt an:

Ultralytics „Vorhersage“-Registerkarte „Parameter“-Schieberegler

ParameterBereichStandardBeschreibung
Konfidenz0.01-1.00.25Minimaler Konfidenzschwellenwert
IoU0.0-0.950.70NMS IoU-Schwellenwert
Bildgröße320, 640, 1280640Eingabe-Größenänderung (Schaltfläche umschalten)

Automatischer Neustart

Das Ändern eines beliebigen Parameters führt automatisch eine erneute Inferenz auf dem aktuellen Bild mit einer Verzögerung von 500 ms aus. 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

Bereitstellungs-Vorhersage

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);

Ultralytics Predict Tab Code-Beispiele Python

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.x.x",
            "torch": "2.6.0",
            "torchvision": "0.21.0",
            "python": "3.13.0"
        }
    }
}

Ultralytics „Predict Tab“ JSON-Antwort anzeigen

Antwortfelder

FeldTypBeschreibung
imagesArrayListe der verarbeiteten Bilder
images[].shapeArrayBildabmessungen [Höhe, Breite]
images[].resultsArrayListe der detections
images[].results[].namestringKlassenname
images[].results[].confidencefloatdetections-Konfidenz (0-1)
images[].results[].boxObjektBounding-Box-Koordinaten
images[].speedObjektVerarbeitungszeiten in Millisekunden
metadataObjektMetadaten 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}
}

Abrechnung

Gemeinsame Schlussfolgerung (die Registerkarte „Vorhersage“ und /api/models/{id}/predict Endpunkt) ist ohne Aufpreis enthalten bei allen Tarifen. Für die gemeinsame Inferenz fallen keine Gebühren pro Anfrage an.

Für Produktions-Workloads, die einen höheren Durchsatz erfordern, sollten Sie einen dedizierten Endpunkt bereitstellen.

Ratenbegrenzungen

Die gemeinsame Inferenz ist auf eine Rate begrenzt von 20 Anfragen/Min. pro API-Schlüssel. Bei Drosselung gibt die API 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 bereit, ohne Ratenbegrenzungen, mit vorhersehbarem Durchsatz und konsistenten Antworten mit geringer Latenz. Für lokale Inferenz siehe den Leitfaden zum Predict-Modus.

Fehlerbehandlung

Häufige Fehlerantworten:

CodeNachrichtLösung
400Ungültiges BildDateiformat prüfen
401Nicht autorisiertAPI-Schlüssel überprüfen
404Modell nicht gefundenModell-ID überprüfen
429Ratenbegrenzung erreichtWarten und erneut versuchen oder einen dedizierten Endpunkt für unbegrenzten Durchsatz verwenden
500ServerfehlerAnfrage wiederholen

FAQ

Kann ich Inferenz auf Videos durchführen?

Das hängt von der Inferenzmethode ab:

  • Dedizierte Endpunkte akzeptieren Videodateien direkt. Unterstützte Formate (bis zu 100 MB): ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV. Jeder Frame wird einzeln verarbeitet und die Ergebnisse werden pro Frame zurückgegeben. Details finden Sie unter dedizierte Endpunkte.
  • Gemeinsame Schlussfolgerung (/api/models/{id}/predict) akzeptiert nur Bilder. Für Videos extrahieren Sie Frames lokal, senden jeden Frame als separate Anfrage und aggregieren die Ergebnisse.

Wie erhalte ich das annotierte Bild?

Die API gibt JSON-Vorhersagen zurück. Zur Visualisierung:

  1. Vorhersagen nutzen, um Boxen lokal zu zeichnen
  2. 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ößenanpassung: Bilder werden auf die ausgewählte Größe skaliert Image Size Parameter

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:

  1. Gleichzeitige Anfragen senden
  2. Einen dedizierten Endpunkt für höheren Durchsatz verwenden
  3. 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))


📅 Erstellt vor 2 Monaten ✏️ Aktualisiert vor 7 Tagen
glenn-jochert-hakobyansergiuwaxmannLaughing-q

Kommentare