Ultralytics YOLO27:

Inferenz#

Die Ultralytics Platform bietet eine browserbasierte Inferenz zum Testen trainierter Modelle sowie dedizierte Endpunkte für den programmatischen Zugriff.

Registerkarte „Modellvorhersage“ der Ultralytics Platform mit eingeblendeten Erkennungen

Vorhersage-Tab#

Jedes Modell mit Gewichten enthält eine Registerkarte Predict für browserbasierte Inferenz:

  1. Navigiere zu deinem Modell
  2. Klicke auf die Registerkarte Predict
  3. Lade ein Bild hoch, verwende ein Beispiel oder öffne deine Webcam
  4. Überprüfe die aufgabenspezifische Einblendung, die Zusammenfassung der Vorhersagen, die Zeitmessung und die Rohantwort

Modelle ohne Gewichte zeigen stattdessen einen leeren Zustand an – trainiere zuerst das Modell oder lade Gewichte hoch.

Dropzone zum Hochladen von Bildern in der Registerkarte „Predict“ der Ultralytics Platform

Eingabemethoden#

Das Predict-Panel unterstützt mehrere Eingabemethoden:

MethodeBeschreibung
Bild hochladenZiehe ein Bild per Drag-and-drop hinein oder klicke, um es hochzuladen
BeispielbilderKlicke auf integrierte Beispiele (Datensatzbilder oder Standardbilder)
Webcam-AufnahmeLive-Kamerabild mit Einzelbildaufnahme
graph LR
    A[Upload Image]:::start --> D[Auto-Inference]:::proc
    B[Example Image]:::start --> D
    C[Webcam Capture]:::start --> D
    D --> E[Results + Overlays]:::out

    classDef start fill:#4CAF50,color:#fff
    classDef proc fill:#2196F3,color:#fff
    classDef out fill:#9C27B0,color:#fff

Bild hochladen#

Ziehe ein Bild per Drag-and-drop hinein oder klicke zum Hochladen:

  • Unterstützte Formate: JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP
  • Maximale Größe: 10 MB
  • Automatische Inferenz: Die Ergebnisse werden nach dem Hochladen automatisch angezeigt
Automatische Inferenz

Das Predict-Panel führt automatisch eine Inferenz aus, wenn du ein Bild hochlädst, ein Beispiel auswählst oder ein Webcam-Bild aufnimmst. Ein Klick auf eine Schaltfläche ist nicht erforderlich.

Größenanpassung auf dem Client

Vor dem Hochladen passt das Panel die Bildgröße so an, dass die längste Seite dem ausgewählten Image Size entspricht, und fordert normalisierte Koordinaten an. Dadurch bleibt das Testen im Browser schnell; Anfragen, die du selbst sendest, werden nicht in der Größe angepasst.

Beispielbilder#

Das Predict-Panel zeigt bis zu zwei Beispielbilder aus dem verknüpften Datensatz deines Modells an, bevorzugt aus dem Split val, danach test und anschließend train. 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 einem Flughafen angezeigt.

Vorgeladene Bilder

Beispielbilder werden beim Laden der Seite vorgeladen. Wenn du auf ein Beispiel klickst, startet die Inferenz daher nahezu sofort, ohne Wartezeit für den Download.

Webcam#

Klicke auf die Webcam-Karte, um ein Live-Kamerabild zu starten:

  1. Erteile die Kameraberechtigung, wenn du dazu aufgefordert wirst
  2. Klicke auf die Videovorschau, um ein Bild aufzunehmen
  3. Die Inferenz wird automatisch für das aufgenommene Bild ausgeführt
  4. Klicke erneut, um die Webcam neu zu starten

Ergebnisse anzeigen#

Die Inferenzergebnisse zeigen die für die Modellaufgabe geeignete Ausgabe: Boxen, Masken, Keypoints, ausgerichtete Boxen, Klassifikationswerte, semantische Abdeckung oder eine Tiefenkarte. Objektergebnisse verwenden, sofern verfügbar, die Klassenfarben des Datensatzes. Das Panel zeigt außerdem die Zeitmessung für Vorverarbeitung, Inferenz, Nachverarbeitung und Netzwerk an.

