Übersicht über Bildklassifizierungsdatensätze

Datensatzstruktur für YOLO-Klassifizierungsaufgaben

Für Ultralytics YOLO-Klassifizierungsaufgaben muss der Datensatz in einer spezifischen Aufteilungs-Verzeichnisstruktur unter dem root-Verzeichnis organisiert sein, um ein ordnungsgemäßes Training, Testen und optionale Validierungsprozesse zu ermöglichen. Diese Struktur beinhaltet separate Verzeichnisse für Trainings- (train) und Testphasen (test) sowie ein optionales Verzeichnis für die Validierung (val).

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 für diese 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 so 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 genau bewerten kann.

Verwendung

Beispiel
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)
Tipp

Die meisten integrierten Datensatznamen (zum Beispiel cifar10, imagenette oder mnist160) laden die Daten automatisch herunter und zwischenspeichern sie, wenn du sie zum ersten Mal referenzierst. 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 Bildklassifizierungs-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 bestehend aus 70.000 Graustufenbildern von 10 Modekategorien für Bildklassifizierungsaufgaben.
  • ImageNet: Ein groß angelegter Datensatz für Objekterkennung und Bildklassifizierung mit über 14 Millionen Bildern und 20.000 Kategorien.
  • ImageNet-10: Ein kleinerer Teilbereich von ImageNet mit 10 Kategorien für schnellere Experimente und Tests.
  • Imagenette: Ein kleinerer Teilbereich von ImageNet, der 10 leicht unterscheidbare Klassen für schnelleres Training und Testen enthält.
  • Imagewoof: Ein anspruchsvollerer Teilbereich von ImageNet, der 10 Hunderassenkategorien für Bildklassifizierungsaufgaben enthält.
  • MNIST: Ein Datensatz mit 70.000 Graustufenbildern von handgeschriebenen Ziffern für Bildklassifizierungsaufgaben.
  • MNIST160: Die ersten 8 Bilder jeder MNIST-Kategorie aus dem MNIST-Datensatz. Der Datensatz enthält insgesamt 160 Bilder.

Hinzufügen deines eigenen Datensatzes

Wenn du deinen eigenen Datensatz hast und diesen für das Training von Klassifizierungsmodellen mit Ultralytics YOLO verwenden möchtest, stelle sicher, dass er dem oben unter „Datensatzstruktur“ angegebenen Format folgt, und verweise dann beim Initialisieren deines Trainingsskripts mit dem Argument data auf das Datensatzverzeichnis.

FAQ

Wie strukturiere ich meinen Datensatz für YOLO-Klassifizierungsaufgaben?

Um deinen Datensatz für Ultralytics YOLO-Klassifizierungsaufgaben zu strukturieren, solltest du einem spezifischen Aufteilungs-Verzeichnisformat folgen. Organisiere deinen Datensatz in separate Verzeichnisse für train, test und optional val. Jedes dieser Verzeichnisse sollte Unterverzeichnisse enthalten, die nach jeder Klasse benannt sind, mit den entsprechenden Bildern darin. Dies erleichtert reibungslose Trainings- und Evaluierungsprozesse. Als Beispiel siehe 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 Datensatzstruktur für YOLO-Klassifizierungsaufgaben.

Welche Datensätze werden von Ultralytics YOLO für die Bildklassifizierung unterstützt?

Ultralytics YOLO unterstützt das automatische Herunterladen 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 einfach mit YOLO verwendet werden können. Die Seite des jeweiligen Datensatzes bietet weitere Details zu seiner Struktur und Anwendung.

Wie füge ich meinen eigenen Datensatz für die YOLO-Bildklassifizierung hinzu?

Um deinen eigenen Datensatz mit Ultralytics YOLO zu verwenden, stelle sicher, dass er dem für die Klassifizierungsaufgabe erforderlichen Verzeichnisformat folgt, mit separaten train-, test- und optional val-Verzeichnissen sowie Unterverzeichnissen für jede Klasse, die die jeweiligen Bilder enthalten. Sobald dein Datensatz korrekt strukturiert ist, verweise beim Initialisieren des Trainingsskripts mit dem data-Argument auf 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 Hinzufügen deines eigenen Datensatzes.

Warum sollte ich Ultralytics YOLO für die Bildklassifizierung verwenden?

Ultralytics YOLO bietet mehrere Vorteile für die Bildklassifizierung, darunter:

  • Vortrainierte Modelle: Lade vortrainierte Modelle wie yolo26n-cls.pt, um deinen Trainingsprozess zu beschleunigen.
  • Benutzerfreundlichkeit: Einfache API- und CLI-Befehle für Training und Evaluierung.
  • Hohe Leistung: Modernste Genauigkeit und Geschwindigkeit, ideal für Echtzeitanwendungen.
  • Unterstützung für mehrere Datensätze: Nahtlose Integration mit verschiedenen gängigen Datensätzen wie CIFAR-10, ImageNet und mehr.
  • Community und Support: Zugriff auf umfangreiche Dokumentation und eine aktive Community für Fehlerbehebung und Verbesserungen.

Für weitere Einblicke und praktische Anwendungen kannst du Ultralytics YOLO erkunden.

Wie kann ich ein Modell mit Ultralytics YOLO trainieren?

Das Training eines Modells mit Ultralytics YOLO kann einfach sowohl in Python als auch über die CLI durchgeführt werden. Hier ist ein Beispiel:

Beispiel
from 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 demonstrieren den unkomplizierten Prozess des Trainings eines YOLO-Modells mit beiden Ansätzen. Weitere Informationen findest du im Abschnitt Nutzung und auf der Seite Training für Klassifizierungsaufgaben.

Kommentare