Meet YOLO26: next-gen vision AI.

Link to this sectionModellvorhersage mit Ultralytics YOLO#

Ultralytics YOLO ecosystem and integrations

Link to this sectionEinführung#

In der Welt des Machine Learning und der Computer Vision wird der Prozess, visuelle Daten zu interpretieren, oft als Inferenz oder Vorhersage bezeichnet. Ultralytics YOLO26 bietet eine leistungsstarke Funktion namens Predict-Modus, die speziell für hochperformante Echtzeit-Inferenz bei einer Vielzahl von Datenquellen entwickelt wurde.



Watch: How to Extract Results from Ultralytics YOLO26 Tasks for Custom Projects 🚀

Link to this sectionAnwendungen in der Praxis#

FertigungSportSicherheit
Erkennung von FahrzeugersatzteilenErkennung von FußballspielernErkennung von Stürzen
Erkennung von FahrzeugersatzteilenErkennung von FußballspielernErkennung von Stürzen

Link to this sectionWarum Ultralytics YOLO für die Inferenz verwenden?#

Hier ist, warum du den Predict-Modus von YOLO26 für deine verschiedenen Inferenzanforderungen in Betracht ziehen solltest:

  • Vielseitigkeit: Fähigkeit zur Durchführung von Inferenz auf Bildern, Videos und sogar Live-Streams.
  • Leistung: Entwickelt für Echtzeit-Verarbeitung mit hoher Geschwindigkeit, ohne die Genauigkeit zu beeinträchtigen.
  • Benutzerfreundlichkeit: Intuitive Python- und CLI-Schnittstellen für schnelle Bereitstellung und Tests.
  • Hochgradig anpassbar: Verschiedene Einstellungen und Parameter, um das Inferenzverhalten des Modells an deine spezifischen Anforderungen anzupassen.
  • Produktionsbereit: Stelle Modelle als API-Endpunkte auf der Ultralytics Platform mit Auto-Skalierung und Monitoring bereit oder führe Inferenz lokal aus.

Link to this sectionHauptmerkmale des Predict-Modus#

Der Predict-Modus von YOLO26 ist robust und vielseitig gestaltet und bietet:

  • Kompatibilität mit mehreren Datenquellen: Egal ob deine Daten in Form von einzelnen Bildern, einer Bildersammlung, Videodateien oder Echtzeit-Videostreams vorliegen, der Predict-Modus unterstützt sie alle.
  • Streaming-Modus: Nutze die Streaming-Funktion, um einen speichereffizienten Generator von Results-Objekten zu erstellen. Aktiviere dies, indem du stream=True in der Aufrufmethode des Prädiktors festlegst.
  • Batch-Verarbeitung: Verarbeite mehrere Bilder oder Videobilder in einem einzigen Batch, was die gesamte Inferenzzeit weiter reduziert.
  • Integrationsfreundlich: Dank seiner flexiblen API lässt sich das Modell leicht in bestehende Datenpipelines und andere Softwarekomponenten integrieren.

Ultralytics YOLO-Modelle geben entweder eine Python-Liste von Results-Objekten oder einen speichereffizienten Generator von Results-Objekten zurück, wenn während der Inferenz stream=True an das Modell übergeben wird:

Vorhersagen
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # pretrained YOLO26n model

# Run batched inference on a list of images
results = model(["image1.jpg", "image2.jpg"])  # return a list of Results objects

# Process results list
for result in results:
    boxes = result.boxes  # Boxes object for bounding box outputs
    masks = result.masks  # Masks object for segmentation masks outputs
    keypoints = result.keypoints  # Keypoints object for pose outputs
    probs = result.probs  # Probs object for classification outputs
    obb = result.obb  # Oriented boxes object for OBB outputs
    result.show()  # display to screen
    result.save(filename="result.jpg")  # save to disk

Link to this sectionInferenz-Quellen#

YOLO26 kann verschiedene Arten von Eingangsquellen für die Inferenz verarbeiten, wie in der Tabelle unten gezeigt. Zu den Quellen gehören statische Bilder, Videostreams und verschiedene Datenformate. Die Tabelle zeigt auch an, ob jede Quelle im Streaming-Modus mit dem Argument stream=True ✅ verwendet werden kann. Der Streaming-Modus ist vorteilhaft für die Verarbeitung von Videos oder Live-Streams, da er einen Ergebnisgenerator erstellt, anstatt alle Frames in den Arbeitsspeicher zu laden.

Tipp

Verwende stream=True für die Verarbeitung langer Videos oder großer Datensätze, um den Arbeitsspeicher effizient zu verwalten. Wenn stream=False eingestellt ist, werden die Ergebnisse für alle Frames oder Datenpunkte im Arbeitsspeicher gespeichert, was sich schnell summieren und bei großen Eingaben zu Out-of-Memory-Fehlern führen kann. Im Gegensatz dazu nutzt stream=True einen Generator, der nur die Ergebnisse des aktuellen Frames oder Datenpunkts im Arbeitsspeicher hält, was den Speicherverbrauch erheblich reduziert und Out-of-Memory-Probleme verhindert.

