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

Предобученные модели COCO-Pose
| Модель | размер (пиксели) | mAPpose 50-95(e2e) | mAPpose 50(e2e) | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (М) | FLOPs (Б) |
|---|---|---|---|---|---|---|---|
| YOLO26n-pose | 640 | 57.2 | 83.3 | 40.3 ± 0.5 | 1.8 ± 0.0 | 2.9 | 7.5 |
| YOLO26s-pose | 640 | 63.0 | 86.6 | 85.3 ± 0.9 | 2.7 ± 0.0 | 10.4 | 23.9 |
| YOLO26m-pose | 640 | 68.8 | 89.6 | 218.0 ± 1.5 | 5.0 ± 0.1 | 21.5 | 73.1 |
| YOLO26l-pose | 640 | 70.4 | 90.5 | 275.4 ± 2.4 | 6.5 ± 0.1 | 25.9 | 91.3 |
| YOLO26x-pose | 640 | 71.6 | 91.6 | 565.4 ± 3.0 | 12.2 ± 0.2 | 57.6 | 201.7 |
Основные характеристики
- COCO-Pose основан на наборе данных COCO Keypoints 2017, который содержит 200 тыс. изображений, размеченных ключевыми точками для задач оценки позы.
- Набор данных поддерживает 17 ключевых точек для фигур людей, что способствует детальной оценке позы.
- Как и COCO, он предоставляет стандартизированные метрики оценки, включая сходство ключевых точек объекта (OKS) для задач оценки позы, что делает его подходящим для сравнения производительности моделей.
Структура набора данных
Набор данных COCO-Pose разделен на три подмножества:
- Train2017: Это подмножество содержит 56 599 изображений из набора данных COCO, аннотированных для обучения моделей оценки позы.
- Val2017: Это подмножество содержит 2 346 изображений, используемых для целей валидации во время обучения модели.
- 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 🚀 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
# Keypoint names per class
kpt_names:
0:
- nose
- left_eye
- right_eye
- left_ear
- right_ear
- left_shoulder
- right_shoulder
- left_elbow
- right_elbow
- left_wrist
- right_wrist
- left_hip
- right_hip
- left_knee
- right_knee
- left_ankle
- right_ankle
# Download script/URL (optional)
download: |
from pathlib import Path
from ultralytics.utils import ASSETS_URL
from ultralytics.utils.downloads import download
# Download labels
dir = Path(yaml["path"]) # dataset root dir
urls = [f"{ASSETS_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)Использование
Чтобы обучить модель YOLO26n-pose на наборе данных COCO-Pose в течение 100 эпох с размером изображения 640, ты можешь использовать следующие фрагменты кода. Полный список доступных аргументов смотри на странице обучения модели.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="coco-pose.yaml", 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.
Часто задаваемые вопросы (FAQ)
Что такое набор данных COCO-Pose и как он используется с Ultralytics YOLO для оценки позы?
Набор данных COCO-Pose — это специализированная версия набора данных COCO (Common Objects in Context), предназначенная для задач оценки позы. Он основан на изображениях и аннотациях COCO Keypoints 2017, что позволяет обучать модели, такие как Ultralytics YOLO, для детальной оценки позы. Например, ты можешь использовать набор данных COCO-Pose для обучения модели YOLO26n-pose, загрузив предобученную модель и обучив ее с помощью YAML-конфигурации. Примеры обучения смотри в документации по обучению.
Как мне обучить модель YOLO26 на наборе данных COCO-Pose?
Обучение модели YOLO26 на наборе данных COCO-Pose может быть выполнено с помощью Python или команд CLI. Например, чтобы обучить модель YOLO26n-pose в течение 100 эпох с размером изображения 640, ты можешь выполнить следующие шаги:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)Для получения более подробной информации о процессе обучения и доступных аргументах ознакомься со страницей обучения.
Какие метрики предоставляет набор данных COCO-Pose для оценки производительности модели?
Набор данных COCO-Pose предоставляет несколько стандартизированных метрик оценки для задач оценки позы, аналогично оригинальному набору данных COCO. Основные метрики включают сходство ключевых точек объекта (OKS), которое оценивает точность предсказанных ключевых точек по сравнению с эталонными аннотациями. Эти метрики позволяют проводить тщательное сравнение производительности различных моделей. Например, у предобученных моделей COCO-Pose, таких как YOLO26n-pose, YOLO26s-pose и других, есть специфические метрики производительности, указанные в документации, такие как mAPpose50-95 и mAPpose50.
Как структурирован и разделен набор данных COCO-Pose?
Набор данных COCO-Pose разделен на три подмножества:
- Train2017: Содержит 56 599 изображений COCO, аннотированных для обучения моделей оценки позы.
- Val2017: 2 346 изображений для целей валидации во время обучения модели.
- Test2017: Изображения, используемые для тестирования и бенчмаркинга обученных моделей. Аннотации с эталонными данными для этого подмножества не являются общедоступными; результаты отправляются на сервер оценки COCO для оценки производительности.
Эти подмножества помогают эффективно организовать этапы обучения, валидации и тестирования. Для получения подробной информации о конфигурации изучи файл coco-pose.yaml, доступный на GitHub.
Каковы ключевые особенности и области применения набора данных COCO-Pose?
Набор данных COCO-Pose расширяет аннотации COCO Keypoints 2017, включая 17 ключевых точек для фигур людей, что позволяет выполнять детальную оценку позы. Стандартизированные метрики оценки (например, OKS) облегчают сравнение между различными моделями. Области применения набора данных COCO-Pose охватывают различные направления, такие как спортивная аналитика, здравоохранение и взаимодействие человека с компьютером, везде, где требуется детальная оценка позы фигур людей. Для практического использования применение предобученных моделей, подобных тем, что представлены в документации (например, YOLO26n-pose), может значительно упростить процесс (Ключевые особенности).
Если ты используешь набор данных COCO-Pose в своих исследованиях или разработках, пожалуйста, процитируй статью с помощью следующей записи BibTeX.