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自動トレースではこれを使ってみようと思います。