Zum Inhalt springen

Überblick über Bildklassifizierungsdatensätze

Datensatzstruktur für YOLO-Klassifizierungsaufgaben

Für Ultralytics YOLO-Klassifizierungsaufgaben muss der Datensatz in einer bestimmten Split-Verzeichnisstruktur unter dem root Verzeichnis, um ordnungsgemäße Trainings-, Test- und optionale Validierungsprozesse zu ermöglichen. Diese Struktur umfasst separate Verzeichnisse für das Training (train) und Testen (test) Phasen, mit einem optionalen Verzeichnis für die Validierung (val), oder Auto-Modus mit angegebener Auslastungsfraktion (

Jedes dieser Verzeichnisse sollte ein Unterverzeichnis für jede Klasse im Datensatz enthalten. Die Unterverzeichnisse werden nach der entsprechenden Klasse benannt und enthalten alle Bilder für diese Klasse. Stellen Sie sicher, dass jede Bilddatei eindeutig benannt und in einem gängigen Format wie JPEG oder PNG gespeichert ist.

Beispiel für eine Ordnerstruktur

Betrachten Sie 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 von gut organisierten Klassen lernen und die Leistung während der Test- und Validierungsphasen genau bewerten kann.

Nutzung

Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-cls.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo classify train data=path/to/data model=yolo11n-cls.pt epochs=100 imgsz=640

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 von 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 umfangreicher Datensatz für Objekterkennung und Bildklassifizierung mit über 14 Millionen Bildern und 20.000 Kategorien.
  • ImageNet-10: Eine kleinere Teilmenge von ImageNet mit 10 Kategorien für schnellere Experimente und Tests.
  • 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, die 10 Hunderassen-Kategorien für Bildklassifizierungsaufgaben enthält.
  • MNIST: Ein Datensatz von 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 Ihres eigenen Datensatzes

Wenn Sie Ihren eigenen Datensatz haben und ihn für das Training von Klassifizierungsmodellen mit Ultralytics YOLO verwenden möchten, stellen Sie sicher, dass er dem oben unter „Datensatzstruktur“ angegebenen Format entspricht, und verweisen Sie dann auf Ihren Datensatz. data Argument an das Dataset-Verzeichnis, wenn Sie Ihr Trainingsskript initialisieren.

FAQ

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

Um Ihren Datensatz für Ultralytics YOLO-Klassifizierungsaufgaben zu strukturieren, sollten Sie ein bestimmtes Split-Directory-Format verwenden. Organisieren Sie Ihren 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 Bewertungsprozesse. Betrachten Sie zum Beispiel die CIFAR-10 Datensatzformat:

cifar-10-/
|-- train/
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...
|-- test/
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...
|-- val/ (optional)
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...

Weitere Details finden Sie im Abschnitt Dataset-Struktur für YOLO-Klassifizierungsaufgaben.

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

Ultralytics YOLO unterstützt das automatische Herunterladen verschiedener Datensätze für die 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 einfach mit YOLO verwendet werden können. Die Seite jedes Datensatzes enthält weitere Details über seine Struktur und Anwendungen.

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

Um Ihren eigenen Datensatz mit Ultralytics YOLO zu verwenden, stellen Sie sicher, dass er dem angegebenen Verzeichnisformat entspricht, das für die Klassifizierungsaufgabe erforderlich ist, mit separaten train, test, und optional val Verzeichnisse und Unterverzeichnisse für jede Klasse, die die jeweiligen Bilder enthalten. Sobald Ihr Datensatz korrekt strukturiert ist, verweisen Sie mit dem data Argument für das Stammverzeichnis Ihres Datasets bei der Initialisierung des Trainingsskripts. Hier ist ein Beispiel in python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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 finden Sie im Abschnitt Hinzufügen Ihres eigenen Datensatzes.

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

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

  • Vorab trainierte Modelle: Laden Sie vortrainierte Modelle wie yolo11n-cls.pt um Ihren Trainingsprozess zu beschleunigen.
  • Einfache Bedienung: Einfache API- und CLI-Befehle für Training und Evaluierung.
  • Hohe Leistung: Modernste Genauigkeit und Geschwindigkeit, ideal für Echtzeit-Anwendungen.
  • Unterstützung für mehrere Datensätze: Nahtlose Integration mit verschiedenen populären Datensätzen wie CIFAR-10, ImageNet und mehr.
  • Community und Support: Zugang zu umfangreicher Dokumentation und einer aktiven Community zur Fehlerbehebung und für Verbesserungen.

Für zusätzliche Einblicke und reale Anwendungen können Sie Ultralytics YOLO erkunden.

Wie kann ich ein Modell mit Ultralytics YOLO trainieren?

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

Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-cls.pt")  # load a pretrained model

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo classify train data=path/to/data model=yolo11n-cls.pt epochs=100 imgsz=640

Diese Beispiele demonstrieren den unkomplizierten Prozess des Trainierens eines YOLO-Modells mit beiden Ansätzen. Weitere Informationen finden Sie im Abschnitt Verwendung und auf der Seite Trainieren für Klassifizierungsaufgaben.



📅 Vor 1 Jahr erstellt ✏️ Vor 5 Monaten aktualisiert

Kommentare