Ultralytics YOLO27:

手部关键点数据集#

简介#

Ultralytics 手部关键点数据集包含 26,768 张手部图像,每只手标注 21 个关键点,这些标注使用 Google MediaPipe 库生成,以实现高准确性和一致性。该数据集兼容 Ultralytics YOLO26 格式,可用于训练姿态估计模型。



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

关键点#

包含 21 个点的手部关键点示意图

每只手都标注了 21 个关键点,具体如下:

  1. 手腕
  2. 拇指(4 个点)
  3. 食指(4 个点)
  4. 中指(4 个点)
  5. 无名指(4 个点)
  6. 小指(4 个点)

数据集结构#

  • 图像总数:26,768(18,776 张训练集 / 7,992 张验证集)。
  • 类别:1(手)。
  • 关键点:每只手 21 个关键点,采用 (x, y, visibility) 三元组表示。
  • 下载大小:~369 MB。

对于超出通用手部标志点的自定义手势词汇,Ultralytics Platform 支持你直接在浏览器中标注并训练自己的数据集。

应用#

手部关键点支持多种现实世界应用:

  • 手势识别:人机交互和无接触控制界面。
  • AR/VR 控制:与虚拟对象进行精确交互。
  • 机器人操作:对机器人手部进行精细控制。
  • 医疗保健:用于医疗诊断的手部运动分析。
  • 动画:用于实现逼真手部动作的动作捕捉。
  • 生物特征认证:基于手部几何特征的安全系统。

数据集 YAML#

YAML 文件用于定义数据集配置,其中包含数据集路径、类别以及其他相关信息。对于手部关键点数据集,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 模型 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)

示例图像和标注#

手部关键点数据集包含多样化的人手图像,并标注了关键点。以下是数据集中的一些图像示例及其对应的标注:

手部关键点姿态估计数据集示例

  • 马赛克图像:此图像展示了由马赛克拼接数据集图像组成的训练批次。马赛克拼接是训练期间使用的一种技术,它将多张图像合并为一张图像,以增加每个训练批次中物体和场景的多样性。这有助于提升模型对不同物体大小、宽高比和上下文的泛化能力。

该示例展示了手部关键点数据集中图像的多样性和复杂性,以及在训练过程中使用马赛克增强的优势。

引用和致谢#

如果你在研究或开发工作中使用手部关键点数据集,请注明以下来源:

引用

我们感谢以下来源为此数据集提供图像:

这些图像依据各个平台提供的相应许可协议收集和使用,并根据知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行分发。

我们还要感谢此数据集的创建者 Rion Dsilva,感谢他对 Vision AI 研究作出的杰出贡献。

常见问题#

  • 加载 yolo26n-pose.pt 并调用 model.train(data="hand-keypoints.yaml", epochs=100, imgsz=640)——完整的 Python 和 CLI 代码片段请参阅上方的训练示例,完整的参数列表请参阅模型的训练页面。

  • 手部关键点数据集包含 26,768 张标注图像,每只手有 21 个通过 Google MediaPipe 生成的关键点,为姿态估计模型提供了执行高级姿态估计任务所需的数据规模和标注准确性。完整的标志点细分请参阅关键点部分。

  • 手部关键点支持手势识别、AR/VR 控制、机器人操作、医疗保健运动分析、动画和生物特征认证——有关每项应用的详细信息,请参阅应用部分。

  • 手部关键点数据集分为两个子集:

    1. 训练集:包含 18,776 张用于训练姿态估计模型的图像。
    2. 验证集:包含 7,992 张用于模型训练期间验证的图像。

    这种结构确保了全面的训练和验证过程。有关更多详细信息,请参阅数据集结构部分。

  • 数据集配置定义在 YAML 文件中,其中包括路径、类别以及其他相关信息。hand-keypoints.yaml 文件位于 hand-keypoints.yaml

    要使用此 YAML 文件进行训练,请按照上方训练示例所示,在训练脚本或 CLI 命令中指定该文件。有关更多详细信息,请参阅数据集 YAML部分。

评论