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 de l'ensemble de données COCO8 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 ensemble de donnĂ©es contenant des donnĂ©es de suivi 3D et de prĂ©vision de mouvement provenant d'environnements urbains avec de riches annotations.
  • COCO: Common Objects in Context (COCO) est un ensemble de donnĂ©es Ă  grande Ă©chelle sur la dĂ©tection, la segmentation et le sous-titrage d'objets comprenant 80 catĂ©gories d'objets.
  • LVIS: un ensemble de donnĂ©es Ă  grande Ă©chelle pour la dĂ©tection, la segmentation et le sous-titrage d'objets, comprenant 1203 catĂ©gories d'objets.
  • COCO8: Un sous-ensemble plus petit des 4 premières images de COCO train et COCO val, adaptĂ© aux tests rapides.
  • Global Wheat 2020: Un ensemble de donnĂ©es contenant des images d'Ă©pis de blĂ© pour le Global Wheat Challenge 2020.
  • Objets365: Un ensemble de donnĂ©es Ă  grande Ă©chelle de haute qualitĂ© pour la dĂ©tection d'objets avec 365 catĂ©gories d'objets et plus de 600K images annotĂ©es.
  • OpenImagesV7: Un ensemble de donnĂ©es complet de Google avec 1,7 million d'images d'entraĂ®nement et 42 000 images de validation.
  • SKU-110K: Un ensemble de donnĂ©es comprenant la 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 de dĂ©limitation.
  • VisDrone: Un ensemble de donnĂ©es contenant des donnĂ©es de dĂ©tection d'objets et de suivi d'objets multiples Ă  partir d'images capturĂ©es par des drones, avec plus de 10 000 images et sĂ©quences vidĂ©o.
  • VOC: L'ensemble 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 ensemble de donnĂ©es pour la dĂ©tection d'objets dans les images aĂ©riennes avec 60 catĂ©gories d'objets et plus d'un million d'objets annotĂ©s.
  • Roboflow 100: Un benchmark de dĂ©tection d'objets divers avec 100 ensembles de donnĂ©es couvrant sept domaines d'imagerie pour une Ă©valuation complète des modèles.
  • Tumeur cĂ©rĂ©brale: Un ensemble de donnĂ©es pour dĂ©tecter les tumeurs cĂ©rĂ©brales comprend des images d'IRM ou de tomodensitomĂ©trie avec des dĂ©tails sur la prĂ©sence, l'emplacement et les caractĂ©ristiques de la tumeur.
  • Faune africaine: Un ensemble de donnĂ©es comprenant des images de la faune africaine, notamment de buffles, d'Ă©lĂ©phants, de rhinocĂ©ros et de zèbres.
  • Signature: Un ensemble de donnĂ©es comprenant des images de divers documents avec des signatures annotĂ©es, soutenant la recherche sur la vĂ©rification des documents et la dĂ©tection des fraudes.

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 que le jeu de données que tu veux utiliser est compatible avec ton modèle et qu'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.

FAQ

Quel est le format du jeu de données Ultralytics YOLO et comment le structurer ?

Le format Ultralytics YOLO est une configuration structurée pour définir les ensembles de données dans tes projets de formation. Il s'agit de définir les chemins d'accès à tes images d'entraînement, de validation et de test, ainsi que les étiquettes correspondantes. Par exemple :

path: ../datasets/coco8  # dataset root directory
train: images/train  # training images (relative to 'path')
val: images/val  # validation images (relative to 'path')
test:  # optional test images
names:
  0: person
  1: bicycle
  2: car
  # ...

Les étiquettes sont sauvegardées dans *.txt avec un fichier par image, formaté comme suit class x_center y_center width height avec des coordonnées normalisées. Pour un guide détaillé, voir le Exemple de 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 , ce qui permettra une intégration transparente avec les modèles Ultralytics YOLO . Pour plus de détails, visite la section Porter ou convertir les formats d'étiquettes.

Quels ensembles de données sont pris en charge par Ultralytics YOLO pour la détection d'objets ?

Ultralytics YOLO prend en charge un large éventail d'ensembles de données, y compris :

Chaque page d'ensemble de données fournit des informations détaillées sur la structure et l'utilisation adaptées à une formation efficace sur YOLOv8 . Explore la liste complète dans la section des ensembles de données pris en charge.

Comment puis-je commencer à former un modèle YOLOv8 à l'aide de mon ensemble de données ?

Pour commencer à former un modèle YOLOv8 , assure-toi que ton jeu de données est formaté correctement et que les chemins d'accès sont définis dans un fichier YAML. Utilise le script suivant pour commencer la formation :

Exemple

from ultralytics import YOLO

model = YOLO("yolov8n.pt")  # Load a pretrained model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)
yolo detect train data=path/to/your_dataset.yaml model=yolov8n.pt epochs=100 imgsz=640

Reporte-toi à la section Utilisation pour plus de détails sur l'utilisation des différents modes, y compris les commandes CLI .

Où puis-je trouver des exemples pratiques d'utilisation de Ultralytics YOLO pour la détection d'objets ?

Ultralytics fournit de nombreux exemples et guides pratiques pour utiliser YOLOv8 dans diverses applications. Pour un aperçu complet, visite le blogUltralytics où tu trouveras des études de cas, des tutoriels détaillés et des histoires de la communauté présentant la détection d'objets, la segmentation et bien d'autres choses encore avec YOLOv8. Pour des exemples spécifiques, consulte la section Utilisation de la documentation.



Créé le 2023-11-12, Mis à jour le 2024-07-04
Auteurs : glenn-jocher (10), RizwanMunawar (2), IvorZhu331 (1), Laughing-q (1)

Commentaires