Aperçu des jeux de données
Ultralytics prend en charge divers jeux de données pour faciliter les tâches de vision par ordinateur telles que la détection, la segmentation d'instance, l'estimation de pose, la classification et le suivi multi-objets. Vous trouverez ci-dessous une liste des principaux jeux de données Ultralytics, suivie d'un résumé de chaque tâche de vision par ordinateur et des jeux de données correspondants.
Regarder : Aperçu des jeux de données Ultralytics
Détection d'objets
La détection d'objets par boîte englobante est une technique de vision par ordinateur qui consiste à détecter et à localiser des objets dans une image en dessinant une boîte englobante autour de chaque objet.
- Argoverse : Un jeu de données contenant des données de suivi 3D et de prévision de mouvement provenant d'environnements urbains avec de riches annotations.
- COCO : Common Objects in Context (COCO) est un jeu de données à grande échelle pour la détection d'objets, la segmentation et la légende, avec 80 catégories d'objets.
- LVIS : Un jeu de données à grande échelle pour la détection d'objets, la segmentation et la légende, avec 1 203 catégories d'objets.
- COCO8 : Un sous-ensemble plus petit des 4 premières images de COCO train et COCO val, adapté aux tests rapides.
- COCO8-Grayscale : Une version en niveaux de gris de COCO8 créée en convertissant RVB en niveaux de gris, utile pour l'évaluation de modèles à canal unique.
- COCO8-Multispectral : Une version multispectrale à 10 canaux de COCO8 créée en interpolant les longueurs d'onde RVB, utile pour l'évaluation de modèles sensibles au spectre.
- COCO128 : Un sous-ensemble plus petit des 128 premières images de COCO train et COCO val, adapté aux tests.
- Global Wheat 2020 : Un jeu de données contenant des images d'épis de blé pour le Global Wheat Challenge 2020.
- Objects365 : Un jeu de données à grande échelle de haute qualité pour la détection d'objets avec 365 catégories d'objets et plus de 600 000 images annotées.
- OpenImagesV7 : Un jeu de données complet de Google avec 1,7 million d'images d'entraînement et 42 000 images de validation.
- SKU-110K : Un jeu de données présentant une détection dense d'objets dans des environnements de vente au détail avec plus de 11 000 images et 1,7 million de boîtes englobantes.
- HomeObjects-3K Nouveau 🚀 : Un ensemble de données de scènes d'intérieur annotées comprenant 12 articles ménagers courants, idéal pour développer et tester des modèles de vision par ordinateur dans les systèmes de maison intelligente, la robotique et la réalité augmentée.
- VisDrone : Un jeu de données contenant des données de détection d'objets et de suivi multi-objets provenant d'images capturées par drone avec plus de 10 000 images et séquences vidéo.
- VOC : Le jeu de données Pascal Visual Object Classes (VOC) pour la détection et la segmentation d'objets avec 20 classes d'objets et plus de 11 000 images.
- xView : Un jeu de données pour la détection d'objets dans l'imagerie aérienne avec 60 catégories d'objets et plus d'un million d'objets annotés.
- RF100 : un benchmark de détection d'objets diversifié avec 100 jeux de données couvrant sept domaines d'imagerie pour une évaluation complète du modèle.
- Brain-tumor : Un jeu de données pour la détection des tumeurs cérébrales comprend des images d'IRM ou de tomodensitométrie avec des détails sur la présence, l'emplacement et les caractéristiques de la tumeur.
- African-wildlife : Un jeu de données présentant des images de la faune africaine, y compris des buffles, des éléphants, des rhinocéros et des zèbres.
- Signature : Un jeu de données présentant des images de divers documents avec des signatures annotées, prenant en charge la vérification des documents et la recherche sur la détection des fraudes.
- Medical-pills : un ensemble de données contenant des images étiquetées de pilules médicales, conçu pour faciliter les tâches telles que le contrôle de la qualité pharmaceutique, le tri et la conformité aux normes de l'industrie.
Segmentation d'instance
La segmentation d'instance est une technique de vision par ordinateur qui consiste à identifier et à localiser les objets dans une image au niveau du pixel. Contrairement à la segmentation sémantique qui ne fait que classifier chaque pixel, la segmentation d'instance distingue les différentes instances de la même classe.
- COCO : un jeu de données à grande échelle conçu pour les tâches de détection d'objets, de segmentation et de légende avec plus de 200 000 images étiquetées.
- COCO8-seg : un jeu de données plus petit pour les tâches de segmentation d'instance, contenant un sous-ensemble de 8 images COCO avec des annotations de segmentation.
- COCO128-seg : un jeu de données plus petit pour les tâches de segmentation d'instance, contenant un sous-ensemble de 128 images COCO avec des annotations de segmentation.
- Crack-seg : jeu de données spécialement conçu pour détecter les fissures sur les routes et les murs, applicable aux tâches de détection d'objets et de segmentation.
- Package-seg : jeu de données sur mesure pour identifier les colis dans les entrepôts ou les environnements industriels, adapté aux applications de détection d'objets et de segmentation.
- Carparts-seg : jeu de données spécialement conçu pour identifier les pièces de véhicules, répondant aux besoins de conception, de fabrication et de recherche. Il sert aux tâches de détection d'objets et de segmentation.
Estimation de pose
L'estimation de pose est une technique utilisée pour déterminer la pose d'un objet par rapport à la caméra ou au système de coordonnées mondial. Cela implique l'identification de points clés ou d'articulations sur des objets, en particulier des humains ou des animaux.
- COCO : Un ensemble de données à grande échelle avec des annotations de pose humaine, conçu pour les tâches d’estimation de pose.
- COCO8-pose : Un ensemble de données plus petit pour les tâches d’estimation de pose, contenant un sous-ensemble de 8 images COCO avec des annotations de pose humaine.
- Tiger-pose : Un ensemble de données compact composé de 263 images axées sur les tigres, annotées avec 12 points clés par tigre pour les tâches d’estimation de pose.
- Hand-Keypoints : Un ensemble de données concis comprenant plus de 26 000 images centrées sur les mains humaines, annotées avec 21 points clés par main, conçu pour les tâches d’estimation de pose.
- Dog-pose : Un ensemble de données complet comprenant environ 6 000 images axées sur les chiens, annotées avec 24 points clés par chien, conçu pour les tâches d’estimation de pose.
Classification
La classification d’images est une tâche de vision par ordinateur qui consiste à catégoriser une image dans une ou plusieurs classes ou catégories prédéfinies en fonction de son contenu visuel.
- 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 comprenant 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.
Boîtes englobantes orientées (OBB)
Les boîtes englobantes orientées (OBB) sont une méthode de vision par ordinateur pour détecter les objets inclinés dans les images à l’aide de boîtes englobantes pivotées, souvent appliquées à l’imagerie aérienne et satellite. Contrairement aux boîtes englobantes traditionnelles, l’OBB peut mieux s’adapter aux objets à différentes orientations.
- DOTA-v2 : Un ensemble de données d’imagerie aérienne OBB populaire avec 1,7 million d’instances et 11 268 images.
- DOTA8 : Un sous-ensemble plus petit des 8 premières images de l’ensemble de division DOTAv1, 4 pour l’entraînement et 4 pour la validation, adapté aux tests rapides.
Suivi multi-objets
Le suivi multi-objets est une technique de vision par ordinateur qui implique la détection et le suivi de plusieurs objets au fil du temps dans une séquence vidéo. Cette tâche étend la détection d'objets en maintenant des identités cohérentes des objets à travers les trames.
- Argoverse : Un ensemble de données contenant des données de suivi 3D et de prévision de mouvement provenant d’environnements urbains avec de riches annotations pour les tâches de suivi multi-objets.
- VisDrone : Un jeu de données contenant des données de détection d'objets et de suivi multi-objets provenant d'images capturées par drone avec plus de 10 000 images et séquences vidéo.
Contribuer à de nouveaux jeux de données
L’ajout d’un nouvel ensemble de données implique plusieurs étapes pour s’assurer qu’il s’harmonise bien avec l’infrastructure existante. Vous trouverez ci-dessous les étapes nécessaires :
Regarder : Comment contribuer aux ensembles de données Ultralytics 🚀
Étapes pour contribuer à un nouveau jeu de données
- Collecte d’images : Rassemblez les images qui appartiennent à l’ensemble de données. Elles peuvent être collectées à partir de diverses sources, telles que des bases de données publiques ou votre propre collection.
- Annotation d’images : Annotez ces images avec des boîtes englobantes, des segments ou des points clés, selon la tâche.
- Exporter les annotations: Convertissez ces annotations au format
*.txt
YOLO, pris en charge par Ultralytics. -
Organiser l'ensemble de données: Organisez votre ensemble de données dans la structure de dossiers appropriée. Vous devriez avoir des
train/
etval/
répertoires de niveau supérieur, et dans chacun d'eux, unimages/
etlabels/
sous-répertoire.dataset/ ├── train/ │ ├── images/ │ └── labels/ └── val/ ├── images/ └── labels/
-
Créer un fichier
data.yaml
YAML: Dans le répertoire racine de votre ensemble de données, créez un fichierdata.yaml
YAML qui décrit l'ensemble de données, les classes et d'autres informations nécessaires. - Optimiser les images (facultatif) : Si vous souhaitez réduire la taille de l'ensemble de données pour un traitement plus efficace, vous pouvez optimiser les images à l'aide du code ci-dessous. Ceci n'est pas obligatoire, mais recommandé pour des tailles d'ensemble de données plus petites et des vitesses de téléchargement plus rapides.
- Compresser l'ensemble de données : Compressez l'ensemble du dossier de l'ensemble de données dans un fichier zip.
- Documenter et créer une demande de tirage : Créez une page de documentation décrivant votre ensemble de données et comment il s'intègre dans le cadre existant. Ensuite, soumettez une demande de tirage (PR). Consultez les directives de contribution d'Ultralytics pour plus de détails sur la façon de soumettre une PR.
Exemple de code pour optimiser et compresser un jeu de données
Optimiser et compresser un ensemble de données
from pathlib import Path
from ultralytics.data.utils import compress_one_image
from ultralytics.utils.downloads import zip_directory
# Define dataset directory
path = Path("path/to/dataset")
# Optimize images in dataset (optional)
for f in path.rglob("*.jpg"):
compress_one_image(f)
# Zip dataset into 'path/to/dataset.zip'
zip_directory(path)
En suivant ces étapes, vous pouvez contribuer un nouvel ensemble de données qui s'intègre bien à la structure existante d'Ultralytics.
FAQ
Quels jeux de données Ultralytics prend-il en charge pour la détection d'objets ?
Ultralytics prend en charge une grande variété d'ensembles de données pour la détection d'objets, notamment :
- COCO : Un ensemble de données à grande échelle pour la détection d'objets, la segmentation et le légendage avec 80 catégories d'objets.
- LVIS : Un ensemble de données étendu avec 1 203 catégories d'objets, conçu pour une détection et une segmentation d'objets plus précises.
- Argoverse : Un jeu de données contenant des données de suivi 3D et de prévision de mouvement provenant d'environnements urbains avec de riches annotations.
- VisDrone : Un ensemble de données avec des données de détection d'objets et de suivi multi-objets à partir d'images capturées par drone.
- SKU-110K : Présentant une détection dense d'objets dans des environnements de vente au détail avec plus de 11 000 images.
Ces ensembles de données facilitent l'entraînement de modèles Ultralytics YOLO robustes pour diverses applications de détection d'objets.
Comment puis-je contribuer à un nouveau jeu de données pour Ultralytics ?
La contribution d'un nouvel ensemble de données implique plusieurs étapes :
- Collecter des images : Rassemblez des images provenant de bases de données publiques ou de collections personnelles.
- Annoter les images : Appliquez des boîtes englobantes, des segments ou des points clés, selon la tâche.
- Exporter les annotations: Convertir les annotations au format YOLO
*.txt
format. - Organiser l'ensemble de données: Utilisez la structure de dossiers avec des
train/
etval/
répertoires, contenant chacun desimages/
etlabels/
sous-répertoires. - Créer un fichier
data.yaml
YAML: Incluez les descriptions du jeu de données, les classes et d’autres informations pertinentes. - Optimiser les images (facultatif) : Réduisez la taille du jeu de données pour plus d’efficacité.
- Compresser le jeu de données : Compressez le jeu de données dans un fichier zip.
- Documenter et PR : Décrivez votre jeu de données et soumettez une demande de tirage en suivant les directives de contribution d’Ultralytics.
Consultez la page Contribuer à de nouveaux jeux de données pour obtenir un guide complet.
Pourquoi devrais-je utiliser Ultralytics HUB pour mon jeu de données ?
Ultralytics HUB offre des fonctionnalités puissantes pour la gestion et l'analyse des ensembles de données, notamment :
- Gestion Transparente des Ensembles de Données : Téléchargez, organisez et gérez vos ensembles de données en un seul endroit.
- Intégration Immédiate de l'Entraînement : Utilisez les ensembles de données téléchargés directement pour l'entraînement du modèle sans configuration supplémentaire.
- Outils de visualisation : Explorez et visualisez les images et les annotations de votre jeu de données.
- Analyse des ensembles de données : Obtenez des informations sur la distribution et les caractéristiques de votre ensemble de données.
La plateforme rationalise la transition de la gestion des ensembles de données à l'entraînement des modèles, ce qui rend l'ensemble du processus plus efficace. Pour en savoir plus, consultez Ultralytics HUB Datasets.
Quelles sont les caractéristiques uniques des modèles Ultralytics YOLO pour la vision par ordinateur ?
Les modèles Ultralytics YOLO offrent plusieurs fonctionnalités uniques pour les tâches de vision par ordinateur :
- Performance en temps réel : Capacités d'inférence et d'entraînement à haute vitesse pour les applications nécessitant une réponse rapide.
- Polyvalence : Prise en charge des tâches de détection, de segmentation, de classification et d’estimation de pose dans un framework unifié.
- Modèles pré-entraînés : Accédez à des modèles pré-entraînés haute performance pour diverses applications, réduisant ainsi le temps d'entraînement.
- Soutien communautaire étendu : Communauté active et documentation complète pour le dépannage et le développement.
- Intégration facile: API simple pour l'intégration avec les projets et flux de travail existants.
Découvrez plus d'informations sur les modèles YOLO sur la page Modèles Ultralytics.
Comment puis-je optimiser et compresser un jeu de données à l'aide des outils Ultralytics ?
Pour optimiser et compresser un jeu de données à l’aide des outils Ultralytics, suivez cet exemple de code :
Optimiser et compresser un ensemble de données
from pathlib import Path
from ultralytics.data.utils import compress_one_image
from ultralytics.utils.downloads import zip_directory
# Define dataset directory
path = Path("path/to/dataset")
# Optimize images in dataset (optional)
for f in path.rglob("*.jpg"):
compress_one_image(f)
# Zip dataset into 'path/to/dataset.zip'
zip_directory(path)
Ce processus permet de réduire la taille des ensembles de données pour un stockage plus efficace et des vitesses de téléchargement plus rapides. Pour en savoir plus, consultez notre guide sur la façon d'Optimiser et compresser un ensemble de données.