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

Обзор наборов данных для оценки позы

Поддерживаемые форматы наборов данных

Ultralytics YOLO формат

Формат меток набора данных, используемых для обучения моделей позы YOLO , следующий:

  1. Один текстовый файл на изображение: Каждое изображение в наборе данных имеет соответствующий текстовый файл с тем же именем, что и файл изображения, и расширением ".txt".
  2. По одной строке на объект: Каждая строка в текстовом файле соответствует одному объекту на изображении.
  3. Информация об объекте в каждой строке: Каждая строка содержит следующую информацию об экземпляре объекта:
    • Индекс класса объекта: Целое число, представляющее класс объекта (например, 0 для человека, 1 для автомобиля и т.д.).
    • Координаты центра объекта: Координаты x и y центра объекта, нормированные на значения от 0 до 1.
    • Ширина и высота объекта: Ширина и высота объекта, нормированные на значения от 0 до 1.
    • Координаты ключевых точек объекта: Ключевые точки объекта, нормированные на значения от 0 до 1.

Вот пример формата метки для задачи оценки позы:

Формат с Dim = 2

<class-index> <x> <y> <width> <height> <px1> <py1> <px2> <py2> ... <pxn> <pyn>

Формат с 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, и не изменяйте другие, например нос в этом примере).

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

Пример

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="coco8-pose.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo pose train data=coco8-pose.yaml model=yolo11n-pose.pt epochs=100 imgsz=640

Поддерживаемые наборы данных

В этом разделе описаны наборы данных, которые совместимы с форматом 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 :

Пример

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_keypoints=True)

Этот инструмент конвертирования можно использовать для преобразования набора данных 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 :

  1. Загрузите набор данных и подготовьте файлы меток в формате YOLO .
  2. Создайте файл конфигурации YAML, указав пути к тренировочным и проверочным изображениям, форму ключевых точек и имена классов.
  3. Используйте файл конфигурации для обучения:

    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 ?

Чтобы добавить свой набор данных:

  1. Конвертируйте ваши аннотации в формат Ultralytics YOLO .
  2. Создайте конфигурационный файл YAML, указав пути к набору данных, количество классов и имена классов.
  3. Используйте файл конфигурации для обучения модели:

    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:

path: ../datasets/coco8-pose
train: images/train
val: images/val
names:
    0: person

Подробнее о создании конфигурационных файлов 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 . Подробности см. в разделе Инструмент преобразования.

📅 Создано 1 год назад ✏️ Обновлено 5 дней назад

Комментарии