MediaPipe ジェスチャー認識タスクを使用すると、手のジェスチャーをリアルタイムに認識できます。 認識された手の動きの結果と、そのデバイスのランドマークが 検出されます。このタスクを使用すると、 そのジェスチャーに対応するアプリ機能を呼び出すことができます。
このタスクは、機械学習(ML)モデルを使用した画像データに対して動作し、 静的データでも連続ストリームでも構いませんタスクは手のランドマークを 画像座標、世界座標の手のランドマーク、利き手 複数の手のジェスチャー カテゴリがあります。
<ph type="x-smartling-placeholder"></ph> お試しください。
使ってみる
以下の実装ガイドのいずれかに沿って、このタスクの使用を開始する ターゲット プラットフォームです。これらのプラットフォーム固有のガイドでは、基本的な 推奨モデルを使用してこのタスクを実装し、コード例を提供します。 推奨される構成オプションは次のとおりです。
で確認できます。タスクの詳細
このセクションでは、機能、入力、出力、構成について説明します。 いくつかあります。
機能
- 入力画像処理 - 画像の回転、サイズ変更、 色空間変換などがあります
- スコアしきい値 - 予測スコアに基づいて結果をフィルタします。
- ラベルの許可リストと拒否リスト - ジェスチャーのカテゴリを指定します。 モデルに与えられます。
タスクの入力 | タスク出力 |
---|---|
ジェスチャー認識ツールは、次のいずれかのデータ型の入力を受け入れます。 <ph type="x-smartling-placeholder">
|
ジェスチャー認識ツールは以下の結果を出力します。 <ph type="x-smartling-placeholder">
|
構成オプション
このタスクには、次の構成オプションがあります。
オプション名 | 説明 | 値の範囲 | デフォルト値 | |
---|---|---|---|---|
running_mode |
タスクの実行モードを設定します。3 つの
モード: IMAGE: 単一画像入力のモード。 VIDEO: 動画のデコードされたフレームのモード。 LIVE_STREAM: 入力のライブ配信のモード カメラからのデータなどです。このモードでは、resultListener は 結果を受け取るリスナーを設定するために呼び出されます。 使用できます。 |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
|
num_hands |
次の手で検出できる手の最大数は、
GestureRecognizer 。
|
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 |
|
canned_gestures_classifier_options |
あらかじめ用意されたジェスチャー分類器の動作を設定するためのオプション。返信定型文は["None", "Closed_Fist", "Open_Palm", "Pointing_Up", "Thumb_Down", "Thumb_Up", "Victory", "ILoveYou"] です |
|
|
|
custom_gestures_classifier_options |
カスタム ジェスチャー分類器の動作を設定するオプション。 |
|
|
|
result_callback |
分類結果を受け取るように結果リスナーを設定します。
ライブ ストリーム モードの場合は非同期で行われます。
実行モードが LIVE_STREAM に設定されている場合にのみ使用できます |
ResultListener |
なし | なし |
モデル
ジェスチャー 認識ツールは、事前にパッケージ化された 2 つのモデルバンドルと 1 つのモデルバンドルを使用します。 手のランドマーク モデルバンドルとジェスチャー分類モデルのバンドルです。「 ランドマーク モデルは、手の存在と手のジオメトリを検出し、ジェスチャー モデルによって モデルは、手の幾何学に基づいてジェスチャーを認識します。
<ph type="x-smartling-placeholder">モデル名 | 入力シェイプ | 量子化タイプ | モデルカード | バージョン |
---|---|---|---|---|
<ph type="x-smartling-placeholder"></ph> HandGestureClassifier | 192 x 192、224 x 224 | 浮動小数点数 16 | <ph type="x-smartling-placeholder"></ph> 情報 | <ph type="x-smartling-placeholder"></ph> 最新 |
このタスクでは、Model Maker を使用したモデルバンドルの変更もサポートしています。 Model Maker を使用してこのタスクのモデルをカスタマイズする方法について詳しくは、 ジェスチャー認識ツールのモデルをカスタマイズするをご覧ください。
手のランドマーク モデルのバンドル
手のランドマーク モデル バンドルが 21 個のハンドナックルのキーポイントの位置を検出する 座標を返します。このモデルは、 約 3 万点の画像と、レンダリングされた合成の手 さまざまな背景の上に重ねて適用されます。以下の 21 のランドマークの定義を参照してください。
手のランドマーク検出モデルバンドルには、手のひら検出モデルと 手のランドマーク検出モデルを使用します。手のひら検出モデルは、 手のランドマークを検出し、手のランドマークを検出するモデルは、 手のひら検出モデルで定義された、切り抜かれた手の画像上のランドマーク。
動画モードやライブでは、手のひら検出モデルのほうがはるかに時間がかかる ストリーム モード。ジェスチャー認識機能は検出された手によって定義された境界ボックスを使用します。 エンコーダ / デコーダをモデルに使用して、 クリックします。これにより、ジェスチャー認識ツールが手のひら検出モデルをトリガーする時間が短縮されます。 手のランドマーク モデルが、必要とするものを十分に識別できなくなった場合のみ 手のひら検出の失敗、手のひら検出モデルは 手を再ローカライズするために呼び出されます。
ジェスチャー分類モデルバンドル
ジェスチャー分類モデルバンドルは、次の一般的な手のジェスチャーを認識できます。
0 - Unrecognized gesture, label: Unknown
1 - Closed fist, label: Closed_Fist
2 - Open palm, label: Open_Palm
3 - Pointing up, label: Pointing_Up
4 - Thumbs down, label: Thumb_Down
5 - Thumbs up, label: Thumb_Up
6 - Victory, label: Victory
7 - Love, label: ILoveYou
モデルが手を検出したものの、ジェスチャーが認識されない場合、そのジェスチャーは、 「None」という結果が返されます。手が検出されない場合、 ジェスチャー認識ツールが空を返します。
ジェスチャー分類モデルのバンドルには、2 ステップのニューラル ネットワーク パイプラインが含まれています。 ジェスチャー エンベディング モデルの後にジェスチャー分類モデルが続きます。 詳しくは、ジェスチャー分類モデルカードをご覧ください。
ジェスチャー エンベディング モデルは、画像の特徴を特徴ベクトルにエンコードします。 分類モデルは、特徴を受け取り、 ベクトルを入力として代用します。提供されているジェスチャー分類モデルバンドルには、 7 つの一般的な手のジェスチャーを検出する、定型のジェスチャー分類器 ご覧ください。トレーニングによってモデルバンドルを拡張し、より多くのジェスチャーを認識させることが可能 独自のカスタム操作分類器を作成できます詳しくは以下をご覧ください [カスタムモデル] セクション。
定型のジェスチャー分類器とカスタム ジェスチャー分類器の両方を備えたジェスチャー認識ツール 両方の分類器が同じジェスチャーを認識する場合、カスタム ジェスチャーを優先します。 できます。1 つのジェスチャー分類器のみがジェスチャーを認識する場合、 ジェスチャー認識ツールは、認識されたジェスチャーを直接出力します。
タスク ベンチマーク
上記に基づくパイプライン全体のタスク ベンチマークは次のとおりです。 事前トレーニング済みモデルを活用しますレイテンシの結果は、 CPU / GPU
モデル名 | CPU レイテンシ | GPU レイテンシ |
---|---|---|
GestureRecognizer | 16.76 ミリ秒 | 20.87 ミリ秒 |
カスタムモデル
このコースで提供されているモデルの機能を改善または変更する場合は、
タスクでは、Model Maker を使用して既存のモデルを変更できます。使用するカスタムモデル
MediaPipe では、.task
形式(モデルバンドル ファイル)にする必要があります。マイページ
は、Model Maker を使用して、このタスク用に提供されたモデルを変更することを検討すべき
確認しましょう。
このタスクに合わせてモデルをカスタマイズする方法の詳細については、以下をご覧ください。 ジェスチャー認識ツール用にモデルをカスタマイズする。