落胆がらくた街

Dr.Rootはサポート終了製品です。

tf-openposeをWindowsで動かす

お品書き

Vtuberとかがやってるあのアレ、人の動きをコンピュータに流し込むやつ。
KinectやHTC Viveに加えて、ディープラーニングで画像から姿勢推定という選択肢がでてきた。
というわけで、実際にGPUアリで動かすまでの手順でハマったところをメモっとく。
tf-openposeのざっくりとした導入手順は下記参照。
GPU無しで画像のみから人間のボーン推定が出来るtf-openposeを導入する - Qiita

準備

tf-pose-estimation本体。git cloneなりZIPで落とすなりしてローカルに保存する。
GitHub - ildoonet/tf-pose-estimation: Deep Pose Estimation implemented using Tensorflow with Custom Architectures for fast inference.

git。git自体も要るし、付属のgit bashも使う。便利だからいいから入れとけ的なやつ。
Git

3.6系Python。自分の環境では3.6.6。3.7系以降はTFが動かないので死ぬ。
Download Python | Python.org

9.0のCUDA。9.2とか10を入れるとやっぱりTF動かないので死。
CUDA Toolkit 9.0 Downloads | NVIDIA Developer

tensorflow-gpu。通称TF。pythonを入れたらpipで入れる(管理者コマンドで下記叩くだけ)。ググるとanaconda使ってる例が多いけど無くてももちろんOK。

pip install tensorflow-gpu

Cuda9.0用のCuDnn。アカウント取らないと落とせないファック仕様。バージョンは違うが下記ページ参考。Win8ユーザはWin7用入れればOK。
Windows で NVIDIA cuDNN 7.1.4のインストール

作業内容

1. 標準のコマンドプロンプトだと途中コケるので、gitについてくるgit bash管理者権限で開く。
多分git入れた時スタートメニューかなんかに入り込んでると思う。

2. 落としてきたtf-pose-estimationのフォルダに移動する。

3. コマンドを叩く。成功するよう祈る。失敗したらエラーの内容と睨めっこする。

pip3 install -r requirements.txt

4. tensorflowとtensorflow-gpuが両方入ってると競合するので、下記コマンドでtensorflowを消す*1

pip uninstall tensorflow

5. CUDAのディレクトリにPATHを通す。Windows環境でこいつをやらないと実行時にTF呼べなくてコケる。
実行時のバッチで下記を叩いてもいいし、環境変数に追加しても良い。(この手順は無くてもうまくいく場合があるっぽい。)

SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin;%PATH%
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\CUPTI\libx64;%PATH%

6. とりあえず下記コマンドで実行出来れば成功(実行時に動的にパス通す場合)。

py run.py --model=mobilenet_thin

渡せるコマンドと改造について

は次回の記事にかく。

*1:tensorflow-gpuが入っていれば勝手にそっちを呼んでくれるが、どっちも入ってるとノーマルのTFが呼ばれるらしい