Overslaan naar inhoud

Overzicht van datasets voor beeldclassificatie

Datasetstructuur voor YOLO Classificatietaken

Voor Ultralytics YOLO classificatietaken moet de dataset worden georganiseerd in een specifieke gesplitste mappenstructuur onder de root map om goede training, testen en optionele validatieprocessen mogelijk te maken. Deze structuur bevat aparte mappen voor training (train) en testen (test) fasen, met een optionele map voor validatie (val).

Elk van deze mappen moet een submap bevatten voor elke klasse in de dataset. De submappen worden genoemd naar de corresponderende klasse en bevatten alle afbeeldingen voor die klasse. Zorg ervoor dat elk afbeeldingsbestand een unieke naam heeft en wordt opgeslagen in een gangbaar formaat zoals JPEG of PNG.

Voorbeeld van mappenstructuur

Neem de CIFAR-10 dataset als voorbeeld. De mapstructuur zou er als volgt uit moeten zien:

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
|   |   |-- ...
|   |
|   |-- ...

Deze gestructureerde aanpak zorgt ervoor dat het model effectief kan leren van goed georganiseerde klassen tijdens de trainingsfase en de prestaties nauwkeurig kan evalueren tijdens de test- en validatiefase.

Gebruik

Voorbeeld

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

Ondersteunde datasets

Ultralytics ondersteunt de volgende datasets met automatische download:

  • Caltech 101: Een dataset met afbeeldingen van 101 objectcategorieĆ«n voor beeldclassificatietaken.
  • Caltech 256: Een uitgebreide versie van Caltech 101 met 256 objectcategorieĆ«n en meer uitdagende afbeeldingen.
  • CIFAR-10: Een dataset van 60K 32x32 kleurenafbeeldingen in 10 klassen, met 6K afbeeldingen per klasse.
  • CIFAR-100: Een uitgebreide versie van CIFAR-10 met 100 objectcategorieĆ«n en 600 afbeeldingen per klasse.
  • Mode-MNIST: Een dataset bestaande uit 70.000 grijswaardenafbeeldingen van 10 modecategorieĆ«n voor beeldclassificatietaken.
  • ImageNet: Een grootschalige dataset voor objectdetectie en beeldclassificatie met meer dan 14 miljoen afbeeldingen en 20.000 categorieĆ«n.
  • ImageNet-10: Een kleinere subset van ImageNet met 10 categorieĆ«n om sneller te kunnen experimenteren en testen.
  • Imagenette: Een kleinere subset van ImageNet die 10 gemakkelijk te onderscheiden klassen bevat voor sneller trainen en testen.
  • Imagewoof: Een meer uitdagende subset van ImageNet met 10 hondenrascategorieĆ«n voor beeldclassificatietaken.
  • MNIST: Een dataset van 70.000 grijswaardenafbeeldingen van handgeschreven cijfers voor beeldclassificatietaken.

Je eigen dataset toevoegen

Als je een eigen dataset hebt en deze wilt gebruiken voor het trainen van classificatiemodellen met Ultralytics, zorg er dan voor dat deze de indeling volgt die hierboven is gespecificeerd onder "Dataset-indeling" en wijs vervolgens je data argument naar de datasetmap.

FAQ

Hoe structureer ik mijn dataset voor YOLO classificatietaken?

Om je dataset te structureren voor Ultralytics YOLO classificatietaken, moet je een specifieke split-directory indeling volgen. Organiseer je dataset in aparte mappen voor train, testen optioneel val. Elk van deze mappen moet submappen bevatten met de naam van elke klasse, met daarin de bijbehorende afbeeldingen. Dit vergemakkelijkt een soepel trainings- en evaluatieproces. Neem als voorbeeld het formaat van de CIFAR-10 dataset:

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

Ga voor meer informatie naar Datasetstructuur voor YOLO Classificatietaken.

Welke datasets worden ondersteund door Ultralytics YOLO voor beeldclassificatie?

Ultralytics YOLO ondersteunt het automatisch downloaden van verschillende datasets voor beeldclassificatie, waaronder:

Deze datasets zijn zo gestructureerd dat ze gemakkelijk te gebruiken zijn met YOLO. De pagina van elke dataset geeft meer details over de structuur en toepassingen.

Hoe voeg ik mijn eigen dataset toe voor YOLO beeldclassificatie?

Als je je eigen dataset wilt gebruiken met Ultralytics YOLO , zorg er dan voor dat deze de gespecificeerde mapindeling volgt die nodig is voor de classificatietaak, met aparte train, testen optioneel val mappen, en submappen voor elke klasse die de respectievelijke afbeeldingen bevat. Zodra je dataset correct is gestructureerd, wijs je de data argument naar de hoofdmap van je dataset bij het initialiseren van het trainingsscript. Hier is een voorbeeld 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)

Meer details vind je in het gedeelte Je eigen dataset toevoegen.

Waarom zou ik Ultralytics YOLO gebruiken voor beeldclassificatie?

Ultralytics YOLO biedt verschillende voordelen voor beeldclassificatie, waaronder:

  • Voorgetrainde modellen: Laad voorgetrainde modellen zoals yolov8n-cls.pt om je trainingsproces een vliegende start te geven.
  • Gebruiksgemak: Eenvoudige API en CLI commando's voor training en evaluatie.
  • Hoge prestaties: Ultramoderne nauwkeurigheid en snelheid, ideaal voor real-time toepassingen.
  • Ondersteuning voor meerdere datasets: Naadloze integratie met verschillende populaire datasets zoals CIFAR-10, ImageNet en meer.
  • Community en ondersteuning: Toegang tot uitgebreide documentatie en een actieve community voor probleemoplossing en verbeteringen.

Voor aanvullende inzichten en toepassingen in de praktijk kun je het volgende bekijken Ultralytics YOLO.

Hoe kan ik een model trainen met Ultralytics YOLO ?

Het trainen van een model met behulp van Ultralytics YOLO kan eenvoudig worden gedaan in zowel Python als CLI. Hier is een voorbeeld:

Voorbeeld

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

Deze voorbeelden laten het eenvoudige proces zien van het trainen van een YOLO model met behulp van een van beide benaderingen. Ga voor meer informatie naar de sectie Gebruik.



Aangemaakt 2023-11-12, Bijgewerkt 2024-07-04
Auteurs: glenn-jocher (7), stormsson (1), GreatV (1)

Reacties