Перейти к содержанию

Набор данных COCO-Pose

Набор данных COCO-Pose — это специализированная версия набора данных COCO (Common Objects in Context), разработанная для задач оценки позы. Он использует изображения и метки COCO Keypoints 2017, чтобы обеспечить обучение моделей, таких как YOLO, для задач оценки позы.

Пример изображения позы

Предварительно обученные модели COCO-Pose

Модель размер
(пиксели)
mAPpose
50-95
mAPpose
50
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLO11n-pose 640 50.0 81.0 52.4 ± 0.5 1.7 ± 0.0 2.9 7.6
YOLO11s-pose 640 58.9 86.3 90.5 ± 0.6 2.6 ± 0.0 9.9 23.2
YOLO11m-pose 640 64.9 89.4 187.3 ± 0.8 4.9 ± 0.1 20.9 71.7
YOLO11l-pose 640 66.1 89.9 247.7 ± 1.1 6.4 ± 0.1 26.2 90.7
YOLO11x-pose 640 69.5 91.1 488.0 ± 13.9 12.1 ± 0.2 58.8 203.3

Основные характеристики

  • COCO-Pose основан на наборе данных COCO Keypoints 2017, который содержит 200 тысяч изображений, размеченных ключевыми точками для задач оценки позы.
  • Набор данных поддерживает 17 ключевых точек для человеческих фигур, что облегчает детальную оценку позы.
  • Как и COCO, он предоставляет стандартизированные метрики оценки, включая Object Keypoint Similarity (OKS) для задач оценки позы, что делает его подходящим для сравнения производительности моделей.

Структура набора данных

Датасет COCO-Pose разделен на три подмножества:

  1. Train2017: Этот поднабор содержит 56599 изображений из набора данных COCO, аннотированных для обучения моделей оценки позы.
  2. Val2017: Этот поднабор содержит 2346 изображений, используемых для целей валидации во время обучения модели.
  3. Test2017: Этот поднабор состоит из изображений, используемых для тестирования и оценки обученных моделей. Ground truth аннотации для этого подмножества общедоступны, и результаты отправляются на сервер оценки COCO для оценки производительности.

Приложения

Датасет COCO-Pose специально используется для обучения и оценки моделей глубокого обучения в задачах обнаружения ключевых точек и оценки позы, таких как OpenPose. Большое количество аннотированных изображений и стандартизированные метрики оценки делают этот датасет важным ресурсом для исследователей и практиков в области компьютерного зрения, занимающихся оценкой позы.

YAML-файл набора данных

YAML-файл (Yet Another Markup Language) используется для определения конфигурации набора данных. Он содержит информацию о путях к набору данных, классах и другую важную информацию. В случае набора данных COCO-Pose, coco-pose.yaml файл поддерживается по адресу https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml.

ultralytics/cfg/datasets/coco-pose.yaml

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

# COCO 2017 Keypoints 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: coco-pose # dataset root dir
train: train2017.txt # train images (relative to 'path') 56599 images
val: val2017.txt # val images (relative to 'path') 2346 images
test: test-dev2017.txt # 20288 of 40670 images, submit to https://codalab.lisn.upsaclay.fr/competitions/7403

# 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 pathlib import Path

  from ultralytics.utils.downloads import download

  # Download labels
  dir = Path(yaml["path"])  # dataset root dir
  url = "https://github.com/ultralytics/assets/releases/download/v0.0.0/"
  urls = [f"{url}coco2017labels-pose.zip"]
  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)

Использование

Чтобы обучить модель YOLO11n-pose на наборе данных COCO-Pose в течение 100 эпох с размером изображения 640, вы можете использовать следующие фрагменты кода. Для получения полного списка доступных аргументов обратитесь к странице Training модели.

Пример обучения

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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 pose train data=coco-pose.yaml model=yolo11n-pose.pt epochs=100 imgsz=640

Примеры изображений и аннотации

Датасет COCO-Pose содержит разнообразный набор изображений с фигурами людей, аннотированных ключевыми точками. Вот несколько примеров изображений из датасета с соответствующими аннотациями:

