Обзор наборов данных для оценки позы
Поддерживаемые форматы наборов данных
Ultralytics YOLO формат
Формат меток набора данных, используемых для обучения моделей позы YOLO , следующий:
- Один текстовый файл на изображение: Каждое изображение в наборе данных имеет соответствующий текстовый файл с тем же именем, что и файл изображения, и расширением ".txt".
- По одной строке на объект: Каждая строка в текстовом файле соответствует одному объекту на изображении.
- Информация об объекте в каждой строке: Каждая строка содержит следующую информацию об экземпляре объекта:
- Индекс класса объекта: Целое число, представляющее класс объекта (например, 0 для человека, 1 для автомобиля и т.д.).
- Координаты центра объекта: Координаты x и y центра объекта, нормированные на значения от 0 до 1.
- Ширина и высота объекта: Ширина и высота объекта, нормированные на значения от 0 до 1.
- Координаты ключевых точек объекта: Ключевые точки объекта, нормированные на значения от 0 до 1.
Вот пример формата метки для задачи оценки позы:
Формат с Dim = 2
Формат с Dim = 3
<class-index> <x> <y> <width> <height> <px1> <py1> <p1-visibility> <px2> <py2> <p2-visibility> <pxn> <pyn> <p2-visibility>
В этом формате, <class-index>
это индекс класса для данного объекта,<x> <y> <width> <height>
координаты ограничительная рамка, и <px1> <py1> <px2> <py2> ... <pxn> <pyn>
пиксельные координаты ключевых точек. Координаты разделены пробелами.
Набор данных в формате YAML
Фреймворк Ultralytics использует формат файла YAML для определения набора данных и конфигурации модели для обучения моделей обнаружения. Ниже приведен пример формата YAML, используемого для определения набора данных обнаружения:
# 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/coco8-pose # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)
# 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 dictionary
names:
0: person
Сайт train
и val
поля указывают пути к каталогам, содержащим обучающие и проверочные изображения соответственно.
names
представляет собой словарь имен классов. Порядок имен должен соответствовать порядку индексов классов объектов в файлах набора данных YOLO .
(Необязательно) Если точки симметричны, то нужно перевернуть_idx, например, левую и правую стороны человека или лица. Например, если мы предполагаем пять ключевых точек лицевого ориентира: [левый глаз, правый глаз, нос, левый рот, правый рот], и исходный индекс [0, 1, 2, 3, 4], то flip_idx будет [1, 0, 2, 4, 3] (просто поменяйте местами лево-правый индекс, т. е. 0-1 и 3-4, и не изменяйте другие, например нос в этом примере).
Использование
Пример
Поддерживаемые наборы данных
В этом разделе описаны наборы данных, которые совместимы с форматом Ultralytics YOLO и могут быть использованы для обучения моделей оценки позы:
COCO-Pose
- Описание: COCO-Pose - это крупномасштабный набор данных для обнаружения, сегментации и оценки положения объектов. Он является подмножеством популярного набора данных COCO и сосредоточен на оценке позы человека. COCO-Pose включает в себя несколько ключевых точек для каждого экземпляра человека.
- Формат этикетки: Тот же формат, что и Ultralytics YOLO , как описано выше, с ключевыми точками для человеческих поз.
- Количество классов: 1 (человек).
- Ключевые точки: 17 ключевых точек, включая нос, глаза, уши, плечи, локти, запястья, бедра, колени и лодыжки.
- Применение: Подходит для обучения моделей оценки человеческой позы.
- Дополнительные примечания: Набор данных богат и разнообразен, содержит более 200 тыс. помеченных изображений.
- Подробнее о COCO-Pose
COCO8-Pose
- Описание: Ultralytics COCO8-Pose - это небольшой, но универсальный набор данных для определения позы, состоящий из первых 8 изображений из набора COCO train 2017, 4 для обучения и 4 для проверки.
- Формат этикетки: Тот же формат, что и Ultralytics YOLO , как описано выше, с ключевыми точками для человеческих поз.
- Количество классов: 1 (человек).
- Ключевые точки: 17 ключевых точек, включая нос, глаза, уши, плечи, локти, запястья, бедра, колени и лодыжки.
- Применение: Подходит для тестирования и отладки моделей обнаружения объектов, а также для экспериментов с новыми подходами к обнаружению.
- Дополнительные примечания: COCO8-Pose идеально подходит для проверки на вменяемость и проверки CI.
- Подробнее о COCO8-Pose
Поза тигра
- Описание: Ultralytics Этот набор данных по позе животных состоит из 263 изображений, полученных из видеоролика YouTube, из которых 210 изображений были выделены для обучения и 53 - для проверки.
- Формат этикетки: Такой же, как и формат Ultralytics YOLO , описанный выше, с 12 ключевыми точками для позы животного и без видимых размеров.
- Количество классов: 1 (Тигр).
- Ключевые точки: 12 ключевых точек.
- Применение: Отлично подходит для позирования животных и любых других поз, не связанных с человеком.
- Подробнее о Поза тигра
Ключевые моменты
- Описание: Набор данных по позированию ключевых точек руки включает в себя около 26 тысяч изображений, из которых 18776 изображений были выделены для обучения и 7992 - для проверки.
- Формат этикетки: Такой же, как и формат Ultralytics YOLO , описанный выше, но с 21 ключевой точкой для человеческой руки и видимого размера.
- Количество классов: 1 (Рука).
- Ключевые точки: 21 ключевая точка.
- Применение: Отлично подходит для оценки позы человеческой руки.
- Подробнее о Ключевых моментах руки
Поза собаки
- Описание: Набор данных Dog Pose содержит около 6 000 изображений, предоставляя разнообразный и обширный ресурс для обучения и проверки моделей оценки позы собаки.
- Формат этикетки: Следуйте формату Ultralytics YOLO с аннотациями по нескольким ключевым точкам, характерным для анатомии собак.
- Количество классов: 1 (собака).
- Ключевые точки: Включает в себя 24 ключевых точки, предназначенных для поз собаки, таких как конечности, суставы и положение головы.
- Применение: Идеально подходит для обучения моделей, оценивающих позы собак в различных сценариях, от исследований до реального применения.
- Подробнее о Поза собаки
Добавление собственного набора данных
Если у вас есть собственный набор данных и вы хотите использовать его для обучения моделей оценки позы в формате Ultralytics YOLO , убедитесь, что он соответствует формату, указанному выше в разделе "ФорматUltralytics YOLO ". Преобразуйте свои аннотации в нужный формат и укажите пути, количество классов и имена классов в конфигурационном файле YAML.
Инструмент преобразования
Ultralytics Удобный инструмент для конвертирования меток из популярного формата наборов данных COCO в формат YOLO :
Пример
Этот инструмент конвертирования можно использовать для преобразования набора данных COCO или любого другого набора данных в формате COCO в формат Ultralytics YOLO . Формат use_keypoints
Параметр указывает, включать ли ключевые точки (для оценки позы) в преобразованные метки.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
Что представляет собой формат Ultralytics YOLO для оценки позы?
Формат Ultralytics YOLO для наборов данных оценки позы предполагает маркировку каждого изображения соответствующим текстовым файлом. В каждой строке текстового файла хранится информация об объекте:
- Индекс класса объекта
- Координаты центра объекта (нормализованные x и y)
- Ширина и высота объекта (нормализованные)
- Координаты ключевых точек объекта (нормализованные pxn и pyn)
Для 2D-позиций ключевые точки включают координаты пикселей. Для 3D каждая ключевая точка также имеет флаг видимости. Дополнительные сведения см. в разделе Ultralytics YOLO .
Как использовать набор данных COCO-Pose с Ultralytics YOLO ?
Чтобы использовать набор данных COCO-Pose с Ultralytics YOLO :
- Загрузите набор данных и подготовьте файлы меток в формате YOLO .
- Создайте файл конфигурации YAML, указав пути к тренировочным и проверочным изображениям, форму ключевых точек и имена классов.
-
Используйте файл конфигурации для обучения:
from ultralytics import YOLO model = YOLO("yolo11n-pose.pt") # load pretrained model results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)
Для получения дополнительной информации посетите разделы COCO-Pose и train.
Как добавить собственный набор данных для оценки позы в Ultralytics YOLO ?
Чтобы добавить свой набор данных:
- Конвертируйте ваши аннотации в формат Ultralytics YOLO .
- Создайте конфигурационный файл YAML, указав пути к набору данных, количество классов и имена классов.
-
Используйте файл конфигурации для обучения модели:
from ultralytics import YOLO model = YOLO("yolo11n-pose.pt") results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
Полные шаги описаны в разделе "Добавление собственного набора данных".
Каково назначение YAML-файла набора данных в Ultralytics YOLO ?
YAML-файл набора данных в Ultralytics YOLO определяет набор данных и конфигурацию модели для обучения. В нем указываются пути к обучающим, проверочным и тестовым изображениям, формы ключевых точек, имена классов и другие параметры конфигурации. Такой структурированный формат помогает упростить управление набором данных и обучение модели. Вот пример формата YAML:
Подробнее о создании конфигурационных файлов YAML читайте в формате Dataset YAML.
Как преобразовать метки набора данных COCO в формат Ultralytics YOLO для оценки позы?
Ultralytics предоставляет инструмент для преобразования меток наборов данных COCO в формат YOLO , включая информацию о ключевых точках:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/", use_keypoints=True)
Этот инструмент помогает легко интегрировать наборы данных COCO в проекты YOLO . Подробности см. в разделе Инструмент преобразования.