Ultralytics YOLO27:
Get Started

Überblick über Datensätze für die Objekterkennung#

Für das Training eines robusten und präzisen Modells zur Objekterkennung ist ein umfassender Datensatz erforderlich. Diese Anleitung stellt verschiedene Datensatzformate vor, die mit dem Ultralytics YOLO-Modell kompatibel sind, und erläutert deren Struktur und Verwendung sowie die Umwandlung zwischen verschiedenen Formaten.

Unterstützte Datensatzformate#

Ultralytics-YOLO-Format#

Das Ultralytics-YOLO-Format ist ein Datensatzkonfigurationsformat, mit dem du das Stammverzeichnis des Datensatzes, die relativen Pfade zu den Verzeichnissen mit Trainings-, Validierungs- und Testbildern oder zu *.txt-Dateien mit Bildpfaden sowie ein Wörterbuch mit Klassennamen angeben kannst. Hier ein Beispiel:

ultralytics/cfg/datasets/coco8.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8 ← downloads here (1 MB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: coco8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)

# Classes
names:
  0: person
  1: bicycle
  2: car
  3: motorcycle
  4: airplane
  5: bus
  6: train
  7: truck
  8: boat
  9: traffic light
  10: fire hydrant
  11: stop sign
  12: parking meter
  13: bench
  14: bird
  15: cat
  16: dog
  17: horse
  18: sheep
  19: cow
  20: elephant
  21: bear
  22: zebra
  23: giraffe
  24: backpack
  25: umbrella
  26: handbag
  27: tie
  28: suitcase
  29: frisbee
  30: skis
  31: snowboard
  32: sports ball
  33: kite
  34: baseball bat
  35: baseball glove
  36: skateboard
  37: surfboard
  38: tennis racket
  39: bottle
  40: wine glass
  41: cup
  42: fork
  43: knife
  44: spoon
  45: bowl
  46: banana
  47: apple
  48: sandwich
  49: orange
  50: broccoli
  51: carrot
  52: hot dog
  53: pizza
  54: donut
  55: cake
  56: chair
  57: couch
  58: potted plant
  59: bed
  60: dining table
  61: toilet
  62: tv
  63: laptop
  64: mouse
  65: remote
  66: keyboard
  67: cell phone
  68: microwave
  69: oven
  70: toaster
  71: sink
  72: refrigerator
  73: book
  74: clock
  75: vase
  76: scissors
  77: teddy bear
  78: hair drier
  79: toothbrush

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zip

Für train, val und test kannst du jeweils ein Verzeichnis, eine Liste von Verzeichnissen oder eine *.txt-Datei angeben, die einen Bildpfad pro Zeile enthält (Pfade, die mit ./ beginnen, werden relativ zur Datei *.txt aufgelöst). Eine *.txt-Datei ist nützlich, um mit einer Teilmenge eines Verzeichnisses zu trainieren, nicht annotierte Bilder zu überspringen oder Bilder aus mehreren Quellen in einem Split zusammenzufassen.

Bildpfade in einer `*.txt`-Datei
path: datasets/coco8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
  0: person

Die Labels für dieses Format sollten im YOLO-Format exportiert werden, mit einer *.txt-Datei pro Bild. Enthält ein Bild keine Objekte, ist keine *.txt-Datei erforderlich. Die Datei *.txt muss eine Zeile pro Objekt im Format class x_center y_center width height enthalten. Die Koordinaten der Begrenzungsrahmen müssen im normalisierten xywh-Format (von 0 bis 1) angegeben werden. Wenn deine Begrenzungsrahmen in Pixeln angegeben sind, teile x_center und width durch die Bildbreite sowie y_center und height durch die Bildhöhe. Die Klassennummern beginnen bei 0.

YOLO labeled image with bounding boxes on persons and tie

Die Labeldatei für das obige Bild enthält zwei Personen (Klasse 0) und eine Krawatte (Klasse 27):

YOLO format label file with normalized coordinates

