Skip to content

Aperçu des ensembles 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 ensemble de données complet. Ce guide présente les différents formats d'ensembles de données compatibles avec le modèle Ultralytics YOLO et donne un aperçu de leur structure, de leur utilisation et de la manière de convertir les différents formats.

Formats de données pris en charge

Ultralytics YOLO format

Le format Ultralytics YOLO est un format de configuration du 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/de test ou les chemins relatifs vers les répertoires d'images d'entraînement/de validation/de test. *.txt des fichiers contenant les chemins d'accès aux images, et un dictionnaire de noms de classes. Voici un exemple :

# 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: ../datasets/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 (80 COCO classes)
names:
  0: person
  1: bicycle
  2: car
  # ...
  77: teddy bear
  78: hair drier
  79: toothbrush

Les étiquettes de ce format doivent être exportées au format YOLO avec une *.txt par image. S'il n'y a pas d'objets dans une image, aucune *.txt est nécessaire. Le *.txt Le fichier doit être formaté avec une ligne par objet en class x_center y_center width height format. Les coordonnées de la boîte doivent être en xywh normalisé (de 0 à 1). Si tes cases 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 être indexés à zéro (commencer par 0).

Exemple d'image étiquetée

Le fichier d'étiquettes correspondant à l'image ci-dessus contient 2 personnes (classe 0) et une égalité (classe 27) :

Exemple de fichier d'étiquettes

Lorsque tu utilises le format Ultralytics YOLO , organise tes images et tes étiquettes de formation et de validation comme indiqué dans l'exemple ci-dessous.

Exemple de structure de répertoire de jeux de données

Utilisation

Voici comment tu peux utiliser ces formats pour entraîner ton modèle :

Exemple

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640

Ensembles de données pris en charge

Voici une liste des ensembles de données pris en charge et une brève description de chacun d'entre eux :

  • Argoverse: Un recueil de données de capteurs collectées à partir de véhicules autonomes. Il contient des annotations de suivi en 3D pour les objets de la voiture.
  • COCO: Common Objects in Context (COCO) est un ensemble de données de détection, de segmentation et de sous-titrage d'objets à grande échelle comprenant 80 catégories d'objets.
  • COCO8: Sous-ensemble plus petit de l'ensemble de données COCO, COCO8 est plus léger et plus rapide à former.
  • GlobalWheat2020: Un ensemble de données contenant des images de têtes de blé pour le Global Wheat Challenge 2020.
  • Objets365: Un ensemble de données de détection d'objets à grande échelle avec 365 catégories d'objets et 600k images, visant à faire avancer la recherche sur la détection d'objets.
  • OpenImagesV7: Un ensemble de données complet de Google avec 1,7 million d'images de formation et 42 000 images de validation.
  • SKU-110K: Un ensemble de données contenant des images de produits de vente au détail densément emballés, destiné à la détection d'objets dans l'environnement de la vente au détail.
  • VisDrone: Un ensemble de données axé sur les images prises par des drones, contenant diverses catégories d'objets comme des voitures, des piétons et des cyclistes.
  • VOC: PASCAL VOC est un ensemble de données populaire de détection d'objets comprenant 20 catégories d'objets, notamment des véhicules, des animaux et des meubles.
  • xView: Un ensemble de données contenant des images satellites à haute résolution, conçu pour la détection de diverses classes d'objets dans les vues aériennes.

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 respecte le format spécifié ci-dessus sous "Ultralytics YOLO format ". 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 les formats d'étiquettes

Format des ensembles de données COCO au format YOLO

Tu peux facilement convertir les étiquettes du format de jeu de données populaire COCO au format YOLO à l'aide de l'extrait de code suivant :

Exemple

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 autre jeu de données au format COCO au format Ultralytics YOLO .

N'oublie pas de vérifier si l'ensemble de données que tu veux utiliser est compatible avec ton modèle et s'il respecte les conventions de format nécessaires. Des ensembles de données correctement formatés sont essentiels pour former des modèles de détection d'objets performants.



Créé le 2023-11-12, Mis à jour le 2024-01-14
Auteurs : glenn-jocher (6)

Commentaires