Обзор наборов данных для оценки позы
Поддерживаемые форматы наборов данных
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
The train
и val
поля указывают пути к директориям, содержащим тренировочные и проверочные изображения соответственно.
names
это словарь имен классов. Порядок названий должен соответствовать порядку индексов классов объектов в файлах набора данных YOLO .
(Необязательно) Если точки симметричны, то нужно сделать flip_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 тысяч помеченных изображений.
- Подробнее о КОКО-Позе
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 ключевых точек.
- Применение: Отлично подходит для поз животных или любых других поз, не связанных с человеком.
- Подробнее о Поза тигра
Добавление собственного набора данных
Если у тебя есть собственный набор данных и ты хочешь использовать его для обучения моделей оценки позы в формате Ultralytics YOLO , убедись, что он соответствует формату, указанному выше в разделе "ФорматUltralytics YOLO ". Преобразуй свои аннотации в нужный формат и укажи пути, количество классов и названия классов в конфигурационном файле YAML.
Инструмент для преобразования
Ultralytics предоставляет удобный инструмент для конвертации меток из популярного формата наборов данных COCO в формат YOLO :
Пример
Этот инструмент конвертации можно использовать для преобразования набора данных COCO или любого другого набора данных в формате COCO в формат Ultralytics YOLO . Формат use_keypoints
Параметр задает, включать ли ключевые точки (для оценки позы) в преобразованные метки.