LoginSignup
10
9

More than 3 years have passed since last update.

DeepLabCutとOpenPoseとで推定した骨格を見比べる

Last updated at Posted at 2019-08-05

はじめに

記事の内容

DeepLabCut (Windows + Google Colaboratoryでの使い方は、前回記事)とOpenPoseで、姿勢推定を行い、その出力を見比べてみました

いずれも、2D動画の各フレームに対し深層学習モデルを適用し、身体部位を推定しています

使った動画

今回使った動画は、2015年の夏に撮影した30fps, フルHD(1920×1080)の動画です
(たしかiPhone 5sで撮ったと思います)
被写体は、筆者
場所は分かる人が見ればわかるかと思いますが、とある陸上競技場です

元はmovファイルでしたが、Qiitaへアップロードするために、gifに変換しました
フレームレートを10へ落とし、リサイズ、クロップをしています

2015_org_small.gif

DeepLabCutによる推定

  • 解析環境

    • windows10 home (64bit)
    • Miniconda 3 ←ラベリングまで
    • Google Colaboratory (python3)
  • 推定する身体部位 (下記17部位)

    • 右肩
    • 右肘
    • 右手首
    • 左肩
    • 左肘
    • 左手首
    • 右尻(大転子)
    • 右膝
    • 右踝
    • 右踵
    • 右爪先
    • 左尻
    • 左膝
    • 左踵
    • 左爪先
  • 各パラメータ

    • ラベル枚数: 20枚 (numframes2pick)
    • 最初のモデル: mpii-single-resnet-101 (init_weights)
    • トレーニング回数: 800000回 (iteration)

学習したモデルの評価

iterations %Training dataset Train error(px) Test error(px)
80000 95 1.82 19.58

カメラが動く上、20枚しかラベリング(お手本)に使ってないためか、結構エラーがあります

deeplabcutによる動画

2015_dlc_small.gif

ラベリングが地味に大変なのと、学習にも時間がかかりましたが、ぱっと見の推定精度はなかなかではないでしょうか

OpenPoseによる推定

  • 解析環境

    • windows10 home (64bit)
    • Miniconda 3
    • GeForce GTX 1050Ti + CUDA ※一回目にDLCをインストールしようとしたときに入れたが、詳細は忘れてしまいました。苦労した気がします
  • 推定する身体部位 (下記25部位、BODY_25)

    • 右目、左目
    • 右耳、左耳
    • 右肩、左肩
    • 右肘、左肘
    • 右手首、左手首
    • 右尻、左尻
    • 右膝、左膝
    • 右踝、左踝
    • 右踵、左踵
    • 右母指球、左母指球
    • 右爪先、左爪先
  • OpenPose

    • windows用Portable Demoを使っています めちゃめちゃ簡単です

一人しか推定しないので、下記コードを実行しています

bin\OpenPoseDemo.exe --video videopath.mov --tracking 0 --number_people_max 1 --write_video videopath_op.avi --write_json videopath_op\ --display 0 

windowsではaviしか出力できないようです
関節点データは、json形式で吐き出させます。フレーム毎にファイルができるので、まとめる必要がありますね

deeplabcutによる動画

2015_op_small.gif

このぐらいの動画なら、ものの数十秒で推定できちゃいますね
得意な動画とそうでない動画でパフォーマンスが全然違うのが困ったところなのですが、今回の動画に対しては驚きの精度です

おわり

ちょっと興味があるけど、どのくらいの精度なのかを知りたい方の参考になればと思います。

10
9
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
10
9