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, l'estimation de pose, la classification et le suivi multi-objets. Voici 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.



Watch: Ultralytics Datasets Overview

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 autour de chaque objet.

  • African-wildlife : Un jeu de données présentant des images de la faune africaine, incluant des buffles, des éléphants, des rhinocéros et des zèbres.
  • Argoverse : Un jeu de données contenant des données de suivi 3D et de prévision de mouvement provenant d'environnements urbains avec des annotations riches.
  • Brain-tumor : Un jeu de données pour la détection de tumeurs cérébrales incluant des images IRM ou CT avec des détails sur la présence, la localisation et les caractéristiques de la tumeur.
  • COCO : Common Objects in Context (COCO) est un jeu de données à grande échelle pour la détection d'objets, la segmentation et la génération de légendes avec 80 catégories d'objets.
  • COCO8 : Un sous-ensemble plus petit composé 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 le RVB en niveaux de gris, utile pour l'évaluation de modèles monocanaux.
  • 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 composé des 128 premières images de COCO train et COCO val, adapté aux tests.
  • Construction-PPE : Un jeu de données d'images de chantiers de construction annotées avec des équipements de sécurité clés tels que casques, gilets, gants, bottes et lunettes, ainsi que des étiquettes pour l'équipement manquant, favorisant le développement de modèles d'IA pour la 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 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.
  • KITTI Nouveau : 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 jeu de données à grande échelle pour la détection d'objets, la segmentation et la génération de légendes avec 1203 catégories d'objets.
  • Medical-pills : Un jeu de données contenant des images étiquetées de pilules médicales, conçu pour aider dans des tâches comme le contrôle qualité pharmaceutique, le tri et la garantie de conformité aux normes industrielles.
  • Objects365 : Un jeu de données haute qualité à grande échelle 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.
  • RF100 : Un benchmark diversifié de détection d'objets avec 100 jeux de données couvrant sept domaines d'imagerie pour une évaluation complète des modèles.
  • Signature : Un jeu de données présentant des images de divers documents avec des signatures annotées, favorisant la vérification de documents et la recherche sur la détection de fraudes.
  • SKU-110K : Un jeu de données présentant une détection d'objets denses dans des environnements de vente au détail avec plus de 11 000 images et 1,7 million de boîtes englobantes.
  • VisDrone : Un jeu de données contenant des données de détection d'objets et de suivi multi-objets à partir 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 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 des objets dans une image au niveau du pixel. Contrairement à la segmentation sémantique qui classifie seulement chaque pixel, la segmentation d'instances distingue les différentes instances d'une même classe.

  • Carparts-seg : Jeu de données conçu spécifiquement pour identifier les pièces de véhicules, répondant aux besoins de conception, de fabrication et de recherche. Il sert à la fois pour les tâches de détection d'objets et de segmentation.
  • COCO : Un jeu de données à grande échelle conçu pour les tâches de détection d'objets, de segmentation et de génération de légendes avec plus de 200 000 images étiquetées.
  • COCO8-seg : Un jeu de données plus petit pour les tâches de segmentation d'instances, 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'instances, contenant un sous-ensemble de 128 images COCO avec des annotations de segmentation.
  • Crack-seg : Jeu de données spécifiquement conçu pour détecter les fissures sur les routes et les murs, applicable à la fois pour les 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.

Estimation de pose

L'estimation de pose est une technique utilisée pour déterminer la pose de l'objet par rapport à la caméra ou au système de coordonnées du monde. Cela implique l'identification de points clés ou d'articulations sur les objets, en particulier les humains ou les animaux.

  • COCO : Un jeu de données à grande échelle avec des annotations de pose humaine conçu pour les tâches d'estimation de pose.
  • COCO8-pose : Un jeu 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.
  • Dog-pose : Un jeu de données complet présentant 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.
  • Hand-Keypoints : Un jeu de données concis présentant 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.
  • Tiger-pose : Un jeu 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.

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 basées sur 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 32x32 dans 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 composé de 70 000 images en niveaux de gris de 10 catégories de mode pour les tâches de classification d'images.
  • ImageNet : Un jeu 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 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 catégorie MNIST du jeu de données MNIST. Le jeu 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 des objets inclinés dans des images en utilisant des boîtes englobantes pivotées, souvent appliquées à l'imagerie aérienne et satellite. Contrairement aux boîtes englobantes traditionnelles, les OBB peuvent mieux s'adapter aux objets sous diverses orientations.

  • DOTA-v2 : Un jeu 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.
  • DOTA128 : Un sous-ensemble de 128 images du jeu de données DOTA avec 128 images pour l'entraînement et la validation, offrant un bon équilibre entre taille et diversité pour tester les modèles OBB.

Suivi multi-objets

Le suivi multi-objets est une technique de vision par ordinateur qui consiste à détecter et suivre 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 images.

  • Argoverse : Un jeu de données contenant des données de suivi 3D et de prévision de mouvement provenant d'environnements urbains avec des annotations riches 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 à partir d'images capturées par drone avec plus de 10 000 images et séquences vidéo.

Contribuer de nouveaux jeux de données

Contribuer à un nouveau jeu de données implique plusieurs étapes pour s'assurer qu'il s'aligne bien avec l'infrastructure existante. Voici les étapes nécessaires :



Watch: How to Contribute to Ultralytics Datasets

