Ultralytics YOLO27 :
Get Started

Présentation des jeux de données de classification d’images#

Structure du jeu 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é selon une structure spécifique de répertoires de sous-ensembles dans le répertoire root. Cette structure comprend un répertoire train et un répertoire val (valid et validation sont également acceptés), ainsi qu’un répertoire facultatif test. Si aucun répertoire de validation n’existe, le répertoire test est utilisé à la place pour la validation. Si la racine ne contient aucun répertoire train, mais comporte un dossier par classe, Ultralytics répartit automatiquement les images à 80/20 dans un nouveau répertoire <root>_split contenant les sous-répertoires train et 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. Veille à attribuer un nom unique à chaque fichier image et à utiliser un format courant tel que JPEG ou PNG.

Exemple d’arborescence de dossiers#

Prenons le jeu de données CIFAR-10 comme exemple. L’arborescence des dossiers devrait ressembler à ceci :

cifar10/
|
|-- 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 approche structurée permet au modèle d’apprendre efficacement à partir de classes bien organisées pendant l’entraînement et d’évaluer les performances avec précision pendant les phases de test et de validation.

Utilisation#

Exemple
from ultralytics import YOLO

# Charger un modèle
model = YOLO("yolo26n-cls.pt")  # charger un modèle préentraîné (recommandé pour l’entraînement)

# Entraîner le modèle
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) déclenchent automatiquement le téléchargement et la mise en cache des données lors de leur première utilisation. Indique un chemin de dossier pour data uniquement si tu as préparé un jeu de données personnalisé.

Jeux de données pris en charge#

Ultralytics prend en charge le téléchargement automatique des jeux de données suivants. La plupart sont également hébergés sur Ultralytics Platform, où tu peux parcourir les images et les annotations, consulter les statistiques des jeux de données et les cloner pour l’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 60 000 images couleur de 32 x 32 pixels 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 constitué de 70 000 images en niveaux de gris représentant 10 catégories de vêtements pour les tâches de classification d’images.
  • ImageNet : le benchmark de classification d’images ImageNet-1k (ILSVRC-2012), avec 1 000 classes, 1,28 million d’images d’entraînement et 50 000 images de validation.
  • ImageNet-10 : un petit sous-ensemble d’ImageNet comprenant 10 catégories, pour accélérer l’expérimentation et les tests.
  • Imagenette : un petit sous-ensemble d’ImageNet comprenant 10 classes faciles à distinguer, pour accélérer l’entraînement et les tests.
  • Imagewoof : un sous-ensemble plus difficile d’ImageNet, comprenant 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 comprend 160 images au total.

Ajouter ton propre jeu de données#

Si tu as ton propre jeu de données et que tu 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 « Structure du jeu de données », puis définis l’argument data sur le répertoire du jeu de données lors de l’initialisation de ton script d’entraînement.

FAQ#

  • Pour structurer ton jeu de données destiné aux tâches de classification Ultralytics YOLO, suis un format spécifique de répertoires de sous-ensembles. Organise ton jeu de données dans des répertoires distincts pour train et val, et éventuellement pour test. Chacun de ces répertoires doit contenir des sous-répertoires nommés selon chaque classe, avec les images correspondantes à l’intérieur. Cela facilite le bon déroulement de l’entraînement et de l’évaluation. Pour un exemple, prends le format du jeu de données CIFAR-10 :

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

    Pour en savoir plus, consulte la section Structure du jeu 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 de 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 à faciliter leur utilisation avec YOLO. La page de chaque jeu de données fournit plus de détails sur sa structure et ses applications.

  • Pour utiliser ton propre jeu de données avec Ultralytics YOLO, vérifie qu’il respecte le format de répertoires requis pour la tâche de classification, avec des répertoires distincts train et val (et éventuellement test), ainsi que des sous-répertoires pour chaque classe contenant les images correspondantes. Une fois ton jeu de données correctement structuré, définis l’argument data sur 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
    
    # Charger un modèle
    model = YOLO("yolo26n-cls.pt")  # charger un modèle préentraîné (recommandé pour l’entraînement)
    
    # Entraîner le modèle
    results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)

    Tu trouveras plus de détails dans la section Ajouter 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 comme yolo26n-cls.pt pour démarrer rapidement ton entraînement.
    • Facilité d’utilisation : des commandes API et CLI simples pour l’entraînement et l’évaluation.
    • Performances élevées : une précision et une vitesse de pointe, idéales pour les applications en temps réel.
    • Prise en charge de plusieurs jeux de données : intégration fluide de nombreux jeux de données populaires, comme CIFAR-10, ImageNet et bien d’autres.
    • Communauté et assistance : accès à une documentation complète et à une communauté active pour résoudre les problèmes et apporter des améliorations.

    Pour en savoir plus et découvrir des applications concrètes, explore Ultralytics YOLO.

  • Tu peux facilement entraîner un modèle avec Ultralytics YOLO, en Python comme en CLI. Voici un exemple :

    Exemple
    from ultralytics import YOLO
    
    # Charger un modèle
    model = YOLO("yolo26n-cls.pt")  # charger un modèle préentraîné
    
    # Entraîner le modèle
    results = model.train(data="path/to/dataset", epochs=100, imgsz=640)

    Ces exemples illustrent la simplicité de l’entraînement d’un modèle YOLO avec l’une ou l’autre approche. Pour en savoir plus, consulte la section Utilisation et la page Entraînement consacrée aux tâches de classification.

Commentaires