Présentation 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’instances, la segmentation sémantique, l’estimation de profondeur, la classification, l’estimation de pose et les boîtes englobantes orientées (OBB). Tu trouveras 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. Le mode Track fonctionne avec les modèles de détection, de segmentation, de pose et OBB, sans entraînement spécifique au suivi ; consulte les jeux de données de suivi.
Regarder : Présentation des jeux de données Ultralytics
Détection d'objets#
La détection d’objets par boîtes englobantes est une technique de vision par ordinateur qui consiste à détecter et à localiser les objets dans une image en traçant une boîte englobante autour de chaque objet.
- African-wildlife : un jeu de données composé d’images de la faune africaine, notamment de buffles, d’éléphants, de rhinocéros et de zèbres.
- Argoverse : un jeu de données contenant des données de suivi 3D et de prévision des mouvements en milieu urbain, avec des annotations détaillées.
- Brain-tumor : un jeu de données destiné à la détection des tumeurs cérébrales, comprenant des images d’IRM ou de tomodensitométrie avec des informations sur la présence, l’emplacement et les caractéristiques des tumeurs.
- COCO : Common Objects in Context (COCO) est un vaste jeu de données pour la détection et la segmentation d’objets ainsi que le sous-titrage d’images, avec 80 catégories d’objets.
- COCO8 : un petit sous-ensemble des 8 premières images de COCO train2017, avec 4 images pour l’entraînement et 4 pour la validation, adapté aux tests rapides.
- COCO8-Grayscale : une version en niveaux de gris de COCO8, obtenue en convertissant les images RVB en niveaux de gris, utile pour évaluer des modèles à canal unique.
- COCO8-Multispectral : une version multispectrale de COCO8 à 10 canaux, créée par interpolation des longueurs d’onde RVB, utile pour évaluer des modèles sensibles aux spectres.
- COCO12-Formats : un jeu de données de test de 12 images couvrant les 12 formats d’image pris en charge (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) pour valider les pipelines de chargement d’images.
- COCO128 : un petit sous-ensemble des 128 premières images de COCO train2017, adapté aux tests.
- Construction-PPE : un jeu de données d’images de chantiers annotées avec les principaux équipements de sécurité, tels que les casques, gilets, gants, bottes et lunettes, ainsi que des étiquettes indiquant les équipements manquants. Il facilite le développement de modèles d’IA pour le contrôle de conformité et la protection des travailleurs.
- Global Wheat 2020 : un jeu de données contenant des images d’épis de blé pour le Global Wheat Challenge 2020.
- HomeObjects-3K : un jeu de données de scènes d’intérieur annotées présentant 12 objets domestiques courants, idéal pour développer et tester des modèles de vision par ordinateur destinés à la domotique, à la robotique et à la réalité augmentée.
- KITTI : un jeu de données bien connu sur la conduite autonome, comprenant des entrées stéréo, LiDAR et GPS/IMU, utilisé pour la détection d’objets 2D dans des scènes routières variées.
- LVIS : un vaste jeu de données pour la détection d’objets et la segmentation d’instances, comprenant 1 203 catégories d’objets.
- Medical-pills : un jeu de données contenant des images étiquetées de médicaments sous forme de pilules, conçu pour faciliter le contrôle qualité pharmaceutique, le tri et la conformité aux normes du secteur.
- Objects365 : un jeu de données de haute qualité et de grande échelle pour la détection d’objets, avec 365 catégories d’objets et plus de 1,7 million d’images annotées.
- OpenImagesV7 : un jeu de données exhaustif de Google comprenant 1,7 million d’images d’entraînement et 42 000 images de validation.
- RF100 : un benchmark varié de détection d’objets comprenant 100 jeux de données couvrant sept domaines d’imagerie, pour une évaluation complète des modèles.
- Signature : un jeu de données composé d’images de divers documents avec des signatures annotées, destiné à la recherche sur la vérification de documents et la détection de fraudes.
- SKU-110K : un jeu de données consacré à la 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.
- TT100K : le jeu de données de panneaux de signalisation Tsinghua-Tencent 100K, avec 16 817 images de rues réparties en 221 catégories de panneaux.
- VisDrone : un jeu de données contenant des données de détection d’objets et de suivi multi-objets issues 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 21 000 images.
- xView : un jeu de données pour la détection d’objets dans des images aériennes, avec 60 catégories d’objets et plus d’un million d’objets annotés.
Segmentation d'instances#
La segmentation d’instances est une technique de vision par ordinateur qui consiste à identifier et à localiser les objets d’une image au niveau du pixel. Contrairement à la segmentation sémantique, qui se contente de classer chaque pixel, la segmentation d’instances distingue les différentes instances d’une même classe.
- Carparts-seg : un jeu de données spécialement conçu pour identifier les pièces de véhicules et répondre aux besoins de conception, de fabrication et de recherche. Il convient aussi bien aux tâches de détection d’objets qu’à celles de segmentation.
- COCO : un vaste jeu de données conçu pour la détection et la segmentation d’objets ainsi que le sous-titrage d’images, comprenant plus de 200 000 images étiquetées.
- COCO8-seg : un petit jeu de données pour la segmentation d’instances, contenant un sous-ensemble de 8 images COCO avec des annotations de segmentation.
- COCO128-seg : un petit jeu de données pour la segmentation d’instances, contenant un sous-ensemble de 128 images COCO avec des annotations de segmentation.
- Crack-seg : un jeu de données spécialement conçu pour détecter les fissures sur les routes et les murs, adapté aux tâches de détection d’objets et de segmentation.
- Package-seg : un jeu de données conçu pour identifier les colis dans les entrepôts ou les environnements industriels, adapté aux applications de détection d’objets et de segmentation.
Segmentation sémantique#
La segmentation sémantique attribue une étiquette de classe à chaque pixel d’une image et produit des cartes denses de la scène pour des applications telles que la conduite autonome, l’analyse de scènes et la cartographie de la couverture terrestre.
- Cityscapes : un jeu de données de segmentation sémantique de scènes urbaines comprenant 19 classes d’entraînement.
- Cityscapes8 : un sous-ensemble compact de 8 images de Cityscapes pour vérifier rapidement les pipelines de segmentation sémantique.
- ADE20K : un jeu de données d’analyse de scènes avec 150 classes sémantiques.
Estimation de profondeur#
L’estimation de profondeur monoculaire prédit une carte de profondeur en mètres, pixel par pixel, à partir d’une seule image RVB. Elle permet la reconstruction de scènes 3D, la navigation robotique et les applications de RA/RV.
- Depth8 : un sous-ensemble compact de 8 images de SUN RGB-D pour vérifier rapidement les pipelines.
- ARKitScenes : des données RVB-D réelles d’intérieur capturées avec le LiDAR d’Apple ARKit, la plus grande source réelle pour l’entraînement.
- SUN RGB-D : des scènes réelles d’intérieur capturées avec quatre capteurs RVB-D différents.
- DIODE : des données de profondeur denses en intérieur et en extérieur, obtenues avec un scanner laser de qualité topographique.
- Hypersim : des scènes synthétiques photoréalistes d’intérieur avec une profondeur parfaite pour chaque pixel.
- TartanAir : des environnements AirSim synthétiques avec une profondeur dense jusqu’à ~80 m.
- Virtual KITTI 2 : une reconstitution synthétique de scènes de conduite de KITTI avec une profondeur dense.
- KITTI : des scènes réelles de conduite autonome en extérieur avec des données de profondeur LiDAR Velodyne ; il s’agit également du benchmark KITTI Eigen.
- ImageNet (pseudo-labeled) : des images ImageNet-1K accompagnées de pseudo-étiquettes générées par Depth Anything 3 pour la distillation.
- NYU Depth V2 : un benchmark standard de profondeur en intérieur, capturé avec un Microsoft Kinect v1.
- ETH3D : un benchmark de haute précision réalisé avec un scanner laser, en intérieur et en extérieur.
- Make3D : un benchmark en extérieur sur un campus, hors distribution.
- iBims-1 : un benchmark d’intérieur de haute qualité pour les contours de profondeur et les surfaces planes.
Classification#
La classification d’images est une tâche de vision par ordinateur qui consiste à attribuer à une image une ou plusieurs classes ou catégories prédéfinies en fonction de son contenu visuel.
- 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 : un vaste jeu de données 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 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.
Estimation de pose#
L’estimation de pose est une technique qui sert à déterminer la pose d’un objet par rapport à la caméra ou au système de coordonnées du monde. Elle consiste à identifier les points clés ou les articulations des objets, en particulier des humains ou des animaux.
- COCO : un vaste jeu de données avec des annotations de pose humaine, conçu pour les tâches d’estimation de pose.
- COCO8-pose : un petit jeu de données pour les tâches d’estimation de pose, contenant un sous-ensemble de 8 images COCO avec des annotations de pose humaine.
- Dog-pose : un vaste jeu de données comprenant environ 8 500 images de chiens annotées avec 24 points clés par chien, conçu pour les tâches d’estimation de pose.
- Hand-Keypoints : un jeu de données concis comprenant plus de 26 000 images de mains humaines, annotées avec 21 points clés par main, conçu pour les tâches d’estimation de pose.
- Tiger-pose : un jeu de données compact de 263 images de tigres, annotées avec 12 points clés par tigre pour les tâches d’estimation de pose.
Boîtes englobantes orientées (OBB)#
Les boîtes englobantes orientées (OBB) sont une méthode de vision par ordinateur permettant de détecter des objets inclinés dans des images à l’aide de boîtes englobantes pivotées. Cette méthode est souvent utilisée pour les images aériennes et satellitaires. Contrairement aux boîtes englobantes classiques, les OBB s’adaptent mieux aux différentes orientations des objets.
- DOTA-v2 : un jeu de données populaire d’images aériennes avec OBB, comprenant 1,7 million d’instances et 11 268 images.
- DOTA8 : un petit sous-ensemble des 8 premières images de l’ensemble de données DOTAv1, avec 4 images pour l’entraînement et 4 pour la validation, adapté aux tests rapides.
- DOTA128 : un sous-ensemble de 128 images du jeu de données DOTA, destiné à l’entraînement et à la validation. Il offre un bon équilibre entre taille et diversité pour tester les modèles OBB.
Contribuer de nouveaux jeux de données#
La contribution d’un nouveau jeu de données comprend plusieurs étapes pour garantir sa bonne intégration à l’infrastructure existante. Voici les étapes nécessaires :
Regarder : Comment contribuer aux jeux de données Ultralytics
Étapes pour contribuer un nouveau jeu de données#
-
Collecter des images : rassemble les images qui constituent le jeu de données. Tu peux les récupérer à partir de diverses sources, comme des bases de données publiques ou ta propre collection.
-
Annoter les images : annote ces images avec des boîtes englobantes, des segments ou des points clés, selon la tâche.
-
Exporter les annotations : convertis ces annotations au format de fichier YOLO
*.txtpris en charge par Ultralytics. -
Organiser le jeu de données : organise ton jeu de données selon la structure de dossiers appropriée. Tu dois avoir les répertoires de premier niveau
images/etlabels/, chacun contenant un sous-répertoiretrain/etval/.dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/ -
Créer un fichier
data.yaml: dans le répertoire racine de ton jeu de données, crée un fichierdata.yamlqui décrit le jeu de données, les classes et les autres informations nécessaires. -
Optimiser les images (facultatif) : si tu veux réduire la taille du jeu de données pour accélérer le traitement, tu peux optimiser les images à l’aide du code ci-dessous. Cette étape n’est pas obligatoire, mais elle est recommandée pour réduire la taille du jeu de données et accélérer les téléchargements.
-
Compresser le jeu de données : compresse le dossier complet du jeu de données dans une archive ZIP.
-
Documentation et PR : crée une page de documentation qui décrit ton jeu de données et explique comment il s'intègre au framework existant. Ensuite, soumets une Pull Request (PR). Consulte les Consignes de contribution d'Ultralytics pour en savoir plus sur la procédure de soumission d'une PR.
Exemple de code pour optimiser et compresser un jeu de données#
from pathlib import Path
from ultralytics.data.utils import compress_one_image
from ultralytics.utils.downloads import zip_directory
# Définir le répertoire du jeu de données
path = Path("path/to/dataset")
# Optimiser les images du jeu de données (facultatif)
for f in path.rglob("*.jpg"):
compress_one_image(f)
# Compresser le jeu de données dans 'path/to/dataset.zip'
zip_directory(path)En suivant ces étapes, tu peux contribuer un nouveau jeu de données qui s'intègre bien à la structure existante d'Ultralytics.
FAQ#
Ultralytics prend en charge une grande variété de jeux de données pour la détection d'objets, notamment :
- COCO : un jeu de données à grande échelle pour la détection d'objets, la segmentation et le sous-titrage d'images, avec 80 catégories d'objets.
- LVIS : un vaste jeu de données comprenant 1 203 catégories d'objets, conçu pour une détection et une segmentation d'objets plus fines.
- Argoverse : un jeu de données contenant des données de suivi 3D et de prévision des mouvements en milieu urbain, avec des annotations détaillées.
- VisDrone : un jeu de données contenant des données de détection d'objets et de suivi multi-objets issues d'images capturées par drone.
- SKU-110K : ce jeu de données présente des scènes de détection d'objets denses dans des environnements de vente au détail et contient plus de 11K images.
Ces jeux de données facilitent l'entraînement de modèles Ultralytics YOLO robustes pour diverses applications de détection d'objets.
La contribution d'un nouveau jeu de données comporte plusieurs étapes :
- Collecter les images : rassemble des images issues de bases de données publiques ou de collections personnelles.
- Annoter les images : ajoute des boîtes englobantes, des segments ou des points clés selon la tâche.
- Exporter les annotations : convertis les annotations au format YOLO
*.txt. - Organiser le jeu de données : utilise une structure de dossiers avec les répertoires
images/etlabels/, contenant chacun les sous-répertoirestrain/etval/. - Créer un fichier
data.yaml: ajoute des descriptions du jeu de données, les classes et d'autres informations pertinentes. - Optimiser les images (facultatif) : réduis la taille du jeu de données pour gagner en efficacité.
- Compresser le jeu de données : compresse le jeu de données dans une archive ZIP.
- Documentation et PR : décris ton jeu de données et soumets une Pull Request en suivant les Consignes de contribution d'Ultralytics.
Consulte le guide complet Contribuer de nouveaux jeux de données.
Ultralytics Platform propose des fonctionnalités puissantes pour gérer et analyser les jeux de données, notamment :
- Gestion fluide des jeux de données : importe, organise et gère tes jeux de données au même endroit.
- Intégration immédiate à l'entraînement : utilise directement les jeux de données importés pour entraîner des modèles, sans configuration supplémentaire.
- Outils de visualisation : explore et visualise les images et les annotations de ton jeu de données.
- Analyse des jeux de données : obtiens des informations sur la distribution et les caractéristiques de ton jeu de données.
La plateforme simplifie le passage de la gestion des jeux de données à l'entraînement des modèles, ce qui rend l'ensemble du processus plus efficace. En savoir plus sur les jeux de données d'Ultralytics Platform.
Les modèles Ultralytics YOLO offrent plusieurs fonctionnalités uniques pour les tâches de vision par ordinateur :
- Performances en temps réel : capacités d'inférence et d'entraînement rapides pour les applications sensibles au facteur temps.
- Polyvalence : prise en charge de la détection, de la segmentation d'instances, de la segmentation sémantique, de l'estimation de profondeur, de la classification, de l'estimation de pose et des tâches de boîte englobante orientée (OBB) dans un framework unifié.
- Modèles préentraînés : accès à des modèles préentraînés très performants pour diverses applications, ce qui réduit le temps d'entraînement.
- Large soutien de la communauté : une communauté active et une documentation complète pour le dépannage et le développement.
- Intégration facile : une API simple pour intégrer les modèles à tes projets et workflows existants.
Découvre les modèles YOLO sur la page Modèles Ultralytics.
Pour optimiser et compresser un jeu de données avec les outils Ultralytics, suis cet exemple de code :
Optimiser et compresser un jeu de donnéesfrom pathlib import Path from ultralytics.data.utils import compress_one_image from ultralytics.utils.downloads import zip_directory # Définir le répertoire du jeu de données path = Path("path/to/dataset") # Optimiser les images du jeu de données (facultatif) for f in path.rglob("*.jpg"): compress_one_image(f) # Compresser le jeu de données dans 'path/to/dataset.zip' zip_directory(path)Ce processus permet de réduire la taille du jeu de données afin d'en faciliter le stockage et d'accélérer les téléchargements. Découvre comment optimiser et compresser un jeu de données.