姿勢検出

ML Kit Pose Detection API は、アプリ デベロッパーが連続した動画または静止画像から被写体の体の位置をリアルタイムで検出するための、軽量で汎用性の高いソリューションです。姿勢は、ある時点での身体の位置を表し、一連の骨格のランドマーク ポイントを含みます。ランドマークは、肩や股関節などの身体のさまざまな部位に対応しています。ランドマークの相対的な位置を使用して、ポーズを区別できます。

iOS Android

ML Kit の姿勢検出では、顔のランドマーク(耳、目、口、鼻)と手と足のポイントを含む、全身の 33 点の骨格マッチングが生成されます。下の図 1 は、ユーザーのカメラを見ているランドマーク、つまりミラーリング画像を示しています。ユーザーの右側が画像の左側に表示されます。

図 1. ランドマーク

ML Kit の姿勢検出では、特別な機器や ML の専門知識がなくても、最適な結果を得ることができます。この技術により、デベロッパーは数行のコードを使用するだけで、ユーザー エクスペリエンスに優れたエクスペリエンスを実現できます。

ポーズを検出するには、ユーザーの顔が存在している必要があります。姿勢検出が最適に機能するのは、被写体の身体全体がフレームに表示されている場合ですが、身体の姿勢も一部検出されます。その場合、認識されないランドマークには、画像以外の座標が割り当てられます。

主な機能

  • クロス プラットフォームのサポート: Android と iOS の両方で同じエクスペリエンスが提供されます。
  • 全身追跡: モデルは、手と足の位置を含む、33 の主要な骨格ランドマーク ポイントを返します。
  • InFrameLikelihood スコア: 各ランドマークについて、そのランドマークが画像フレーム内にある確率を示すメジャー。スコアの範囲は 0.0 から 1.0 で、1.0 であれば信頼度が高いことを示します。
  • 2 つの最適化された SDK。基本 SDK は、Pixel 4 や iPhone X などの最新のスマートフォン上でリアルタイムで実行されます。結果はそれぞれ 30 fps と 45 fps のレートで返されます。ただし、ランドマーク座標の精度は変わる可能性があります。正確な SDK は遅いフレームレートで結果を返しますが、より正確な座標値が生成されます。
  • 深度分析のための Z 座標: この値は、ユーザーの身体の一部がユーザーの前にあるか、後ろにあるかを判断するのに役立ちます。詳しくは、以下の Z 座標のセクションをご覧ください。

Pose Detection API は、Facial Recognition API と同様に、一連のランドマークとその位置を返します。ただし、顔検出はまた、笑顔の口や目を開くなどの特徴を認識しようとしますが、姿勢検出はポーズやポーズ自体のランドマークに意味を付けることはありません。独自のアルゴリズムを作成して、ポーズを解釈することもできます。例については、姿勢分類のヒントをご覧ください。

姿勢検出では、画像内の 1 人しか検出できません。画像に 2 人の人物が写っている場合、モデルは最も検出された人物にランドマークを割り当てます。

Z 座標

Z 座標は、ランドマークごとに計算される実験的な値です。X 座標と Y 座標と同様に「画像ピクセル」で測定されますが、実際の 3D 値ではありません。Z 軸はカメラに対して垂直で、被写体の股関節を通ります。Z 軸の原点は、股関節の間のほぼ中心点(カメラに対して左右/前/後ろ)になっています。負の Z 値はカメラ方向であり、正の値はカメラから離れています。Z 座標に上限または下限はありません。

サンプル結果

次の表に、右のポーズにあるいくつかのランドマークの座標と InFrameLikelihood を示します。ユーザーの左手の Z 座標は負です。これらの角は被写体の腰の前にあり、カメラの方向を向いているためです。

ランドマークタイプ職位InFrame の類似性
11左の矢印(734.9671、550.7924、-118.11934)0.9999038
12 右ショルダー (391.27032、583.2485、-321.15836) 0.9999894
13 左のエルボ (903.83704, 754.676, -219.67009) 0.9836427
14 右エルボ (322.18152、842.5973、-179.28519) 0.99970156
15 左手首 (1073.8956、654.9725、-820.93463) 0.9737737
16 右手首 (218.27956、1015.70435、-683.6567) 0.995568
17 左ピンク (1146.1635, 609.6432, -956.9976) 0.95273364
18 右の PINKY (176.17755、1065.838、-776.5006) 0.9785348

仕組み

この API の基盤となる ML モデルの実装の詳細については、Google AI のブログ投稿をご覧ください。

ML の公平性の実践とモデルのトレーニング方法については、モデルカードをご覧ください。