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 Registerkarte „Vorhersagen “.
  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 hochladenZiehen Sie das Bild per Drag & Drop oder klicken Sie darauf, um es hochzuladen.
BeispielbilderKlicken Sie auf integrierte Beispiele (Datensatzbilder oder Standardeinstellungen).
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 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:

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 eine Live-Kameraübertragung zu starten:

  1. Erteilen Sie die Kamera-Berechtigung, wenn Sie dazu aufgefordert werden.
  2. Klicken Sie auf die Videovorschau, um ein Bild 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:

  • 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

Ultralytics „Predict Tab“ – Ergebnisse mit Erkennungen und Geschwindigkeitsstatistiken

Das Ergebnisfenster zeigt:

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

Inferenzparameter

Passen Sie das Erkennungsverhalten mit den Parametern im ausklappbaren Abschnitt „Parameter“ 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 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);

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.4.14",
            "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}
}

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:

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?

Die API akzeptiert einzelne Frames. Für Videos:

  1. Frames lokal extrahieren
  2. Jeden Frame an die API senden
  3. 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:

  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ößenanpassungBilder werden auf die ausgewählte Größe geändert. 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 1 Monat ✏️ Aktualisiert vor 5 Tagen
glenn-jochersergiuwaxmannLaughing-q

Kommentare