Образец изображения набора данных

  • Скомпилированное изображение: Это изображение демонстрирует пакет обучения, состоящий из скомпилированных изображений набора данных. Компиляция — это метод, используемый во время обучения, который объединяет несколько изображений в одно изображение, чтобы увеличить разнообразие объектов и сцен в каждом пакете обучения. Это помогает улучшить способность модели обобщать различные размеры объектов, соотношения сторон и контексты.

Этот пример демонстрирует разнообразие и сложность изображений в наборе данных COCO-Pose и преимущества использования мозаики в процессе обучения.

Цитирование и благодарности

Если вы используете набор данных COCO-Pose в своих исследованиях или разработках, пожалуйста, сошлитесь на следующую статью:

@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}
}

Мы хотели бы выразить признательность консорциуму COCO за создание и поддержку этого ценного ресурса для сообщества компьютерного зрения. Для получения дополнительной информации о наборе данных COCO-Pose и его создателях посетите веб-сайт набора данных COCO.

Часто задаваемые вопросы

Что такое набор данных COCO-Pose и как он используется с Ultralytics YOLO для оценки позы?

Набор данных COCO-Pose — это специализированная версия набора данных COCO (Common Objects in Context), разработанная для задач оценки позы. Он основан на изображениях и аннотациях COCO Keypoints 2017, что позволяет обучать такие модели, как Ultralytics YOLO, для детальной оценки позы. Например, вы можете использовать набор данных COCO-Pose для обучения модели YOLO11n-pose, загрузив предварительно обученную модель и обучив ее с помощью конфигурации YAML. Примеры обучения см. в документации по Обучению.

Как я могу обучить модель YOLO11 на наборе данных COCO-Pose?

Обучение модели YOLO11 на наборе данных COCO-Pose можно выполнить с помощью команд Python или CLI. Например, чтобы обучить модель YOLO11n-pose в течение 100 эпох с размером изображения 640, вы можете выполнить следующие шаги:

Пример обучения

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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 pose train data=coco-pose.yaml model=yolo11n-pose.pt epochs=100 imgsz=640

Для получения более подробной информации о процессе обучения и доступных аргументах ознакомьтесь со страницей обучения.

Какие различные метрики предоставляет набор данных COCO-Pose для оценки производительности модели?

Датасет COCO-Pose предоставляет несколько стандартизированных метрик оценки для задач оценки позы, аналогичных исходному датасету COCO. Ключевые метрики включают Object Keypoint Similarity (OKS), которая оценивает точность предсказанных ключевых точек по сравнению с аннотациями ground truth. Эти метрики позволяют проводить тщательное сравнение производительности между различными моделями. Например, предварительно обученные модели COCO-Pose, такие как YOLO11n-pose, YOLO11s-pose и другие, имеют определенные метрики производительности, указанные в документации, такие как mAPpose50-95 и mAPpose50.

Как структурирован и разделен набор данных для COCO-Pose?

Датасет COCO-Pose разделен на три подмножества:

  1. Train2017: Содержит 56599 изображений COCO, аннотированных для обучения моделей оценки позы.
  2. Val2017: 2346 изображений для целей валидации во время обучения модели.
  3. Test2017: Изображения, используемые для тестирования и оценки обученных моделей. Ground truth аннотации для этого подмножества общедоступны; результаты отправляются на сервер оценки COCO для оценки производительности.

Эти подмножества помогают эффективно организовать этапы обучения, проверки и тестирования. Подробную информацию о конфигурации можно найти в разделе coco-pose.yaml файл, доступный на GitHub.

Каковы ключевые особенности и применения набора данных COCO-Pose?

Датасет COCO-Pose расширяет аннотации COCO Keypoints 2017, включая 17 ключевых точек для фигур людей, что позволяет проводить детальную оценку позы. Стандартизированные метрики оценки (например, OKS) облегчают сравнение различных моделей. Применение датасета COCO-Pose охватывает различные области, такие как спортивная аналитика, здравоохранение и человеко-компьютерное взаимодействие, везде, где требуется детальная оценка позы фигур людей. Для практического использования применение предварительно обученных моделей, таких как те, что представлены в документации (например, YOLO11n-pose), может значительно упростить процесс (Ключевые особенности).

Если вы используете набор данных COCO-Pose в своих исследованиях или разработках, пожалуйста, сошлитесь на статью со следующим BibTeX entry.



📅 Создано 1 год назад ✏️ Обновлено 8 месяцев назад

Комментарии