Hand Keypoints Dataset

はじめに

Hand-keypointsデータセットには、キーポイントがアノテーションされた26,768枚の手の画像が含まれており、Ultralytics YOLOのようなモデルを用いた姿勢推定タスクのトレーニングに適しています。アノテーションは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ポイント)

手1つにつき合計21個のキーポイントがあります。

主な特徴

  • 大規模データセット: 手のキーポイントアノテーションを含む26,768枚の画像。
  • YOLO26互換性: ラベルはYOLOキーポイント形式で提供され、YOLO26モデルですぐに使用できます。
  • 21個のキーポイント: 手首および各指4点を含む詳細な手の姿勢表現。

データセットの構造

ハンドキーポイントデータセットは2つのサブセットに分割されています。

  1. Train: このサブセットには、姿勢推定モデルのトレーニング用にアノテーションされた18,776枚の画像が含まれています。
  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

使用方法

Hand Keypointsデータセットで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)

サンプル画像とアノテーション

Hand Keypointsデータセットには、キーポイントがアノテーションされた人の手の多様な画像セットが含まれています。データセットからの画像とそれに対応するアノテーションの例をいくつか示します。

ハンドキーポイント姿勢推定データセットのサンプル

  • モザイク画像: この画像は、モザイク処理されたデータセット画像で構成される学習バッチを示しています。モザイク処理は、学習中に複数の画像を1枚の画像に結合し、各学習バッチ内の物体やシーンの多様性を高めるために使用される手法です。これは、異なる物体のサイズ、アスペクト比、コンテキストに対してモデルが汎化する能力を向上させるのに役立ちます。

この例は、Hand Keypointsデータセット内の画像の多様性と複雑さ、およびトレーニングプロセス中にモザイキングを使用する利点を示しています。

引用と謝辞

研究や開発作業でhand-keypointsデータセットを使用する場合は、以下の情報源を明記してください。

引用

このデータセットで使用されている画像を提供してくださった以下の情報源に感謝いたします。

画像は各プラットフォームが提供するそれぞれのライセンスに基づいて収集および使用されており、クリエイティブ・コモンズ 表示-非営利-継承 4.0 国際ライセンスの下で配布されています。

また、Vision AI研究への多大なる貢献に対し、このデータセットの作成者であるRion Dsilva氏に謝意を表します。

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)

利用可能な引数の詳細リストについては、モデルの トレーニング ページを参照してください。

Hand Keypointsデータセットの主な特徴は何ですか?

Hand Keypointsデータセットは高度な姿勢推定タスク向けに設計されており、いくつかの重要な特徴があります。

  • 大規模データセット: 手のキーポイントアノテーションを含む26,768枚の画像が含まれています。
  • YOLO26互換性: YOLO26モデルですぐに使用できます。
  • 21個のキーポイント: 手首や指の関節を含む詳細な手の姿勢表現。

詳細については、Hand Keypoints Datasetセクションをご覧ください。

Hand Keypointsデータセットを活用できるアプリケーションは何ですか?

Hand Keypointsデータセットは、以下を含むさまざまな分野に応用できます。

  • ジェスチャー認識: ヒューマンコンピュータインタラクションの強化。
  • AR/VR制御: 拡張現実および仮想現実におけるユーザーエクスペリエンスの向上。
  • ロボット操作: ロボットハンドの正確な制御を可能にする。
  • ヘルスケア: 医療診断のための手の動きの分析。
  • アニメーション: リアルなアニメーションのためのモーションキャプチャ。
  • 生体認証: セキュリティシステムの強化。

詳細については、Applicationsセクションを参照してください。

Hand Keypointsデータセットはどのように構成されていますか?

Hand Keypointsデータセットは2つのサブセットに分かれています。

  1. Train: 姿勢推定モデルのトレーニング用に18,776枚の画像が含まれています。
  2. Val: モデルのトレーニング中の検証用に7,992枚の画像が含まれています。

この構成により、包括的なトレーニングと検証プロセスが保証されます。詳細については、Dataset Structureセクションを参照してください。

トレーニングにデータセットYAMLファイルを使用するにはどうすればよいですか?

データセット設定はYAMLファイルで定義されており、これにはパス、クラス、その他の関連情報が含まれています。hand-keypoints.yamlファイルはhand-keypoints.yamlにあります。

このYAMLファイルをトレーニングに使用するには、上記のトレーニング例のように、トレーニングスクリプトまたはCLIコマンドで指定します。詳細については、Dataset YAMLセクションを参照してください。

コメント