QuelleBeispielTypHinweise
Bild'image.jpg'str oder PathEinzelne Bilddatei.
URL'https://ultralytics.com/images/bus.jpg'strURL zu einem Bild.
Bildschirmfoto'screen'strErstelle ein Bildschirmfoto.
PILImage.open('image.jpg')PIL.ImageHWC-Format mit RGB-Kanälen.
OpenCVcv2.imread('image.jpg')np.ndarrayHWC-Format mit BGR-Kanälen uint8 (0-255).
NumPynp.zeros((640,1280,3))np.ndarrayHWC-Format mit BGR-Kanälen uint8 (0-255).
torchtorch.zeros(16,3,320,640)torch.TensorBCHW-Format mit RGB-Kanälen float32 (0.0-1.0).
CSV'sources.csv'str oder PathCSV-Datei mit Pfaden zu Bildern, Videos oder Verzeichnissen.
Video ✅'video.mp4'str oder PathVideodatei in Formaten wie MP4, AVI usw.
Verzeichnis ✅'path/'str oder PathPfad zu einem Verzeichnis, das Bilder oder Videos enthält.
Glob ✅'path/*.jpg'strGlob-Muster für mehrere Dateien. Verwende das *-Zeichen als Platzhalter.
YouTube ✅'https://youtu.be/LNwODJXcvt4'strURL zu einem YouTube-Video.
Stream ✅'rtsp://example.com/media.mp4'strURL für Streaming-Protokolle wie RTSP, RTMP, TCP oder eine IP-Adresse.
Multi-Stream ✅'list.streams'str oder Path*.streams Textdatei mit einer Stream-URL pro Zeile, d.h. 8 Streams laufen bei einer Batch-Größe von 8.
Webcam ✅0intIndex des angeschlossenen Kamerageräts für die Inferenz.

Nachfolgend findest du Codebeispiele für die Verwendung der einzelnen Quellentypen:

Vorhersagequellen

Führe die Inferenz auf einer Bilddatei aus.

from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")

# Define path to the image file
source = "path/to/image.jpg"

# Run inference on the source
results = model(source)  # list of Results objects

Link to this sectionInferenz-Argumente#

model.predict() akzeptiert mehrere Argumente, die zur Inferenzzeit übergeben werden können, um Standardwerte zu überschreiben:

Link to this sectionFeste Größe vs. minimales Rechteck (rect)#

Standardmäßig verwendet predict rect=True, was ein Minimal-Rechteck-Padding ermöglicht, sofern dies möglich ist. Das Bild wird skaliert, um in imgsz zu passen, und nur auf das nächste Vielfache des Strides aufgefüllt, sodass der endgültige Tensor kleiner als imgsz sein kann. Das Minimal-Rechteck-Padding wird nur verwendet, wenn alle Bilder im Batch die gleiche Form haben und das Backend dies unterstützt (PyTorch .pt oder dynamisch ONNX / Triton). Andernfalls werden die Bilder auf das volle imgsz Ziel aufgefüllt.

Verwende rect=False, um immer auf das volle imgsz Ziel aufzufüllen. Dies wird empfohlen, wenn du eine feste Eingabegröße benötigst, um exportierte Modelle (ONNX, TensorRT etc.) zu verwenden.

Ganzzahl vs. Tupel imgsz

  • Eine Ganzzahl imgsz=640 wird nach der Stride-Rundung zu einem quadratischen Ziel (640, 640).
  • Ein Tupel imgsz=(384, 672) legt ein rechteckiges Ziel fest. Mit rect=True und auto=True kann der tatsächliche Tensor kleiner als dieses Ziel sein.

Training vs. Predict/Export

Das Training akzeptiert nur eine einzelne Ganzzahl imgsz (eine [h, w] Liste wird auf den größten Wert gezwungen). Predict und Export akzeptieren entweder eine Ganzzahl oder ein (height, width) Tupel.

Beispiel
from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")

# Run inference on 'bus.jpg' with arguments
model.predict("https://ultralytics.com/images/bus.jpg", save=True, imgsz=320, conf=0.25)

Inferenz-Argumente:

