ポーズ推定

ポーズ推定は、ML モデルを使用して、主要な体の関節 (キーポイント) の空間的な位置を推定することで、画像または動画から人のポーズを推定するタスクです。

はじめに

スターターモデルをダウンロードする

Android の例 iOS の例

TensorFlow Lite API に慣れている場合は、スターター MoveNet ポーズ推定モデルと追加ファイルをダウンロードしてください。

スターターモデルをダウンロードする

Web ブラウザでポーズ推定を試す場合は、TensorFlow JS デモを参照してください。

モデルの説明

使い方

ポーズ推定は、コンピュータビジョン手法を参照して、画像や動画の人物を検出するため、たとえば、誰かのひじが画像に現れる場所を判定できます。ポーズ推定では、主要な体の関節の場所を推定することはほとんどなく、画像や動画の人物が誰なのかを認識することもないという事実を理解することが重要です。

ポーズ推定モデルは、処理済みのカメラ画像を入力として受け取り、キーポイントに関する情報を出力します。検出されたキーポイントは、信頼度スコア 0.0 ~ 1.0 のパーツ ID によってインデックス付けされます。信頼度スコアは、キーポイントがその位置に存在する確率を示します。

次の TensorFlow Lite の 2 つのポーズ推定モデルについて、実装の参考情報が提供されています。

  • MoveNet: Lighting と Thunder という 2 つのバージョンで提供されている最先端のポーズ推定モデル。この 2 つの比較については、以下のセクションを参照してください。
  • PoseNet: 2017 年にリリースされた前の世代のポーズ推定モデル。

ポーズ推定モデルで検出されたさまざまな体の関節は、次の表のとおりです。

ID 部位
0
1 左目
2 右目
3 左耳
4 右耳
5 左肩
6 右肩
7 左ひじ
8 右ひじ
9 左手首
10 右手首
11 左腰
12 右腰
13 左ひざ
14 右ひざ
15 左足首
16 右足首

次に、出力の例を示します。

Animation showing pose estimation

パフォーマンスベンチマーク

MoveNet は次の 2 つのバージョンで提供されています。

  • MoveNet.Lightning は小さく高速ですが、Thunder バージョンよりも精度が劣ります。最新のスマートフォンでリアルタイムで実行できます。
  • MoveNet.Thunder は精度が高いバージョンですが、Lightning よりもサイズが大きく低速です。高い精度が求められるユースケースで有用です。

MoveNet は、さまざまなデータセットに対して、PoseNet よりも優れています。特に、フィットネスアクション画像を含む画像で優れています。このため、PoseNet よりも MoveNet を使用することをお勧めします。

パフォーマンスベンチマークの数値は、こちらで説明されているツールを使用して生成されています。精度 (mAP) は、各画像が 1 人の人物だけを含むようにフィルタおよび切り取りされた COCO データセットのサブセットに対して測定されます。

モデル サイズ (MB) mAP レイテンシ (ms)
Pixel 5 - CPU 4 スレッド Pixel 5 - GPU Raspberry Pi 4 - CPU 4 スレッド
MoveNet.Thunder (FP16 量子化) 12.6MB 72.0 155ms 45ms 594ms
MoveNet.Thunder (INT8 量子化) 7.1MB 68.9 100ms 52ms 251ms
MoveNet.Lightning (FP16 量子化) 4.8MB 63.0 60ms 25ms 186ms
MoveNet.Lightning (INT8 量子化) 2.9MB 57.4 52ms 28ms 95ms
PoseNet(MobileNetV1 バックボーン、FP32) 13.3MB 45.6 80ms 40ms 338ms

その他の資料とリソース

  • MoveNet と TensorFlow Lite を使用したポーズ推定の詳細については、こちらのブログ投稿をお読みください。
  • Web でのポーズ推定の詳細については、こちらのブログ投稿をお読みください。
  • TensorFlow Hub のモデルを使用した Python での MoveNet の実行の詳細については、こちらのチュートリアルを参照してください。
  • Coral/EdgeTPU では、エッジデバイスでポーズ推定を大幅に高速化して実行できます。詳細については、EdgeTPU 最適化モデルを参照してください。
  • こちらから PoseNet ドキュメントをお読みください。

次のポーズ推定のユースケースも確認してください。