手のキーポイントデータセット
はじめに
hand-keypointsデータセットには、キーポイントでアノテーションが付けられた26,768の手の画像が含まれており、Ultralytics YOLOのようなモデルをポーズ推定タスク用にトレーニングするのに適しています。アノテーションはGoogle MediaPipeライブラリを使用して生成され、高い精度と一貫性が保証されており、データセットはUltralytics YOLO11形式と互換性があります。
見る: Ultralytics YOLO11 を使用した手のキーポイント推定 | 人間の手の姿勢推定チュートリアル
手のランドマーク
キーポイント
データセットには、手の検出のためのキーポイントが含まれています。キーポイントは次のように注釈が付けられています。
- 手首
- 親指(4点)
- 人差し指(4点)
- 中指 (4点)
- 薬指(4点)
- 小指(4点)
各手には合計21個のキーポイントがあります。
主な特徴
- 大規模データセット: 手のキーポイントアノテーションを含む26,768枚の画像。
- YOLO11互換性: YOLO11モデルですぐに使用できます。
- 21個のキーポイント: 詳細な手のポーズの表現。
データセットの構造
ハンドキーポイントデータセットは、2つのサブセットに分割されています。
- Train: このサブセットには、ポーズ推定モデルのトレーニング用にアノテーションが付けられた、ハンドキーポイントデータセットからの18,776枚の画像が含まれています。
- Val: このサブセットには、モデルのトレーニング中に検証目的で使用できる7,992枚の画像が含まれています。
アプリケーション
手のキーポイントは、ジェスチャー認識、AR/VRコントロール、ロボット操作、およびヘルスケアにおける手の動きの分析に使用できます。また、モーションキャプチャ用のアニメーションや、セキュリティ用の生体認証システムにも応用できます。指の位置を詳細に追跡することで、仮想オブジェクトとの正確なインタラクションや、タッチレス制御インターフェースが可能になります。
データセット YAML
YAML(Yet Another Markup Language)ファイルは、データセットの構成を定義するために使用されます。これには、データセットのパス、クラス、およびその他の関連情報が含まれています。ハンドキーポイントデータセットの場合、 hand-keypoints.yaml
fileは以下で管理されています: 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
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/hand-keypoints.zip
使用法
Hand KeypointsデータセットでYOLO11n-poseモデルを、画像サイズ640で100エポック学習させるには、以下のコードスニペットを使用できます。利用可能な引数の包括的なリストについては、モデルのトレーニングページを参照してください。
学習の例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-pose.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="hand-keypoints.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo pose train data=hand-keypoints.yaml model=yolo11n-pose.pt epochs=100 imgsz=640
サンプル画像とアノテーション
ハンドキーポイントデータセットには、キーポイントでアノテーションが付けられた人間の手の多様な画像セットが含まれています。以下は、データセットからの画像と、それに対応するアノテーションの例です。
- モザイク化された画像: この画像は、モザイク化されたデータセット画像で構成されるトレーニングバッチを示しています。モザイキングは、各トレーニングバッチ内のオブジェクトとシーンの多様性を高めるために、複数の画像を1つの画像に結合するトレーニング中に使用される手法です。これにより、さまざまなオブジェクトのサイズ、アスペクト比、およびコンテキストに対するモデルの汎化能力が向上します。
この例では、Hand Keypointsデータセット内の画像の多様性と複雑さ、およびトレーニングプロセス中にモザイク処理を使用する利点を紹介しています。
引用と謝辞
hand-keypoints データセットを研究または開発で使用する場合は、次のソースの謝辞を述べてください。
このデータセットで使用されている画像を提供してくださった以下のソースに感謝いたします。
画像は、各プラットフォームによって提供されるそれぞれのライセンスに基づいて収集および使用され、クリエイティブ・コモンズ表示-非営利-継承4.0国際ライセンスの下で配布されています。
また、このデータセットの作成者であるRion Dsilva氏の、Vision AI研究への多大な貢献に感謝いたします。
よくある質問
Hand Keypoints データセットで YOLO11 モデルをトレーニングするにはどうすればよいですか?
Hand KeypointsデータセットでYOLO11モデルをトレーニングするには、pythonまたはコマンドラインインターフェイス(CLI)を使用できます。640の画像サイズでYOLO11n-poseモデルを100エポックトレーニングする例を次に示します。
例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-pose.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="hand-keypoints.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo pose train data=hand-keypoints.yaml model=yolo11n-pose.pt epochs=100 imgsz=640
利用可能な引数の包括的なリストについては、モデルのトレーニングページを参照してください。
Hand Keypointsデータセットの主な特徴は何ですか?
Hand Keypointsデータセットは、高度なポーズ推定タスク用に設計されており、いくつかの主要な機能が含まれています。
- 大規模データセット: 手のキーポイントアノテーションを含む26,768枚の画像が含まれています。
- YOLO11互換性: YOLO11モデルですぐに使用できます。
- 21個のキーポイント: 手首と指の関節を含む、詳細な手のポーズの表現。
詳細については、Hand Keypoints Datasetのセクションをご覧ください。
ハンドキーポイントデータセットを使用すると、どのようなアプリケーションがメリットを得られますか?
ハンドキーポイントデータセットは、さまざまな分野で応用できます。
- ジェスチャー認識:ヒューマンコンピューターインタラクションを強化します。
- AR/VRコントロール: 拡張現実と仮想現実におけるユーザーエクスペリエンスの向上。
- ロボット操作: ロボットハンドの正確な制御を可能にします。
- ヘルスケア:医療診断のための手の動きを分析します。
- アニメーション: リアルなアニメーションのためのモーションキャプチャ。
- 生体認証: セキュリティシステムを強化します。
詳細については、アプリケーションセクションを参照してください。
Hand Keypointsデータセットはどのように構成されていますか?
ハンドキーポイントデータセットは、2つのサブセットに分割されています。
- Train: ポーズ推定モデルのトレーニング用に18,776枚の画像が含まれています。
- Val: モデルトレーニング中の検証を目的とした7,992枚の画像が含まれています。
この構造により、包括的なトレーニングおよび検証プロセスが保証されます。詳細については、データセット構造セクションを参照してください。
トレーニングにデータセット YAML ファイルを使用するにはどうすればよいですか?
データセットの構成はYAMLファイルで定義され、パス、クラス、その他の関連情報が含まれています。 hand-keypoints.yaml
ファイルは以下にあります。 hand-keypoints.yaml.
このYAMLファイルをトレーニングに使用するには、上記のトレーニング例に示すように、トレーニングスクリプトまたはCLIコマンドで指定します。詳細については、Dataset YAMLセクションを参照してください。