YOLO Vision 2026 :

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, instance segmentation, 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 Track mode s'exécute sur les modèles de détection, de segmentation, de pose et d'OBB sans entraînement spécifique au suivi ; consulte les tracking datasets.



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 traçant une boîte englobante autour de chaque objet.

  • African-wildlife : un ensemble de données présentant des images de la faune africaine, notamment 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 ensemble de données pour la détection des tumeurs cérébrales qui comprend des images de balayage IRM ou CT avec des détails sur la présence, l'emplacement et les caractéristiques de la tumeur.
  • COCO : Common Objects in Context (COCO) est un ensemble 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 des 4 premières images des ensembles train et val de COCO, adapté aux tests rapides.
  • COCO8-Grayscale : une version en nuances de gris de COCO8 créée en convertissant le RVB en nuances de gris, utile pour l'évaluation de modèles à canal unique.
  • COCO8-Multispectral : une version multispectrale à 10 canaux de COCO8 créée par interpolation des 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 train2017, adapté aux tests.
  • Construction-PPE : un ensemble de données d'images de chantiers de construction annotées avec des équipements de sécurité clés tels que des casques, des gilets, des gants, des bottes et des lunettes de protection, ainsi que des étiquettes pour les équipements manquants, soutenant 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 ensemble de données de scènes intérieures 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.
  • KITTI Nouveau : un ensemble de données de conduite autonome bien connu 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 de détection d'objets, de segmentation et de génération de légendes comportant 1 203 catégories d'objets.
  • Medical-pills : un ensemble de données contenant des images étiquetées de pilules médicales, conçu pour aider dans des tâches telles que le contrôle de la qualité pharmaceutique, le tri et la garantie de la conformité aux normes de l'industrie.
  • Objects365 : un jeu de données de 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 comprenant 1,7 million d'images d'entraînement et 42 000 images de validation.
  • RF100 : un banc d'essai diversifié de détection d'objets comprenant 100 ensembles de données couvrant sept domaines d'imagerie pour une évaluation complète des modèles.
  • Signature : un jeu de données contenant des images de divers documents avec des signatures annotées, favorisant la recherche sur la vérification de documents et la détection des fraudes.
  • SKU-110K : un ensemble de données présentant une détection d'objets dense 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 classe uniquement chaque pixel, la segmentation d'instances distingue différentes instances de la même classe.

  • Carparts-seg : ensemble 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 à la fois pour les tâches de détection d'objets et de segmentation.
  • COCO : un ensemble 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 ensemble 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 ensemble 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 : ensemble 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 : ensemble de données personnalisé 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 assigne une étiquette de classe à chaque pixel dans une image, produisant des cartes de scène denses pour des applications telles que la conduite autonome, l'analyse de scène et la cartographie de l'occupation des sols.

  • Cityscapes : ensemble de données de segmentation sémantique de scènes de rue urbaines avec 19 classes d'entraînement.
  • Cityscapes8 : un sous-ensemble compact de 8 images Cityscapes pour des vérifications rapides de pipelines de segmentation sémantique.
  • ADE20K : ensemble 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 par pixel en mètres à partir d'une seule image RGB, prenant en charge la reconstruction de scènes 3D, la navigation de robots et les applications AR/VR.

  • NYU Depth V2 : référence standard de profondeur intérieure capturée avec un Microsoft Kinect v1.
  • KITTI : scènes de conduite autonome en extérieur du monde réel avec profondeur Velodyne LiDAR.
  • Depth8 : un sous-ensemble compact de 8 images SUN RGB-D pour des vérifications rapides de pipelines.

Classification#

