Meet YOLO26: next-gen vision AI.

Link to this sectionPrésentation des jeux de données d'estimation de pose#

Link to this sectionFormats de jeux de données pris en charge#

Link to this sectionFormat Ultralytics YOLO#

Le format d'étiquetage du jeu de données utilisé pour l'entraînement des modèles de pose YOLO est le suivant :

  1. Un fichier texte par image : chaque image du jeu de données possède un fichier texte correspondant portant le même nom que le fichier image avec l'extension ".txt".
  2. Une ligne par objet : chaque ligne dans le fichier texte correspond à une instance d'objet dans l'image.
  3. Informations sur l'objet par ligne : chaque ligne contient les informations suivantes sur l'instance de l'objet :
    • Index de classe de l'objet : un entier représentant la classe de l'objet (par exemple, 0 pour une personne, 1 pour une voiture, etc.).
    • Coordonnées du centre de l'objet : les coordonnées x et y du centre de l'objet, normalisées pour être comprises entre 0 et 1.
    • Largeur et hauteur de l'objet : la largeur et la hauteur de l'objet, normalisées pour être comprises entre 0 et 1.
    • Coordonnées des points clés de l'objet : les points clés de l'objet, normalisés pour être compris entre 0 et 1.

Voici un exemple du format d'étiquette pour une tâche d'estimation de pose :

Format avec points clés 2D

<class-index> <x> <y> <width> <height> <px1> <py1> <px2> <py2> ... <pxn> <pyn>

Format avec visibilité des points clés (inclut la visibilité par point)

<class-index> <x> <y> <width> <height> <px1> <py1> <p1-visibility> <px2> <py2> <p2-visibility> <pxn> <pyn> <pn-visibility>

Dans ce format, <class-index> est l'index de la classe de l'objet, <x> <y> <width> <height> sont les coordonnées normalisées de la bounding box, et <px1> <py1> <px2> <py2> ... <pxn> <pyn> sont les coordonnées normalisées des points clés. Le canal de visibilité est optionnel mais utile pour les jeux de données qui annotent l'occlusion.

Link to this sectionFormat YAML du jeu de données#

Le framework Ultralytics utilise un format de fichier YAML pour définir la configuration du jeu de données et du modèle pour l'entraînement des modèles d'estimation de pose. Voici un exemple du format YAML utilisé pour définir un jeu de données de pose :

ultralytics/cfg/datasets/coco8-pose.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/coco8-pose/
# Example usage: yolo train data=coco8-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-pose ← 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-pose # 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)

# Keypoints
kpt_shape: [17, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]

# Classes
names:
  0: person

# Keypoint names per class
kpt_names:
  0:
    - nose
    - left_eye
    - right_eye
    - left_ear
    - right_ear
    - left_shoulder
    - right_shoulder
    - left_elbow
    - right_elbow
    - left_wrist
    - right_wrist
    - left_hip
    - right_hip
    - left_knee
    - right_knee
    - left_ankle
    - right_ankle

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-pose.zip

Les champs train et val spécifient respectivement les chemins vers les répertoires contenant les images d'entraînement et de validation.

names est un dictionnaire de noms de classes. L'ordre des noms doit correspondre à l'ordre des index de classe d'objet dans les fichiers du jeu de données YOLO.

(Optionnel) si les points sont symétriques, tu as besoin de flip_idx, comme pour le côté gauche-droite d'un humain ou d'un visage. Par exemple, si nous supposons cinq points clés pour les points de repère faciaux : [œil gauche, œil droit, nez, bouche gauche, bouche droite], et que l'index original est [0, 1, 2, 3, 4], alors flip_idx est [1, 0, 2, 4, 3] (échange simplement les index gauche-droite, c'est-à-dire 0-1 et 3-4, et ne modifie pas les autres comme le nez dans cet exemple).

Link to this sectionUtilisation#

Exemple
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-pose.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)

Link to this sectionJeux de données pris en charge#

Cette section présente les jeux de données compatibles avec le format Ultralytics YOLO qui peuvent être utilisés pour entraîner des modèles d'estimation de pose :

