Vai al contenuto

Set di dati COCO-Pose

Il set di dati COCO-Pose è una versione specializzata del set di dati COCO (Common Objects in Context), progettato per compiti di stima della posa. Sfrutta le immagini e le etichette COCO Keypoints 2017 per consentire l'addestramento di modelli come YOLO per la stima della posa.

Immagine campione della posa

Modelli preaddestrati COCO-Pose

Modello dimensione
(pixel)
mAPpose
50-95
mAPpose
50
Velocità
CPU ONNX
(ms)
Velocità
A100 TensorRT
(ms)
params
(M)
FLOP
(B)
YOLOv8n-possesso 640 50.4 80.1 131.8 1.18 3.3 9.2
YOLOv8s-possesso 640 60.0 86.2 233.2 1.42 11.6 30.2
YOLOv8m-possesso 640 65.0 88.8 456.3 2.00 26.4 81.0
YOLOv8l-possesso 640 67.6 90.0 784.5 2.59 44.4 168.6
YOLOv8x-possesso 640 69.2 90.2 1607.1 3.73 69.4 263.2
YOLOv8x-pose-p6 1280 71.6 91.2 4088.7 10.04 99.1 1066.4

Caratteristiche principali

  • COCO-Pose si basa sul dataset COCO Keypoints 2017 che contiene 200K immagini etichettate con punti chiave per la stima della posa.
  • Il set di dati supporta 17 punti chiave per le figure umane, facilitando la stima dettagliata della posa.
  • Come COCO, fornisce metriche di valutazione standardizzate, tra cui l'Object Keypoint Similarity (OKS) per le attività di stima della posa, rendendolo adatto a confrontare le prestazioni dei modelli.

Struttura del set di dati

Il set di dati COCO-Pose è suddiviso in tre sottoinsiemi:

  1. Train2017: Questo sottoinsieme contiene una parte delle 118K immagini del set di dati COCO, annotate per l'addestramento dei modelli di stima della posa.
  2. Val2017: Questo sottoinsieme contiene una selezione di immagini utilizzate per la convalida durante la formazione del modello.
  3. Test2017: Questo sottoinsieme è composto da immagini utilizzate per testare e confrontare i modelli addestrati. Le annotazioni della verità a terra per questo sottoinsieme non sono disponibili pubblicamente e i risultati vengono inviati al server di valutazione COCO per la valutazione delle prestazioni.

Applicazioni

Il dataset COCO-Pose è utilizzato specificamente per l'addestramento e la valutazione di modelli di deep learning nel rilevamento dei punti chiave e nella stima della posa, come OpenPose. L'ampio numero di immagini annotate e le metriche di valutazione standardizzate rendono il dataset una risorsa essenziale per i ricercatori e i professionisti della computer vision che si occupano di stima della posa.

Set di dati YAML

Un file YAML (Yet Another Markup Language) viene utilizzato per definire la configurazione del dataset. Contiene informazioni sui percorsi del dataset, sulle classi e altre informazioni rilevanti. Nel caso del set di dati COCO-Pose, il file coco-pose.yaml Il file viene mantenuto all'indirizzo https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml.

ultralytics/cfg/datasets/coco-pose.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# COCO 2017 dataset https://cocodataset.org by Microsoft
# Documentation: https://docs.ultralytics.com/datasets/pose/coco/
# Example usage: yolo train data=coco-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco-pose  ← downloads here (20.1 GB)

# 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/coco-pose # dataset root dir
train: train2017.txt # train images (relative to 'path') 118287 images
val: val2017.txt # val images (relative to 'path') 5000 images
test: test-dev2017.txt # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794

# 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

# Download script/URL (optional)
download: |
  from ultralytics.utils.downloads import download
  from pathlib import Path

  # Download labels
  dir = Path(yaml['path'])  # dataset root dir
  url = 'https://github.com/ultralytics/yolov5/releases/download/v1.0/'
  urls = [url + 'coco2017labels-pose.zip']  # labels
  download(urls, dir=dir.parent)
  # Download data
  urls = ['http://images.cocodataset.org/zips/train2017.zip',  # 19G, 118k images
          'http://images.cocodataset.org/zips/val2017.zip',  # 1G, 5k images
          'http://images.cocodataset.org/zips/test2017.zip']  # 7G, 41k images (optional)
  download(urls, dir=dir / 'images', threads=3)

Utilizzo

Per addestrare un modello YOLOv8n-pose sul dataset COCO-Pose per 100 epoch con un'immagine di dimensioni 640, puoi utilizzare i seguenti frammenti di codice. Per un elenco completo degli argomenti disponibili, consulta la pagina di addestramento del modello.

Esempio di treno

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='coco-pose.yaml', epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco-pose.yaml model=yolov8n.pt epochs=100 imgsz=640

Immagini di esempio e annotazioni

Il set di dati COCO-Pose contiene una serie di immagini con figure umane annotate con punti chiave. Ecco alcuni esempi di immagini tratte dal dataset, insieme alle relative annotazioni:

Immagine campione del set di dati

  • Immagine a mosaico: Questa immagine mostra un lotto di formazione composto da immagini del dataset mosaicate. Il mosaico è una tecnica utilizzata durante l'addestramento che combina più immagini in un'unica immagine per aumentare la varietà di oggetti e scene all'interno di ogni gruppo di addestramento. Questo aiuta a migliorare la capacità del modello di generalizzarsi a oggetti di dimensioni, rapporti di aspetto e contesti diversi.

L'esempio mostra la varietà e la complessità delle immagini del dataset COCO-Pose e i vantaggi dell'utilizzo della mosaicatura durante il processo di formazione.

Citazioni e ringraziamenti

Se utilizzi il set di dati COCO-Pose nel tuo lavoro di ricerca o sviluppo, cita il seguente documento:

@misc{lin2015microsoft,
      title={Microsoft COCO: Common Objects in Context},
      author={Tsung-Yi Lin and Michael Maire and Serge Belongie and Lubomir Bourdev and Ross Girshick and James Hays and Pietro Perona and Deva Ramanan and C. Lawrence Zitnick and Piotr Dollár},
      year={2015},
      eprint={1405.0312},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

Desideriamo ringraziare il Consorzio COCO per aver creato e mantenuto questa preziosa risorsa per la comunità della computer vision. Per maggiori informazioni sul dataset COCO-Pose e sui suoi creatori, visita il sito web del dataset COCO.



Creato 2023-11-12, Aggiornato 2024-04-17
Autori: glenn-jocher (4), RizwanMunawar (1), Laughing-q (1)

Commenti