ArgumentTypStandardBeschreibung
sourcestr oder int oder NoneNoneGibt die Datenquelle für die Inferenz an. Dies kann ein Bildpfad, eine Videodatei, ein Verzeichnis, eine URL oder eine Geräte-ID für Live-Feeds sein. Falls weggelassen, wird eine Warnung protokolliert und das Modell greift auf die integrierten Demo-Assets zurück (ultralytics/assets oder eine Demo-URL für OBB). Unterstützt eine Vielzahl von Formaten und Quellen, was eine flexible Anwendung über verschiedene Eingabetypen ermöglicht.
conffloat0.25Legt den minimalen Konfidenz-Schwellenwert für Erkennungen fest. Objekte, die mit einer Konfidenz unterhalb dieses Schwellenwerts erkannt werden, werden ignoriert. Die Anpassung dieses Wertes kann helfen, falsch-positive Ergebnisse zu reduzieren.
ioufloat0.7Intersection Over Union (IoU)-Schwellenwert für Non-Maximum Suppression (NMS). Niedrigere Werte führen zu weniger Erkennungen durch das Eliminieren überlappender Boxen, was nützlich ist, um Duplikate zu reduzieren.
imgszint oder tuple640Letterbox-Ziel. Eine Ganzzahl ergibt ein quadratisches N×N; ein Tupel ergibt (height, width). Mit rect=True kann der tatsächliche Tensor aufgrund des Mindest-Rechteck-Padding kleiner als dieses Ziel sein. Verwende rect=False für eine feste Größe. Siehe Feste Form vs. Mindest-Rechteck.
rectboolTrueFalls True, verwende Mindest-Rechteck-Padding, wenn möglich (Batch gleicher Form und unterstütztes Backend). Falls False, immer auf das volle imgsz auffüllen. Siehe Feste Form vs. Mindest-Rechteck.
halfboolFalseAktiviert die Halbe-Präzision (FP16)-Inferenz, die die Modellinferenz auf unterstützten GPUs bei minimalen Auswirkungen auf die Genauigkeit beschleunigen kann.
devicestrNoneGibt das Gerät für die Inferenz an (z. B. cpu, cuda:0, 0, npu oder npu:0). Ermöglicht es Benutzern, zwischen CPU, einer bestimmten GPU, Huawei Ascend NPU oder anderen Rechengeräten für die Modellausführung zu wählen.
batchint1Gibt die Batch-Größe für die Inferenz an (funktioniert nur, wenn die Quelle ein Verzeichnis, eine Videodatei oder eine .txt-Datei ist). Eine größere Batch-Größe kann einen höheren Durchsatz bieten und die für die Inferenz benötigte Gesamtzeit verkürzen.
max_detint300Maximale Anzahl der erlaubten Erkennungen pro Bild. Begrenzt die Gesamtzahl der Objekte, die das Modell in einer einzigen Inferenz erkennen kann, um übermäßige Ausgaben in dichten Szenen zu verhindern.
vid_strideint1Frame-Schrittweite für Videoeingaben. Ermöglicht das Überspringen von Frames in Videos, um die Verarbeitung auf Kosten der zeitlichen Auflösung zu beschleunigen. Ein Wert von 1 verarbeitet jeden Frame, höhere Werte überspringen Frames.
stream_bufferboolFalseBestimmt, ob eingehende Frames für Videostreams in die Warteschlange gestellt werden sollen. Falls False, werden alte Frames verworfen, um neue Frames unterzubringen (optimiert für Echtzeitanwendungen). Falls True, werden neue Frames in einem Puffer in die Warteschlange gestellt, was sicherstellt, dass keine Frames übersprungen werden, aber zu Latenz führen kann, wenn die Inferenz-FPS niedriger als die Stream-FPS sind.
visualizeboolFalseAktiviert die Visualisierung von Modellmerkmalen während der Inferenz und bietet Einblicke in das, was das Modell "sieht". Nützlich für Debugging und Modellinterpretation.
augmentboolFalseAktiviert Test-Time Augmentation (TTA) für Vorhersagen, was potenziell die Robustheit der Erkennung auf Kosten der Inferenzgeschwindigkeit verbessert.
agnostic_nmsboolFalseAktiviert klassenagnostische Non-Maximum Suppression (NMS), die überlappende Boxen verschiedener Klassen zusammenführt. Nützlich in Szenarien mit Multi-Klassen-Erkennung, in denen Klassenüberlappungen häufig sind. Bei End-to-End-Modellen (YOLO26, YOLOv10) verhindert dies nur, dass dieselbe Erkennung mit mehreren Klassenlabels erscheint (IoU=1.0 Duplikate) und führt keine Unterdrückung auf Basis des IoU-Schwellenwerts zwischen verschiedenen Boxen durch.
classeslist[int]NoneFiltert Vorhersagen auf eine Menge von Klassen-IDs. Nur Erkennungen, die zu den angegebenen Klassen gehören, werden zurückgegeben. Nützlich, um sich auf relevante Objekte bei Multi-Klassen-Erkennungsaufgaben zu konzentrieren.
retina_masksboolFalseGibt hochauflösende Segmentierungsmasken zurück. Die zurückgegebenen Masken (masks.data) entsprechen bei Aktivierung der ursprünglichen Bildgröße. Falls deaktiviert, haben sie die Bildgröße, die während der Inferenz verwendet wurde.
embedlist[int]NoneGibt die Schichten an, aus denen Merkmalsvektoren oder Embeddings extrahiert werden sollen. Nützlich für nachgelagerte Aufgaben wie Clustering oder Ähnlichkeitssuche.
projectstrNoneName des Projektverzeichnisses, in dem Vorhersageausgaben gespeichert werden, wenn save aktiviert ist.
namestrNoneName des Vorhersagelaufs. Wird zum Erstellen eines Unterverzeichnisses innerhalb des Projektordners verwendet, in dem Vorhersageausgaben gespeichert werden, wenn save aktiviert ist.
streamboolFalseErmöglicht speichereffiziente Verarbeitung für lange Videos oder zahlreiche Bilder, indem ein Generator von Results-Objekten zurückgegeben wird, anstatt alle Frames gleichzeitig in den Speicher zu laden.
verboseboolTrueSteuert, ob detaillierte Inferenz-Protokolle im Terminal angezeigt werden, was Echtzeit-Feedback zum Vorhersageprozess bietet.
compilebool oder strFalseAktiviert die PyTorch 2.x torch.compile Graph-Kompilierung mit backend='inductor'. Akzeptiert True"default", False → deaktiviert, oder einen String-Modus wie "default", "reduce-overhead", "max-autotune-no-cudagraphs". Fällt bei Nichtunterstützung mit einer Warnung auf Eager zurück.
end2endboolNoneÜberschreibt den End-to-End-Modus in YOLO-Modellen, die NMS-freie Inferenz unterstützen (YOLO26, YOLOv10). Das Setzen auf False ermöglicht es dir, die Vorhersage mithilfe der traditionellen NMS-Pipeline auszuführen, was zusätzlich die Verwendung des iou-Arguments erlaubt. Siehe den End-to-End-Erkennungsleitfaden für Details.

