Übersicht über Datensätze zur Objekterkennung#
Das Training eines robusten und präzisen Objekterkennungsmodells erfordert einen umfassenden Datensatz. Dieser Leitfaden stellt verschiedene Datensatzformate vor, die mit dem Ultralytics-YOLO-Modell kompatibel sind, und bietet Einblicke in deren Struktur, Verwendung und die Konvertierung zwischen unterschiedlichen Formaten.
Unterstützte Datensatzformate#
Ultralytics-YOLO-Format#
Das Ultralytics-YOLO-Format ist ein Konfigurationsformat für Datensätze, mit dem du das Stammverzeichnis des Datensatzes, die relativen Pfade zu den Bildverzeichnissen für Training, Validierung und Test oder zu *.txt-Dateien mit Bildpfaden sowie ein Verzeichnis mit Klassennamen festlegen kannst. Hier ist ein 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.zipJede der Dateien train, val und test akzeptiert ein Verzeichnis, eine Liste von Verzeichnissen oder eine *.txt-Datei, die pro Zeile einen Bildpfad 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 beschriftete Bilder zu überspringen oder Bilder aus mehreren Quellen zu einem Datensatzabschnitt zusammenzuführen.
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: personDie Beschriftungen für dieses Format sollten im YOLO-Format exportiert werden, mit einer *.txt-Datei pro Bild. Wenn ein Bild keine Objekte enthält, ist keine *.txt-Datei erforderlich. Die Datei *.txt sollte mit einer Zeile pro Objekt im class x_center y_center width height-Format strukturiert sein. Die Boxkoordinaten müssen im normalisierten xywh-Format (von 0 bis 1) vorliegen. Wenn deine Boxen in Pixeln angegeben sind, solltest du x_center und width durch die Bildbreite sowie y_center und height durch die Bildhöhe teilen. Klassennummern müssen bei null beginnen.

Die Beschriftungsdatei für das oben gezeigte Bild enthält 2 Personen (Klasse 0) und eine Krawatte (Klasse 27):

Wenn du das Ultralytics-YOLO-Format verwendest, organisiere deine Trainings- und Validierungsbilder sowie die zugehörigen Beschriftungen wie im folgenden Beispiel des COCO8-Datensatzes.

