Übersicht über Bildklassifizierungsdatensätze#
Datensatzstruktur für YOLO-Klassifizierungsaufgaben#
Für Ultralytics YOLO-Klassifizierungsaufgaben muss der Datensatz in einer bestimmten Ordnerstruktur mit getrennten Verzeichnissen unter dem Verzeichnis root organisiert sein, um reibungslose Trainings-, Test- und optionale Validierungsprozesse zu ermöglichen. Diese Struktur umfasst separate Verzeichnisse für die Phasen Training (train) und Validierung (val) sowie ein optionales Verzeichnis zum Testen (test).
Jedes dieser Verzeichnisse sollte für jede Klasse im Datensatz ein Unterverzeichnis enthalten. Die Unterverzeichnisse sind nach der entsprechenden Klasse benannt und enthalten alle Bilder dieser Klasse. Stelle sicher, dass jede Bilddatei eindeutig benannt und in einem gängigen Format wie JPEG oder PNG gespeichert ist.
Beispiel für die Ordnerstruktur#
Betrachte den CIFAR-10-Datensatz als Beispiel. Die Ordnerstruktur sollte wie folgt aussehen:
cifar-10-/
|
|-- train/
| |-- airplane/
| | |-- 10008_airplane.png
| | |-- 10009_airplane.png
| | |-- ...
| |
| |-- automobile/
| | |-- 1000_automobile.png
| | |-- 1001_automobile.png
| | |-- ...
| |
| |-- bird/
| | |-- 10014_bird.png
| | |-- 10015_bird.png
| | |-- ...
| |
| |-- ...
|
|-- test/
| |-- airplane/
| | |-- 10_airplane.png
| | |-- 11_airplane.png
| | |-- ...
| |
| |-- automobile/
| | |-- 100_automobile.png
| | |-- 101_automobile.png
| | |-- ...
| |
| |-- bird/
| | |-- 1000_bird.png
| | |-- 1001_bird.png
| | |-- ...
| |
| |-- ...
|
|-- val/ (optional)
| |-- airplane/
| | |-- 105_airplane.png
| | |-- 106_airplane.png
| | |-- ...
| |
| |-- automobile/
| | |-- 102_automobile.png
| | |-- 103_automobile.png
| | |-- ...
| |
| |-- bird/
| | |-- 1045_bird.png
| | |-- 1046_bird.png
| | |-- ...
| |
| |-- ...Dieser strukturierte Ansatz stellt sicher, dass das Modell während der Trainingsphase effektiv aus gut organisierten Klassen lernen und die Leistung während der Test- und Validierungsphasen präzise bewerten kann.
Verwendung#
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-cls.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)Die meisten integrierten Datensatznamen (zum Beispiel cifar10, imagenette oder mnist160) laden die Daten beim ersten Referenzieren automatisch herunter und zwischenspeichern sie. Verweise nur dann mit data auf einen Ordnerpfad, wenn du einen eigenen Datensatz zusammengestellt hast.
Unterstützte Datensätze#
Ultralytics unterstützt die folgenden Datensätze mit automatischem Download:
- Caltech 101: Ein Datensatz mit Bildern von 101 Objektkategorien für image classification-Aufgaben.
- Caltech 256: Eine erweiterte Version von Caltech 101 mit 256 Objektkategorien und anspruchsvolleren Bildern.
- CIFAR-10: Ein Datensatz mit 60.000 32x32 Farbbildern in 10 Klassen, mit 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 aus 70.000 Graustufenbildern von 10 Modekategorien für Bildklassifizierungsaufgaben.
- ImageNet: Ein groß angelegter Datensatz für object detection und Bildklassifizierung mit über 14 Millionen Bildern und 20.000 Kategorien.
- ImageNet-10: Eine kleinere Teilmenge von ImageNet mit 10 Kategorien für schnelleres Experimentieren und Testen.
- Imagenette: Eine kleinere Teilmenge von ImageNet, die 10 leicht unterscheidbare Klassen für schnelleres Training und Testen enthält.
- Imagewoof: Eine anspruchsvollere Teilmenge von ImageNet mit 10 Hunderassen-Kategorien für Bildklassifizierungsaufgaben.
- MNIST: Ein Datensatz von 70.000 Graustufenbildern handgeschriebener Ziffern für Bildklassifizierungsaufgaben.
- MNIST160: Die ersten 8 Bilder jeder Ziffer (0-9) sowohl aus den MNIST-Trainings- als auch Test-Splits. Der Datensatz enthält 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, stelle sicher, dass er dem oben unter „Dataset Structure“ angegebenen Format entspricht, und übergib dein data-Argument beim Initialisieren deines Trainingsskripts an das Datensatzverzeichnis.
FAQ#
Um deinen Datensatz für Ultralytics YOLO-Klassifizierungsaufgaben zu strukturieren, solltest du ein bestimmtes Format mit getrennten Verzeichnissen verwenden. Organisiere deinen Datensatz in separate Verzeichnisse für
train,testund optionalval. Jedes dieser Verzeichnisse sollte Unterverzeichnisse enthalten, die nach jeder Klasse benannt sind, mit den entsprechenden Bildern darin. Dies erleichtert reibungslose Trainings- und Evaluierungsprozesse. Betrachte als Beispiel das Format des CIFAR-10-Datensatzes:cifar-10-/ |-- train/ | |-- airplane/ | |-- automobile/ | |-- bird/ | ... |-- test/ | |-- airplane/ | |-- automobile/ | |-- bird/ | ... |-- val/ (optional) | |-- airplane/ | |-- automobile/ | |-- bird/ | ...Weitere Details findest du im Abschnitt Dataset Structure for YOLO Classification Tasks.
Ultralytics YOLO unterstützt den automatischen Download mehrerer Datensätze für die Bildklassifizierung, einschließlich 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 einfach mit YOLO verwenden lassen. Die Seite jedes Datensatzes bietet weitere Details zu seiner Struktur und seinen Anwendungen.
Um deinen eigenen Datensatz mit Ultralytics YOLO zu verwenden, stelle sicher, dass er dem für die Klassifizierungsaufgabe erforderlichen Verzeichnisformat mit separaten Verzeichnissen für
train,testund optionalvalsowie Unterverzeichnissen für jede Klasse mit den jeweiligen Bildern entspricht. Sobald dein Datensatz korrekt strukturiert ist, übergib dasdata-Argument beim Initialisieren des Trainingsskripts an das Stammverzeichnis deines Datensatzes. Hier ist ein Beispiel in Python:from ultralytics import YOLO # Load a model model = YOLO("yolo26n-cls.pt") # load a pretrained model (recommended for training) # Train the model results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)Weitere Details findest du im Abschnitt Adding your own dataset.
Ultralytics YOLO bietet mehrere Vorteile für die Bildklassifizierung, darunter:
- Pretrained Models: Lade vortrainierte Modelle wie
yolo26n-cls.pt, um deinen Trainingsprozess zu beschleunigen. - Benutzerfreundlichkeit: Einfache API- und CLI-Befehle für Training und Evaluierung.
- High Performance: Modernste accuracy und Geschwindigkeit, ideal für Echtzeitanwendungen.
- Support for Multiple Datasets: Nahtlose Integration mit verschiedenen beliebten Datensätzen wie CIFAR-10, ImageNet und weiteren.
- Community und Support: Zugriff auf umfangreiche Dokumentation und eine aktive Community für Fehlerbehebung und Verbesserungen.
Für zusätzliche Einblicke und reale Anwendungen kannst du Ultralytics YOLO erkunden.
- Pretrained Models: Lade vortrainierte Modelle wie
Das Training eines Modells mit Ultralytics YOLO lässt sich einfach in Python und über die CLI durchführen. Hier ist ein Beispiel:
Beispielfrom ultralytics import YOLO # Load a model model = YOLO("yolo26n-cls.pt") # load a pretrained model # Train the model results = model.train(data="path/to/dataset", epochs=100, imgsz=640)Diese Beispiele veranschaulichen den unkomplizierten Prozess des Trainings eines YOLO-Modells mit beiden Ansätzen. Weitere Informationen findest du im Abschnitt Usage und auf der Seite Train für Klassifizierungsaufgaben.