ポーズ検出用のTensorflowHub Model

ポーズ検出
この記事は約4分で読めます。
スポンサーリンク

機械学習色々やってると、数字だけでなくビジュアル的に成果が見たくなってきました。
そこで、ポーズ検出をやってみようかなと思ってます。
上手くいけば3Dモデル動かすとこまで行ってみたいな。

TensorflowHubのModelを使用する

学習から始めようかと思ったんですが、画像/動画系の学習は結構大変。
教師型学習になってくると思うけど、画像に対する正解のパターンを用意して学習させるとなると結構なマシンパワーと時間がかかりそう。
今回はチューニングまで行うつもりが無いのでGoogle様が用意してくれているTensorflowHubのモデルを使用することにします。
これはGoogleが提供している学習済みモデルデータを一般ユーザーが使用できるというものです。
いきなり推定から入ることができるので楽にテストすることができます。

今回はチューニングするつもりもないので、予想精度はGoogleを信じます。

TensorflowHubのModelを分類する

ポーズ検出用のモデルは複数あるので、どれを使うのかを整理してみたいと思います。

まずは、2次元検出用のモデルになります。
検出対象が一人か複数かで分かれてきますが、今回やりたいのは2次元ではなく3次元なので今回は見送ります。

ModelFPSInputsOutputs
movenet/singlepose/lightning>50A frame of video or an image
represented as an int32 tensor of shape: 192x192x3
RGB with values in [0, 255]
A float32 tensor of shape [1, 1, 17, 3]
movenet/singlepose/thunder>30A frame of video or an image
represented as an int32 tensor of shape: 256x256x3
RGB with values in [0, 255]
A float32 tensor of shape [1, 1, 17, 3].
movenet/multipose/lightning>30A frame of video or an image
represented as an int32 tensor of dynamic shape: 1xHxWx3, where H and W need to be a multiple of 32 and the larger dimension is recommended to be 256.
The channel order is RGB with values in [0, 255].
A float32 tensor of shape [1, 6, 56].
The model can detect up to 6 people in the image frame simultaneously.

3次元のもでるはこっち。実行するPCのスペックによってモデルが分かれてきますが、スペックが高い方が精度が高いというのは自然な考えでしょう。
このモデルはTensorflowというよりはMediaPipeというプロジェクトで実装されている模様です。

Model
blazepose_3d/landmark/fullA middle ground between performance and accuracy
blazepose_3d/landmark/heavyour largest model intended for high accuracy, regardless of size
blazepose_3d/landmark/liteour smallest model that is less accurate but smaller in model size and minimal memory footprint

MediaPipeのプロジェクトとして、体全体のモデルの他に「手」の状態を判断するためのモデルもあります。
MediaPipeのプロジェクトには他にも顔などパーツ単位の検出モデルがあります。

TensorflowHub中心に整理してみましたが、MediaPipeのほうを整理した方が良いかもしれない。

タイトルとURLをコピーしました