Visualisierungs-Argumente:

ArgumentTypStandardBeschreibung
showboolFalseWenn True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder Tests.
saveboolFalse or TrueAktiviert das Speichern der annotierten Bilder oder Videos in Dateien. Nützlich für Dokumentation, weitere Analysen oder zum Teilen von Ergebnissen. Standardmäßig True bei Verwendung der CLI & False bei Verwendung in Python.
save_framesboolFalseBeim Verarbeiten von Videos werden einzelne Frames als Bilder gespeichert. Nützlich zum Extrahieren spezifischer Frames oder für detaillierte Frame-für-Frame-Analysen.
save_txtboolFalseSpeichert Erkennungsergebnisse in einer Textdatei im Format [class] [x_center] [y_center] [width] [height] [confidence]. Nützlich für die Integration mit anderen Analysetools.
save_confboolFalseSchließt Konfidenzwerte in den gespeicherten Textdateien ein. Verbessert die Detailgenauigkeit für die Nachbearbeitung und Analyse.
save_cropboolFalseSpeichert zugeschnittene Bilder der Erkennungen. Nützlich für Datensatz-Augmentierung, Analyse oder das Erstellen fokussierter Datensätze für bestimmte Objekte.
show_labelsboolTrueZeigt Labels für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte.
show_confboolTrueZeigt den Konfidenzwert für jede Erkennung neben dem Label an. Bietet Einblick in die Gewissheit des Modells für jede Erkennung.
show_boxesboolTrueZeichnet Begrenzungsrahmen um erkannte Objekte. Wesentlich für die visuelle Identifizierung und Lokalisierung von Objekten in Bildern oder Videoframes.
line_widthint or NoneNoneLegt die Linienbreite der BBoxen fest. Wenn None, wird die Linienbreite automatisch basierend auf der Bildgröße angepasst. Bietet visuelle Anpassungsmöglichkeiten für mehr Klarheit.

Link to this sectionBild- und Videoformate#

YOLO26 unterstützt verschiedene Bild- und Videoformate, wie in ultralytics/data/utils.py spezifiziert. Siehe die unten stehenden Tabellen für gültige Suffixe und Beispiel-Predict-Befehle.

Link to this sectionBilder#

Die unten stehende Tabelle enthält gültige Ultralytics Bildformate.

Hinweis

HEIC/HEIF-Formate erfordern pi-heif, das bei der ersten Verwendung automatisch installiert wird. AVIF wird nativ von Pillow unterstützt.

Bild-SuffixeBeispiel-Predict-BefehlReferenz
.avifyolo predict source=image.avifAV1 Image File Format
.bmpyolo predict source=image.bmpMicrosoft BMP File Format
.dngyolo predict source=image.dngAdobe DNG
.heicyolo predict source=image.heicHigh Efficiency Image Format
.heifyolo predict source=image.heifHigh Efficiency Image Format
.jp2yolo predict source=image.jp2JPEG 2000
.jpegyolo predict source=image.jpegJPEG
.jpeg2000yolo predict source=image.jpeg2000JPEG 2000
.jpgyolo predict source=image.jpgJPEG
.mpoyolo predict source=image.mpoMulti Picture Object
.pngyolo predict source=image.pngPortable Network Graphics
.tifyolo predict source=image.tifTag Image File Format
.tiffyolo predict source=image.tiffTag Image File Format
.webpyolo predict source=image.webpWebP

Link to this sectionVideos#

Die unten stehende Tabelle enthält gültige Ultralytics Videoformate.

Video-SuffixeBeispiel-Predict-BefehlReferenz
.asfyolo predict source=video.asfAdvanced Systems Format
.aviyolo predict source=video.aviAudio Video Interleave
.gifyolo predict source=video.gifGraphics Interchange Format
.m4vyolo predict source=video.m4vMPEG-4 Part 14
.mkvyolo predict source=video.mkvMatroska
.movyolo predict source=video.movQuickTime File Format
.mp4yolo predict source=video.mp4MPEG-4 Part 14 - Wikipedia
.mpegyolo predict source=video.mpegMPEG-1 Part 2
.mpgyolo predict source=video.mpgMPEG-1 Part 2
.tsyolo predict source=video.tsMPEG Transport Stream
.wmvyolo predict source=video.wmvWindows Media Video
.webmyolo predict source=video.webmWebM Project

Link to this sectionArbeiten mit Ergebnissen#

Alle Ultralytics predict() Aufrufe geben eine Liste von Results Objekten zurück:

Ergebnisse
from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
results = model(
    [
        "https://ultralytics.com/images/bus.jpg",
        "https://ultralytics.com/images/zidane.jpg",
    ]
)  # batch inference

Results Objekte haben die folgenden Attribute:

