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/assets/releases/download/v0.0.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-pose.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.

DOMANDE FREQUENTI

Cos'è il set di dati COCO-Pose e come viene utilizzato con Ultralytics YOLO per la stima della posa?

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. Si basa sulle immagini e sulle annotazioni di COCO Keypoints 2017, consentendo l'addestramento di modelli come Ultralytics YOLO per una stima dettagliata della posa. Ad esempio, puoi usare il dataset COCO-Pose per addestrare un modello YOLOv8n pose caricando un modello pre-addestrato e addestrandolo con una configurazione YAML. Per esempi di addestramento, consulta la documentazione sull'addestramento.

Come posso addestrare un modello YOLOv8 sul set di dati COCO-Pose?

L'addestramento di un modello YOLOv8 sul set di dati COCO-Pose può essere effettuato utilizzando i comandi Python o CLI . Ad esempio, per addestrare un modello YOLOv8n-pose per 100 epoch con un'immagine di 640, puoi seguire i passaggi seguenti:

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

Per maggiori dettagli sul processo di formazione e sugli argomenti disponibili, consulta la pagina della formazione.

Quali sono le diverse metriche fornite dal dataset COCO-Pose per valutare le prestazioni del modello?

Il set di dati COCO-Pose fornisce diverse metriche di valutazione standardizzate per le attività di stima della posa, simili al set di dati COCO originale. Tra le metriche principali c'è l'Object Keypoint Similarity (OKS), che valuta l'accuratezza dei punti chiave previsti rispetto alle annotazioni della verità a terra. Queste metriche consentono di confrontare in modo approfondito le prestazioni dei diversi modelli. Ad esempio, i modelli preaddestrati COCO-Pose come YOLOv8n-pose, YOLOv8s-pose e altri hanno delle metriche di performance specifiche elencate nella documentazione, come mAPpose50-95e mAPpose50.

Come è strutturato e suddiviso il dataset COCO-Pose?

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

  1. Train2017: Contiene una parte delle 118K immagini COCO, annotate per l'addestramento dei modelli di stima della posa.
  2. Val2017: Immagini selezionate per la convalida durante la formazione del modello.
  3. Test2017: Immagini utilizzate per testare e confrontare i modelli addestrati. Le annotazioni della verità di base per questo sottoinsieme non sono disponibili pubblicamente; i risultati vengono inviati al server di valutazione COCO per la valutazione delle prestazioni.

Questi sottoinsiemi aiutano a organizzare in modo efficace le fasi di formazione, validazione e test. Per i dettagli sulla configurazione, esplora la sezione coco-pose.yaml disponibile su GitHub.

Quali sono le caratteristiche e le applicazioni principali del set di dati COCO-Pose?

Il set di dati COCO-Pose estende le annotazioni di COCO Keypoints 2017 per includere 17 keypoints di figure umane, consentendo una stima dettagliata della posa. Metriche di valutazione standardizzate (ad esempio, OKS) facilitano il confronto tra diversi modelli. Le applicazioni del set di dati COCO-Pose spaziano in vari settori, come l'analisi dello sport, l'assistenza sanitaria e l'interazione uomo-macchina, in cui è richiesta una stima dettagliata della posa delle figure umane. Per l'uso pratico, l'utilizzo di modelli preaddestrati come quelli forniti nella documentazione (ad esempio, YOLOv8n-pose) può semplificare notevolmente il processo(Caratteristiche principali).

Se utilizzi il set di dati COCO-Pose nel tuo lavoro di ricerca o sviluppo, ti preghiamo di citare il documento con la seguente voce BibTeX.



Creato 2023-11-12, Aggiornato 2024-07-17
Autori: hnliu_2@stu.xidian.edu.cn (1), glenn-jocher (7), RizwanMunawar (1), Laughing-q (1)

Commenti