Wenn du das Ultralytics-YOLO-Format verwendest, ordne deine Trainings- und Validierungsbilder sowie Labels wie im folgenden Beispiel des COCO8-Datensatzes an.

YOLO dataset directory structure with train and val folders

Anwendungsbeispiel#

So kannst du Datensätze im YOLO-Format verwenden, um dein Modell zu trainieren:

Beispiel
from ultralytics import YOLO

# Ein Modell laden
model = YOLO("yolo26n.pt")  # ein vortrainiertes Modell laden (für das Training empfohlen)

# Das Modell trainieren
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Ultralytics-NDJSON-Format#

Das NDJSON-Format (JSON mit einem Datensatz pro Zeile) bietet eine alternative Möglichkeit, Datensätze für Ultralytics-YOLO-Modelle zu definieren. In diesem Format werden Metadaten des Datensatzes und Annotationen in einer einzigen Datei gespeichert, wobei jede Zeile ein eigenes JSON-Objekt enthält.

Eine NDJSON-Datensatzdatei enthält:

  1. Datensatzdatensatz (erste Zeile): Enthält Metadaten zum Datensatz, darunter den Aufgabentyp, Klassennamen und allgemeine Informationen
  2. Bilddatensätze (nachfolgende Zeilen): Enthalten einzelne Bilddaten wie Abmessungen, Annotationen und Dateipfade
NDJSON-Beispiel
{
    "type": "dataset",
    "task": "detect",
    "name": "Example",
    "description": "COCO NDJSON example dataset",
    "url": "https://platform.ultralytics.com/user/datasets/example",
    "class_names": { "0": "person", "1": "bicycle", "2": "car" },
    "bytes": 426342,
    "version": 0,
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2025-01-01T00:00:00Z"
}

Benutzerdefinierte Bildmetadaten#

Jeder Bilddatensatz kann ein JSON-Objekt metadata mit anwendungsspezifischen Angaben enthalten, etwa zu Aufnahmebedingungen, Gerätekennungen oder Prüfstatus. Verschachtelte Werte werden unterstützt. Beim Import in die Ultralytics Platform werden die Metadaten mit dem Bild gespeichert und können im Vollbild-Informationsbereich angezeigt oder bearbeitet werden.

{
    "type": "image",
    "file": "airbus-wing.jpg",
    "url": "https://example.com/airbus-wing.jpg",
    "split": "train",
    "metadata": {
        "aircraft": { "family": "A350", "section": "wing" },
        "inspectionStatus": "reviewed"
    }
}

Die Platform begrenzt Schlüssel der obersten Ebene in den Metadaten auf 128 Zeichen, das serialisierte Metadatenobjekt jedes Bildes auf 500.000 Zeichen und die effektiven Metadaten insgesamt in einem NDJSON-Import auf 500.000 Zeichen.

Anwendungsbeispiel#

Um einen NDJSON-Datensatz mit YOLO26 zu verwenden, gib einfach den Pfad zur Datei .ndjson an:

Beispiel
from ultralytics import YOLO

# Ein Modell laden
model = YOLO("yolo26n.pt")

# Mit NDJSON-Datensatz trainieren
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)

Vorteile des NDJSON-Formats#

  • Eine Datei: Alle Informationen zum Datensatz sind in einer Datei enthalten
  • Streaming: Große Datensätze lassen sich zeilenweise verarbeiten, ohne alles in den Arbeitsspeicher zu laden
  • Cloud-Integration: Unterstützt entfernte Bild-URLs für cloudbasiertes Training
  • Erweiterbarkeit: Benutzerdefinierte Metadatenfelder lassen sich leicht hinzufügen
  • Versionsverwaltung: Das Dateiformat mit einer einzelnen Datei eignet sich gut für git und Versionsverwaltungssysteme

Unterstützte Datensätze#

