OpenPose (Windows版) Demo 実行：覚書

# **警告！**

予想（危惧？）通り、2017/7/8にOpenPose本家は全面改訂してきました。
windows版OpenPoseDemo（の新版）はしばらく待て(link comming soon)、になってましたｗｗ
というわけで、2017/7/8以降、下記の情報は無意味になっていくでしょう。
**2017/7/12以降，1.0.1が用意されました。Youtubeに1.0.1に関する覚書を貼ったのでそちらをご覧ください．⇒[YouTube](https://youtu.be/Ft2mMnAD7N4)**

1.0.0rc2は今でもアクセス可能なので、説明として置いておきますが、各自リスクを背負って読んでください。

# 目的

Windows(10, 64bit, Education版)で[OpenPose](https://github.com/CMU-Perceptual-Computing-Lab/openpose)のWindowsデモ版を実行するときの注意点と，制約と思われることについてメモをしておく．
なお，このメモは2017/7/7時点でのデモ版[openpose_1.0.0rc2.zip](http://posefs1.perception.cs.cmu.edu/OpenPose/openpose_1.0.0rc2.zip)に対して有効．~~近日中にデモも入れ替わるのではないかと予想されるので，注意が必要(CVPR2017までに入れ替えて来るのではないかと‥）．~~（翌日ｗに本当に入れ替わりました）

# 動作確認環境

- Windows10 / **64bit** / Education
- NVIDIA **GTX1080 (GTX980, GTX980M などは不可)**

細かくはあとの補足参照．

# インストール手順

最新の手順書が2017/7/8に切り替わったことに注意。
[最新版（2017/7/8以降公開。ここで扱わない）](https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/installation.md#windows)
[1.0.0rc2版 (2017/7/8以前に推奨されていたもの。ここで取り上げる）](https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/c652ab8b97a0cba6c678b1d2bbdd02c27a6013a8/doc/installation.md#windows)

[1.0.0rc2なWindowsデモ版　1. Installation - Demo](https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/c652ab8b97a0cba6c678b1d2bbdd02c27a6013a8/doc/installation.md#windows)に手順は書いてあるのだが，若干補足が必要．
手元で数機種についてテストした結果から言えば，[「WindowsでOpenPoseを動かしてみた。」](http://qiita.com/nnn112358/items/121dc36c3c1752a00276)が一番実態に近いと思う．（あとでこのまとめがあることを知ったのだがまぁ‥）

- pythonが必須．
- 1.0.0rc2は実行環境を選ぶ(高級なGPUが必要)

ということで，全く新規のPCに対する手順としては，

1. [Installation - Library](https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/c652ab8b97a0cba6c678b1d2bbdd02c27a6013a8/doc/installation.md#installation---library)にあるPython2.7導入実施
2. 続いて`pip install numpy protobuf hypothesis`を実施．pipが見つからない人は上記で導入したPython2.7の下を探そう（今憶えてない．scriptsの下だったかな？）
3. 以降は[Installation - Demo](https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/c652ab8b97a0cba6c678b1d2bbdd02c27a6013a8/doc/installation.md#installation---demo)の通りの手順でOK．

となる．

# デモ実行時に関する補足

デモの実行手順については[Quick Start](https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/c652ab8b97a0cba6c678b1d2bbdd02c27a6013a8/doc/installation.md#quick-start)に詳しいが，耳より情報としては，OpenPoseDemo.exeのおいてあるフォルダから見て [doc\GUI_help\GUI_help.png](https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/GUI_help/GUI_help.png)にファイルをおいておくと，皆が待ち望んだ「h - help」が出るようになる（というかリンク見ればしまいだが）.
OpenPoseさんがZip作るときに忘れたんでしょうね．

ソースから作ると，様々なオプション（[openpose.cppのソースを読もう！](https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/windows/examples/openpose/openpose.cpp)）が[可能になる．位置情報などもJSON/YAMLなどで取れる（実際に確認）](https://youtu.be/MWiuH5rCSxs)．ただし，残念ながら配布版(1.0.0rc2)ではこの辺りは全滅（映像の保存ぐらいは -write_video で可能．Motion JPEGでavi形式しか認めてないので注意）．
頑張ってコンパイルしよう！（かOpenPose1.0.0rc3ぐらいで可能になるのかな？）


# 補足

## Windows10がEducation版

理由は単純に，筑波大学で研究開発用に配布されてるため．（筑波大学いいでしょ？と宣伝してみる）
普通のWindows10/Professional(ないしHome)でも動くと思うが未確認．

## GPU制限

GTX980シリーズ（やそれ以下）のPCで動かなかった．
原因は私の設定手順不良にあるのかもしれないが，このデモを(OpenPose側が)ビルドするにはcaffeの構成をしなくてはいけないこと，そのときに[(Library版のコードによると)GPUの検知がAutoになっていること](https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/old_deprecated_windows/3rdparty/caffe/caffe-windows/scripts/build_win.cmd)，Autoになるとビルド環境に存在するGPUに合わせてしまうこと，等から予想すると，おそらくOpenPose側はPascal(GTX10x0, sm61ぐらい？)で配布用実行バイナリを生成してて，それに縛られてるのではないかと．
余談だが，Libraryからビルドすると，GTX980/GTX980M/GTX970Mでも動くOpenPoseDemoが作れる（作った）．GTX660M搭載PCでも作ってみたが，実行時にGPU上のメモリが足りない様子．残念．[速度的にも遅そう](https://docs.google.com/spreadsheets/d/1-DynFGvoScvfWDA1P4jDInCkbD4lg0IKOYbXgEq0sK0/edit#gid=0)なのでどのみち意味はなかろう．

## 1.0.0rc3?

[OpenPose Benchmark](https://docs.google.com/spreadsheets/d/1-DynFGvoScvfWDA1P4jDInCkbD4lg0IKOYbXgEq0sK0/edit#gid=0)になにげなく「1.0.0rc3」とある．
これは現在ソースからビルドすると作れるOpenPoseDemoのことか？それとも別物があるのか？
git見てるとCVPR2017に向けて猛烈？に書き直してるっぽい．頑張ってね，OpenPoseさん．

## Markdown / qiita デビュー

Markdown記法をがっつり書くのも，Qiitaに記事書くのも初めてなので，作法間違ってたら教えて下さい．
こういう文書書くのが楽な世の中になりましたね‥htmlもなかった時代からの者としては隔世の感があります（遠い目）．文体が不統一なのもこういうのにどういうスタンスで文章書くかまだ決めてないから‥