Présentation des jeux de données de détection d'objets#
L'entraînement d'un modèle de détection d'objets robuste et précis nécessite un jeu de données complet. Ce guide présente divers formats de jeux de données compatibles avec le modèle Ultralytics YOLO et fournit des informations sur leur structure, leur utilisation et la manière de convertir les 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/validation/test ou les fichiers *.txt contenant les chemins d'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 s'entraîner sur un sous-ensemble d'un répertoire, ignorer les images non étiquetées ou combiner des images de plusieurs sources en une seule division.
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 étiquettes de ce format doivent être exportées au format YOLO avec un fichier *.txt par image. S'il n'y a pas d'objets dans une image, 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 en pixels, tu dois diviser x_center et width par la largeur de l'image, et y_center et height par la hauteur de l'image. Les numéros de classe doivent commencer à zéro (indexés à partir de 0).

Le fichier d'étiquettes 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 étiquettes d'entraînement et de validation comme indiqué dans l'exemple du jeu de données COCO8 ci-dessous.

Exemple d'utilisation#
Voici comment tu peux utiliser les 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 (Newline Delimited JSON) 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 où chaque ligne contient 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, y compris le type de tâche, les noms de classes et des informations générales
- Enregistrements d'images (lignes suivantes) : contient les données individuelles de l'image, y compris les dimensions, les annotations et les chemins d'accès aux fichiers
{
"type": "dataset",
"task": "detect",
"name": "Example",
"description": "COCO NDJSON example dataset",
"url": "https://app.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 pour un contexte spécifique à l'application, tel que les conditions de capture, les identifiants d'équipement ou le statut de révision. Les valeurs imbriquées sont prises en charge. Lors de l'importation dans la plateforme Ultralytics, les métadonnées sont stockées avec cette 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 plateforme limite les clés de métadonnées de niveau supérieur à 128 caractères, l'objet de métadonnées sérialisé de chaque image à 500 000 caractères, et les métadonnées effectives combinées dans une seule importation NDJSON à 500 000 caractères.
Exemple d'utilisation#
Pour utiliser un jeu de données NDJSON avec YOLO26, indique simplement le chemin d'accès au 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
- Streaming : 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 basé sur le cloud
- Extensible : facile d'ajouter des champs de métadonnées personnalisés
- Contrôle de version : le format de 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 et une brève description pour chacun :
- African-wildlife : un jeu de données contenant 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 jeu de données pour la détection des tumeurs cérébrales comprenant 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 jeu de données à grande échelle de détection d'objets, de segmentation et de génération de légendes comportant 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.
- COCO12-Formats : un jeu de données de test avec 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 train + 8 val), adapté aux tests rapides.
- COCO32 : un sous-ensemble des 32 premières images de COCO train2017 (16 train + 16 val), adapté aux tests rapides.
- COCO64 : un sous-ensemble des 64 premières images de COCO train2017 (32 train + 32 val), adapté aux tests rapides.
- COCO128 : un sous-ensemble plus petit des 128 premières images de COCO train2017, adapté aux tests.
- Construction-PPE : un jeu de données présentant des travailleurs sur les chantiers de construction équipés d'équipements de sécurité étiquetés tels que des casques, des gilets, des gants, des bottes et des lunettes de protection, incluant des annotations d'équipements manquants telles que no_helmet et no_goggle pour la surveillance de la conformité dans le monde réel.
- 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'articles ménagers d'intérieur comprenant des lits, des chaises, des téléviseurs et plus encore, idéal pour les applications de domotique intelligente, de robotique, de réalité augmentée et d'analyse de disposition de 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 en 2D telles que l'identification de voitures, de piétons et de cyclistes dans des environnements urbains, ruraux et autoroutiers.
- 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 jeu de données contenant des images de pilules médicales, annotées pour des applications telles que l'assurance qualité pharmaceutique, le tri de pilules et la conformité réglementaire.
- 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.
- 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 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 jeu 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.
- TT100K : explore le jeu de données de panneaux de signalisation routière Tsinghua-Tencent 100K (TT100K) comprenant 16 817 images de rue 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 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.
Ajouter ton propre jeu de données#
Si tu as ton propre jeu de données et que tu souhaites l'utiliser pour entraîner des modèles de détection avec le format Ultralytics YOLO, assure-toi qu'il suit le format spécifié ci-dessus dans "Format Ultralytics YOLO". Convertis tes annotations au format requis et spécifie les chemins, le nombre de classes et les noms des classes dans le fichier de configuration YAML.
Porter ou convertir des formats d'étiquettes#
Conversion du format de jeu de données COCO au format YOLO#
Tu peux facilement convertir les étiquettes du format populaire du jeu de données COCO vers le format YOLO en utilisant 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 être utilisé pour 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 texte YOLO plus simple, le rendant compatible avec les modèles Ultralytics YOLO.
N'oublie pas de vérifier si le jeu de données que tu souhaites utiliser est compatible avec ton modèle et suit les conventions de format nécessaires. Des jeux de données correctement formatés sont cruciaux pour entraîner des modèles de détection d'objets performants.
Et après ?#
Une fois ton jeu de données formaté, commence à entraîner ton modèle. Tu ne sais pas quel modèle pré-entraîné choisir ? Compare les options dans la famille de modèles YOLO26.
FAQ#
Quel est le format de jeu de données Ultralytics YOLO et comment le structurer ?#
Le format Ultralytics YOLO est une configuration structurée pour définir des jeux de données dans tes projets d'entraînement. Cela implique de définir les chemins vers tes images d'entraînement, de validation et de test ainsi que les étiquettes 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 étiquettes sont enregistrées dans des fichiers *.txt à raison d'un fichier par image, formatés comme class x_center y_center width height avec des coordonnées normalisées. Pour un guide détaillé, consulte l'exemple du jeu de données COCO8.
Comment convertir un jeu de données COCO au format YOLO ?#
Tu peux convertir un jeu de données COCO au format YOLO en utilisant les outils de conversion Ultralytics. Voici une méthode rapide :
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/")Ce code convertira tes annotations COCO au format YOLO, permettant une intégration transparente avec les modèles Ultralytics YOLO. Pour plus de détails, consulte la section Transférer ou convertir des formats d'étiquettes.
Quels jeux de données sont pris en charge par Ultralytics YOLO pour la détection d'objets ?#
Ultralytics YOLO prend en charge une large gamme de jeux de données, notamment :
Chaque page de jeu de données fournit des informations détaillées sur la structure et l'utilisation adaptées à un entraînement efficace avec YOLO26. Découvre la liste complète dans la section Jeux de données pris en charge.
Comment commencer à entraîner un modèle YOLO26 en utilisant mon jeu de données ?#
Pour commencer à entraîner un modèle YOLO26, assure-toi 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 :
from 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, y compris les commandes de l'CLI.
Où puis-je trouver des exemples pratiques d'utilisation d'Ultralytics YOLO pour la détection d'objets ?#
Ultralytics propose de nombreux exemples et guides pratiques pour utiliser YOLO26 dans diverses applications. Pour un aperçu complet, visite le blog Ultralytics où tu trouveras des études de cas, des tutoriels détaillés et des témoignages de la communauté illustrant la détection d'objets, la segmentation et bien plus encore avec YOLO26. Pour des exemples spécifiques, consulte la section Utilisation de la documentation.