Ultralytics YOLO27:
Get Started

手のキーポイントデータセット#

はじめに#

Ultralytics Hand Keypointsデータセットには、各画像に21個のキーポイントがアノテーションされた手の画像が26,768枚含まれています。Google MediaPipeライブラリを使用して生成されており、高い精度と一貫性を実現しています。ポーズ推定モデルの学習に使用できるUltralytics YOLO26形式に対応しています。



視聴: Ultralytics YOLO による手のキーポイント推定 | 人の手の姿勢推定チュートリアル

キーポイント#

21個の点を示す手のキーポイントランドマーク図

各手には、以下の21個のキーポイントがアノテーションされています。

  1. 手首
  2. 親指(4点)
  3. 人差し指(4点)
  4. 中指(4点)
  5. 薬指(4点)
  6. 小指(4点)

データセットの構成#

  • 画像総数: 26,768枚(学習18,776枚 / 検証7,992枚)。
  • クラス数: 1(hand)。
  • キーポイント: 手1つあたり21個。(x, y, visibility)のトリプレットで表します。
  • ダウンロードサイズ: ~369 MB。

一般的な手のランドマークを超える独自のジェスチャーボキャブラリーを作成する場合、Ultralytics Platformを使えば、ブラウザー上で独自のデータセットのラベリングと学習を行えます。

用途#

手のキーポイントは、さまざまな実環境の用途に役立ちます。

  • ジェスチャー認識: 人間とコンピューターのインタラクションや、非接触型の制御インターフェース。
  • AR/VRコントロール: 仮想オブジェクトとの精密なインタラクション。
  • ロボット操作: ロボットハンドの精密な制御。
  • 医療: 医療診断のための手の動きの分析。
  • アニメーション: 手の動きをリアルに表現するためのモーションキャプチャ。
  • 生体認証: 手の形状に基づくセキュリティシステム。

データセットYAML#

データセットの構成を定義するにはYAMLファイルを使用します。YAMLファイルには、データセットのパス、クラス、その他の関連情報が含まれます。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

使用方法#

画像サイズ640でHand Keypointsデータセットを使用し、YOLO26n-poseモデルを100エポック学習するには、以下のコード例を使用できます。利用可能な引数の詳細な一覧については、モデルの学習ページを参照してください。

トレーニング例
from ultralytics import YOLO

# モデルを読み込む
model = YOLO("yolo26n-pose.pt")  # 事前トレーニング済みモデルを読み込みます(トレーニングにはこちらを推奨します)

# モデルをトレーニングする
results = model.train(data="hand-keypoints.yaml", epochs=100, imgsz=640)

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

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

手のキーポイントによるポーズ推定データセットのサンプル

  • モザイク画像: モザイク化したデータセット画像で構成されるトレーニングバッチを示しています。モザイク化はトレーニング中に使用される手法で、複数の画像を1枚にまとめ、各トレーニングバッチ内のオブジェクトやシーンの多様性を高めます。これにより、さまざまなオブジェクトサイズ、アスペクト比、コンテキストに対するモデルの汎化性能が向上します。

この例は、Hand Keypointsデータセットの画像の多様性と複雑さ、および学習プロセスでモザイクを使用する利点を示しています。

引用と謝辞#

研究または開発でHand Keypointsデータセットを使用する場合は、以下の情報源を記載してください。

引用

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

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

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

よくある質問#

  • yolo26n-pose.ptを読み込み、model.train(data="hand-keypoints.yaml", epochs=100, imgsz=640)を呼び出してください。PythonとCLIの完全なコード例については上記の学習例を、引数の詳細な一覧についてはモデルの学習ページを参照してください。

  • Google MediaPipeを使用して生成された26,768枚のアノテーション付き画像と、手ごとの21個のキーポイントを備えたHand Keypointsデータセットは、高度な姿勢推定タスクに必要な規模とアノテーション精度を姿勢推定モデルに提供します。ランドマークの詳細については、キーポイントセクションをご覧ください。

  • Hand Keypointsは、ジェスチャー認識、AR/VRコントロール、ロボット操作、医療における動作分析、アニメーション、生体認証に対応しています。それぞれの詳細については、アプリケーションセクションをご覧ください。

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

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

    この構成により、包括的なトレーニングと検証のプロセスを実現できます。詳しくは、データセットの構成セクションをご覧ください。

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

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

コメント