La classification d'images est une tâche de vision par ordinateur qui consiste à classer une image en 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 difficiles.
  • CIFAR-10 : un ensemble de données de 60 000 images couleur 32x32 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 composé de 70 000 images en nuances 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 un test plus rapides.
  • Imagenette : un sous-ensemble plus petit d'ImageNet qui contient 10 classes facilement identifiables 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 ensemble de données de 70 000 images en nuances de gris de chiffres manuscrits pour les tâches de classification d'images.
  • MNIST160 : les 8 premières images de chaque chiffre (0-9) provenant à la fois des divisions d'entraînement et de test de MNIST. L'ensemble de données contient 160 images au total.

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 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.
  • Dog-pose : un ensemble de données complet comprenant environ 8 500 images axées sur les chiens, annotées avec 24 points clés par chien, adapté aux 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.
  • 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.

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 tournées, souvent appliquées à l'imagerie aérienne et satellite. Contrairement aux boîtes englobantes traditionnelles, l'OBB peut mieux s'adapter aux objets dans diverses 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.
  • DOTA128 : un sous-ensemble de 128 images de l'ensemble de données DOTA avec 128 images pour l'entraînement et la validation, offrant un bon équilibre entre la taille et la diversité pour tester les modèles OBB.

Contribuer avec de nouveaux jeux de données#

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



Watch: How to Contribute to Ultralytics Datasets

Étapes pour contribuer avec un nouveau jeu de données#

  1. Collecter les images : Rassemble les images qui appartiennent au jeu de données. Elles 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 : convertissez ces annotations au format de fichier YOLO *.txt pris en charge par Ultralytics.

  4. Organiser l'ensemble de données : disposez votre ensemble de données dans la structure de dossiers correcte. Tu dois avoir les répertoires de niveau supérieur images/ et labels/, et dans chacun d'eux, 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 ensemble de données, crée un fichier data.yaml qui décrit l'ensemble de données, les classes et d'autres informations nécessaires.

  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 requis, mais recommandé pour des tailles de jeux 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 en un fichier zip.

  8. Documenter et soumettre une PR : crée une page de documentation décrivant ton ensemble de données et la manière dont il s'intègre dans le framework existant. Ensuite, soumets une Pull Request (PR). Consulte 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 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 avec un nouveau jeu de données qui s'intègre bien avec la structure existante d'Ultralytics.

FAQ#

  • 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 la génération de légendes 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 d'objets et une segmentation plus fines.
    • 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 ensemble de données avec des données de détection d'objets et de suivi multi-objets provenant d'imageries capturées par drone.
    • SKU-110K : proposant une détection d'objets dense 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 robustes Ultralytics YOLO pour diverses applications de détection d'objets.

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

    1. Collecter les 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 au format YOLO *.txt.
    4. Organiser l'ensemble de données : utilise la structure de dossiers avec les répertoires train/ et val/, contenant chacun les sous-répertoires images/ et labels/.
    5. Créer un fichier data.yaml : inclus les descriptions de l'ensemble de données, les classes et d'autres informations pertinentes.
    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 soumettre une PR : décris ton ensemble de données et soumets une Pull Request en suivant les directives de contribution d'Ultralytics.

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

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

    • Gestion fluide des datasets : Télécharge, organise et gère tes datasets en un seul endroit.
    • Intégration immédiate pour l'entraînement : Utilise les datasets téléchargés directement pour l'entraînement de modèles sans configuration supplémentaire.
    • Outils de visualisation : Explore et visualise les images et les annotations de ton dataset.
    • Analyse de dataset : Obtiens des informations sur la distribution et les caractéristiques de ton dataset.

    La plateforme rationalise la transition de la gestion des ensembles de données à l'entraînement des modèles, rendant l'ensemble du processus plus efficace. Apprends-en plus sur les ensembles de données de la plateforme Ultralytics.

  • 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 sensibles au temps.
    • Polyvalence : Support pour les tâches de détection, segmentation d'instances, segmentation sémantique, estimation de profondeur, classification et estimation de pose dans un cadre unifié.
    • Modèles pré-entraînés : Accès à des modèles pré-entraînés haute performance 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 dans tes projets et workflows existants.

    Découvre-en plus sur les modèles YOLO sur la page des modèles Ultralytics.

  • Pour optimiser et compresser un dataset avec 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 de l'ensemble 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'optimiser et de compresser un ensemble de données.

Commentaires