Hier findest du eine Liste der unterstützten Datensätze mit einer kurzen Beschreibung. Die meisten dieser Datensätze sind auch auf der Ultralytics Platform verfügbar. Dort kannst du Bilder und Annotationen durchsuchen, Datensatzstatistiken anzeigen und Datensätze für das Cloud-Training klonen.

  • African-wildlife: Ein Datensatz mit Bildern afrikanischer Wildtiere, darunter Büffel, Elefanten, Nashörner und Zebras.
  • Argoverse: Der Argoverse-HD-2D-Erkennungsdatensatz mit 54.446 Stadtverkehrsbildern für autonomes Fahren und 8 Klassen von Straßenobjekten.
  • Brain-tumor: Ein Datensatz zur Erkennung von Hirntumoren mit MRT- oder CT-Aufnahmen und Angaben zum Vorhandensein, zur Lage und zu den Merkmalen der Tumoren.
  • COCO: Common Objects in Context (COCO), auf Deutsch „Alltagsobjekte im Kontext“, ist ein umfangreicher Datensatz für Objekterkennung, Segmentierung und Bildbeschreibungen mit 80 Objektkategorien.
  • COCO8: Eine kleinere Teilmenge der ersten 8 Bilder aus COCO train2017 mit 4 Trainings- und 4 Validierungsbildern, geeignet für schnelle Tests.
  • COCO8-Grayscale: Eine Graustufenversion von COCO8, die durch die Umwandlung von RGB in Graustufen erstellt wurde und sich für die Auswertung von Modellen mit einem Kanal eignet.
  • COCO8-Multispectral: Eine multispektrale Version von COCO8 mit 10 Kanälen, die durch Interpolation der RGB-Wellenlängen erstellt wurde und sich für die spektralbewusste Modellauswertung eignet.
  • COCO12-Formats: Ein Testdatensatz mit 12 Bildern in 12 unterstützten Bildformaten (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) zur Validierung von Bildladepipelines.
  • COCO16: Eine Teilmenge der ersten 16 Bilder aus COCO train2017 (8 Training + 8 Validierung), geeignet für schnelle Tests.
  • COCO32: Eine Teilmenge der ersten 32 Bilder aus COCO train2017 (16 Training + 16 Validierung), geeignet für schnelle Tests.
  • COCO64: Eine Teilmenge der ersten 64 Bilder aus COCO train2017 (32 Training + 32 Validierung), geeignet für schnelle Tests.
  • COCO128: Eine kleinere Teilmenge der ersten 128 Bilder aus COCO train2017, geeignet für Tests.
  • Construction-PPE: Ein Datensatz mit Baustellenpersonal und annotierter Schutzausrüstung wie Helmen, Westen, Handschuhen, Stiefeln und Schutzbrillen. Er enthält auch Annotationen zu fehlender Ausrüstung wie no_helmet und no_goggle zur Überwachung der Einhaltung von Vorschriften in der Praxis.
  • Global Wheat 2020: Ein Datensatz mit Bildern von Weizenähren für die Global Wheat Challenge 2020.
  • HomeObjects-3K: Ein Datensatz mit Gegenständen aus Innenräumen, darunter Betten, Stühle, Fernseher und vieles mehr – ideal für Anwendungen in der Smart-Home-Automatisierung, Robotik, erweiterten Realität und Raumanalyse.
  • KITTI: Ein Datensatz mit realen Fahrszenen sowie Stereo-, LiDAR- und GPS/IMU-Daten, der hier für Aufgaben der 2D-Objekterkennung verwendet wird, etwa zur Erkennung von Autos, Fußgängern und Radfahrern in städtischen, ländlichen und Autobahnumgebungen.
  • LVIS: Ein umfangreicher Datensatz für Objekterkennung und Instanzsegmentierung mit 1.203 Objektkategorien.
  • Medical-pills: Ein Datensatz mit Bildern von Medikamentenpillen, annotiert für Anwendungen wie pharmazeutische Qualitätssicherung, Pillensortierung und die Einhaltung gesetzlicher Vorschriften.
  • Objects365: Ein hochwertiger, umfangreicher Datensatz zur Objekterkennung mit 365 Objektkategorien und mehr als 1,7 Millionen Trainingsbildern.
  • OpenImagesV7: Ein umfassender Datensatz von Google mit 1,7 Millionen Trainingsbildern und 42.000 Validierungsbildern.
  • Roboflow 100: Ein vielfältiger Benchmark zur Objekterkennung mit 100 Datensätzen aus sieben Bilddomänen für eine umfassende Modellbewertung.
  • Signature: Ein Datensatz mit Bildern verschiedener Dokumente und annotierten Unterschriften, der die Forschung zur Dokumentenprüfung und Betrugserkennung unterstützt.
  • SKU-110K: Ein Datensatz zur Erkennung dicht angeordneter Objekte im Einzelhandel mit über 11.000 Bildern und 1,7 Millionen Begrenzungsrahmen.
  • TT100K: Entdecke den Verkehrszeichendatensatz Tsinghua-Tencent 100K (TT100K) mit 16.817 Straßenansichtsbildern aus 221 Verkehrszeichenkategorien für eine zuverlässige Erkennung und Klassifizierung.
  • VisDrone: Ein Datensatz mit Daten zur Objekterkennung und Mehrfachobjektverfolgung aus Drohnenaufnahmen mit mehr als 10.000 Bildern und Videosequenzen.
  • VOC: Der Pascal-Datensatz Visual Object Classes (VOC) zur Objekterkennung und Segmentierung mit 20 Objektklassen und über 11.000 Bildern.
  • xView: Ein Datensatz zur Objekterkennung in Luftbildern mit 60 Objektkategorien und mehr als 1 Million annotierten Objekten.