Ultralytics Platform Predict Tab Results With Detections And Speed Stats

Das Ergebnisfenster zeigt:

FeldBeschreibung
Zusammenfassung der ErgebnisseListe der einzelnen Erkennungen oder die fünf häufigsten Klassen bei Klassifikations- und semantischen Modellen
GeschwindigkeitsstatistikenVorverarbeitung, Inferenz, Nachverarbeitung und Netzwerk (ms)
VersionenUltralytics- und PyTorch-Versionen sowie gegebenenfalls der Tiefenbereich oder die Maskengröße
JSON-AntwortRohe API-Antwort in einem Codeblock, wobei base64-Kartendaten ausgelassen werden

Sobald Ergebnisse vorliegen, befinden sich zwei Steuerelemente über der Vorschau: Klicke auf das Bild, um es mit unveränderten Einblendungen zu vergrößern, und verwende die Download-Schaltfläche, um ein annotiertes JPEG des aktuellen Ergebnisses zu speichern.

Inferenzparameter#

Passe das Inferenzverhalten mit den drei Schiebereglern unter dem Bild an:

Schieberegler für Parameter in der Registerkarte „Predict“ der Ultralytics Platform

ParameterBereichStandardwertBeschreibung
Konfidenz0.01–1.0, Schritte von 0.010.25Minimaler Konfidenzschwellenwert
IoU0.0–0.95, Schritte von 0.010.7NMS-IoU-Schwellenwert
Bildgröße32–1280, Schritte von 32640Größe der Eingabe in Pixeln
Automatischer Neustart

Wenn du einen Parameter änderst, wird die Inferenz für das aktuelle Bild nach einer Verzögerung von 500 ms automatisch erneut ausgeführt. Ein erneutes Hochladen ist nicht erforderlich.

Konfidenzschwellenwert#

Filtere Vorhersagen nach ihrer Konfidenz:

  • Höher (0.5+): Weniger, aber sicherere Vorhersagen
  • Niedriger (0.1–0.25): Mehr Vorhersagen, teilweise mit Rauschen
  • Standard (0.25): Ausgewogen für die meisten Anwendungsfälle

IoU-Schwellenwert#

Steuere die Nichtmaximum-Unterdrückung:

  • Höher (0.7+): Mehr überlappende Boxen zulassen
  • Niedriger (0.3–0.5): Überlappende Erkennungen stärker unterdrücken
  • Standard (0.7): Ausgewogenes NMS-Verhalten für die meisten Anwendungsfälle

Bereitstellungs-Predict#

Jeder laufende dedizierte Endpunkt enthält direkt auf seiner Bereitstellungskarte eine Registerkarte Predict. Dabei wird der eigene Inferenzdienst der Bereitstellung anstelle des gemeinsamen Predict-Dienstes verwendet, sodass du deinen bereitgestellten Endpunkt im Browser testen kannst.

Auf einem kostenpflichtigen Endpunkt mit aktiviertem Monitoring tragen verarbeitete Bilder ebenfalls zum Monitoring-Tab bei. Die Stichproben und aggregierten Diagramme des Monitoring-Tabs sind leichtgewichtige, temporäre Daten im Arbeitsspeicher; das Stoppen, Neustarten, Neuausrollen, Ändern der Größe oder Ersetzen des Modells kann die Stichproben und aggregierten Diagramme des Monitoring-Tabs löschen. Speichere Beispiele in einem Dataset, um die Beispiele zu behalten.

API für dedizierte Endpunkte#

Die Karte API Docs in der Registerkarte Predict des Modells enthält Beispielanfragen für Python, JavaScript und cURL, in denen die aktuell über die Schieberegler festgelegten Werte für Konfidenz, IoU und Bildgröße bereits eingetragen sind. URL und Schlüssel sind Platzhalter, bis du das Modell bereitstellst – eine Schaltfläche Deploy neben den Code-Registerkarten führt zur Registerkarte Deploy des Modells. Nach der Bereitstellung werden auf der Registerkarte Code der Bereitstellungskarte die URL dieses Endpunkts und für Arbeitsbereichsbesitzer der zugehörige API-Schlüssel eingetragen, sodass du sie kopieren und ausführen kannst.

