Набор данных Hand Keypoints

Введение

Набор данных hand-keypoints содержит 26 768 изображений рук с аннотированными ключевыми точками, что делает его подходящим для обучения таких моделей, как Ultralytics YOLO, для задач оценки позы (pose estimation). Аннотации были созданы с использованием библиотеки Google MediaPipe, что гарантирует высокую точность и согласованность, а сам набор данных совместим с форматами Ultralytics YOLO26.



Watch: Hand Keypoints Estimation with Ultralytics YOLO26 | Human Hand Pose Estimation Tutorial

Ориентиры кисти

Схема ориентиров ключевых точек кисти с 21 точкой

Keypoints

В набор данных включены ключевые точки для обнаружения кисти. Ключевые точки аннотированы следующим образом:

  1. Запястье
  2. Большой палец (4 точки)
  3. Указательный палец (4 точки)
  4. Средний палец (4 точки)
  5. Безымянный палец (4 точки)
  6. Мизинец (4 точки)

Каждая кисть имеет в общей сложности 21 ключевую точку.

Основные характеристики

  • Большой набор данных: 26 768 изображений с аннотациями ключевых точек кисти.
  • Совместимость с YOLO26: Метки поставляются в формате YOLO для ключевых точек и готовы к использованию с моделями YOLO26.
  • 21 ключевая точка: Детальное представление позы кисти, охватывающее запястье и по четыре точки на каждом пальце.

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

Набор данных hand keypoints разделен на два подмножества:

  1. Train: Это подмножество содержит 18 776 изображений из набора данных hand keypoints, аннотированных для обучения моделей оценки позы.
  2. Val: Это подмножество содержит 7 992 изображения, которые можно использовать для валидации в процессе обучения модели.

Приложения

Ключевые точки кисти можно использовать для распознавания жестов, управления в AR/VR, манипуляций роботами и анализа движения рук в медицине. Их также можно применять в анимации для захвата движений и в системах биометрической аутентификации для обеспечения безопасности. Детальное отслеживание положения пальцев позволяет осуществлять точное взаимодействие с виртуальными объектами и бесконтактными интерфейсами управления.

YAML набора данных

Для определения конфигурации набора данных используется файл YAML (Yet Another Markup Language). Он содержит информацию о путях к данным, классах и другую соответствующую информацию. В случае с набором данных Hand Keypoints файл hand-keypoints.yaml поддерживается по адресу https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/hand-keypoints.yaml.

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

# Hand Keypoints dataset by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/hand-keypoints/
# Example usage: yolo train data=hand-keypoints.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── hand-keypoints ← downloads here (369 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: hand-keypoints # dataset root dir
train: images/train # train images (relative to 'path') 18776 images
val: images/val # val images (relative to 'path') 7992 images

# Keypoints
kpt_shape: [21, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 1, 2, 4, 3, 10, 11, 12, 13, 14, 5, 6, 7, 8, 9, 15, 16, 17, 18, 19, 20]

# Classes
names:
  0: hand

# Keypoint names per class
kpt_names:
  0:
    - wrist
    - thumb_cmc
    - thumb_mcp
    - thumb_ip
    - thumb_tip
    - index_mcp
    - index_pip
    - index_dip
    - index_tip
    - middle_mcp
    - middle_pip
    - middle_dip
    - middle_tip
    - ring_mcp
    - ring_pip
    - ring_dip
    - ring_tip
    - pinky_mcp
    - pinky_pip
    - pinky_dip
    - pinky_tip

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/hand-keypoints.zip

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

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

Пример обучения
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="hand-keypoints.yaml", epochs=100, imgsz=640)

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

Набор данных Hand keypoints содержит разнообразный набор изображений человеческих рук, аннотированных ключевыми точками. Вот несколько примеров изображений из этого набора данных вместе с соответствующими аннотациями:

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

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

Этот пример демонстрирует разнообразие и сложность изображений в наборе данных Hand Keypoints, а также преимущества использования мозаики в процессе обучения.

Цитирование и благодарности

Если ты используешь набор данных hand-keypoints в своей исследовательской работе или разработке, пожалуйста, укажи следующие источники:

Цитата

Мы хотели бы поблагодарить следующие источники за предоставление изображений, использованных в этом наборе данных:

Изображения были собраны и использованы в соответствии с лицензиями, предоставленными каждой платформой, и распространяются на условиях лицензии Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Мы также хотели бы выразить признательность создателю этого набора данных, Rion Dsilva, за его значительный вклад в исследования в области Vision AI.

Часто задаваемые вопросы (FAQ)

Как мне обучить модель YOLO26 на наборе данных Hand Keypoints?

Для обучения модели YOLO26 на наборе данных Hand Keypoints ты можешь использовать Python или интерфейс командной строки (CLI). Вот пример обучения модели YOLO26n-pose в течение 100 эпох с размером изображения 640:

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

Для полного списка доступных аргументов смотри страницу Обучение (Training) модели.

Каковы ключевые особенности набора данных Hand Keypoints?

Набор данных Hand Keypoints предназначен для продвинутых задач оценки позы и включает в себя несколько ключевых особенностей:

  • Большой набор данных: Содержит 26 768 изображений с аннотациями ключевых точек кисти.
  • Совместимость с YOLO26: Готов к использованию с моделями YOLO26.
  • 21 ключевая точка: Детальное представление позы кисти, включая суставы запястья и пальцев.

Более подробную информацию ты можешь найти в разделе Набор данных Hand Keypoints.

Какие приложения могут получить выгоду от использования набора данных Hand Keypoints?

Набор данных Hand Keypoints можно применять в различных областях, включая:

  • Распознавание жестов: Улучшение взаимодействия человека и компьютера.
  • Управление в AR/VR: Улучшение пользовательского опыта в дополненной и виртуальной реальности.
  • Роботизированные манипуляции: Обеспечение точного управления роботизированными руками.
  • Здравоохранение: Анализ движений рук для медицинской диагностики.
  • Анимация: Захват движений для создания реалистичной анимации.
  • Биометрическая аутентификация: Повышение безопасности систем.

Более подробную информацию смотри в разделе Приложения.

Как структурирован набор данных Hand Keypoints?

Набор данных Hand Keypoints разделен на два подмножества:

  1. Train: Содержит 18 776 изображений для обучения моделей оценки позы.
  2. Val: Содержит 7 992 изображения для валидации в процессе обучения модели.

Эта структура обеспечивает всесторонний процесс обучения и валидации. Более подробную информацию смотри в разделе Структура набора данных.

Как мне использовать YAML-файл набора данных для обучения?

Конфигурация набора данных определяется в файле YAML, который включает пути, классы и другую соответствующую информацию. Файл hand-keypoints.yaml можно найти по ссылке hand-keypoints.yaml.

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

Комментарии