Anwendungsbeispiel#
So kannst du Datensätze im YOLO-Format zum Trainieren deines Modells verwenden:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Ultralytics-NDJSON-Format#
Das NDJSON-Format (JSON mit Zeilenumbrüchen) bietet eine alternative Möglichkeit, Datensätze für Ultralytics-YOLO-Modelle zu definieren. Dieses Format speichert Datensatzmetadaten und Annotationen in einer einzigen Datei, wobei jede Zeile ein separates JSON-Objekt enthält.
Eine NDJSON-Datensatzdatei enthält:
- Datensatzdatensatz (erste Zeile): Enthält Datensatzmetadaten wie Aufgabentyp, Klassennamen und allgemeine Informationen
- Bilddatensätze (folgende Zeilen): Enthalten die Daten einzelner Bilder, einschließlich Abmessungen, Annotationen und Dateipfaden
{
"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 metadata-JSON-Objekt für anwendungsspezifische Informationen enthalten, etwa Aufnahmebedingungen, Gerätekennungen oder den Prüfstatus. Verschachtelte Werte werden unterstützt. Beim Import in die Ultralytics Platform werden die Metadaten zusammen 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 Plattform begrenzt die Schlüssel der Metadaten auf oberster Ebene auf 128 Zeichen, das serialisierte Metadatenobjekt jedes Bildes auf 500.000 Zeichen und die zusammengeführten effektiven Metadaten eines einzelnen NDJSON-Imports auf 500.000 Zeichen.
Anwendungsbeispiel#
Um einen NDJSON-Datensatz mit YOLO26 zu verwenden, gib einfach den Pfad zur Datei .ndjson an:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt")
# Train using NDJSON dataset
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)Vorteile des NDJSON-Formats#
- Eine Datei: Alle Informationen zum Datensatz befinden sich in einer Datei
- Streaming: Große Datensätze können zeilenweise verarbeitet werden, ohne alles in den Speicher zu laden
- Cloud-Integration: Unterstützt entfernte Bild-URLs für cloudbasiertes Training
- Erweiterbarkeit: Benutzerdefinierte Metadatenfelder lassen sich einfach hinzufügen
- Versionskontrolle: Das Ein-Datei-Format eignet sich gut für Git und Versionskontrollsysteme
Unterstützte Datensätze#
Hier ist eine Liste der unterstützten Datensätze und eine kurze Beschreibung für jeden Datensatz. Die meisten dieser Datensätze werden auch auf der Ultralytics Platform gehostet, wo du die Bilder und Annotationen durchsuchen, die Datensatzstatistiken einsehen und die Datensätze für das Cloud-Training klonen kannst.
- African-wildlife: Ein Datensatz mit Bildern afrikanischer Wildtiere, darunter Büffel, Elefanten, Nashörner und Zebras.
- Argoverse: Ein Datensatz mit Daten zur 3D-Verfolgung und Bewegungsprognose aus städtischen Umgebungen mit umfangreichen Annotationen.
- Brain-tumor: Ein Datensatz zur Erkennung von Hirntumoren mit MRT- oder CT-Aufnahmen sowie Angaben zum Vorhandensein, zur Lage und zu den Eigenschaften der Tumoren.
- COCO: Common Objects in Context (COCO) ist ein groß angelegter Datensatz zur Objekterkennung, Segmentierung und Bildbeschreibung mit 80 Objektkategorien.
- COCO8: Eine kleinere Teilmenge der ersten 8 Bilder aus dem COCO train2017-Datensatz, 4 für das Training und 4 für die Validierung, 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 Evaluierung 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 Evaluierung von Modellen 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 Bauarbeitern und beschrifteter Schutzausrüstung wie Helmen, Westen, Handschuhen, Stiefeln und Schutzbrillen, einschließlich Annotationen für fehlende Ausrüstung wie no_helmet und no_goggle zur Überwachung der Einhaltung von Sicherheitsvorschriften 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 Haushaltsgegenständen in Innenräumen, darunter Betten, Stühle, Fernseher und mehr – ideal für Anwendungen in der Smart-Home-Automatisierung, Robotik, erweiterten Realität und Raumaufbauanalyse.
- 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 auf Autobahnen aufgenommenen Umgebungen.
- LVIS: Ein groß angelegter Datensatz zur Objekterkennung, Segmentierung und Bildbeschreibung mit 1203 Objektkategorien.
- Medical-pills: Ein Datensatz mit Bildern medizinischer Tabletten, annotiert für Anwendungen wie pharmazeutische Qualitätssicherung, Tablettensortierung und die Einhaltung gesetzlicher Vorschriften.
- Objects365: Ein hochwertiger, groß angelegter Datensatz zur Objekterkennung mit 365 Objektkategorien und über 600.000 annotierten Bildern.
- OpenImagesV7: Ein umfassender Datensatz von Google mit 1,7 Mio. Trainingsbildern und 42.000 Validierungsbildern.
- Roboflow 100: Ein vielfältiger Benchmark für die Objekterkennung mit 100 Datensätzen aus sieben Bildbereichen zur umfassenden 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 für die Erkennung dicht angeordneter Objekte in Einzelhandelsumgebungen mit über 11.000 Bildern und 1,7 Millionen Bounding Boxes.
- TT100K: Erkunde den Verkehrszeichendatensatz Tsinghua-Tencent 100K (TT100K) mit 16.817 Straßenansichten aus 221 Verkehrsschildkategorien für robuste Erkennung und Klassifizierung.
- VisDrone: Ein Datensatz mit Daten zur Objekterkennung und Verfolgung mehrerer Objekte aus Drohnenaufnahmen mit über 10.000 Bildern und Videosequenzen.
- VOC: Der Datensatz Pascal Visual Object Classes (VOC) zur Objekterkennung und Segmentierung mit 20 Objektklassen und über 11.000 Bildern.
- xView: Ein Datensatz zur Objekterkennung in Aufnahmen aus der Vogelperspektive mit 60 Objektkategorien und über 1 Million annotierten Objekten.
Eigenen Datensatz hinzufügen#
Wenn du über einen eigenen Datensatz verfügst und ihn zum Trainieren von Erkennungsmodellen im Ultralytics-YOLO-Format verwenden möchtest, stelle sicher, dass er dem oben unter „Ultralytics-YOLO-Format“ beschriebenen 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#
Du kannst Beschriftungen aus dem beliebten COCO-Datensatzformat mithilfe des folgenden Codeausschnitts einfach in das YOLO-Format konvertieren:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/")Dieses Konvertierungswerkzeug kann 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, wodurch sie mit Ultralytics-YOLO-Modellen kompatibel werden. Den vollständigen Ablauf – einschließlich der Zuordnung von Klassen-IDs, der Verzeichnisstruktur sowie der Segmentierungs- oder Pose-Annotationen – findest du unter COCO-Annotationen in YOLO konvertieren.
Prüfe sorgfältig, ob der gewünschte Datensatz mit deinem Modell kompatibel ist und die erforderlichen Formatkonventionen einhält. Korrekt formatierte Datensätze sind entscheidend für das erfolgreiche Training von Objekterkennungsmodellen.
Wie geht es weiter?#
Sobald dein Datensatz korrekt formatiert ist, starte das Training deines Modells. Du weißt nicht, mit welchem vortrainierten Modell du beginnen solltest? Vergleiche die Optionen in der YOLO26-Modellfamilie.
FAQ#
Das Ultralytics-YOLO-Format ist eine strukturierte Konfiguration zum Definieren von Datensätzen in deinen Trainingsprojekten. Dazu werden Pfade zu deinen Trainings-, Validierungs- und Testbildern sowie den zugehörigen Beschriftungen festgelegt. 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.zipBeschriftungen werden in
*.txt-Dateien gespeichert, mit einer Datei pro Bild, formatiert alsclass x_center y_center width heightmit normalisierten Koordinaten. Eine ausführliche Anleitung findest du im COCO8-Datensatzbeispiel.Du kannst einen COCO-Datensatz mithilfe der Ultralytics-Konvertierungswerkzeuge in das YOLO-Format konvertieren. Hier ist eine schnelle Methode:
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 dadurch eine nahtlose Integration in Ultralytics-YOLO-Modelle. Weitere Informationen findest du im Abschnitt Beschriftungsformate übertragen oder konvertieren.
Ultralytics YOLO unterstützt eine große Auswahl an Datensätzen, darunter:
Jede Datensatzseite bietet ausführliche Informationen zur 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 definiert sind. Verwende das folgende Skript, um das Training zu starten:
Beispielfrom ultralytics import YOLO model = YOLO("yolo26n.pt") # Load a pretrained model 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 praxisnahe Anleitungen für die Verwendung von YOLO26 in verschiedenen Anwendungsbereichen. Eine umfassende Übersicht findest du im Ultralytics Blog mit Fallstudien, ausführlichen Tutorials und Erfahrungsberichten aus der Community zu Objekterkennung, Segmentierung und weiteren Themen mit YOLO26. Konkrete Beispiele findest du im Dokumentationsabschnitt Verwendung.