Zum Inhalt springen

Übersicht über die Bildklassifizierungsdatensätze

Datensatzstruktur für YOLO Klassifizierungsaufgaben

Für Ultralytics YOLO Klassifizierungsaufgaben muss der Datensatz in einer speziellen Struktur mit geteilten Verzeichnissen unter dem root Verzeichnis, um die Schulung, die Prüfung und den optionalen Validierungsprozess zu erleichtern. Diese Struktur umfasst separate Verzeichnisse für die Ausbildung (train) und Prüfung (test), mit einem optionalen Verzeichnis zur Validierung (val).

Jedes dieser Verzeichnisse sollte ein Unterverzeichnis für jede Klasse des Datensatzes enthalten. Die Unterverzeichnisse werden nach der entsprechenden Klasse benannt und enthalten alle Bilder für diese 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 eine Ordnerstruktur

Nimm 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 in der Trainingsphase effektiv von gut organisierten Klassen lernen und die Leistung in der Test- und Validierungsphase genau bewerten kann.

Verwendung

Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-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 detect train data=path/to/data model=yolov8n-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 Bildklassifizierungsaufgaben.
  • Caltech 256: Eine erweiterte Version von Caltech 101 mit 256 Objektkategorien und noch anspruchsvolleren Bildern.
  • CIFAR-10: Ein Datensatz mit 60K 32x32 Farbbildern in 10 Klassen, mit 6K 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ßer Datensatz zur Objekterkennung und Bildklassifizierung mit über 14 Millionen Bildern und 20.000 Kategorien.
  • ImageNet-10: Eine kleinere Teilmenge von ImageNet mit 10 Kategorien zum schnelleren Experimentieren und Testen.
  • Imagenette: Eine kleinere Teilmenge von ImageNet, die 10 leicht unterscheidbare Klassen enthält, um das Training und Testen zu beschleunigen.
  • Imagewoof: Eine anspruchsvollere Teilmenge von ImageNet mit 10 Hunderassenkategorien für Bildklassifizierungsaufgaben.
  • MNIST: Ein Datensatz mit 70.000 Graustufenbildern von handgeschriebenen Ziffern für Bildklassifizierungsaufgaben.

Hinzufügen deines eigenen Datensatzes

Wenn du deinen eigenen Datensatz hast und ihn für das Training von Klassifizierungsmodellen mit Ultralytics verwenden möchtest, stelle sicher, dass er dem oben unter "Datensatzformat" angegebenen Format entspricht, und zeige dann deine data Argument auf das Verzeichnis des Datensatzes.

FAQ

Wie strukturiere ich meinen Datensatz für YOLO Klassifizierungsaufgaben?

Um deinen Datensatz für Ultralytics YOLO Klassifizierungsaufgaben zu strukturieren, solltest du ein bestimmtes Split-Directory-Format befolgen. Organisiere deinen Datensatz in separaten Verzeichnissen für train, testund optional val. Jedes dieser Verzeichnisse sollte Unterverzeichnisse enthalten, die nach jeder Klasse benannt sind und in denen sich die entsprechenden Bilder befinden. Das erleichtert den reibungslosen Trainings- und Bewertungsprozess. Ein Beispiel dafür ist das Format des CIFAR-10-Datensatzes:

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

Weitere Informationen findest du unter 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 verschiedener Datensätze zur Bildklassifizierung, darunter:

Diese Datensätze sind so strukturiert, dass sie mit YOLO einfach zu verwenden sind. Auf der Seite jedes Datensatzes findest du weitere Informationen über seine Struktur und Anwendungen.

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

Wenn Sie Ihren eigenen Datensatz mit Ultralytics YOLO verwenden möchten, stellen Sie sicher, dass er dem angegebenen Verzeichnisformat entspricht, das für die Klassifizierungsaufgabe erforderlich ist, mit separaten train, testund optional val Verzeichnisse und Unterverzeichnisse für jede Klasse, die die jeweiligen Bilder enthalten. Wenn dein Datensatz richtig strukturiert ist, zeige den data Argument auf das Stammverzeichnis deines Datensatzes, wenn du das Trainingsskript initialisierst. Hier ist ein Beispiel in Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-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 Informationen findest du im Abschnitt Hinzufügen eines eigenen Datensatzes.

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

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

  • Vortrainierte Modelle: Laden Sie vortrainierte Modelle wie yolov8n-cls.pt um deinen Trainingsprozess in Gang zu bringen.
  • Benutzerfreundlichkeit: Einfache API und CLI Befehle für Training und Auswertung.
  • Hohe Leistung: Modernste Genauigkeit und Geschwindigkeit, ideal für Echtzeitanwendungen.
  • Unterstützung für mehrere Datensätze: Nahtlose Integration mit verschiedenen beliebten Datensätzen wie CIFAR-10, ImageNet und mehr.
  • Community und Support: Zugang zu umfangreicher Dokumentation und einer aktiven Community für Fehlerbehebung und Verbesserungen.

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

Wie kann ich ein Modell mit Ultralytics YOLO trainieren?

Ein Modell mit Ultralytics YOLO zu trainieren, ist sowohl in Python als auch in CLI möglich. Hier ein Beispiel:

Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-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 detect train data=path/to/data model=yolov8n-cls.pt epochs=100 imgsz=640

Diese Beispiele zeigen, wie einfach es ist, ein YOLO Modell mit einem der beiden Ansätze zu trainieren. Weitere Informationen findest du im Abschnitt " Verwendung".



Erstellt am 2023-11-12, Aktualisiert am 2024-07-04
Autoren: glenn-jocher (7), stormsson (1), GreatV (1)

Kommentare