手のランドマーク検出ガイド

MediaPipe の手のランドマーク タスクでは、画像内の手のランドマークを検出できます。このタスクを使用して、手の重要なポイントを見つけて視覚効果をレンダリングできます。このタスクは、機械学習(ML)モデルを静的データまたは連続ストリームとして画像データで動作させ、画像座標の手のランドマーク、世界座標の手のランドマーク、検出された複数の手の利き手(左右の手)を出力します。

試してみる

使ってみる

このタスクの使用を開始するには、ターゲット プラットフォームの実装ガイドのいずれかに沿って操作します。以下のプラットフォーム固有のガイドでは、推奨モデルや推奨構成オプションを含むコードサンプルなど、このタスクの基本的な実装について説明します。

タスクの詳細

このセクションでは、このタスクの機能、入力、出力、構成オプションについて説明します。

機能

  • 入力画像処理 - 画像の回転、サイズ変更、正規化、色空間変換などを行います。
  • スコアしきい値 - 予測スコアに基づいて結果をフィルタリングします。
タスクの入力 タスクの出力
手のランドマークは、次のいずれかのデータ型の入力を受け入れます。
  • 静止画像
  • デコードされた動画フレーム
  • ライブ動画フィード
手のランドマークは、次のような結果を出力します。
  • 検出された手の利き手
  • 画像座標における検出された手のランドマーク
  • 世界座標で検出された手のランドマーク

構成オプション

このタスクには、次の構成オプションがあります。

オプション名 説明 値の範囲 デフォルト値
running_mode タスクの実行モードを設定します。モードは 3 つあります。

IMAGE: 単一の画像入力のモード。

VIDEO: 動画のデコードされたフレームのモード。

LIVE_STREAM: カメラからのデータなど、入力データのライブストリームのモード。このモードでは、resultListener を呼び出して、結果を非同期で受け取るリスナーをセットアップする必要があります。
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
num_hands 手のランドマーク検出機能で検出される手の最大数。 Any integer > 0 1
min_hand_detection_confidence 手のひら検出モデルで手の検出が成功したとみなすための最小信頼スコア。 0.0 - 1.0 0.5
min_hand_presence_confidence 手のランドマーク検出モデルにおける手の存在スコアの最小信頼スコア。動画モードとライブ ストリーム モードでは、手のランドマーク モデルからの手の存在信頼スコアがこのしきい値を下回った場合、手のひら検出モデルがトリガーされます。それ以外の場合は、軽量のハンド トラッキング アルゴリズムが、後続のランドマーク検出で使用する手の位置を決定します。 0.0 - 1.0 0.5
min_tracking_confidence 成功とみなされる、ハンド トラッキングの最小信頼スコア。これは、現在のフレームと最後のフレームの手の間の境界ボックスの IoU しきい値です。手のマーカーの動画モードとストリーム モードでは、トラッキングが失敗すると、手のマーカーが手の検出をトリガーします。それ以外の場合は、手の検出はスキップされます。 0.0 - 1.0 0.5
result_callback 手のランドマークがライブ ストリーム モードのときに検出結果を非同期で受け取るように結果リスナーを設定します。実行モードが LIVE_STREAM に設定されている場合にのみ適用されます。 なし なし

モデル

手のランドマーク検出モデルは、手のひら検出モデルと手のランドマーク検出モデルの 2 つのパッケージ化されたモデルを含むモデルバンドルを使用します。このタスクを実行するには、この両方のモデルを含むモデルバンドルが必要です。

モデル名 入力シェイプ 量子化タイプ モデルカード バージョン
手のランドマーク(完全) 192 x 192、224 x 224 浮動小数点数 16 情報 最新

手のランドマーク モデルバンドルは、検出された手の領域内で 21 のナックル座標のキーポイントのローカライズを検出します。このモデルは、約 30, 000 枚の実世界の画像と、さまざまな背景にレンダリングされた複数の合成手モデルでトレーニングされました。

手のランドマーク検出モデルバンドルには、手のひら検出モデルと手のランドマーク検出モデルが含まれています。手のひら検出モデルは入力画像内の手を特定します。手のランドマーク検出モデルは、手のひら検出モデルで定義された、切り抜かれた手の画像上の特定の手のランドマークを特定します。

手のひら検出モデルの実行には時間がかかるため、動画またはライブ ストリームの実行モードでは、手のランドマーク モデルで定義された境界ボックスを 1 つのフレームで使用し、後続のフレームで手の領域をローカライズします。手のランドマーク モデルは、手のランドマーク モデルが手の存在を識別しなくなったか、フレーム内の手を追跡できなかった場合にのみ、手のひら検出モデルを再トリガーします。これにより、手のマーカーが手のひら検出モデルを調整する回数が少なくなります。

タスク ベンチマーク

上記の事前トレーニング済みモデルに基づくパイプライン全体のタスク ベンチマークは次のとおりです。レイテンシの結果は、CPU / GPU を使用した Google Pixel 6 の平均レイテンシです。

モデル名 CPU レイテンシ GPU レイテンシ
手のランドマーク(完全版) 17.12 ミリ秒 12.27 ミリ秒