Eigenen Datensatz hinzufügen#

Wenn du einen eigenen Datensatz hast und ihn zum Trainieren von Erkennungsmodellen im Ultralytics-YOLO-Format verwenden möchtest, stelle sicher, dass er dem oben unter „Ultralytics-YOLO-Format“ angegebenen Format entspricht. Konvertiere deine Annotationen in das erforderliche Format und gib die Pfade, die Anzahl der Klassen und die Klassennamen in der YAML-Konfigurationsdatei an.

Beschriftungsformate übertragen oder konvertieren#

COCO-Datensatzformat in YOLO-Format konvertieren#

Mit dem folgenden Codeausschnitt kannst du Beschriftungen ganz einfach aus dem Format des beliebten COCO-Datensatzes in das YOLO-Format konvertieren:

Beispiel
from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/")

Mit diesem Konvertierungswerkzeug kannst du den COCO-Datensatz oder jeden Datensatz im COCO-Format in das Ultralytics-YOLO-Format konvertieren. Dabei werden die JSON-basierten COCO-Annotationen in das einfachere textbasierte YOLO-Format umgewandelt, das mit Ultralytics-YOLO-Modellen kompatibel ist. Den vollständigen Ablauf – einschließlich der Zuordnung von Klassen-IDs, der Verzeichnisstruktur sowie Segmentierungs- oder Posenschätzungs-Annotationen – findest du unter COCO-Annotationen in YOLO konvertieren.

Prüfe sorgfältig, ob der Datensatz, den du verwenden möchtest, mit deinem Modell kompatibel ist und den erforderlichen Formatvorgaben entspricht. Korrekt formatierte Datensätze sind entscheidend für das erfolgreiche Training von Objekterkennungsmodellen.

Wie geht es weiter?#

Nachdem du deinen Datensatz formatiert hast, starte das Training deines Modells. Du weißt nicht, mit welchem vortrainierten Modell du beginnen sollst? Vergleiche die Optionen in der YOLO26-Modellfamilie.

