0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

最新の3D姿勢推定をMotionBert、AlphaPoseでしてみる

Posted at

はじめに

姿勢推定の中でも、最新の3次元の骨格座標を推定する。
特別なカメラ、GPUは必要とせず、オープンソースであるMotionBertAlphaPoseを利用して行う。

3D姿勢推定とは

流れ

  1. AlphaPoseを利用して、動画から2次元の骨格座標を推定する。
  2. MotionBertを利用して、上記の2次元の骨格座標から3次元の骨格座標を推定する。

AlphaPoseによる2次元の骨格推定

AlphaPoseとは

MotionBertで3D姿勢推定するためには、まず決められたフォーマットの2次元の骨格座標が必要。
その骨格データを取得するために、AlphaPoseを使用する。

AlphaPoseは、公式にMotionBertから利用を推奨されており、

同様の機能のOpenPose (CMU-Pose)より高い推定精度を持ち、

NVIDIA製のGPUや特殊なカメラを必須としない。

AlphaPoseの実装

下記の記事を参考にしてAlphaPoseをインストール。

セットアップが済んだら、下記のモデルを使用して、骨格推定する。

下記の設定ファイルとモデルファイルがクローンしたディレクトリに存在しない場合は、上記のサイトからダウンロードして所定のディレクトリに配置してから、実行する。

・256x192_res50_lr1e-3_1x.yaml
・halpe26_fast_res50_256x192.pth

実行結果として、

2次元の骨格座標をJSONファイル形式で得る。

詰まった点

・ライブラリのバージョンが最新でないものが多いので、仮想環境のanacondaで環境構築するのがおすすめ。
Windowsの場合は、下記の記事に注意。

・AlphaPose/trackers/PoseFlow/requirements.txtで指定されているバージョンでnumpy等のライブラリをインストールしていたが、それだと動作せず、githubの「Issues」に投稿されていたバージョンに変更してうまくいった。

MotionBertによる3次元の骨格推定

MotionBertとは

単眼カメラによる3D姿勢推定で最も高い精度を出しているツールのひとつ。

NVIDIA製のGPUや特殊なカメラを必須としない。

MotionBertの実装

下記の記事を参考にして、MotionBertをインストール。

windowsの場合、
下記の記事の通りに、コードを修正する必要がある。

下記の記事を下記の記事を参考にして、MotionBertを実行。

実行結果として、

3次元の骨格座標データを得る。

詰まった点

・GPUのCUDAはなくても、動作するので、インストール時にエラーが発生した場合は、下記の通り、変更してみる。

conda install pytorch torchvision torchaudio pytorch-cuda=11.6 -c pytorch -c nvidia

変更後

conda install pytorch torchvision torchaudio cpuonly -c pytorch

・python infer_wild.pyの実行で、
windowsの仮想メモリが不足してエラーが発生。増やしてみても解決しなかった。
infer_wild.pyを下記の通り編集して、処理の並列化を無効にすることで解決した。

'num_workers': 1,#もともとは8

最後に

初めての投稿なので、説明不足の部分があると思います。
不明点、間違いなどがございましたら、コメントからご指摘いただけるとありがたいです。

この3D姿勢推定の技術を利用して、歩き方から個人の識別の研究に取り組んでいます。
その記事も今後投稿しますので、よければお待ちください。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?