AttributTypBeschreibung
orig_imgnp.ndarrayDas ursprüngliche Bild als NumPy Array.
orig_shapetupleDie ursprüngliche Bildgröße im Format (Höhe, Breite).
boxesBoxes, optionalEin Boxes Objekt, das die Bounding Boxes der Erkennung enthält.
masksMasks, optionalEin Masks Objekt, das die Erkennungsmasken enthält.
probsProbs, optionalEin Probs Objekt, das die Wahrscheinlichkeiten jeder Klasse für eine Klassifizierungsaufgabe enthält.
keypointsKeypoints, optionalEin Keypoints Objekt, das erkannte Keypoints für jedes Objekt enthält.
obbOBB, optionalEin OBB Objekt, das orientierte Bounding Boxes enthält.
semantic_maskSemanticMask, optionalEin SemanticMask Objekt, das eine dichte klassenbasierte Karte pro Pixel enthält.
speeddictEin Wörterbuch der Vorverarbeitungs-, Inferenz- und Nachverarbeitungsgeschwindigkeiten in Millisekunden pro Bild.
namesdictEin Wörterbuch, das Klassenindizes Klassennamen zuordnet.
pathstrDer Pfad zur Bilddatei.
save_dirstr, optionalVerzeichnis zum Speichern der Ergebnisse.

Link to this sectionErgebnisse nach Aufgabe#

Jede Vorhersage gibt ein Results Objekt pro Bild oder Frame zurück. Die oben genannten allgemeinen Felder sind immer verfügbar, während die aufgabenspezifischen Vorhersagedaten in den folgenden Feldern gespeichert sind. Koordinaten-, Konfidenz- und Wahrscheinlichkeitstensoren sind torch.float32, es sei denn, es wird mit halber Genauigkeit gearbeitet, dann torch.float16. Nach result.numpy() werden Tensoren zu NumPy Arrays mit passenden NumPy Datentypen. Instanzmasken sind torch.uint8 Binärtensoren, während semantische Masken den kleinstmöglichen praktischen Integer-Datentyp für Klassen-IDs verwenden: torch.uint8, torch.int16 oder torch.int32, abhängig von der Anzahl der Klassen.

AttributTypFormBeschreibung
result.boxesBoxes(N)Erkennungsboxen.
result.boxes.datatorch.float32(N,6/7)Rohdaten [x1,y1,x2,y2,conf,cls], plus optionale Track-ID.
result.boxes.xyxytorch.float32(N,4)xyxy Pixelboxen.
result.boxes.conftorch.float32(N,)Konfidenzwerte.
result.boxes.clstorch.float32(N,)Klassen-IDs; für Namen in int umwandeln.

Results Objekte verfügen über die folgenden Methoden:

MethodeRückgabetypBeschreibung
update()NoneAktualisiert das Results-Objekt mit neuen Daten wie Boxen, Masken, Probs, OBB, Keypoints oder semantischen Masken.
cpu()ResultsGibt eine Kopie des Results-Objekts zurück, bei dem alle Tensoren in den CPU-Speicher verschoben wurden.
numpy()ResultsGibt eine Kopie des Results-Objekts zurück, bei dem alle Tensoren in NumPy-Arrays konvertiert wurden.
cuda()ResultsGibt eine Kopie des Results-Objekts zurück, bei dem alle Tensoren in den GPU-Speicher verschoben wurden.
to()ResultsGibt eine Kopie des Results-Objekts zurück, bei dem die Tensoren auf das angegebene Gerät und den Datentyp verschoben wurden.
new()ResultsErstellt ein neues Results-Objekt mit denselben Attributen für Bild, Pfad, Namen und Geschwindigkeit.
plot()np.ndarrayZeichnet Erkennungsergebnisse auf ein Eingabe-BGR-Bild und gibt das annotierte Bild zurück.
show()NoneZeigt das Bild mit annotierten Inferenz-Ergebnissen an.
save()strSpeichert das Bild mit den annotierten Inferenz-Ergebnissen in einer Datei und gibt den Dateinamen zurück.
verbose()strGibt einen Protokoll-String für jede Aufgabe zurück, der die Erkennungs- und Klassifizierungsergebnisse detailliert.
save_txt()strSpeichert Erkennungsergebnisse in einer Textdatei und gibt den Pfad zur gespeicherten Datei zurück.
save_crop()NoneSpeichert zugeschnittene Erkennungsbilder im angegebenen Verzeichnis.
summary()List[Dict[str, Any]]Konvertiert Inferenz-Ergebnisse in ein zusammengefasstes Wörterbuch mit optionaler Normalisierung.
to_df()DataFrameKonvertiert Erkennungsergebnisse in einen Polars DataFrame.
to_csv()strKonvertiert Erkennungsergebnisse in das CSV-Format.
to_json()strKonvertiert Erkennungsergebnisse in das JSON-Format.

Weitere Details findest du in der Results Klassendokumentation.

Link to this sectionBboxen#

Das Boxes Objekt kann verwendet werden, um Bounding Boxen zu indizieren, zu manipulieren und in verschiedene Formate zu konvertieren.

Bboxen
from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.boxes)  # print the Boxes object containing the detection bounding boxes

Hier ist eine Tabelle für die Methoden und Eigenschaften der Boxes Klasse, einschließlich ihres Namens, Typs und ihrer Beschreibung:

NameTypBeschreibung
cpu()MethodeVerschiebe das Objekt in den CPU-Speicher.
numpy()MethodeKonvertiere das Objekt in ein NumPy-Array.
cuda()MethodeVerschiebe das Objekt in den CUDA-Speicher.
to()MethodeVerschiebe das Objekt auf das angegebene Gerät.
xyxyEigenschaft (torch.Tensor)Gib die Boxen im xyxy-Format zurück.
confEigenschaft (torch.Tensor)Gib die Konfidenzwerte der Boxen zurück.
clsEigenschaft (torch.Tensor)Gib die Klassenwerte der Boxen zurück.
idEigenschaft (torch.Tensor)Gib die Track-IDs der Boxen zurück (falls verfügbar).
xywhEigenschaft (torch.Tensor)Gib die Boxen im xywh-Format zurück.
xyxynEigenschaft (torch.Tensor)Gib die Boxen im xyxy-Format zurück, normalisiert auf die ursprüngliche Bildgröße.
xywhnEigenschaft (torch.Tensor)Gib die Boxen im xywh-Format zurück, normalisiert auf die ursprüngliche Bildgröße.

