Übersicht über Objekterkennungsdatensätze
Das Training eines robusten und präzisen Objekterkennungs-Modells 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 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 Bildverzeichnissen für Training/Validierung/Tests oder zu *.txt-Dateien mit Bildpfaden sowie ein Wörterbuch der Klassennamen definieren 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.zipLabels für dieses Format sollten im YOLO-Format exportiert werden, wobei eine *.txt-Datei pro Bild erstellt wird. Wenn ein Bild keine Objekte enthält, ist keine *.txt-Datei erforderlich. Die *.txt-Datei sollte pro Zeile ein Objekt im Format class x_center y_center width height enthalten. Box-Koordinaten müssen im normalisierten xywh-Format (von 0 bis 1) vorliegen. Wenn deine Boxen in Pixeln angegeben sind, musst du x_center und width durch die Bildbreite sowie y_center und height durch die Bildhöhe teilen. Klassennummern sollten nullbasiert sein (beginnend bei 0).

Die Label-Datei, die dem obigen Bild entspricht, 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 Labels wie im folgenden COCO8 dataset-Beispiel gezeigt.

Anwendungsbeispiel
So kannst du Datensätze im YOLO-Format verwenden, um dein Modell zu trainieren:
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 (Newline Delimited JSON) bietet eine alternative Möglichkeit, Datensätze für Ultralytics YOLO-Modelle zu definieren. Dieses Format speichert Datensatz-Metadaten 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 Datensatz-Metadaten einschließlich Aufgabentyp, Klassennamen und allgemeine Informationen
- Bilddatensätze (nachfolgende Zeilen): Enthält individuelle Bilddaten einschließlich Abmessungen, Annotationen und Dateipfaden
{
"type": "dataset",
"task": "detect",
"name": "Example",
"description": "COCO NDJSON example dataset",
"url": "https://app.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"
}Anwendungsbeispiel
Um einen NDJSON-Datensatz mit YOLO26 zu verwenden, gib einfach den Pfad zur .ndjson-Datei 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
- Einzelne Datei: Alle Datensatzinformationen sind in einer Datei enthalten
- Streaming: Kann große Datensätze zeilenweise verarbeiten, ohne alles in den Arbeitsspeicher zu laden
- Cloud-Integration: Unterstützt Remote-Bild-URLs für Cloud-basiertes Training
- Erweiterbar: Einfaches Hinzufügen von benutzerdefinierten Metadatenfeldern
- Versionskontrolle: Das Einzeldateiformat funktioniert gut mit git und Versionskontrollsystemen
Unterstützte Datensätze
Hier ist eine Liste der unterstützten Datensätze und eine kurze Beschreibung für jeden:
- African-wildlife: Ein Datensatz mit Bildern afrikanischer Wildtiere, einschließlich Büffeln, Elefanten, Nashörnern und Zebras.
- Argoverse: Ein Datensatz, der 3D-Tracking- und Bewegungs-Prognosedaten aus städtischen Umgebungen mit umfangreichen Annotationen enthält.
- Brain-tumor: Ein Datensatz zur Erkennung von Hirntumoren, der MRT- oder CT-Scan-Bilder mit Details zu Vorhandensein, Lage und Eigenschaften von Tumoren enthält.
- COCO: Common Objects in Context (COCO) ist ein groß angelegter Datensatz zur Objekterkennung, Segmentierung und Bildunterschriften mit 80 Objektkategorien.
- COCO8: Ein kleinerer Ausschnitt der ersten 4 Bilder aus COCO train und COCO val, geeignet für schnelle Tests.
- COCO8-Grayscale: Eine Graustufen-Version von COCO8, die durch Konvertierung von RGB in Graustufen erstellt wurde, nützlich für die Auswertung einkanaliger Modelle.
- COCO8-Multispectral: Eine 10-Kanal-multispektrale Version von COCO8, erstellt durch Interpolation von RGB-Wellenlängen, nützlich für spektralbewusste Modellauswertungen.
- COCO12-Formats: Ein Testdatensatz mit 12 Bildern, der alle unterstützten Bildformate (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) abdeckt, zur Validierung von Bildladepipelines.
- COCO128: Ein kleinerer Ausschnitt der ersten 128 Bilder aus COCO train und COCO val, geeignet für Tests.
- Construction-PPE: Ein Datensatz mit Baustellenarbeitern mit gelabelter Schutzausrüstung wie Helmen, Westen, Handschuhen, Stiefeln und Schutzbrillen, einschließlich Annotationen für fehlende Ausrüstung wie no_helmet, no_googles für die Überwachung der Einhaltung vor Ort.
- Global Wheat 2020: Ein Datensatz mit Bildern von Weizenähren für die Global Wheat Challenge 2020.
- HomeObjects-3K: Ein Datensatz mit Haushaltsgegenständen für den Innenbereich, darunter Betten, Stühle, Fernseher und mehr – ideal für Anwendungen in der Smart-Home-Automatisierung, Robotik, Augmented Reality und Raumanalyse.
- KITTI: Ein Datensatz mit realen Fahrszenen mit Stereo-, LiDAR- und GPS/IMU-Daten, hier verwendet für 2D-Objekterkennungsaufgaben wie das Identifizieren von Autos, Fußgängern und Radfahrern in städtischen, ländlichen und Autobahnumgebungen.
- LVIS: Ein groß angelegter Datensatz für Objekterkennung, Segmentierung und Bildunterschriften mit 1203 Objektkategorien.
- Medical-pills: Ein Datensatz mit Bildern von medizinischen Pillen, annotiert für Anwendungen wie pharmazeutische Qualitätssicherung, Pillensortierung und Einhaltung gesetzlicher Vorschriften.
- Objects365: Ein hochwertiger, groß angelegter Datensatz für 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 Objekterkennungs-Benchmark mit 100 Datensätzen, die sieben Bilddomänen umfassen, für eine umfassende Modellauswertung.
- Signature: Ein Datensatz mit Bildern verschiedener Dokumente mit annotierten Unterschriften, der die Forschung zur Dokumentenverifizierung und Betrugserkennung unterstützt.
- SKU-110K: Ein Datensatz mit dichter Objekterkennung in Einzelhandelsumgebungen mit über 11.000 Bildern und 1,7 Millionen Bounding Boxes.
- TT100K: Entdecke den Tsinghua-Tencent 100K (TT100K) Verkehrsschilderdatensatz mit 100.000 Straßenansichtsbildern und über 30.000 annotierten Verkehrsschildern für robuste Erkennung und Klassifizierung.
- VisDrone: Ein Datensatz mit Objekterkennungs- und Multi-Objekt-Tracking-Daten aus drohnengestützten Aufnahmen mit über 10.000 Bildern und Videosequenzen.
- VOC: Der Pascal Visual Object Classes (VOC) Datensatz für Objekterkennung und Segmentierung mit 20 Objektklassen und über 11.000 Bildern.
- xView: Ein Datensatz zur Objekterkennung in Luftbildaufnahmen mit 60 Objektkategorien und über 1 Million annotierten Objekten.
Hinzufügen deines eigenen Datensatzes
Wenn du einen eigenen Datensatz hast und diesen für das Training von Erkennungsmodellen mit dem 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.
Labelformate portieren oder konvertieren
COCO-Datensatzformat in das YOLO-Format
Du kannst Labels vom beliebten COCO-Datensatz-Format ganz einfach mit dem folgenden Code-Schnipsel in das YOLO-Format konvertieren:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/")Dieses Konvertierungstool kann verwendet werden, um den COCO-Datensatz oder jeden Datensatz im COCO-Format in das Ultralytics YOLO-Format zu konvertieren. Der Prozess transformiert die JSON-basierten COCO-Annotationen in das einfachere textbasierte YOLO-Format, wodurch er mit Ultralytics YOLO-Modellen kompatibel wird.
Denke daran, zu überprüfen, ob der Datensatz, den du verwenden möchtest, mit deinem Modell kompatibel ist und den notwendigen Formatkonventionen folgt. Korrekt formatierte Datensätze sind entscheidend für das Training erfolgreicher Objekterkennungsmodelle.
FAQ
Was ist das Ultralytics YOLO-Datensatzformat und wie ist es strukturiert?
Das Ultralytics YOLO-Format ist eine strukturierte Konfiguration zur Definition von Datensätzen in deinen Trainingsprojekten. Sie umfasst das Festlegen von Pfaden zu deinen Trainings-, Validierungs- und Testbildern sowie den entsprechenden Labels. 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.zipLabels werden in *.txt-Dateien gespeichert, wobei eine Datei pro Bild verwendet wird, formatiert als class x_center y_center width height mit normalisierten Koordinaten. Für eine detaillierte Anleitung siehe das COCO8-Datensatzbeispiel.
Wie konvertiere ich einen COCO-Datensatz in das YOLO-Format?
Du kannst einen COCO-Datensatz mit den Ultralytics Konvertierungstools 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 eine nahtlose Integration mit Ultralytics YOLO-Modellen. Für weitere Details besuche den Abschnitt Labelformate portieren oder konvertieren.
Welche Datensätze werden von Ultralytics YOLO für die Objekterkennung unterstützt?
Ultralytics YOLO unterstützt eine breite Palette von Datensätzen, darunter:
Jede Datensatzseite bietet detaillierte Informationen zur Struktur und Verwendung, die auf ein effizientes Training mit YOLO26 zugeschnitten sind. Entdecke die vollständige Liste im Abschnitt Unterstützte Datensätze.
Wie beginne ich mit dem Training eines YOLO26-Modells unter Verwendung meines Datensatzes?
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:
from 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 Einzelheiten zur Nutzung verschiedener Modi, einschließlich CLI-Befehlen, findest du im Abschnitt Nutzung.
Wo finde ich praktische Beispiele für die Verwendung von Ultralytics YOLO zur Objekterkennung?
Ultralytics bietet zahlreiche Beispiele und praktische Leitfäden für den Einsatz von YOLO26 in verschiedenen Anwendungen. Für einen umfassenden Überblick besuche den Ultralytics Blog, wo du Fallstudien, detaillierte Tutorials und Community-Geschichten findest, die Objekterkennung, Segmentierung und mehr mit YOLO26 präsentieren. Spezielle Beispiele findest du im Abschnitt Nutzung in der Dokumentation.