Ultralytics YOLO27 :

Présentation 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 d'Ultralytics, le jeu de données doit être organisé dans une structure de répertoires divisés spécifique sous le répertoire root. Cette structure comprend un répertoire train et un répertoire val (valid et validation sont également acceptés), avec un répertoire test optionnel. Si aucun répertoire de validation n'existe, le répertoire test est utilisé pour la validation à la place.

Chacun de ces répertoires doit contenir un sous-répertoire pour chaque classe du jeu de données. Les sous-répertoires sont nommés d’après la classe correspondante et contiennent toutes les images de cette classe. Veille à ce que chaque fichier image ait un nom unique et soit enregistré dans un format courant tel que JPEG ou PNG.

Exemple de structure de dossiers#

Prenons le jeu de données CIFAR-10 comme exemple. La structure des dossiers doit se présenter comme suit :

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

Cette organisation structurée garantit que le modèle peut apprendre efficacement à partir de classes bien organisées pendant la phase d’entraînement et évaluer précisément ses performances pendant les 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)
Conseil

La plupart des noms de jeux de données intégrés (par exemple cifar10, imagenette ou mnist160) téléchargent et mettent automatiquement les données en cache la première fois que tu les références. Indique data comme chemin vers un dossier uniquement lorsque tu as créé 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. La plupart de ces jeux de données sont également hébergés sur Ultralytics Platform, où tu peux parcourir les images et les annotations, afficher les statistiques des jeux de données et les cloner pour un entraînement dans le cloud.

  • 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 difficiles.
  • CIFAR-10 : un jeu de données de 60K images couleur de 32x32 pixels réparties en 10 classes, avec 6K 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 vêtements pour les tâches de classification d’images.
  • ImageNet : un jeu de données à grande échelle destiné à 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 réduit d’ImageNet comprenant 10 catégories pour accélérer l’expérimentation et les tests.
  • Imagenette : un sous-ensemble réduit d’ImageNet contenant 10 classes facilement distinguables pour accélérer l’entraînement et les tests.
  • Imagewoof : un sous-ensemble plus difficile 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 chiffre (0-9) issues des partitions d’entraînement et de test de MNIST. Le jeu de données contient 160 images au total.

Ajouter ton propre jeu de données#

Si tu possèdes ton propre jeu de données et souhaites l’utiliser pour entraîner des modèles de classification avec Ultralytics YOLO, vérifie qu’il respecte le format indiqué ci-dessus dans la section « Structure des jeux de données », puis indique ton répertoire de jeu de données dans l’argument data lors de l’initialisation de ton script d’entraînement.

FAQ#

  • Pour structurer ton jeu de données pour les tâches de classification YOLO d'Ultralytics, tu dois suivre un format de répertoire divisé spécifique. Organise ton jeu de données en répertoires séparés pour train et val, et éventuellement test. 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 fluides. Pour un exemple, considère le format du jeu de données CIFAR-10 :

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

    Pour plus de détails, consulte la section Structure des jeux de données pour les tâches de classification YOLO.

  • 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 à être faciles à utiliser avec YOLO. La page de chaque jeu de données fournit davantage de détails sur sa structure et ses applications.

  • Pour utiliser ton propre jeu de données avec YOLO d'Ultralytics, assure-toi qu'il suit le format de répertoire spécifié requis pour la tâche de classification, avec des répertoires train et val séparés (et éventuellement test), ainsi que des sous-répertoires pour chaque classe contenant les images respectives. Une fois ton jeu de données structuré correctement, pointe 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)

    Tu trouveras plus de détails dans la section Ajout de ton propre jeu de données.

  • 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 tels que yolo26n-cls.pt pour commencer rapidement ton processus d’entraînement.
    • Facilité d’utilisation : commandes API et CLI simples pour l’entraînement et l’évaluation.
    • Hautes performances : 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 fluide avec différents jeux de données populaires tels que CIFAR-10, ImageNet, et bien d’autres.
    • Communauté et assistance : accès à une documentation complète et à une communauté active pour le dépannage et les améliorations.

    Pour obtenir davantage d’informations et découvrir des applications concrètes, tu peux consulter Ultralytics YOLO.

  • Tu peux facilement entraîner un modèle avec Ultralytics YOLO en Python ou via la 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 montrent la simplicité du processus d’entraînement d’un modèle YOLO avec l’une ou l’autre approche. Pour plus d’informations, consulte la section Utilisation et la page Entraînement consacrée aux tâches de classification.

Commentaires