24
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

追跡機能付き姿勢推定「AlphaPose」を試してみた

Last updated at Posted at 2020-02-19

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解析デモ

左上が「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)

導入方法

  1. AlphaPose のgithubリポジトリを clone する
  2. ライブラリをダウンロードして、既定の場所に配置する
  3. setup.py を実行する
  4. 動画、画像、画像ファイルを複数含むフォルダ、等を指定して、scripts/demo_inference.py を実行する

AlphaPoseSample.ipynb

というわけで、これらを用意した CoLab用ファイル がこちらになりますw
(Openposeモードの出力にIndex情報を追加するため、自分のリポジトリにforkしたものになります)
具体的なコードは上記をご覧ください。

所感

個人的に色々試しててハマったり、気づいたりしたところ

  • 動画を対象として、--detectorオプション(検出種別)を yolo にした場合、detbatch1 にしないと、Processget で固まる
    • 組み合わせ的な問題のような気もするのですが、yoloで 2以上にした場合、動画の最終フレームにたどり着く前にループを抜けようとして、getreturn が戻ってこないで固まりました。
    • trackerの場合、CoLab 上であれば、 4 までは動きました。 8だと固まりました。性能の問題かしら…
  • --detectorオプションを tracker にすると、人物追跡が出来る
    • この機能が欲しかった!!!
    • Openpose はINDEX順番の担保がされていないので、普通に上から順番に見ていくと、ワープしまくる
    • AlphaPose だと基本的には同じ人物は同じINDEX(値そのものは変わるようなので、昇順ソートした順番)が維持される模様。
    • ただ、人物が交差するところの精度は五分五分くらい?な感じなので、その辺はフォローが必要かもしれない
  • --formatopen にすると、Openpose(COCO)と同じ形式のjsonが生成される
    • 自分のプロジェクトで元々 Openpose を使用しているので、このオプションは非常に助かる。
    • ただし、人物INDEXの情報は捨てられてしまっていたので、forkして改造して利用。
  • Fast Pose だと3000Fくらいで固まってしまう。パラメーター調整でいけないか要検討。
  • しゃがんだり後ろを向いたりするときの推定は、Openpose の方が安定している
    • 今のところ、Simple BaselineFast Pose までしか試してないので、他のモデルも試してみる予定。
    • データが取れなかったところだけ Openpose もアリかもしれないが、そもそもしゃがんでるデータは 2D→3D推定 でもおかしくなりがちなので、今は諦めるのも手かもしれない。
  • AlphaPose は非商用であれば利用可能。スポーツ分野の制限はなさそう。
    • 地味に有り難いですね。

Openposeより速くて性能がいいので、今度のMMD自動トレースではこれを使ってみようと思います。

24
15
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
24
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?