Ultralytics YOLO27:

Übersicht über Bildklassifizierungsdatensätze#

Datensatzstruktur für YOLO-Klassifizierungsaufgaben#

Für Ultralytics YOLO-Klassifizierungsaufgaben muss das Dataset in einer spezifischen Aufteilungsverzeichnisstruktur unter dem Verzeichnis root organisiert sein. Diese Struktur umfasst ein Verzeichnis train und ein Verzeichnis val (valid und validation werden ebenfalls akzeptiert) sowie ein optionales Verzeichnis test. Wenn kein Validierungsverzeichnis existiert, wird stattdessen das Verzeichnis test für die Validierung verwendet.

Jedes dieser Verzeichnisse sollte für jede Klasse im Datensatz ein Unterverzeichnis enthalten. Die Unterverzeichnisse werden nach der jeweiligen Klasse benannt und enthalten alle Bilder dieser Klasse. Stelle sicher, dass jede Bilddatei einen eindeutigen Namen hat und in einem gängigen Format wie JPEG oder PNG gespeichert ist.

Beispiel für die Verzeichnisstruktur#

Betrachte als Beispiel den Datensatz CIFAR-10. Die Verzeichnisstruktur 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/ (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
|   |   |-- ...
|   |
|   |-- ...

Dieser strukturierte Ansatz stellt sicher, dass das Modell während der Trainingsphase effektiv aus gut organisierten Klassen lernen und seine Leistung während der Test- und Validierungsphasen präzise 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 speichern sie beim ersten Verweis darauf im Cache. Verweise mit data nur dann auf einen Verzeichnispfad, wenn du einen eigenen Datensatz zusammengestellt hast.

Unterstützte Datensätze#

Ultralytics unterstützt die folgenden Datasets mit automatischem Download. Die meisten dieser Datasets werden auch auf der Ultralytics Platform gehostet, wo du die Bilder und Annotationen durchsuchen, Dataset-Statistiken einsehen und sie für das Cloud-Training klonen kannst.

  • 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 32x32-Bildern 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: Ein groß angelegter Datensatz für Objekterkennung und Bildklassifizierung mit mehr als 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 mit 10 leicht unterscheidbaren Klassen für schnelleres Training und Testen.
  • Imagewoof: Eine anspruchsvollere Teilmenge von ImageNet mit 10 Kategorien von Hunderassen 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 Testaufteilungen von MNIST. 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 im Abschnitt „Datensatzstruktur“ angegebenen Format entspricht, und verweise beim Initialisieren deines Trainingsskripts mit dem Argument data auf das Datensatzverzeichnis.

FAQ#

  • Um dein Dataset für Ultralytics YOLO-Klassifizierungsaufgaben zu strukturieren, solltest du einem spezifischen Aufteilungsverzeichnisformat folgen. Organisiere dein Dataset in separate Verzeichnisse für train und val sowie optional test. Jedes dieser Verzeichnisse sollte Unterverzeichnisse enthalten, die nach den jeweiligen Klassen benannt sind und die entsprechenden Bilder enthalten. Dies erleichtert reibungslose Trainings- und Evaluierungsprozesse. Betrachte als Beispiel das CIFAR-10 Dataset-Format:

    cifar-10-/
    |-- 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 das automatische Herunterladen mehrerer 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 sich einfach mit YOLO verwenden lassen. Die Seite jedes Datensatzes enthält weitere Informationen zu seiner Struktur und seinen Anwendungsbereichen.

  • Um dein eigenes Dataset mit Ultralytics YOLO zu verwenden, stelle sicher, dass es dem für die Klassifizierungsaufgabe erforderlichen Verzeichnisformat entspricht, mit separaten Verzeichnissen train und val (und optional test) sowie Unterverzeichnissen für jede Klasse, die die jeweiligen Bilder enthalten. Sobald dein Dataset korrekt strukturiert ist, verweise beim Initialisieren des Trainingsskripts mit dem Argument data auf das Stammverzeichnis deines Datasets. 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 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 deinen Trainingsprozess schnell zu starten.
    • Einfache Bedienung: Einfache API- und CLI-Befehle für Training und Bewertung.
    • Hohe Leistung: Modernste Genauigkeit und Geschwindigkeit, ideal für Echtzeitanwendungen.
    • Unterstützung mehrerer Datensätze: Nahtlose Integration verschiedener beliebter Datensätze wie CIFAR-10, ImageNet und weiterer Datensätze.
    • Community und Support: Zugriff auf eine umfassende Dokumentation und eine aktive Community zur Fehlerbehebung und Weiterentwicklung.

    Für weitere Einblicke und Anwendungen in der Praxis kannst du Ultralytics YOLO erkunden.

  • Das Training eines Modells mit Ultralytics YOLO lässt sich sowohl mit Python als auch über die CLI einfach durchführen. 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 veranschaulichen den unkomplizierten Ablauf zum Trainieren eines YOLO-Modells mit beiden Ansätzen. Weitere Informationen findest du im Abschnitt Verwendung und auf der Seite Trainieren für Klassifizierungsaufgaben.

Kommentare