Häufig gestellte Fragen#

  • Das Ultralytics-YOLO-Format ist eine strukturierte Konfiguration zum Definieren von Datensätzen in deinen Trainingsprojekten. Dabei werden die Pfade zu deinen Trainings-, Validierungs- und Testbildern sowie den zugehörigen Beschriftungen festgelegt. Zum Beispiel:

    # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
    
    # COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
    # Documentation: https://docs.ultralytics.com/datasets/detect/coco8
    # Example usage: yolo train data=coco8.yaml
    # parent
    # ├── ultralytics
    # └── datasets
    #     └── coco8 ← downloads here (1 MB)
    
    # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
    path: coco8 # dataset root dir
    train: images/train # train images (relative to 'path') 4 images
    val: images/val # val images (relative to 'path') 4 images
    test: # test images (optional)
    
    # Classes
    names:
      0: person
      1: bicycle
      2: car
      3: motorcycle
      4: airplane
      5: bus
      6: train
      7: truck
      8: boat
      9: traffic light
      10: fire hydrant
      11: stop sign
      12: parking meter
      13: bench
      14: bird
      15: cat
      16: dog
      17: horse
      18: sheep
      19: cow
      20: elephant
      21: bear
      22: zebra
      23: giraffe
      24: backpack
      25: umbrella
      26: handbag
      27: tie
      28: suitcase
      29: frisbee
      30: skis
      31: snowboard
      32: sports ball
      33: kite
      34: baseball bat
      35: baseball glove
      36: skateboard
      37: surfboard
      38: tennis racket
      39: bottle
      40: wine glass
      41: cup
      42: fork
      43: knife
      44: spoon
      45: bowl
      46: banana
      47: apple
      48: sandwich
      49: orange
      50: broccoli
      51: carrot
      52: hot dog
      53: pizza
      54: donut
      55: cake
      56: chair
      57: couch
      58: potted plant
      59: bed
      60: dining table
      61: toilet
      62: tv
      63: laptop
      64: mouse
      65: remote
      66: keyboard
      67: cell phone
      68: microwave
      69: oven
      70: toaster
      71: sink
      72: refrigerator
      73: book
      74: clock
      75: vase
      76: scissors
      77: teddy bear
      78: hair drier
      79: toothbrush
    
    # Download script/URL (optional)
    download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zip

    Beschriftungen werden in *.txt-Dateien gespeichert, eine Datei pro Bild. Sie sind als class x_center y_center width height mit normalisierten Koordinaten formatiert. Eine ausführliche Anleitung findest du im Beispiel zum COCO8-Datensatz.

  • Du kannst einen COCO-Datensatz mithilfe der Ultralytics-Konvertierungswerkzeuge in das YOLO-Format konvertieren. Hier ist eine kurze Anleitung:

    from ultralytics.data.converter import convert_coco
    
    convert_coco(labels_dir="path/to/coco/annotations/")

    Dieser Code konvertiert deine COCO-Annotationen in das YOLO-Format und ermöglicht so die nahtlose Integration mit Ultralytics-YOLO-Modellen. Weitere Informationen findest du im Abschnitt Beschriftungsformate übertragen oder konvertieren.

  • Ultralytics YOLO unterstützt zahlreiche Datensätze, darunter:

    Die Seite zu jedem Datensatz enthält detaillierte Informationen zu seiner Struktur und Verwendung, abgestimmt auf ein effizientes YOLO26-Training. Die vollständige Liste findest du im Abschnitt Unterstützte Datensätze.

  • Um mit dem Training eines YOLO26-Modells zu beginnen, stelle sicher, dass dein Datensatz korrekt formatiert ist und die Pfade in einer YAML-Datei angegeben sind. Verwende das folgende Skript, um das Training zu starten:

    Beispiel
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")  # Vortrainiertes Modell laden
    results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)

    Weitere Informationen zur Verwendung verschiedener Modi, einschließlich CLI-Befehlen, findest du im Abschnitt Verwendung.

  • Ultralytics bietet zahlreiche Beispiele und praktische Anleitungen zur Verwendung von YOLO26 in verschiedenen Anwendungsbereichen. Einen umfassenden Überblick findest du im Ultralytics-Blog mit Fallstudien, ausführlichen Tutorials und Community-Beiträgen zur Objekterkennung, Segmentierung und mehr mit YOLO26. Konkrete Beispiele findest du auf der Dokumentationsseite zum Vorhersagemodus.

Kommentare