Étapes pour contribuer à un nouveau jeu de données

  1. Collecter des images : Rassemble les images qui appartiennent au jeu de données. Celles-ci peuvent être collectées à partir de diverses sources, telles que des bases de données publiques ou ta propre collection.

  2. Annoter les images : Annote ces images avec des boîtes englobantes, des segments ou des points clés, selon la tâche.

  3. Exporter les annotations : Convertis ces annotations dans le format de fichier YOLO *.txt qu'Ultralytics prend en charge.

  4. Organiser le jeu de données : Organise ton jeu de données selon la structure de dossier correcte. Tu dois avoir des répertoires de haut niveau images/ et labels/, et au sein de chacun, un sous-répertoire train/ et val/.

    dataset/
    ├── images/
    │   ├── train/
    │   └── val/
    └── labels/
        ├── train/
        └── val/
  5. Créer un fichier data.yaml : Dans le répertoire racine de ton jeu de données, crée un fichier data.yaml qui décrit le jeu de données, les classes et toute autre information nécessaire.

  6. Optimiser les images (Optionnel) : Si tu souhaites réduire la taille du jeu de données pour un traitement plus efficace, tu peux optimiser les images en utilisant le code ci-dessous. Ce n'est pas obligatoire, mais recommandé pour des tailles de jeu de données plus petites et des vitesses de téléchargement plus rapides.

  7. Ziper le jeu de données : Compresse l'ensemble du dossier du jeu de données dans un fichier zip.

  8. Documenter et faire une PR : Crée une page de documentation décrivant ton jeu de données et comment il s'intègre dans le cadre existant. Après cela, soumets une Pull Request (PR). Consulte les Directives de contribution Ultralytics pour plus de détails sur la façon de soumettre une PR.

Exemple de code pour optimiser et ziper un jeu de données

Optimiser et ziper un jeu 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, tu peux contribuer à un nouveau jeu 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é 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 la génération de légendes avec 80 catégories d'objets.
  • LVIS : Un jeu de données étendu avec 1203 catégories d'objets, conçu pour une détection d'objets plus fine et la segmentation.
  • Argoverse : Un jeu de données contenant des données de suivi 3D et de prévision de mouvement provenant d'environnements urbains avec des annotations riches.
  • VisDrone : Un jeu 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 d'objets denses dans des environnements de vente au détail avec plus de 11 000 images.

Ces jeux 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 ?

Contribuer à un nouveau jeu de données implique plusieurs étapes :

  1. Collecter des images : Rassemble des images à partir de bases de données publiques ou de collections personnelles.
  2. Annoter les images : Applique des boîtes englobantes, des segments ou des points clés, selon la tâche.
  3. Exporter les annotations : Convertis les annotations dans le format YOLO *.txt.
  4. Organiser le jeu de données : Utilise la structure de dossier avec des répertoires train/ et val/, chacun contenant des sous-répertoires images/ et labels/.
  5. Créer un fichier data.yaml : Inclus les descriptions du jeu de données, les classes et toute autre information pertinente.
  6. Optimiser les images (Optionnel) : Réduis la taille du jeu de données pour plus d'efficacité.
  7. Ziper le jeu de données : Compresse le jeu de données dans un fichier zip.
  8. Documenter et faire une PR : Décris ton jeu de données et soumets une Pull Request en suivant les Directives de contribution Ultralytics.

Visite Contribuer de nouveaux jeux de données pour un guide complet.

Pourquoi devrais-je utiliser la plateforme Ultralytics pour mon jeu de données ?

La plateforme Ultralytics offre des fonctionnalités puissantes pour la gestion et l'analyse de jeux de données, notamment :

  • Gestion transparente des jeux de données : Téléverse, organise et gère tes jeux de données au même endroit.
  • Intégration immédiate à l'entraînement : Utilise les jeux de données téléversés directement pour l'entraînement 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 du jeu 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, rendant l'ensemble du processus plus efficace. Apprends-en plus sur les Ultralytics Platform Datasets.

Quelles sont les caractéristiques uniques des modèles Ultralytics YOLO pour la vision par ordinateur ?

Les modèles Ultralytics YOLO offrent plusieurs caractéristiques uniques pour les tâches de computer vision :

  • Performances en temps réel : Capacités d'inférence et d'entraînement à haute vitesse pour les applications sensibles au temps.
  • Polyvalence : Prise en charge des tâches de détection, segmentation, classification et estimation de pose dans un cadre unifié.
  • Modèles pré-entraînés : Accès à des modèles pré-entraînés hautement performants pour diverses applications, réduisant le temps d'entraînement.
  • Support communautaire étendu : Une communauté active et une documentation complète pour le dépannage et le développement.
  • Intégration facile : API simple pour une intégration avec tes projets et flux de travail existants.

Découvre plus d'informations sur les modèles YOLO sur la page Ultralytics Models.

Comment puis-je optimiser et compresser un jeu de données avec les outils Ultralytics ?

Pour optimiser et compresser un jeu de données en utilisant les outils Ultralytics, suis cet exemple de code :

Optimiser et ziper un jeu 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 aide à réduire la taille du jeu de données pour un stockage plus efficace et des vitesses de téléchargement plus rapides. Apprends-en plus sur la façon d'Optimize and Zip a Dataset.

Commentaires