Безопасность корпоративного уровня: Соответствует ISO 27001 + SOC 2 Type I.

Link to this sectionОбзор наборов данных для оценки позы#

Link to this sectionПоддерживаемые форматы наборов данных#

Link to this sectionФормат Ultralytics YOLO#

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

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

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

Формат с 2D-ключевыми точками

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

Формат с видимостью ключевых точек (включает видимость для каждой точки)

<class-index> <x> <y> <width> <height> <px1> <py1> <p1-visibility> <px2> <py2> <p2-visibility> <pxn> <pyn> <pn-visibility>

В этом формате <class-index> — это индекс класса объекта, <x> <y> <width> <height> — это нормализованные координаты bounding box, а <px1> <py1> <px2> <py2> ... <pxn> <pyn> — это нормализованные координаты ключевых точек. Канал видимости является необязательным, но полезен для наборов данных, в которых аннотируется окклюзия.

Link to this sectionФормат YAML для набора данных#

Фреймворк Ultralytics использует формат файла YAML для определения конфигурации набора данных и модели при обучении моделей оценки позы. Вот пример формата YAML, используемого для определения набора данных позы:

ultralytics/cfg/datasets/coco8-pose.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/coco8-pose
# Example usage: yolo train data=coco8-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-pose ← downloads here (1 MB)

# 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: 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
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: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-pose.zip

Поля train, val и test указывают на изображения для обучения, валидации и тестирования. Каждое из них принимает директорию, список директорий или *.txt файл, содержащий по одному пути к изображению на каждой строке (пути, начинающиеся с ./, интерпретируются относительно *.txt файла). *.txt файл полезен для обучения на подмножестве директории, пропуска изображений без разметки или объединения изображений из нескольких источников в одну выборку.

Пути к изображениям в виде `*.txt` файла
path: datasets/coco8-pose # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
  0: person

names — это словарь имен классов. Порядок имен должен соответствовать порядку индексов классов объектов в файлах набора данных YOLO.

(Опционально) flip_idx отображает каждую ключевую точку на её зеркальное отражение, поэтому аугментация горизонтальным отражением сохраняет согласованность левого и правого на симметричных скелетах, таких как тело или лицо человека. Для пяти лицевых ориентиров, проиндексированных как [левый глаз, правый глаз, нос, левый угол рта, правый угол рта] = [0, 1, 2, 3, 4], flip_idx имеет вид [1, 0, 2, 4, 3]: пары лево-право 0-1 и 3-4 меняются местами, а нос сохраняет свой индекс.

(Опционально) kpt_oks_sigmas задает пользовательские сигмы для каждой ключевой точки OKS, используемые во время валидации, например [0.26, 0.25, 0.25, ...]. Длина списка должна быть равна количеству ключевых точек N из kpt_shape, и каждое значение должно быть положительным. Если параметр не указан, используются сигмы COCO для 17 ключевых точек, если kpt_shape: [17, 3], или равномерное значение 1/N в остальных случаях.

Link to this sectionИспользование#

Пример
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="coco8-pose.yaml", epochs=100, imgsz=640)

Link to this sectionПоддерживаемые наборы данных#

В этом разделе описаны наборы данных, совместимые с форматом Ultralytics YOLO и подходящие для обучения моделей оценки позы:

Link to this sectionCOCO-Pose#

  • Описание: COCO-Pose — это крупномасштабный набор данных для оценки позы человека, включающий изображения COCO 2017, на которых размечены люди с ключевыми точками.
  • Формат меток: Такой же, как формат Ultralytics YOLO, описанный выше, с ключевыми точками для поз человека.
  • Количество классов: 1 (человек).
  • Ключевые точки: 17 типов ключевых точек, включая нос, глаза, уши, плечи, локти, запястья, бедра, колени и лодыжки, каждая с измерением видимости.
  • Использование: Подходит для обучения моделей оценки позы человека.
  • Дополнительные примечания: Набор данных основан на соревновании COCO Keypoints 2017: 58 945 изображений, на которых размечено 156 165 человек.
  • Узнай больше о COCO-Pose

Link to this sectionCOCO8-Pose#

  • Описание: Ultralytics COCO8-Pose — это небольшой, но универсальный набор данных для оценки позы, состоящий из первых 8 изображений набора COCO train 2017: 4 для обучения и 4 для валидации.
  • Формат меток: Такой же, как формат Ultralytics YOLO, описанный выше, с ключевыми точками для поз человека.
  • Количество классов: 1 (человек).
  • Ключевые точки: 17 типов ключевых точек, включая нос, глаза, уши, плечи, локти, запястья, бедра, колени и лодыжки, каждая с измерением видимости.
  • Использование: Подходит для тестирования и отладки моделей оценки позы или для экспериментов с новыми подходами к обнаружению ключевых точек.
  • Дополнительные примечания: COCO8-Pose идеально подходит для быстрой проверки и CI-тестов.
  • Узнай больше о COCO8-Pose