Link to this sectionCOCO-Pose#

  • Description : COCO-Pose est un jeu de données à grande échelle d'object detection, de segmentation et d'estimation de pose. Il s'agit d'un sous-ensemble du jeu de données populaire COCO qui se concentre sur l'estimation de pose humaine. COCO-Pose inclut de multiples points clés pour chaque instance humaine.
  • Format d'étiquette : Identique au format Ultralytics YOLO décrit ci-dessus, avec des points clés pour les poses humaines.
  • Nombre de classes : 1 (Humain).
  • Points clés : 17 points clés, incluant le nez, les yeux, les oreilles, les épaules, les coudes, les poignets, les hanches, les genoux et les chevilles.
  • Utilisation : Convient pour l'entraînement de modèles d'estimation de pose humaine.
  • Notes supplémentaires : Le jeu de données est riche et diversifié, contenant plus de 200 000 images étiquetées.
  • En savoir plus sur COCO-Pose

Link to this sectionCOCO8-Pose#

  • Description : Le Ultralytics COCO8-Pose est un jeu de données de détection de pose petit mais polyvalent, composé des 8 premières images de l'ensemble COCO train 2017, 4 pour l'entraînement et 4 pour la validation.
  • Format d'étiquette : Identique au format Ultralytics YOLO décrit ci-dessus, avec des points clés pour les poses humaines.
  • Nombre de classes : 1 (Humain).
  • Points clés : 17 points clés, incluant le nez, les yeux, les oreilles, les épaules, les coudes, les poignets, les hanches, les genoux et les chevilles.
  • Utilisation : Convient pour tester et déboguer des modèles de détection d'objets, ou pour expérimenter de nouvelles approches de détection.
  • Notes supplémentaires : COCO8-Pose est idéal pour les vérifications de bon fonctionnement et les CI checks.
  • En savoir plus sur COCO8-Pose

Link to this sectionDog-Pose#

  • Description : Le jeu de données Dog Pose contient 6 773 images d'entraînement et 1 703 images de test, offrant une ressource vaste et diversifiée pour l'estimation des points clés canins.
  • Format d'étiquette : Suit le format Ultralytics YOLO, avec des annotations pour de multiples points clés spécifiques à l'anatomie du chien.
  • Nombre de classes : 1 (Chien).
  • Points clés : Inclut 24 points clés adaptés aux poses de chiens, tels que les membres, les articulations et les positions de la tête.
  • Utilisation : Idéal pour entraîner des modèles à estimer les poses de chiens dans divers scénarios, de la recherche aux applications concrètes.
  • En savoir plus sur Dog-Pose

Link to this sectionHand Keypoints#

  • Description : Le jeu de données de pose Hand Keypoints comprend près de 26 000 images, avec 18 776 images allouées à l'entraînement et 7 992 à la validation.
  • Format d'étiquette : Identique au format Ultralytics YOLO décrit ci-dessus, mais avec 21 points clés pour une main humaine et une dimension de visibilité.
  • Nombre de classes : 1 (Main).
  • Points clés : 21 points clés.
  • Utilisation : Idéal pour l'estimation de la pose de la main humaine et la reconnaissance de gestes.
  • En savoir plus sur Hand Keypoints

Link to this sectionTiger-Pose#

  • Description: The Ultralytics Tiger Pose dataset comprises 263 images sourced from a YouTube video, with 210 images allocated for training and 53 for validation.
  • Format d'étiquette : Identique au format Ultralytics YOLO décrit ci-dessus, avec 12 points clés pour la pose animale et aucune dimension de visibilité.
  • Nombre de classes : 1 (Tigre).
  • Points clés : 12 points clés.
  • Utilisation : Idéal pour la pose animale ou toute autre pose qui n'est pas basée sur l'humain.
  • En savoir plus sur Tiger-Pose

Link to this sectionAjouter ton propre jeu de données#

Si tu disposes de ton propre jeu de données et que tu souhaites l'utiliser pour entraîner des modèles d'estimation de pose 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 de classes dans le fichier de configuration YAML.

Link to this sectionOutil de conversion#