Authentifizierung#

Füge deinen API-Schlüssel in Anfragen ein:

Authorization: Bearer YOUR_API_KEY
API-Schlüssel erforderlich

Um Inferenz aus deinen eigenen Skripten, Notebooks oder Apps auszuführen, musst du einen API-Schlüssel einfügen. Erstelle einen unter Settings > API Keys. Ein dedizierter Endpunkt akzeptiert nur den einzelnen Schlüssel, mit dem er erstellt wurde; die gemeinsame Modell-API akzeptiert jeden aktiven Schlüssel im Arbeitsbereich, und öffentliche Modelle akzeptieren auch anonyme Anfragen.

Endpunkt#

Dedizierte Endpunkte nehmen Anfragen unter ihrer eigenen URL entgegen:

POST https://YOUR_DEPLOYMENT_URL.run.app/predict

Die gemeinsame Inferenz verwendet die Platform API mit dem vollständigen Pfad des Modells:

POST https://platform.ultralytics.com/api/models/{owner}/{project}/{model}/predict

Beide akzeptieren denselben multipart/form-data-Textkörper und geben dieselbe Antwortstruktur zurück. Verwende mit dem Python SDK client.models.predict(owner, project, model, body=...) für die gemeinsame Inferenz oder client.deployments.predict(owner, deployment, body=...) für eine dedizierte Bereitstellung:

from ultralytics_platform import Platform

client = Platform()  # reads ULTRALYTICS_API_KEY
with open("image.jpg", "rb") as f:
    results = client.models.predict("acme-vision", "inspection", "v3", body={"file": f, "conf": 0.25})

Anfrage#

import requests

url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}

with open("image.jpg", "rb") as image_file:
    response = requests.post(url, headers=headers, files={"file": image_file}, data=data)
print(response.json())

Codebeispiele in Python in der Registerkarte „Predict“ der Ultralytics Platform

Anfrageparameter#

ParameterTypStandardwertBereichBeschreibung
filefile--Bild- oder Videodatei (erforderlich, sofern source nicht gesetzt ist)
conffloat0.250.01 – 1.0Minimaler Konfidenzschwellenwert
ioufloat0.70.0 – 0.95NMS-IoU-Schwellenwert
imgszint64032 – 1280Größe des Eingabebilds in Pixeln
normalizeboolfalse-Gibt Koordinaten der Begrenzungsbox als 0–1 zurück
decimalsint50 – 10Dezimalgenauigkeit der Koordinatenwerte
bitsint88, 12, 16Quantisierung der Tiefenkarte, nur für Tiefenmodelle
sourcestring--Bild-URL oder base64-Zeichenfolge (Alternative zu file)

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,
        "functionTimeAlive": 1284.51,
        "functionTimeCall": 0.018,
        "task": "detect",
        "version": {
            "ultralytics": "8.x.x",
            "torch": "2.6.0",
            "torchvision": "0.21.0",
            "python": "3.13.0"
        }
    }
}

JSON-Antwortansicht in der Registerkarte „Predict“ der Ultralytics Platform

Antwortfelder#

FeldTypBeschreibung
imagesArrayListe der verarbeiteten Bilder, bei Videos ein Eintrag pro Videoframe
images[].shapeArrayBildabmessungen [Höhe, Breite]
images[].resultsArrayListe der Erkennungen
images[].results[].classintKlassenindex (Ganzzahl-ID)
images[].results[].namestringKlassenname
images[].results[].confidencefloatErkennungskonfidenz (0–1)
images[].results[].boxObjektKoordinaten der Begrenzungsbox
images[].semantic_maskObjektKlassenkarte pro Pixel (nur semantische Modelle)
images[].depthObjektTiefenkarte pro Pixel (nur Tiefenmodelle)
images[].speedObjektVerarbeitungszeiten in Millisekunden
metadataObjektAnzahl der Bilder, Dienstzeiten, Task sowie Ultralytics-/PyTorch-Versionen

