Présentation des jeux de données de détection d’objets#
L’entraînement d’un modèle robuste et précis de détection d’objets nécessite un jeu de données complet. Ce guide présente différents formats de jeux de données compatibles avec le modèle Ultralytics YOLO et fournit des informations sur leur structure, leur utilisation et la conversion entre différents formats.
Formats de jeux de données pris en charge#
Format Ultralytics YOLO#
Le format Ultralytics YOLO est un format de configuration de jeu de données qui te permet de définir le répertoire racine du jeu de données, les chemins relatifs vers les répertoires d’images d’entraînement, de validation et de test, ou vers des fichiers *.txt contenant les chemins des images, ainsi qu’un dictionnaire de noms de classes. Voici un exemple :
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco8 ← downloads here (1 MB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: coco8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)
# Classes
names:
0: person
1: bicycle
2: car
3: motorcycle
4: airplane
5: bus
6: train
7: truck
8: boat
9: traffic light
10: fire hydrant
11: stop sign
12: parking meter
13: bench
14: bird
15: cat
16: dog
17: horse
18: sheep
19: cow
20: elephant
21: bear
22: zebra
23: giraffe
24: backpack
25: umbrella
26: handbag
27: tie
28: suitcase
29: frisbee
30: skis
31: snowboard
32: sports ball
33: kite
34: baseball bat
35: baseball glove
36: skateboard
37: surfboard
38: tennis racket
39: bottle
40: wine glass
41: cup
42: fork
43: knife
44: spoon
45: bowl
46: banana
47: apple
48: sandwich
49: orange
50: broccoli
51: carrot
52: hot dog
53: pizza
54: donut
55: cake
56: chair
57: couch
58: potted plant
59: bed
60: dining table
61: toilet
62: tv
63: laptop
64: mouse
65: remote
66: keyboard
67: cell phone
68: microwave
69: oven
70: toaster
71: sink
72: refrigerator
73: book
74: clock
75: vase
76: scissors
77: teddy bear
78: hair drier
79: toothbrush
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zipChacun des éléments train, val et test accepte un répertoire, une liste de répertoires ou un fichier *.txt listant un chemin d’image par ligne (les chemins commençant par ./ sont résolus par rapport au fichier *.txt). Un fichier *.txt est utile pour entraîner un modèle sur un sous-ensemble d’un répertoire, ignorer les images non annotées ou combiner des images provenant de plusieurs sources dans un même sous-ensemble.
path: datasets/coco8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
0: personLes annotations de ce format doivent être exportées au format YOLO, avec un fichier *.txt par image. Si une image ne contient aucun objet, aucun fichier *.txt n’est requis. Le fichier *.txt doit être formaté avec une ligne par objet au format class x_center y_center width height. Les coordonnées des boîtes doivent être au format xywh normalisé (de 0 à 1). Si tes boîtes sont exprimées en pixels, tu dois diviser x_center et width par la largeur de l’image, et y_center et height par sa hauteur. Les numéros de classe doivent commencer à zéro.

Le fichier d’annotations correspondant à l’image ci-dessus contient 2 personnes (classe 0) et une cravate (classe 27) :

Lorsque tu utilises le format Ultralytics YOLO, organise tes images et annotations d’entraînement et de validation comme dans l’exemple du jeu de données COCO8 ci-dessous.

