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 d'étiquetage de l'ensemble de données utilisé pour la formation des modèles de pose YOLO est le suivant :
- Un fichier texte par image : Chaque image de l'ensemble de données a un fichier texte correspondant portant le même nom que le fichier image et l'extension ".txt".
- Une ligne par objet : Chaque ligne du fichier texte correspond Ă une instance d'objet dans l'image.
- 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 : 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
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 boîte de délimitationet <px1> <py1> <px2> <py2> ... <pxn> <pyn>
sont les coordonnées en 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
précisent les chemins d'accès aux répertoires contenant les images d'apprentissage et de validation, respectivement.
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
Ensembles de données pris en charge
Cette section présente les ensembles de données 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 pour la détection d'objets, la segmentation et l'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: Le jeu de données est riche et diversifié, contenant plus de 200 000 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 contrôles de cohérence et les contrôles d'intégrité.
- En savoir plus sur COCO8-Pose
Pose du tigre
- Description: Ultralytics Cet ensemble de données sur les poses d'animaux comprend 263 images provenant d'une vidéo YouTube, dont 210 images pour la formation 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 humaine.
- Plus d'informations sur Tiger-Pose
Points clés de la main
- Description: L'ensemble de données sur la pose des points clés de la main comprend près de 26 000 images, dont 18 776 images pour la formation et 7 992 pour la validation.
- Format de l'étiquette: Identique au format Ultralytics YOLO décrit ci-dessus, mais avec 21 points clés pour la main humaine et la dimension visible.
- 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.
- En savoir plus sur les points clés de la main
La posture du chien
- Description: L'ensemble de données Dog Pose contient environ 6 000 images, fournissant une ressource diversifiée et étendue pour l'entraînement et la validation des modèles d'estimation de la pose du chien.
- Format de l'étiquette: Le format de l'étiquette suit celui du site Ultralytics YOLO , avec des annotations pour plusieurs points clés spécifiques à l'anatomie du chien.
- Nombre de classes: 1 (chien).
- Points clés: Comprend 24 points clés adaptés aux poses du chien, tels que la position des membres, des articulations et de la tête.
- Utilisation: Idéal pour la formation de modèles permettant d'estimer la position des chiens dans divers scénarios, de la recherche aux applications du monde réel.
- Plus d'informations sur Dog-Pose
Ajouter votre propre jeu de données
Si vous disposez de votre propre ensemble de données et souhaitez l'utiliser pour entraîner des modèles d'estimation de la pose avec le format Ultralytics YOLO , assurez-vous qu'il respecte le format spécifié ci-dessus sous "Ultralytics YOLO format". Convertissez vos annotations au format requis et spécifiez 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 COCO au format YOLO :
Exemple
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 conversion 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 contient 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 des points clés 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 :
- Téléchargez le jeu de données et préparez vos fichiers d'étiquettes au format YOLO .
- Créer un fichier de configuration YAML spécifiant les chemins d'accès aux images d'entraînement et de validation, la forme des points clés et les noms des classes.
-
Utiliser le fichier de configuration pour la formation :
from ultralytics import YOLO model = YOLO("yolo11n-pose.pt") # load pretrained model results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)
Pour plus d'informations, consultez les sections COCO-Pose et train.
Comment puis-je ajouter mon propre jeu de données pour l'estimation de la pose dans Ultralytics YOLO ?
Pour ajouter votre jeu de données :
- Convertissez vos annotations au format Ultralytics YOLO .
- Créer 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.
-
Utilisez le fichier de configuration pour entraîner votre modèle :
from ultralytics import YOLO model = YOLO("yolo11n-pose.pt") results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
Pour connaître les étapes complètes, consultez la section Ajouter votre propre jeu de données.
Quel est l'objectif du fichier YAML de l'ensemble de données dans Ultralytics YOLO ?
Le fichier YAML dataset sur 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 :
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 manière transparente les jeux de données COCO dans les projets YOLO . Pour plus de détails, voir la section Outil de conversion.