Vue d'ensemble des jeux de données de classification d'images

Structure des jeux de données pour les tâches de classification YOLO

Pour les tâches de classification YOLO Ultralytics, le jeu de données doit être organisé selon une structure spécifique de répertoires fractionnés sous le répertoire root afin de faciliter les processus d'entraînement, de test et, en option, de validation. Cette structure inclut des répertoires distincts pour les phases d'entraînement (train) et de test (test), avec un répertoire optionnel pour la validation (val).

Chacun de ces répertoires doit contenir un sous-répertoire pour chaque classe du jeu de données. Les sous-répertoires portent le nom de la classe correspondante et contiennent toutes les images de cette classe. Assure-toi que chaque fichier image est nommé de manière unique et stocké dans un format courant tel que JPEG ou PNG.

Exemple de structure de dossier

Prends le jeu de données CIFAR-10 comme exemple. La structure du dossier doit ressembler à ceci :

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

Cette approche structurée garantit que le modèle peut apprendre efficacement à partir de classes bien organisées durant la phase d'entraînement et évaluer avec précision les performances lors des phases de test et de validation.

Utilisation

Exemple
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)
Astuce

La plupart des noms de jeux de données intégrés (par exemple cifar10, imagenette ou mnist160) téléchargeront et mettront automatiquement les données en cache la première fois que tu y feras référence. Ne fais pointer data vers un chemin de dossier que lorsque tu as préparé un jeu de données personnalisé.

Jeux de données pris en charge

Ultralytics prend en charge les jeux de données suivants avec téléchargement automatique :

  • Caltech 101 : Un jeu de données contenant des images de 101 catégories d'objets pour les tâches de classification d'images.
  • Caltech 256 : Une version étendue de Caltech 101 avec 256 catégories d'objets et des images plus complexes.
  • CIFAR-10 : Un jeu de données de 60 000 images couleur 32x32 réparties en 10 classes, avec 6 000 images par classe.
  • CIFAR-100 : Une version étendue de CIFAR-10 avec 100 catégories d'objets et 600 images par classe.
  • Fashion-MNIST : Un jeu de données composé de 70 000 images en niveaux de gris de 10 catégories de mode pour les tâches de classification d'images.
  • ImageNet : Un jeu de données à grande échelle pour la détection d'objets et la classification d'images avec plus de 14 millions d'images et 20 000 catégories.
  • ImageNet-10 : Un sous-ensemble plus petit d'ImageNet avec 10 catégories pour des expérimentations et des tests plus rapides.
  • Imagenette : Un sous-ensemble plus petit d'ImageNet qui contient 10 classes facilement distinguables pour un entraînement et des tests plus rapides.
  • Imagewoof : Un sous-ensemble plus complexe d'ImageNet contenant 10 catégories de races de chiens pour les tâches de classification d'images.
  • MNIST : Un jeu de données de 70 000 images en niveaux de gris de chiffres manuscrits pour les tâches de classification d'images.
  • MNIST160 : Les 8 premières images de chaque catégorie MNIST du jeu de données MNIST. Le jeu de données contient 160 images au total.

Ajouter ton propre jeu de données

Si tu disposes de ton propre jeu de données et que tu souhaites l'utiliser pour entraîner des modèles de classification avec Ultralytics YOLO, assure-toi qu'il suit le format spécifié ci-dessus dans "Dataset Structure" (Structure du jeu de données), puis fais pointer ton argument data vers le répertoire du jeu de données lors de l'initialisation de ton script d'entraînement.

FAQ

Comment structurer mon jeu de données pour les tâches de classification YOLO ?

Pour structurer ton jeu de données pour les tâches de classification Ultralytics YOLO, tu dois suivre un format spécifique de répertoires fractionnés. Organise ton jeu de données en répertoires séparés pour train, test et, optionnellement, val. Chacun de ces répertoires doit contenir des sous-répertoires nommés d'après chaque classe, avec les images correspondantes à l'intérieur. Cela facilite les processus d'entraînement et d'évaluation. Pour un exemple, considère le format du jeu de données CIFAR-10 :

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

Pour plus de détails, visite la section Dataset Structure for YOLO Classification Tasks.

Quels jeux de données sont pris en charge par Ultralytics YOLO pour la classification d'images ?

Ultralytics YOLO prend en charge le téléchargement automatique de plusieurs jeux de données pour la classification d'images, notamment Caltech 101, Caltech 256, CIFAR-10, CIFAR-100, Fashion-MNIST, ImageNet, ImageNet-10, Imagenette, Imagewoof et MNIST. Ces jeux de données sont structurés de manière à ce qu'ils soient faciles à utiliser avec YOLO. La page de chaque jeu de données fournit plus de détails sur sa structure et ses applications.

Comment ajouter mon propre jeu de données pour la classification d'images YOLO ?

Pour utiliser ton propre jeu de données avec Ultralytics YOLO, assure-toi qu'il respecte le format de répertoire spécifié pour la tâche de classification, avec des répertoires séparés pour train, test et, optionnellement, val, ainsi que des sous-répertoires pour chaque classe contenant les images respectives. Une fois ton jeu de données correctement structuré, fais pointer l'argument data vers le répertoire racine de ton jeu de données lors de l'initialisation du script d'entraînement. Voici un exemple en 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)

Plus de détails sont disponibles dans la section Adding your own dataset.

Pourquoi utiliser Ultralytics YOLO pour la classification d'images ?

Ultralytics YOLO offre plusieurs avantages pour la classification d'images, notamment :

  • Modèles pré-entraînés : Charge des modèles pré-entraînés comme yolo26n-cls.pt pour lancer rapidement ton processus d'entraînement.
  • Facilité d'utilisation : API simple et commandes CLI pour l'entraînement et l'évaluation.
  • Haute performance : Précision et vitesse de pointe, idéales pour les applications en temps réel.
  • Prise en charge de plusieurs jeux de données : Intégration transparente avec divers jeux de données populaires comme CIFAR-10, ImageNet, et plus encore.
  • Communauté et support : Accès à une documentation étendue et à une communauté active pour le dépannage et les améliorations.

Pour des perspectives supplémentaires et des applications concrètes, tu peux explorer Ultralytics YOLO.

Comment puis-je entraîner un modèle en utilisant Ultralytics YOLO ?

L'entraînement d'un modèle avec Ultralytics YOLO peut être réalisé facilement à la fois en Python et en CLI. Voici un exemple :

Exemple
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)

Ces exemples démontrent la simplicité du processus d'entraînement d'un modèle YOLO en utilisant l'une ou l'autre approche. Pour plus d'informations, visite la section Usage et la page Train pour les tâches de classification.

Commentaires