Ultralytics YOLO27:

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

Набор данных COCO-Pose адаптирует COCO (общие объекты в контексте) для оценки позы: 58 945 изображений из COCO Keypoints 2017 размечены для 156 165 человек с использованием схемы из 17 ключевых точек. Это стандартный набор для обучения моделей ключевых точек и сравнения их производительности, например Ultralytics YOLO26, а подмножество из 8 изображений COCO8-Pose повторяет его формат для быстрых проверок работоспособности.

Оценка позы с помощью COCO и ключевых точек человека

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

Модельразмер
(пиксели)
mAPпоза
50-95(e2e)
mAPпоза
50(e2e)
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLO26n-pose64057.283.340.3 ± 0.51.8 ± 0.02.97.6
YOLO26s-pose64063.086.685.3 ± 0.92.7 ± 0.010.424.1
YOLO26m-pose64068.889.6218.0 ± 1.55.0 ± 0.121.573.3
YOLO26l-pose64070.490.5275.4 ± 2.46.5 ± 0.125.991.7
YOLO26x-pose64071.691.6565.4 ± 3.012.2 ± 0.257.6202.3

Основные особенности#

  • COCO-Pose основан на конкурсе COCO Keypoints 2017, в рамках которого размечено 1 710 498 отдельных ключевых точек для 156 165 человек.
  • Для разметки каждого человека используются 17 типов ключевых точек — нос, глаза, уши, плечи, локти, запястья, бёдра, колени и лодыжки. Данные хранятся в виде троек (x, y, visibility).
  • Как и COCO, этот набор данных предоставляет стандартизированные метрики оценки, включая сходство ключевых точек объекта (OKS) для задач оценки позы, что делает его подходящим для сравнения производительности моделей.
  • Размер загрузки: ~20.2 GB при первом использовании (train2017.zip + val2017.zip + разметка). Набор размером 7 GB test2017.zip не загружается автоматически, поскольку для этих изображений скрыта эталонная разметка, и они нужны только для отправки результатов в test-dev2017.

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

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

  1. Train2017: этот поднабор содержит 56 599 изображений из набора данных COCO, размеченных для обучения моделей оценки позы.
  2. Val2017: этот поднабор содержит 2 346 изображений, используемых для валидации во время обучения модели.
  3. Test-dev2017: поднабор из 20 288 изображений, выбранных из полного набора test2017, содержащего 40 670 изображений со скрытой эталонной разметкой. В YAML-файле набора данных эта часть связана с сервером оценки ключевых точек COCO test-dev.

При обучении на таком объёме данных особенно помогает платформа Ultralytics: она управляет вычислительными ресурсами, чтобы ты мог запускать и отслеживать эксперименты без необходимости самостоятельно настраивать GPU.

Применение#

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

Файл YAML набора данных#

Для определения конфигурации набора данных используется файл YAML. Он содержит сведения о путях к данным, классах и другие важные данные. Для набора данных 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.2 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 (test2017.zip excluded: ground truth is withheld, only used for the CodaLab test-dev split)
  urls = [
      "http://images.cocodataset.org/zips/train2017.zip",  # 19G, 118k images
      "http://images.cocodataset.org/zips/val2017.zip",  # 1G, 5k images
  ]
  download(urls, dir=dir / "images", threads=3)

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

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

Пример обучения
from ultralytics import YOLO

# Загрузить модель
model = YOLO("yolo26n-pose.pt")  # загрузить предварительно обученную модель (рекомендуется для обучения)

# Обучить модель
results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)

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

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

Мозаичный обучающий батч датасета COCO для оценки позы

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

Этот пример демонстрирует разнообразие и сложность изображений в датасете 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 предоставляет изображения и аннотации COCO Keypoints 2017, преобразованные в формат ключевых точек YOLO, с 17-точечной схемой для 58 945 изображений. Укажи его для любой модели Ultralytics YOLO для оценки позы через data=coco-pose.yaml, а на странице Обучение описаны все доступные для настройки аргументы.

  • Загрузи yolo26n-pose.pt и вызови model.train(data="coco-pose.yaml", epochs=100, imgsz=640) — полный код на Python и примеры команд CLI смотри выше в разделе Пример обучения, а полный список аргументов — на странице обучения.

  • Датасет COCO-Pose предоставляет несколько стандартизированных метрик оценки задач определения позы, аналогичных метрикам исходного датасета COCO. Ключевые метрики включают сходство ключевых точек объектов (OKS), которое оценивает точность предсказанных ключевых точек относительно эталонных аннотаций. Эти метрики позволяют тщательно сравнивать производительность разных моделей. Например, для предобученных моделей COCO-Pose, таких как YOLO26n-pose, YOLO26s-pose и других, в документации указаны отдельные метрики производительности, например mAPpose50-95 и mAPpose50.

  • COCO-Pose включает две размеченные выборки: 56 599 изображений train2017 и 2 346 изображений val2017. Для третьей выборки, test-dev2017 (20 288 из 40 670 изображений полной выборки test2017), эталонная разметка закрыта; YAML-файл датасета содержит ссылку на сервер оценки ключевых точек COCO test-dev. Точные пути к выборкам смотри в разделе Структура датасета или в файле coco-pose.yaml на GitHub.

  • COCO-Pose использует 17 типов ключевых точек человека и унаследованные от COCO стандартизированные метрики, включая сходство ключевых точек объектов (OKS), для сравнения моделей. Такое сочетание подходит для задач оценки позы человека в спорте, здравоохранении и системах взаимодействия человека с компьютером. Предобученные веса YOLO26-pose перечислены в разделе Предобученные модели COCO-Pose.

    Подробнее о моделях ключевых точек смотри в документации по задаче Оценка позы.

Комментарии