Ü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 🚀 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.zipFü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.
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 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.

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

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

Anwendungsbeispiel#
So kannst du Datensätze im YOLO-Format verwenden, um dein Modell zu trainieren:
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:
- Datensatzdatensatz (erste Zeile): Enthält Metadaten zum Datensatz, darunter den Aufgabentyp, Klassennamen und allgemeine Informationen
- Bilddatensätze (nachfolgende Zeilen): Enthalten einzelne Bilddaten wie Abmessungen, Annotationen und Dateipfade
{
"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:
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:
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.zipBeschriftungen werden in
*.txt-Dateien gespeichert, eine Datei pro Bild. Sie sind alsclass x_center y_center width heightmit 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:
Beispielfrom 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.