Link to this sectionDog-Pose#

  • Описание: Набор данных Ultralytics Dog-Pose содержит 6773 обучающих и 1703 валидационных изображения для оценки ключевых точек собак.
  • Формат меток: Следует формату Ultralytics YOLO с аннотациями для нескольких ключевых точек, специфичных для анатомии собаки.
  • Количество классов: 1 (собака).
  • Ключевые точки: 24 ключевые точки, каждая с измерением видимости, адаптированные для поз собак, таких как конечности, суставы и положение головы.
  • Использование: Идеально подходит для обучения моделей оценки позы собак в различных сценариях, от исследований до реальных приложений.
  • Дополнительные примечания: Исходные изображения взяты из Stanford Dogs Dataset.
  • Узнай больше о Dog-Pose

Link to this sectionHand Keypoints#

  • Описание: Набор данных Ultralytics Hand Keypoints содержит 26 768 изображений, из которых 18 776 выделено для обучения и 7 992 для валидации.
  • Формат меток: Такой же, как формат Ultralytics YOLO, описанный выше, но с 21 ключевой точкой для человеческой руки и параметром видимости.
  • Количество классов: 1 (рука).
  • Ключевые точки: 21 ключевая точка.
  • Использование: Отлично подходит для оценки позы человеческой руки и распознавания жестов.
  • Дополнительные примечания: Аннотации ключевых точек созданы с помощью Google MediaPipe для обеспечения единообразия разметки.
  • Узнай больше о Hand Keypoints

Link to this sectionTiger-Pose#

  • Описание: Набор данных Ultralytics Tiger-Pose содержит 263 изображения, взятых из видео на YouTube, из которых 210 изображений выделено для обучения и 53 для валидации.
  • Формат меток: Такой же, как у Ultralytics YOLO, описанный выше, с 12 ключевыми точками для поз животных и без измерения видимости.
  • Количество классов: 1 (тигр).
  • Ключевые точки: 12 ключевых точек.
  • Использование: Отлично подходит для позы животного или любой другой позы, не основанной на человеке.
  • Дополнительные примечания: Выпущено по лицензии AGPL-3.0 License.
  • Узнай больше о Tiger-Pose

Link to this sectionДобавление собственного набора данных#

Если у тебя есть собственный набор данных, и ты хочешь использовать его для обучения моделей оценки позы в формате Ultralytics YOLO, убедись, что он соответствует формату, указанному выше в разделе «Формат Ultralytics YOLO». Преобразуй свои аннотации в требуемый формат и укажи пути, количество классов и имена классов в файле конфигурации YAML.

Чтобы полностью пропустить этап конвертации, Ultralytics Platform позволяет загружать необработанные изображения, размечать ключевые точки в браузере и обучаться на полученном наборе данных напрямую.

Link to this sectionИнструмент преобразования#

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 указывает, следует ли включать ключевые точки (для оценки позы) в преобразованные метки.

Link to this sectionFAQ#

Link to this sectionЧто такое формат Ultralytics YOLO для оценки позы?#

Формат Ultralytics YOLO для наборов данных оценки позы предполагает наличие текстового файла для каждого изображения. Каждая строка текстового файла содержит информацию об экземпляре объекта:

  • Индекс класса объекта
  • Координаты центра объекта (нормализованные x и y)
  • Ширина и высота объекта (нормализованные)
  • Координаты ключевых точек объекта (нормализованные pxn и pyn)

Для 2D-поз ключевые точки включают нормализованные координаты x и y. При наличии параметра видимости, у каждой ключевой точки также есть флаг видимости. Для получения дополнительной информации см. Формат Ultralytics YOLO.

Link to this sectionКак использовать набор данных COCO-Pose с Ultralytics YOLO?#

coco-pose.yaml поставляется вместе с пакетом и загружает изображения и метки при первом использовании, поэтому ручная подготовка не требуется:

from ultralytics import YOLO

model = YOLO("yolo26n-pose.pt")  # load pretrained model
results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)

Подробности о наборе данных см. в COCO-Pose, а полный список аргументов — на странице Train.

Link to this sectionКак я могу добавить собственный набор данных для оценки позы в Ultralytics YOLO?#

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

  1. Преобразуй свои аннотации в формат Ultralytics YOLO.

  2. Создай файл конфигурации YAML, указав пути к набору данных, количество классов и имена классов.

  3. Используй файл конфигурации для обучения своей модели:

    from ultralytics import YOLO
    
    model = YOLO("yolo26n-pose.pt")
    results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)

    Полные шаги см. в разделе Добавление собственного набора данных.

Link to this sectionКакова цель файла YAML набора данных в Ultralytics YOLO?#

Файл YAML набора данных в Ultralytics YOLO определяет конфигурацию набора данных и модели для обучения. Он указывает пути к изображениям для обучения, валидации и тестирования, формы ключевых точек, имена классов и другие параметры конфигурации. Этот структурированный формат помогает упростить управление наборами данных и обучение моделей. Вот пример формата YAML:

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/coco8-pose
# Example usage: yolo train data=coco8-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-pose ← downloads here (1 MB)

# 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: 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
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: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-pose.zip

Подробнее о создании файлов конфигурации YAML читай в разделе Формат YAML набора данных.

Link to this sectionКак преобразовать метки набора данных 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. Подробности см. в разделе Инструмент преобразования и в руководстве по предобработке данных.

Комментарии