Ultralytics fournit un outil de conversion pratique pour convertir les étiquettes du format populaire COCO dataset au format YOLO :

Exemple
from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_keypoints=True)

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 paramètre use_keypoints spécifie s'il faut inclure les points clés (pour l'estimation de pose) dans les étiquettes converties.

Link to this sectionFAQ#

Link to this sectionQu'est-ce que le format Ultralytics YOLO pour l'estimation de pose ?#

Le format Ultralytics YOLO pour les jeux de données d'estimation de pose implique l'étiquetage de chaque image avec un fichier texte correspondant. Chaque ligne du fichier texte stocke des informations sur une instance d'objet :

  • Index de la classe de l'objet
  • Coordonnées du centre de l'objet (x et y normalisés)
  • Largeur et hauteur de l'objet (normalisées)
  • Coordonnées des points clés de l'objet (pxn et pyn normalisés)

Pour les poses 2D, les points clés incluent des coordonnées x et y normalisées. Avec une dimension de visibilité, chaque point clé possède également un indicateur de visibilité. Pour plus de détails, voir Ultralytics YOLO format.

Link to this sectionComment utiliser le jeu de données COCO-Pose avec Ultralytics YOLO ?#

Pour utiliser le jeu de données COCO-Pose avec Ultralytics YOLO :

  1. Télécharge le jeu de données et prépare tes fichiers d'étiquettes au format YOLO.

  2. Crée un fichier de configuration YAML spécifiant les chemins vers les images d'entraînement et de validation, la forme des points clés et les noms des classes.

  3. Utilise le fichier de configuration pour l'entraînement :

    from ultralytics import YOLO
    
    model = YOLO("yolo26n-pose.pt")  # load pretrained model
    results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)

    Pour plus d'informations, visite les sections COCO-Pose et train.

Link to this sectionComment puis-je ajouter mon propre jeu de données pour l'estimation de pose dans Ultralytics YOLO ?#

Pour ajouter ton jeu de données :

  1. Convertis tes annotations au format Ultralytics YOLO.

  2. Crée un fichier de configuration YAML spécifiant les chemins du jeu de données, le nombre de classes et les noms des classes.

  3. Utilise le fichier de configuration pour entraîner ton modèle :

    from ultralytics import YOLO
    
    model = YOLO("yolo26n-pose.pt")
    results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)

    Pour les étapes complètes, consulte la section Adding your own dataset.

Link to this sectionQuel est l'objectif du fichier YAML du jeu de données dans Ultralytics YOLO ?#

Le fichier YAML du jeu de données dans Ultralytics YOLO définit la configuration du jeu de données et du modèle pour l'entraînement. Il spécifie les chemins vers les images d'entraînement, de validation et de test, les formes des points clés, les noms des classes et d'autres options de configuration. Ce format structuré aide à rationaliser la gestion du jeu de données et l'entraînement du modèle. Voici un exemple de format YAML :

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/coco8-pose/
# Example usage: yolo train data=coco8-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-pose ← 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-pose # 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)

# Keypoints
kpt_shape: [17, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]

# Classes
names:
  0: person

# Keypoint names per class
kpt_names:
  0:
    - nose
    - left_eye
    - right_eye
    - left_ear
    - right_ear
    - left_shoulder
    - right_shoulder
    - left_elbow
    - right_elbow
    - left_wrist
    - right_wrist
    - left_hip
    - right_hip
    - left_knee
    - right_knee
    - left_ankle
    - right_ankle

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-pose.zip

En savoir plus sur la création de fichiers de configuration YAML dans Dataset YAML format.

Link to this sectionComment puis-je convertir les étiquettes du jeu de données COCO au format Ultralytics YOLO pour l'estimation de pose ?#

Ultralytics fournit un outil de conversion pour convertir les étiquettes du jeu de données COCO au format YOLO, incluant les informations sur les points clés :

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_keypoints=True)

Cet outil permet d'intégrer de manière transparente les jeux de données COCO dans les projets YOLO. Pour plus de détails, reporte-toi à la section Conversion Tool et au guide de prétraitement des données.

Commentaires