Skip to content

Aperçu des ensembles de données pour l'estimation de la pose

Formats de données pris en charge

Ultralytics YOLO format

Le format de l'étiquette de l'ensemble 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 de l'ensemble de données correspond un fichier texte portant le même nom que le fichier image et l'extension ".txt".
  2. Une ligne par objet : Chaque ligne du 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 d'objet :
    • Indice de classe de l'objet : Un nombre 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 de format d'étiquette pour la tâche d'estimation de la pose :

Format avec Dim = 2

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

Format avec Dim = 3

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

Dans ce format, <class-index> est l'indice de la classe de l'objet,<x> <y> <width> <height> sont les coordonnées de la boîte de délimitation, et <px1> <py1> <px2> <py2> ... <pxn> <pyn> sont les coordonnées des pixels des points clés. Les coordonnées sont séparées par des espaces.

Format YAML du jeu de données

Le cadre Ultralytics utilise un format de fichier YAML pour définir l'ensemble de données et la configuration du modèle pour la formation des modèles de détection. Voici un exemple du format YAML utilisé pour définir un ensemble de données de détection :

# 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-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 dictionary
names:
  0: person

Le train et val indiquent les chemins d'accès aux répertoires contenant respectivement 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 indices des classes d'objets dans les fichiers du jeu de données YOLO .

(Facultatif) si les points sont symétriques, il faut utiliser flip_idx, comme le côté gauche-droit d'un humain ou d'un visage. Par exemple, si nous supposons cinq points clés du repère facial : [œ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] (il suffit d'échanger l'index gauche-droite, c'est-à-dire 0-1 et 3-4, et de ne pas modifier les autres, comme le nez dans cet exemple).

Utilisation

Exemple

from ultralytics import YOLO

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

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

Ensembles de données pris en charge

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

COCO-Pose

  • Description: COCO-Pose est un ensemble de donnĂ©es Ă  grande Ă©chelle de dĂ©tection d'objets, de segmentation et d'estimation de la pose. Il s'agit d'un sous-ensemble de l'ensemble de donnĂ©es populaire COCO qui se concentre sur l'estimation de la pose humaine. COCO-Pose comprend plusieurs points clĂ©s pour chaque instance humaine.
  • Format de l'Ă©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 dont le nez, les yeux, les oreilles, les Ă©paules, les coudes, les poignets, les hanches, les genoux et les chevilles.
  • Utilisation: Convient Ă  l'entraĂ®nement des modèles d'estimation de la pose humaine.
  • Notes supplĂ©mentaires: L'ensemble de donnĂ©es est riche et diversifiĂ©, il contient plus de 200k images Ă©tiquetĂ©es.
  • En savoir plus sur COCO-Pose

COCO8-Pose

  • Description: Ultralytics COCO8-Pose est un ensemble 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 de l'Ă©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 dont 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 les 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 sens et les vĂ©rifications de l'IC.
  • En savoir plus sur COCO8-Pose

Pose du tigre

  • Description: Ultralytics Cet ensemble de donnĂ©es sur la pose des animaux comprend 263 images provenant d'une vidĂ©o YouTube, avec 210 images allouĂ©es pour l'entraĂ®nement et 53 pour la validation.
  • Format de l'Ă©tiquette: Identique au format Ultralytics YOLO dĂ©crit ci-dessus, avec 12 points clĂ©s pour la pose de l'animal et aucune dimension visible.
  • Nombre de classes: 1 (Tigre).
  • Points clĂ©s: 12 points clĂ©s.
  • Utilisation: IdĂ©al pour les poses d'animaux ou toute autre pose qui n'est pas basĂ©e sur l'humain.
  • Plus d'informations sur Tiger-Pose

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 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 des classes dans le fichier de configuration YAML.

Outil de conversion

Ultralytics fournit un outil de conversion pratique pour convertir les étiquettes du format de jeu de données populaire COCO 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 autre jeu de données au format COCO au format Ultralytics YOLO . L'outil de use_keypoints spécifie s'il faut inclure les points clés (pour l'estimation de la pose) dans les étiquettes converties.

FAQ

Quel est le format Ultralytics YOLO pour l'estimation de la pose ?

Le format Ultralytics YOLO pour les ensembles de données d'estimation de la 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 d'objets
  • CoordonnĂ©es du centre de l'objet (normalisĂ©es x et y)
  • Largeur et hauteur de l'objet (normalisĂ©es)
  • CoordonnĂ©es du point clĂ© de l'objet (pxn et pyn normalisĂ©s)

Pour les poses en 2D, les points clés comprennent les coordonnées des pixels. Pour les poses en 3D, chaque point clé possède également un indicateur de visibilité. Pour plus de détails, voir Ultralytics YOLO format.

Comment utiliser l'ensemble de données COCO-Pose avec Ultralytics YOLO ?

Pour utiliser l'ensemble 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 :

```python
from ultralytics import YOLO

model = YOLO("yolov8n-pose.pt")  # load pretrained model
results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)
```

For more information, visit [COCO-Pose](coco.md) and [train](../../modes/train.md) sections.

Comment puis-je ajouter mon propre jeu de données pour l'estimation de la 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 d'accès aux jeux de données, le nombre de classes et les noms des classes. 3. Utilise le fichier de configuration pour entraîner ton modèle :

```python
from ultralytics import YOLO

model = YOLO("yolov8n-pose.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
```

For complete steps, check the [Adding your own dataset](#adding-your-own-dataset) section.

À quoi sert le fichier YAML du jeu de données dans Ultralytics YOLO ?

Le fichier YAML dataset dans Ultralytics YOLO définit le jeu de données et la configuration du modèle pour l'entraînement. Il spécifie les chemins d'accès aux 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é permet de rationaliser la gestion des ensembles de données et la formation des modèles. Voici un exemple de format YAML :

path: ../datasets/coco8-pose
train: images/train
val: images/val
names:
  0: person

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

Comment puis-je convertir les étiquettes du jeu de données COCO au format Ultralytics YOLO pour l'estimation de la pose ?

Ultralytics fournit un outil de conversion pour convertir les étiquettes des jeux de données COCO au format YOLO , y compris 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 façon transparente les jeux de données COCO dans les projets YOLO . Pour plus de détails, voir la section Outil de conversion.



Créé le 2023-11-12, Mis à jour le 2024-07-04
Auteurs : glenn-jocher (9)

Commentaires