このページは執筆中であり情報はまだ不完全です。参考にしないで下さい。
2020/07/24 Updated by

OpenPose

TensorFlow版OpenPose 3dをWindows上で動かす (GPU版)


[Up] Japanese English

環境


インストール手順

  1. OpenPose の TensorFlow 版が tf pose estimation として公開されている
  2. https://github.com/ildoonet/tf-pose-estimation
  3. downloadする
  4.     [Anaconda Prompt 上で]
        git clone https://www.github.com/ildoonet/tf-pose-estimation
    
  5. anaconda で python3をインストールする。
  6. conda 自体をupdateする。
  7.     [Anaconda Prompt 上で]
         conda update -n base -c defaults conda
    
  8. 仮想環境 pose を作成する。
  9.     [Anaconda Prompt 上で]
        conda create -n pose python=3.6 jupyter
    
  10. 作成したpython環境に切り換える
  11.     (base) % conda activate pose
    
  12. 必要そうなライブラリをインストールしておく。
  13.     (pose) % pip install cython                  → 0.29.21
        (pose) % pip install numpy                   → 1.19.1
        (pose) % pip install opencv-python           → 4.3.0.36
    
  14. tensorflowをバージョンを指定してインストールする
  15.     (pose) % pip install tensorflow-gpu==1.14    → 1.14.0
    
  16. README.md を読んでインストールする。
  17.     (pose) % cd tf-pose-estimation
        (pose) % pip install -r requirements.txt
    
         途中で次のエラーが起きる。
           ERROR: Failed building wheel for pycocotools
    
  18. 手動で pycocotools をインストールする。
  19.     (pose) % pip install "git+https://github.com/philferriere/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI"
    
  20. もう一度、requirements.txt をインストールする
  21.     (pose) % pip install -r requirements.txt
         今度はエラーは起きなかった。
    
  22. swigをインストールする。
    1. SWIG websiteからzipファイルをダウンロードして、展開する。
    2.       swigwin-4.0.2
          
    3. 環境変数のPath 変数に、swig.exe のパスを追加する。
    4.     自分の場合は D:\sys\swig-4.0.2 を環境変数Pathの最後に追加した。
      
    5. SWIG Windows Examplesを参照して環境変数を設定する。
    6.     Pythonの場合 (pythonのバージョンの違いに気をつけて仮想環境のファイルへのパスを指定する)
            PYTHON_INCLUDE   D:\sys\Anaconda3\env\pose\include\Python.h
            PYTHON_LIB       D:\sys\Anaconda3\env\pose\libs\python36.lib
        
  23. 環境変数の設定を変更したら、Anaconda Prompt を起動し直す必要があることに注意すること。
  24. c++ライブラリをビルドする。
  25.     (pose) % cd tf_pose\pafprocess
        (pose) % swig -python -c++ pafprocess.i && python setup.py build_ext --inplace
    
  26. modelをダウンロードする。(bashを使うので)cygwinのウィンドウの中で以下のコマンドを実行する。wgetが使える cygwin のインストール方法はこちら
  27.   [cygwinのウィンドウの中で]
        cd models/graph/cmu
        bash download.sh
        cd ../../..
    
  28. 画像ファイルに対して実行する
  29.     (pose) % python run.py --model=mobilenet_thin --resize=432x368 --image=images/p1.jpg
        tf_pose/estimator.py で次のエラーが起きる。
        ModuleNotFoundError: No module named 'tensorflow.contrib.tensorrt'
    
  30. tf_pose/estimator.py を tensorrt を使わないように変更する。
  31. diff -c estimator.org.py estimator.py
  32. 画像ファイルに対して実行する
  33.     (pose) % python run.py --model=mobilenet_thin --resize=432x368 --image=images/p1.jpg
        run.py 88行目で次のエラーが起きる。
    run.py:88: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
      plt.show()
        matplotlib のbackend が agg であるのがいけないようだ。
        import matplotlib
        matplotlib.use('Agg')
        みたいになっている部分を探して、TkAgg, WX, QTAgg, QT4Agg の順でbackendを試すといいようだ。
        pose_datase.py:223行目 と train.py:2行目 にある
        以下の変更を加えた。→ OK。正常に動作するようになった。
    
    
    diff -c run.org.py run.py
  34. 画像ファイルに対して実行する
  35.     (pose) % python run.py --model=mobilenet_thin --resize=432x368 --image=images/p1.jpg
        正常に動作した。