Aperçu des ensembles de données de classification d'images
Structure de l'ensemble de données pour les tâches de classification YOLO
Pour Ultralytics Tâches de classification YOLO, le jeu de données doit être organisé dans une structure de répertoire divisée spécifique sous le root
répertoire pour faciliter les processus d'entraînement, de test et de validation optionnelle. Cette structure comprend des répertoires distincts pour l'entraînement (train
) et de test (test
) phases, avec un répertoire optionnel pour la validation (val
).
Chacun de ces répertoires doit contenir un sous-répertoire pour chaque classe dans l'ensemble de données. Les sous-répertoires sont nommés d'après la classe correspondante et contiennent toutes les images de cette classe. Assurez-vous 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 dossiers
Considérez l'ensemble de données CIFAR-10 comme exemple. La structure du dossier devrait 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 pendant la phase d'entraînement et évaluer avec précision les performances pendant les phases de test et de validation.
Utilisation
Exemple
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-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 classify train data=path/to/data model=yolo11n-cls.pt epochs=100 imgsz=640
Ensembles de données pris en charge
Ultralytics prend en charge les ensembles de données suivants avec téléchargement automatique :
- Caltech 101 : Un ensemble 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 ensemble de données de 60 000 images couleur de 32x32 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 ensemble de données comprenant 70 000 images en niveaux de gris de 10 catégories de mode pour les tâches de classification d’images.
- ImageNet : un ensemble 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 une expérimentation 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 ensemble 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 de l’ensemble de données MNIST. L’ensemble de données contient 160 images au total.
Ajouter votre propre ensemble de données
Si vous possédez votre propre jeu de données et que vous souhaitez l'utiliser pour entraîner des modèles de classification avec Ultralytics YOLO, assurez-vous qu'il respecte le format spécifié ci-dessus dans la section « Structure du jeu de données », puis indiquez votre data
argument vers le répertoire de l'ensemble de données lors de l'initialisation de votre script d'entraînement.
FAQ
Comment structurer mon ensemble de données pour les tâches de classification YOLO ?
Pour structurer votre ensemble de données pour les tâches de classification Ultralytics YOLO, vous devez suivre un format de répertoire divisé spécifique. Organisez votre ensemble de données dans des 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 le bon déroulement des processus de formation et d'évaluation. Par exemple, considérez le CIFAR-10 format de l'ensemble de données :
cifar-10-/
|-- train/
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...
|-- test/
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...
|-- val/ (optional)
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...
Pour plus de détails, consultez la section Structure des jeux de données pour les tâches de classification YOLO.
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 ensembles 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 ensembles de données sont structurés de manière à les rendre faciles à utiliser avec YOLO. La page de chaque ensemble de données fournit plus de détails sur sa structure et ses applications.
Comment puis-je ajouter mon propre ensemble de données pour la classification d’images YOLO ?
Pour utiliser votre propre ensemble de données avec Ultralytics YOLO, assurez-vous qu'il respecte le format de répertoire spécifié requis pour la tâche de classification, avec des train
, test
, et optionnellement val
répertoires et sous-répertoires pour chaque classe contenant les images respectives. Une fois que votre ensemble de données est correctement structuré, indiquez le data
argument au répertoire racine de votre ensemble 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("yolo11n-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 Ajout de votre propre ensemble de données.
Pourquoi devrais-je 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: Chargez des modèles pré-entraînés comme
yolo11n-cls.pt
pour démarrer rapidement votre processus d'entraînement. - Facilité d'utilisation : API simple et commandes CLI pour la formation 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 ensembles de données : Intégration transparente avec divers ensembles de données populaires tels que CIFAR-10, ImageNet, et plus encore.
- Communauté et support : Accès à une documentation complète et à une communauté active pour le dépannage et les améliorations.
Pour des informations supplémentaires et des applications concrètes, vous pouvez explorer Ultralytics YOLO.
Comment puis-je entraîner un modèle en utilisant Ultralytics YOLO ?
L'entraînement d'un modèle à l'aide d'Ultralytics YOLO peut être réalisé facilement en Python et en CLI. Voici un exemple :
Exemple
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-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 classify train data=path/to/data model=yolo11n-cls.pt epochs=100 imgsz=640
Ces exemples illustrent la simplicité du processus d'entraînement d'un modèle YOLO en utilisant l'une ou l'autre approche. Pour plus d'informations, consultez la section Utilisation et la page Entraînement pour les tâches de classification.