Exemple d'utilisation#
Voici comment utiliser des jeux de données au format YOLO pour entraîner ton modèle :
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Format Ultralytics NDJSON#
Le format NDJSON (JSON délimité par des retours à la ligne) offre une autre façon de définir des jeux de données pour les modèles Ultralytics YOLO. Ce format stocke les métadonnées et les annotations du jeu de données dans un seul fichier, chaque ligne contenant un objet JSON distinct.
Un fichier de jeu de données NDJSON contient :
- Enregistrement du jeu de données (première ligne) : contient les métadonnées du jeu de données, notamment le type de tâche, les noms de classes et les informations générales
- Enregistrements d’images (lignes suivantes) : contiennent les données de chaque image, notamment ses dimensions, ses annotations et ses chemins de fichier
{
"type": "dataset",
"task": "detect",
"name": "Example",
"description": "COCO NDJSON example dataset",
"url": "https://platform.ultralytics.com/user/datasets/example",
"class_names": { "0": "person", "1": "bicycle", "2": "car" },
"bytes": 426342,
"version": 0,
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
}Métadonnées d’image personnalisées#
Chaque enregistrement d’image peut inclure un objet JSON metadata contenant un contexte propre à l’application, comme les conditions de capture, les identifiants de l’équipement ou le statut de vérification. Les valeurs imbriquées sont prises en charge. Lorsqu’elles sont importées dans Ultralytics Platform, les métadonnées sont stockées avec l’image et peuvent être consultées ou modifiées depuis son panneau d’informations en plein écran.
{
"type": "image",
"file": "airbus-wing.jpg",
"url": "https://example.com/airbus-wing.jpg",
"split": "train",
"metadata": {
"aircraft": { "family": "A350", "section": "wing" },
"inspectionStatus": "reviewed"
}
}La Platform limite les clés de métadonnées de premier niveau à 128 caractères, l’objet de métadonnées sérialisé de chaque image à 500 000 caractères et l’ensemble des métadonnées effectives d’un même import NDJSON à 500 000 caractères.
Exemple d'utilisation#
Pour utiliser un jeu de données NDJSON avec YOLO26, indique simplement le chemin vers le fichier .ndjson :
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt")
# Train using NDJSON dataset
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)Avantages du format NDJSON#
- Fichier unique : toutes les informations du jeu de données sont contenues dans un seul fichier
- Diffusion en continu : permet de traiter de grands jeux de données ligne par ligne sans tout charger en mémoire
- Intégration cloud : prend en charge les URL d’images distantes pour l’entraînement dans le cloud
- Extensible : permet d’ajouter facilement des champs de métadonnées personnalisés
- Contrôle de version : le format à fichier unique fonctionne bien avec git et les systèmes de contrôle de version
Jeux de données pris en charge#
Voici une liste des jeux de données pris en charge ainsi qu'une brève description pour chacun. La plupart de ces jeux de données sont également hébergés sur Ultralytics Platform, où tu peux parcourir les images et les annotations, consulter les statistiques des jeux de données et les cloner pour un entraînement dans le cloud.
- African-wildlife : un jeu de données présentant des images d’animaux sauvages africains, 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 des mouvements issues d’environnements urbains, 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 jeu de données à grande échelle de détection d’objets, de segmentation et de génération de légendes, comprenant 80 catégories d’objets.
- COCO8 : un sous-ensemble plus petit des 8 premières images du jeu de données d'entraînement COCO train2017, 4 pour l'entraînement et 4 pour la validation, adapté aux tests rapides.
- COCO8-Grayscale : une version en niveaux de gris de COCO8, créée en convertissant les images RGB en niveaux de gris, utile pour évaluer les modèles à canal unique.
- COCO8-Multispectral : une version multispectrale à 10 canaux de COCO8, créée par interpolation des longueurs d’onde RGB, utile pour évaluer les modèles sensibles aux caractéristiques spectrales.
- COCO12-Formats : un jeu de données de test comprenant 12 images couvrant 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.
- COCO16 : un sous-ensemble des 16 premières images de COCO train2017 (8 pour l’entraînement + 8 pour la validation), adapté aux tests rapides.
- COCO32 : un sous-ensemble des 32 premières images de COCO train2017 (16 pour l’entraînement + 16 pour la validation), adapté aux tests rapides.
- COCO64 : un sous-ensemble des 64 premières images de COCO train2017 (32 pour l’entraînement + 32 pour la validation), adapté aux tests rapides.
- COCO128 : un sous-ensemble réduit constitué des 128 premières images de COCO train2017, adapté aux tests.
- Construction-PPE : un jeu de données présentant des ouvriers sur des chantiers équipés d’EPI annotés, comme des casques, gilets, gants, bottes et lunettes, avec également des annotations d’équipements manquants telles que no_helmet et no_goggle pour la surveillance de la conformité en conditions réelles.
- 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 d’objets domestiques d’intérieur, notamment des lits, des chaises, des téléviseurs et bien plus encore, idéal pour les applications de domotique, de robotique, de réalité augmentée et d’analyse de l’agencement des pièces.
- KITTI : un jeu de données présentant des scènes de conduite réelles avec des données stéréo, LiDAR et GPS/IMU, utilisé ici pour des tâches de détection d’objets 2D, comme l’identification de voitures, de piétons et de cyclistes en milieu urbain, rural et autoroutier.
- LVIS : un jeu de données à grande échelle pour la détection, la segmentation et le sous-titrage d’objets, avec 1203 catégories d’objets.
- Medical-pills : un jeu de données présentant des images de médicaments sous forme de comprimés, annotées pour des applications telles que l’assurance qualité pharmaceutique, le tri des comprimés et la conformité réglementaire.
- Objects365 : un jeu de données de haute qualité et à grande échelle pour la détection d’objets, avec 365 catégories d’objets et plus de 600K images annotées.
- OpenImagesV7 : un jeu de données complet de Google comprenant 1,7 M d’images d’entraînement et 42k images de validation.
- Roboflow 100 : un benchmark diversifié 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 présentant des images de divers documents contenant des signatures annotées, destiné à la recherche sur la vérification de documents et la détection des 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 11K images et 1,7 million de boîtes englobantes.
- TT100K : découvre le jeu de données de panneaux de signalisation Tsinghua-Tencent 100K (TT100K), composé de 16 817 images de rues réparties sur 221 catégories de panneaux, pour une détection et une classification robustes.
- VisDrone : un jeu de données contenant des données de détection d’objets et de suivi multiobjets issues d’images capturées par drone, avec plus de 10K images et séquences vidéo.
- VOC : le jeu de données Pascal Classes d’objets visuels (VOC) pour la détection et la segmentation d’objets, avec 20 classes d’objets et plus de 11K images.
- xView : un jeu de données destiné à 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.
Ajouter ton propre jeu de données#
Si tu possèdes ton propre jeu de données et souhaites l’utiliser pour entraîner des modèles de détection au format Ultralytics YOLO, vérifie qu’il respecte le format indiqué ci-dessus dans la section « Format Ultralytics YOLO ». Convertis tes annotations au format requis et indique les chemins, le nombre de classes et les noms de classes dans le fichier de configuration YAML.
Porter ou convertir des formats d’annotations#
Du format de jeu de données COCO au format YOLO#
Tu peux facilement convertir les annotations du format populaire du jeu de données COCO au format YOLO à l’aide de l’extrait de code suivant :
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/")Cet outil de conversion peut servir à convertir le jeu de données COCO ou tout jeu de données au format COCO vers le format Ultralytics YOLO. Le processus transforme les annotations COCO basées sur JSON en un format YOLO textuel plus simple, ce qui le rend compatible avec les modèles Ultralytics YOLO. Pour consulter le workflow complet — notamment le mappage des identifiants de classe, la structure des répertoires et les annotations de segmentation ou de pose — voir Convertir les annotations COCO au format YOLO.
N’oublie pas de vérifier que le jeu de données que tu souhaites utiliser est compatible avec ton modèle et respecte les conventions de format nécessaires. Des jeux de données correctement formatés sont essentiels pour entraîner des modèles de détection d’objets performants.
Et ensuite ?#
Une fois ton jeu de données formaté, commence l’entraînement de ton modèle. Tu ne sais pas quel modèle préentraîné choisir pour commencer ? Compare les options de la famille de modèles YOLO26.
FAQ#
Le format Ultralytics YOLO est une configuration structurée permettant de définir des jeux de données dans tes projets d’entraînement. Il consiste à définir les chemins vers tes images d’entraînement, de validation et de test, ainsi que vers leurs annotations correspondantes. Par exemple :
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license # COCO8 dataset (first 8 images from COCO train2017) by Ultralytics # Documentation: https://docs.ultralytics.com/datasets/detect/coco8 # Example usage: yolo train data=coco8.yaml # parent # ├── ultralytics # └── datasets # └── coco8 ← downloads here (1 MB) # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..] path: coco8 # dataset root dir train: images/train # train images (relative to 'path') 4 images val: images/val # val images (relative to 'path') 4 images test: # test images (optional) # Classes names: 0: person 1: bicycle 2: car 3: motorcycle 4: airplane 5: bus 6: train 7: truck 8: boat 9: traffic light 10: fire hydrant 11: stop sign 12: parking meter 13: bench 14: bird 15: cat 16: dog 17: horse 18: sheep 19: cow 20: elephant 21: bear 22: zebra 23: giraffe 24: backpack 25: umbrella 26: handbag 27: tie 28: suitcase 29: frisbee 30: skis 31: snowboard 32: sports ball 33: kite 34: baseball bat 35: baseball glove 36: skateboard 37: surfboard 38: tennis racket 39: bottle 40: wine glass 41: cup 42: fork 43: knife 44: spoon 45: bowl 46: banana 47: apple 48: sandwich 49: orange 50: broccoli 51: carrot 52: hot dog 53: pizza 54: donut 55: cake 56: chair 57: couch 58: potted plant 59: bed 60: dining table 61: toilet 62: tv 63: laptop 64: mouse 65: remote 66: keyboard 67: cell phone 68: microwave 69: oven 70: toaster 71: sink 72: refrigerator 73: book 74: clock 75: vase 76: scissors 77: teddy bear 78: hair drier 79: toothbrush # Download script/URL (optional) download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zipLes annotations sont enregistrées dans des fichiers
*.txt, avec un fichier par image, au formatclass x_center y_center width heightet avec des coordonnées normalisées. Pour obtenir un guide détaillé, consulte l’exemple du jeu de données COCO8.Ultralytics YOLO prend en charge un large éventail de jeux de données, notamment :
Chaque page de jeu de données fournit des informations détaillées sur sa structure et son utilisation, adaptées à un entraînement efficace avec YOLO26. Consulte la liste complète dans la section Jeux de données pris en charge.
Pour commencer à entraîner un modèle YOLO26, vérifie que ton jeu de données est correctement formaté et que les chemins sont définis dans un fichier YAML. Utilise le script suivant pour commencer l’entraînement :
Exemplefrom ultralytics import YOLO model = YOLO("yolo26n.pt") # Load a pretrained model results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)Consulte la section Utilisation pour plus de détails sur l’utilisation des différents modes, notamment les commandes CLI.
Ultralytics propose de nombreux exemples et guides pratiques pour utiliser YOLO26 dans diverses applications. Pour une présentation complète, consulte le blog Ultralytics, où tu trouveras des études de cas, des tutoriels détaillés et des témoignages de la communauté présentant la détection d’objets, la segmentation et bien plus encore avec YOLO26. Pour des exemples précis, consulte la section Utilisation de la documentation.
Tu peux convertir un jeu de données COCO au format YOLO à l’aide des outils de conversion Ultralytics. Voici une méthode rapide :
Ce code convertira tes annotations COCO au format YOLO, permettant une intégration fluide avec les modèles Ultralytics YOLO. Pour plus de détails, consulte la section Porter ou convertir des formats d’annotations.