Taskspezifische Antworten#

Das Antwortformat variiert je nach Task:

{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}

Ratenlimits#

Die gemeinsam genutzte Modell-API ist auf 20 Anfragen/Minute pro API-Key, angemeldeten Aufrufer oder anonyme IP-Adresse begrenzt. Bei einer Drosselung gibt die API 429 mit einem Retry-After-Header zurück. Eine vollständige Übersicht über alle Endpunktkategorien findest du in der Referenz zu den Ratenlimits.

Brauchst du mehr Durchsatz?

Anfragen, die direkt an einen dedizierten Endpunkt gesendet werden, durchlaufen nicht den Ratenbegrenzer der Platform API. Der Endpunkt reduziert die Last jedoch weiterhin mit 429 und einem Retry-After-Header, wenn er vorübergehend ausgelastet ist. Informationen zur lokalen Inferenz mit hohem Volumen findest du im Leitfaden zum Predict-Modus.

Fehlerbehandlung#

Häufige Fehlerantworten:

CodeNachrichtLösung
400Ungültiges BildÜberprüfe das Dateiformat und ob das Modell trainierte Gewichte besitzt
401Nicht autorisiertÜberprüfe den API-Key
404Modell nicht gefundenÜberprüfe Besitzer, Projekt- und Modellnamen
413Eingabe zu großVerringere die Dateigröße unter das Endpunktlimit
429Ratenlimit erreichtWarte und versuche es erneut oder sende Anfragen direkt an einen dedizierten Endpunkt
500ServerfehlerAnfrage wiederholen
503Dienst nicht verfügbarDer Predict-Dienst wird gestartet oder ist nicht erreichbar; warte kurz und versuche es erneut

FAQ#

  • Beide Inferenzmethoden akzeptieren Videodateien:

    • Dedizierte Endpunkte akzeptieren Videodateien direkt. Unterstützte Formate (bis zu 100 MB): ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV. Jedes Bild wird einzeln verarbeitet und die Ergebnisse werden pro Frame zurückgegeben. Weitere Informationen findest du unter dedizierte Endpunkte.
    • Gemeinsam genutzte Inferenz (POST /api/models/{owner}/{project}/{model}/predict) verwendet denselben Predict-Dienst und akzeptiert dieselben Videoformate. Der Browser-Tab Predict ermöglicht nur die Auswahl von Bildern. Verwende für Videos daher die API oder einen dedizierten Endpunkt.
  • Im Tab Predict speichert die Download-Schaltfläche über der Vorschau das aktuelle Ergebnis als annotiertes JPEG. Die API selbst gibt JSON-Vorhersagen zurück. So kannst du diese visualisieren:

    1. Zeichne mithilfe der Vorhersagen lokal Boxen
    2. Verwende die Ultralytics-Methode plot():
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    results = model("image.jpg")
    results[0].save("annotated.jpg")

    Die vollständige Results-API und Optionen zur Visualisierung findest du in der Dokumentation zum Predict-Modus.

    • Limit im Predict-Tab: 10 MB
    • API-Limit: 100 MB sowohl für gemeinsam genutzte Inferenz als auch für dedizierte Endpunkte
    • Automatische Größenanpassung im Predict-Tab: Bilder werden vor dem Upload auf die ausgewählte Image Size-Größe angepasst

    Große Bilder werden im Browser automatisch angepasst, wobei das Seitenverhältnis erhalten bleibt. Von dir selbst gesendete Anfragen werden nicht angepasst. Bilder über dem Limit werden daher mit 413 abgelehnt.

  • Die aktuelle API verarbeitet ein Bild pro Anfrage. Für Batch-Inferenz:

    1. Sende für jedes Bild eine separate Anfrage
    2. Verteile die Anfragen bei Bedarf auf dedizierte Endpunkte
    3. Verwende für große Batches lokale Inferenz
    Batch-Inferenz mit Python
    import concurrent.futures
    
    import requests
    
    url = "https://YOUR_DEPLOYMENT_URL.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))

Kommentare