Übersicht über Datensätze zur Bildklassifizierung#
Datensatzstruktur für YOLO-Klassifizierungsaufgaben#
Für Ultralytics-Klassifizierungsaufgaben mit YOLO muss der Datensatz in einer bestimmten Verzeichnisstruktur mit getrennten Teilmengen unter dem Verzeichnis root organisiert sein. Diese Struktur umfasst ein Verzeichnis train und ein Verzeichnis val (valid und validation werden ebenfalls akzeptiert) sowie optional ein Verzeichnis test. Wenn kein Validierungsverzeichnis vorhanden ist, wird stattdessen das Verzeichnis test zur Validierung verwendet. Falls das Stammverzeichnis überhaupt kein Verzeichnis train enthält, aber einen Ordner pro Klasse, teilt Ultralytics die Bilder automatisch im Verhältnis 80/20 auf und erstellt dafür ein neues Verzeichnis <root>_split mit den Unterverzeichnissen train und val.
Jedes dieser Verzeichnisse sollte für jede Klasse im Datensatz ein Unterverzeichnis enthalten. Die Unterverzeichnisse tragen den jeweiligen Klassennamen und enthalten alle Bilder dieser Klasse. Achte darauf, dass jede Bilddatei einen eindeutigen Namen hat und in einem gängigen Format wie JPEG oder PNG gespeichert ist.
Beispiel für die Ordnerstruktur#
Nimm den Datensatz CIFAR-10 als Beispiel. Die Ordnerstruktur sollte so aussehen:
cifar10/
|
|-- train/
| |-- airplane/
| | |-- 10008_airplane.png
| | |-- 10009_airplane.png
| | |-- ...
| |
| |-- automobile/
| | |-- 1000_automobile.png
| | |-- 1001_automobile.png
| | |-- ...
| |
| |-- bird/
| | |-- 10014_bird.png
| | |-- 10015_bird.png
| | |-- ...
| |
| |-- ...
|
|-- test/ (optional)
| |-- airplane/
| | |-- 10_airplane.png
| | |-- 11_airplane.png
| | |-- ...
| |
| |-- automobile/
| | |-- 100_automobile.png
| | |-- 101_automobile.png
| | |-- ...
| |
| |-- bird/
| | |-- 1000_bird.png
| | |-- 1001_bird.png
| | |-- ...
| |
| |-- ...
|
|-- val/
| |-- airplane/
| | |-- 105_airplane.png
| | |-- 106_airplane.png
| | |-- ...
| |
| |-- automobile/
| | |-- 102_automobile.png
| | |-- 103_automobile.png
| | |-- ...
| |
| |-- bird/
| | |-- 1045_bird.png
| | |-- 1046_bird.png
| | |-- ...
| |
| |-- ...Durch diese strukturierte Vorgehensweise kann das Modell während des Trainings effektiv von gut organisierten Klassen lernen und die Leistung in den Test- und Validierungsphasen genau bewerten.
Verwendung#
from ultralytics import YOLO
# Ein Modell laden
model = YOLO("yolo26n-cls.pt") # ein vortrainiertes Modell laden (für das Training empfohlen)
# Das Modell trainieren
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)Die meisten integrierten Datensatznamen (zum Beispiel cifar10, imagenette oder mnist160) laden die Daten automatisch herunter und speichern sie beim ersten Verweis im Cache. Verweise mit data nur dann auf einen Ordnerpfad, wenn du einen benutzerdefinierten Datensatz zusammengestellt hast.
Unterstützte Datensätze#
Ultralytics unterstützt die folgenden Datensätze mit automatischem Download. Die meisten dieser Datensätze sind auch auf der Ultralytics Platform verfügbar. Dort kannst du Bilder und Annotationen ansehen, Datensatzstatistiken einsehen und Datensätze für das Training in der Cloud klonen.
- Caltech 101: Ein Datensatz mit Bildern aus 101 Objektkategorien für Aufgaben der Bildklassifizierung.
- Caltech 256: Eine erweiterte Version von Caltech 101 mit 256 Objektkategorien und anspruchsvolleren Bildern.
- CIFAR-10: Ein Datensatz mit 60.000 farbigen Bildern im Format 32x32 aus 10 Klassen, mit jeweils 6.000 Bildern pro Klasse.
- CIFAR-100: Eine erweiterte Version von CIFAR-10 mit 100 Objektkategorien und 600 Bildern pro Klasse.
- Fashion-MNIST: Ein Datensatz mit 70.000 Graustufenbildern aus 10 Modekategorien für Aufgaben der Bildklassifizierung.
- ImageNet: Der Bildklassifizierungsbenchmark ImageNet-1k (ILSVRC-2012) mit 1.000 Klassen, 1,28 Millionen Trainingsbildern und 50.000 Validierungsbildern.
- ImageNet-10: Eine kleinere Teilmenge von ImageNet mit 10 Kategorien für schnellere Experimente und Tests.
- Imagenette: Eine kleinere Teilmenge von ImageNet mit 10 leicht unterscheidbaren Klassen für schnelleres Training und Testen.
- Imagewoof: Eine anspruchsvollere Teilmenge von ImageNet mit 10 Hunderassenkategorien für Aufgaben der Bildklassifizierung.
- MNIST: Ein Datensatz mit 70.000 Graustufenbildern handgeschriebener Ziffern für Aufgaben der Bildklassifizierung.
- MNIST160: Die ersten 8 Bilder jeder Ziffer (0–9) aus den Trainings- und Testteildatensätzen von MNIST. Der Datensatz umfasst insgesamt 160 Bilder.
Eigenen Datensatz hinzufügen#
Wenn du einen eigenen Datensatz hast und ihn zum Trainieren von Klassifizierungsmodellen mit Ultralytics YOLO verwenden möchtest, achte darauf, dass er dem oben unter „Datensatzstruktur“ beschriebenen Format entspricht. Gib dann beim Initialisieren deines Trainingsskripts für das Argument data das Datensatzverzeichnis an.
Häufig gestellte Fragen#
Um deinen Datensatz für Ultralytics-YOLO-Klassifizierungsaufgaben zu strukturieren, solltest du ein bestimmtes Verzeichnisformat mit getrennten Teilmengen verwenden. Ordne deinen Datensatz in separate Verzeichnisse für
trainundvalsowie optionaltest. Jedes dieser Verzeichnisse sollte Unterverzeichnisse mit den Klassennamen und den jeweiligen Bildern enthalten. Das ermöglicht reibungslose Trainings- und Evaluierungsabläufe. Als Beispiel dient das Format des Datensatzes CIFAR-10:cifar10/ |-- train/ | |-- airplane/ | |-- automobile/ | |-- bird/ | ... |-- val/ | |-- airplane/ | |-- automobile/ | |-- bird/ | ... |-- test/ (optional) | |-- airplane/ | |-- automobile/ | |-- bird/ | ...Weitere Informationen findest du im Abschnitt Datensatzstruktur für YOLO-Klassifizierungsaufgaben.
Ultralytics YOLO unterstützt den automatischen Download mehrerer Datensätze zur Bildklassifizierung, darunter Caltech 101, Caltech 256, CIFAR-10, CIFAR-100, Fashion-MNIST, ImageNet, ImageNet-10, Imagenette, Imagewoof und MNIST. Diese Datensätze sind so strukturiert, dass sie sich leicht mit YOLO verwenden lassen. Auf der Seite jedes Datensatzes findest du weitere Informationen zu Struktur und Anwendungsbereichen.
Um deinen eigenen Datensatz mit Ultralytics YOLO zu verwenden, achte darauf, dass er dem vorgegebenen Verzeichnisformat für die Klassifizierungsaufgabe entspricht. Dazu gehören separate Verzeichnisse
trainundvalsowie optionaltestund Unterverzeichnisse für jede Klasse mit den jeweiligen Bildern. Sobald dein Datensatz korrekt strukturiert ist, gib beim Initialisieren des Trainingsskripts für das Argumentdatadas Stammverzeichnis des Datensatzes an. Hier ist ein Beispiel in Python:from ultralytics import YOLO # Ein Modell laden model = YOLO("yolo26n-cls.pt") # ein vortrainiertes Modell laden (für das Training empfohlen) # Das Modell trainieren results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)Weitere Informationen findest du im Abschnitt Eigenen Datensatz hinzufügen.
Ultralytics YOLO bietet mehrere Vorteile für die Bildklassifizierung, darunter:
- Vortrainierte Modelle: Lade vortrainierte Modelle wie
yolo26n-cls.pt, um dein Training schnell zu starten. - Einfache Nutzung: Einfache API- und CLI-Befehle für Training und Evaluierung.
- Hohe Leistung: Modernste Genauigkeit und Geschwindigkeit, ideal für Echtzeitanwendungen.
- Unterstützung mehrerer Datensätze: Nahtlose Integration mit verschiedenen beliebten Datensätzen wie CIFAR-10, ImageNet und weiteren.
- Community und Support: Zugriff auf eine umfangreiche Dokumentation und eine aktive Community für Fehlerbehebung und Verbesserungen.
Weitere Einblicke und Praxisanwendungen findest du unter Ultralytics YOLO.
- Vortrainierte Modelle: Lade vortrainierte Modelle wie
Mit Ultralytics YOLO kannst du ein Modell ganz einfach in Python oder über die CLI trainieren. Hier ein Beispiel:
Beispielfrom ultralytics import YOLO # Ein Modell laden model = YOLO("yolo26n-cls.pt") # Vortrainiertes Modell laden # Das Modell trainieren results = model.train(data="path/to/dataset", epochs=100, imgsz=640)Diese Beispiele zeigen, wie einfach sich ein YOLO-Modell mit beiden Methoden trainieren lässt. Weitere Informationen findest du im Abschnitt Verwendung und auf der Seite Training für Klassifizierungsaufgaben.