AlphaPose
上海交通大学の研究チームが公開している人物追跡機能も持つ高精度姿勢推定ライブラリです。
AlphaPose is an accurate multi-person pose estimator, which is the first open-source system that achieves 70+ mAP (75 mAP) on COCO dataset and 80+ mAP (82.1 mAP) on MPII dataset.
To match poses that correspond to the same person across frames, we also provide an efficient online pose tracker called Pose Flow. It is the first open-source online pose tracker that achieves both 60+ mAP (66.5 mAP) and 50+ MOTA (58.3 MOTA) on PoseTrack Challenge dataset.
Github: https://github.com/MVIG-SJTU/AlphaPose
Release: https://www.mvig.org/research/alphapose.html
サンプル動画
左上が「AlphaPose」(Simple Baseline)、右下が「Openpose」。
出力されたJSONデータリスト内のINDEXに基づき、緑と青の点を打っています。
(点を打つのは、拙作改造ライブラリ 「mannequinchallenge-vmd」の work_1.04 ブランチで行っています)
AlphaPose の四角い枠は tracker モードの時に自動的に挿入されます。枠の左上にINDEX番号が振られています。
【動画引用元】
バスター!
楽曲:dezzy(一億円P)様 (https://www.nicovideo.jp/watch/sm24753406)
踊り:やっこ様×まりやん様 (https://www.nicovideo.jp/watch/sm27620009)
導入方法
-
AlphaPoseのgithubリポジトリをcloneする - ライブラリをダウンロードして、既定の場所に配置する
-
setup.pyを実行する - 動画、画像、画像ファイルを複数含むフォルダ、等を指定して、
scripts/demo_inference.pyを実行する
というわけで、これらを用意した CoLab用ファイル がこちらになりますw
(Openposeモードの出力にIndex情報を追加するため、自分のリポジトリにforkしたものになります)
具体的なコードは上記をご覧ください。
所感
個人的に色々試しててハマったり、気づいたりしたところ
- 動画を対象として、
--detectorオプション(検出種別)をyoloにした場合、detbatchを1にしないと、Processのgetで固まる- 組み合わせ的な問題のような気もするのですが、
yoloで 2以上にした場合、動画の最終フレームにたどり着く前にループを抜けようとして、getでreturnが戻ってこないで固まりました。 -
trackerの場合、CoLab上であれば、4までは動きました。8だと固まりました。性能の問題かしら…
- 組み合わせ的な問題のような気もするのですが、
-
--detectorオプションをtrackerにすると、人物追跡が出来る- この機能が欲しかった!!!
-
OpenposeはINDEX順番の担保がされていないので、普通に上から順番に見ていくと、ワープしまくる -
AlphaPoseだと基本的には同じ人物は同じINDEX(値そのものは変わるようなので、昇順ソートした順番)が維持される模様。 - ただ、人物が交差するところの精度は五分五分くらい?な感じなので、その辺はフォローが必要かもしれない
-
--formatをopenにすると、Openpose(COCO)と同じ形式のjsonが生成される- 自分のプロジェクトで元々
Openposeを使用しているので、このオプションは非常に助かる。 - ただし、人物INDEXの情報は捨てられてしまっていたので、forkして改造して利用。
- 自分のプロジェクトで元々
-
Fast Poseだと3000Fくらいで固まってしまう。パラメーター調整でいけないか要検討。 - しゃがんだり後ろを向いたりするときの推定は、
Openposeの方が安定している- 今のところ、
Simple BaselineとFast Poseまでしか試してないので、他のモデルも試してみる予定。 - データが取れなかったところだけ
Openposeもアリかもしれないが、そもそもしゃがんでるデータは 2D→3D推定 でもおかしくなりがちなので、今は諦めるのも手かもしれない。
- 今のところ、
-
AlphaPoseは非商用であれば利用可能。スポーツ分野の制限はなさそう。- 地味に有り難いですね。
Openposeより速くて性能がいいので、今度のMMD自動トレースではこれを使ってみようと思います。