Weitere Details findest du in der Boxes Klassendokumentation.

Link to this sectionMasken#

Das Masks Objekt kann verwendet werden, um Masken zu indizieren, zu manipulieren und in Segmente zu konvertieren.

Masken
from ultralytics import YOLO

# Load a pretrained YOLO26n-seg Segment model
model = YOLO("yolo26n-seg.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.masks)  # print the Masks object containing the detected instance masks

Hier ist eine Tabelle für die Methoden und Eigenschaften der Masks Klasse, einschließlich ihres Namens, Typs und ihrer Beschreibung:

NameTypBeschreibung
dataEigenschaft (torch.Tensor)torch.uint8 binärer Masken-Tensor mit der Form (N,H,W) und den Werten 0 oder 1.
cpu()MethodeGibt den Masken-Tensor im CPU-Speicher zurück.
numpy()MethodeGibt den Masken-Tensor als NumPy-Array zurück.
cuda()MethodeGibt den Masken-Tensor im GPU-Speicher zurück.
to()MethodeGibt den Masken-Tensor für das angegebene Gerät und den Datentyp zurück.
xynEigenschaft (list[np.ndarray])Eine Liste normalisierter Masken-Polygone.
xyEigenschaft (list[np.ndarray])Eine Liste von Masken-Polygonen in Pixel-Koordinaten.

Weitere Details findest du in der Masks Klassendokumentation.

Link to this sectionSemanticMask#

SemanticMask speichert eine dichte Klassen-Map für semantische Segmentierungsergebnisse. Im Gegensatz zu Masks enthält sie keine binäre Maske pro Objekt und bietet keine Polygon-Hilfsprogramme.

SemanticMask
from ultralytics import YOLO

# Load a pretrained YOLO26n-sem Semantic model
model = YOLO("yolo26n-sem.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.semantic_mask.data)  # print the H x W class-ID map
NameTypBeschreibung
dataEigenschaft (torch.Tensor)Klassen-ID-Map mit der Form (H,W). Der Datentyp ist torch.uint8, torch.int16 oder torch.int32, ausgewählt basierend auf der Klassenanzahl.
shapeEigenschaft (tuple)Form der Klassen-Map, entspricht normalerweise result.orig_shape.
cpu()MethodeGibt den semantischen Masken-Tensor im CPU-Speicher zurück.
numpy()MethodeGibt den semantischen Masken-Tensor als NumPy-Array zurück.
cuda()MethodeGibt den semantischen Masken-Tensor im GPU-Speicher zurück.
to()MethodeGibt den semantischen Masken-Tensor für das angegebene Gerät und den Datentyp zurück.

Link to this sectionKeypoints#

Das Keypoints Objekt kann verwendet werden, um Koordinaten zu indizieren, zu manipulieren und zu normalisieren.

Keypoints
from ultralytics import YOLO

# Load a pretrained YOLO26n-pose Pose model
model = YOLO("yolo26n-pose.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.keypoints)  # print the Keypoints object containing the detected keypoints

Hier ist eine Tabelle für die Methoden und Eigenschaften der Keypoints Klasse, einschließlich ihres Namens, Typs und ihrer Beschreibung:

NameTypBeschreibung
cpu()MethodeGibt den Keypoints-Tensor im CPU-Speicher zurück.
numpy()MethodeGibt den Keypoints-Tensor als NumPy-Array zurück.
cuda()MethodeGibt den Keypoints-Tensor im GPU-Speicher zurück.
to()MethodeGibt den Keypoints-Tensor mit dem angegebenen Gerät und Datentyp zurück.
xynEigenschaft (torch.Tensor)Eine Liste normalisierter Keypoints, die als Tensoren dargestellt werden.
xyEigenschaft (torch.Tensor)Eine Liste von Keypoints in Pixelkoordinaten, die als Tensoren dargestellt werden.
confEigenschaft (torch.Tensor)Gibt Konfidenzwerte der Keypoints zurück, falls verfügbar, andernfalls None.

Weitere Details findest du in der Keypoints Klassendokumentation.

Link to this sectionProbs#

Das Probs Objekt kann verwendet werden, um auf Indizes zuzugreifen sowie top1 und top5 Indizes und Scores der Klassifizierung abzurufen.

Probs
from ultralytics import YOLO

# Load a pretrained YOLO26n-cls Classify model
model = YOLO("yolo26n-cls.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.probs)  # print the Probs object containing the detected class probabilities

Hier ist eine Tabelle, die die Methoden und Eigenschaften für die Probs Klasse zusammenfasst:

NameTypBeschreibung
cpu()MethodeGibt eine Kopie des Probs-Tensors im CPU-Speicher zurück.
numpy()MethodeGibt eine Kopie des Probs-Tensors als NumPy Array zurück.
cuda()MethodeGibt eine Kopie des Probs-Tensors im GPU-Speicher zurück.
to()MethodeGibt eine Kopie des Probs-Tensors mit dem angegebenen Gerät und Datentyp zurück.
top1Eigenschaft (int)Index der Top-1-Klasse.
top5Eigenschaft (list[int])Indizes der Top-5-Klassen.
top1confEigenschaft (torch.Tensor)Konfidenz der Top-1-Klasse.
top5confEigenschaft (torch.Tensor)Konfidenzen der Top-5-Klassen.

Weitere Details findest du in der Probs Klassendokumentation.

Link to this sectionOBB#

Das OBB Objekt kann verwendet werden, um orientierte Bounding Boxes zu indizieren, zu manipulieren und in verschiedene Formate zu konvertieren.

OBB
from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n-obb.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/boats.jpg")  # results list

# View results
for r in results:
    print(r.obb)  # print the OBB object containing the oriented detection bounding boxes

Hier ist eine Tabelle für die Methoden und Eigenschaften der OBB Klasse, einschließlich Name, Typ und Beschreibung:

NameTypBeschreibung
cpu()MethodeVerschiebe das Objekt in den CPU-Speicher.
numpy()MethodeKonvertiere das Objekt in ein NumPy-Array.
cuda()MethodeVerschiebe das Objekt in den CUDA-Speicher.
to()MethodeVerschiebe das Objekt auf das angegebene Gerät.
confEigenschaft (torch.Tensor)Gib die Konfidenzwerte der Boxen zurück.
clsEigenschaft (torch.Tensor)Gib die Klassenwerte der Boxen zurück.
idEigenschaft (torch.Tensor)Gib die Track-IDs der Boxen zurück (falls verfügbar).
xyxyEigenschaft (torch.Tensor)Gibt die horizontalen Boxen im xyxy Format zurück.
xywhrEigenschaft (torch.Tensor)Gibt die rotierten Boxen im xywhr Format zurück.
xyxyxyxyEigenschaft (torch.Tensor)Gibt die rotierten Boxen im xyxyxyxy Format zurück.
xyxyxyxynEigenschaft (torch.Tensor)Gibt die rotierten Boxen im xyxyxyxy Format zurück, normalisiert durch die Bildgröße.

Weitere Details findest du in der OBB Klassendokumentation.

Link to this sectionErgebnisse visualisieren#

Die plot() Methode in Results Objekten erleichtert die Visualisierung von Vorhersagen, indem erkannte Objekte (wie Bounding Boxes, Masken, Keypoints und Wahrscheinlichkeiten) über das Originalbild gelegt werden. Diese Methode gibt das annotierte Bild als NumPy Array zurück, was eine einfache Anzeige oder Speicherung ermöglicht.

Plotten
from PIL import Image

from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")

# Run inference on 'bus.jpg'
results = model(["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"])  # results list

# Visualize the results
for i, r in enumerate(results):
    # Plot results image
    im_bgr = r.plot()  # BGR-order numpy array
    im_rgb = Image.fromarray(im_bgr[..., ::-1])  # RGB-order PIL image

    # Show results to screen (in supported environments)
    r.show()

    # Save results to disk
    r.save(filename=f"results{i}.jpg")

Link to this sectionParameter der plot() Methode#

Die plot() Methode unterstützt verschiedene Argumente zur Anpassung der Ausgabe:

ArgumentTypBeschreibungStandard
confboolKonfidenzwerte der Erkennung einbeziehen.True
line_widthfloatLinienbreite der Bounding Boxes. Skaliert mit der Bildgröße, wenn None.None
font_sizefloatSchriftgröße für Text. Skaliert mit der Bildgröße, wenn None.None
fontstrSchriftname für Textannotationen.'Arial.ttf'
pilboolGibt das Bild als PIL Image Objekt zurück.False
imgnp.ndarrayAlternatives Bild zum Plotten. Verwendet das Originalbild, wenn None.None
im_gputorch.TensorGPU-beschleunigtes Bild für schnelleres Plotten von Masken. Form: (1, 3, 640, 640).None
kpt_radiusintRadius für gezeichnete Keypoints.5
kpt_lineboolVerbindet Keypoints mit Linien.True
labelsboolKlassenbeschriftungen in Annotationen einbeziehen.True
boxesboolBounding Boxes über das Bild legen.True
masksboolMasken über das Bild legen.True
probsboolKlassifizierungswahrscheinlichkeiten einbeziehen.True
showboolDas annotierte Bild direkt mit dem Standard-Bildbetrachter anzeigen.False
saveboolSpeichert das annotierte Bild in einer durch filename angegebenen Datei.False
filenamestrPfad und Name der Datei zum Speichern des annotierten Bildes, wenn save auf True gesetzt ist.None
color_modestrFarbmodus angeben, z. B. 'instance' oder 'class'.'class'
txt_colortuple[int, int, int]BGR-Textfarbe für Bounding Box und Bildklassifizierungslabel.(255, 255, 255)

Link to this sectionThread-sichere Inferenz#

Die Gewährleistung der Thread-Sicherheit während der Inferenz ist entscheidend, wenn du mehrere YOLO Modelle parallel in verschiedenen Threads ausführst. Thread-sichere Inferenz garantiert, dass die Vorhersagen jedes Threads isoliert sind und sich nicht gegenseitig beeinflussen, wodurch Race Conditions vermieden werden und konsistente sowie zuverlässige Ergebnisse sichergestellt sind.

Bei der Verwendung von YOLO Modellen in einer Multithread-Anwendung ist es wichtig, für jeden Thread separate Modellobjekte zu instanziieren oder thread-lokalen Speicher zu verwenden, um Konflikte zu vermeiden:

Thread-sichere Inferenz

Instanziiere ein einzelnes Modell innerhalb jedes Threads für thread-sichere Inferenz:

from threading import Thread

from ultralytics import YOLO

def thread_safe_predict(model, image_path):
    """Performs thread-safe prediction on an image using a locally instantiated YOLO model."""
    model = YOLO(model)
    results = model.predict(image_path)
    # Process results

# Starting threads that each have their own model instance
Thread(target=thread_safe_predict, args=("yolo26n.pt", "image1.jpg")).start()
Thread(target=thread_safe_predict, args=("yolo26n.pt", "image2.jpg")).start()

Für einen detaillierten Einblick in die thread-sichere Inferenz mit YOLO Modellen und Schritt-für-Schritt-Anleitungen lies bitte unseren YOLO Thread-Safe Inference Guide. Dieser Leitfaden bietet dir alle notwendigen Informationen, um häufige Fehler zu vermeiden und sicherzustellen, dass deine Multithread-Inferenz reibungslos läuft.

Link to this sectionStreaming-Quelle for-Schleife#

Hier ist ein Python Skript mit OpenCV (cv2) und YOLO zur Durchführung der Inferenz auf Videoframes. Dieses Skript setzt voraus, dass du die notwendigen Pakete (opencv-python und ultralytics) bereits installiert hast.

Streaming for-Schleife
import cv2

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo26n.pt")

# Open the video file
video_path = "path/to/your/video/file.mp4"
cap = cv2.VideoCapture(video_path)

# Loop through the video frames
while cap.isOpened():
    # Read a frame from the video
    success, frame = cap.read()

    if success:
        # Run YOLO inference on the frame
        results = model(frame)

        # Visualize the results on the frame
        annotated_frame = results[0].plot()

        # Display the annotated frame
        cv2.imshow("YOLO Inference", annotated_frame)

        # Break the loop if 'q' is pressed
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        # Break the loop if the end of the video is reached
        break

# Release the video capture object and close the display window
cap.release()
cv2.destroyAllWindows()

Dieses Skript führt Vorhersagen auf jedem Frame des Videos durch, visualisiert die Ergebnisse und zeigt sie in einem Fenster an. Die Schleife kann durch Drücken von 'q' beendet werden.

Link to this sectionFAQ#

Link to this sectionWas ist Ultralytics YOLO und dessen Predict-Modus für Echtzeit-Inferenz?#

Ultralytics YOLO ist ein hochmodernes Modell für Echtzeit-Objekterkennung, Instanzsegmentierung, semantische Segmentierung und Klassifizierung. Sein Predict-Modus ermöglicht Benutzern eine Hochgeschwindigkeits-Inferenz auf verschiedenen Datenquellen wie Bildern, Videos und Live-Streams. Es wurde für Leistung und Vielseitigkeit entwickelt und bietet auch Batch-Verarbeitung sowie Streaming-Modi. Weitere Details zu den Funktionen findest du im Ultralytics YOLO Predict-Modus.

Link to this sectionWie kann ich die Inferenz mit Ultralytics YOLO auf verschiedenen Datenquellen ausführen?#

Ultralytics YOLO kann eine Vielzahl von Datenquellen verarbeiten, darunter einzelne Bilder, Videos, Verzeichnisse, URLs und Streams. Du kannst die Datenquelle im model.predict() Aufruf angeben. Verwende zum Beispiel 'image.jpg' für ein lokales Bild oder 'https://ultralytics.com/images/bus.jpg' für eine URL. Schau dir die detaillierten Beispiele für verschiedene Inferenz-Quellen in der Dokumentation an.

Link to this sectionWie optimiere ich YOLO Inferenzgeschwindigkeit und Speicherauslastung?#

Um die Inferenzgeschwindigkeit zu optimieren und den Speicher effizient zu verwalten, kannst du den Streaming-Modus verwenden, indem du stream=True in der Aufrufmethode des Predictors setzt. Der Streaming-Modus erzeugt einen speichereffizienten Generator von Results Objekten, anstatt alle Frames in den Speicher zu laden. Für die Verarbeitung langer Videos oder großer Datensätze ist der Streaming-Modus besonders nützlich. Erfahre mehr über den Streaming-Modus.

Link to this sectionWelche Inferenz-Argumente unterstützt Ultralytics YOLO?#

Die model.predict() Methode in YOLO unterstützt verschiedene Argumente wie conf, iou, imgsz, device und mehr. Diese Argumente ermöglichen es dir, den Inferenzprozess anzupassen und Parameter wie Konfidenzschwellen, Bildgröße und das für die Berechnung verwendete Gerät festzulegen. Detaillierte Beschreibungen dieser Argumente findest du im Abschnitt Inferenz-Argumente.

Link to this sectionWie kann ich die Ergebnisse von YOLO Vorhersagen visualisieren und speichern?#

Nach der Durchführung der Inferenz mit YOLO enthalten die Results Objekte Methoden zum Anzeigen und Speichern annotierter Bilder. Du kannst Methoden wie result.show() und result.save(filename="result.jpg") verwenden, um die Ergebnisse zu visualisieren und zu speichern. Fehlende übergeordnete Verzeichnisse im Dateipfad werden automatisch erstellt (z. B. result.save("path/to/result.jpg")). Eine umfassende Liste dieser Methoden findest du im Abschnitt Arbeiten mit Ergebnissen.

Kommentare