公開日: 最終更新日:

Ubuntu18.10にopenposeをインストール(環境構築)

Ubuntu18.10にOpenPoseをインストールするのになんかいろいろ手こずったためメモとして残しておく。

環境

CPU: Intel Core i7-8700
 メモリ: 32GB
 グラボ: RTX2080
 OS: Ubuntu18.10 desktop

ちなみにグラボからの映像出力は行っていない。

グラボ関係のツールとかを入れる

グラボのドライバ, CUDA-toolkit, cuDNNを入れておく。

グラボドライバのインストール

https://www.nvidia.co.jp/object/unix-jp.html

こちらから”NVIDIA-Linux-x86_64-418.56.run”をダウンロードした。記事執筆時での最新版であるのでそこは適宜変えていただきたい。

インストールは実行権限を与えてから。

$ chmod +x NVIDIA-Linux-x86_64-418.56.run
$ sudo ./NVIDIA-Linux-x86_64-418.56.run

きちんとインストールされたかを確認。

$ nvidia-smi
Wed Apr 24 01:11:10 2019       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.39       Driver Version: 418.39       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 2080    Off  | 00000000:01:00.0 Off |                  N/A |
| 23%   37C    P8     2W / 215W |      0MiB /  7952MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

きちんとインストールされたことがわかる。

CUDA-toolkitのインストール

次はCUDA-toolkitのインストール。ここから自分の環境(Ubuntu18.10)のrunファイルを落としてくる。debでもいいと思うけど。今回は10.1の最新版をダウンロード。

また同じように実行権限を与えて実行。

$ chmod +x cuda_10.1.105_418.39_linux.run
$ sudo ./cuda_10.1.105_418.39_linux.run

PATH通せって出てきたので通してあげる。

$ echo -e "\n## CUDA and cuDNN paths"  >> ~/.bashrc
$ echo 'export PATH=/usr/local/cuda-10.1/bin:${PATH}' >> ~/.bashrc
$ echo 'export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:${LD_LIBRARY_PATH}' >> ~/.bashrc
$ source ~/.bashrc

参考: ubuntu16.04でopenpose環境構築

cuDNNのインストール

以下のURLからダウンロードするが、登録が必要である。

https://developer.nvidia.com/rdp/cudnn-download

ちなみにネットの古い記事を見ていると少し古いバージョンのCUDAをインストールしたりとかしているが、今回の環境、とりわけこのRTX2080などのRTXシリーズは最新版CUDA+Ubuntu(Linux)でないと正常に動作しないらしい。というかWindowsでは動作しなかった。もうこの際だしとWindowsを消し飛ばした。さよなら。

こんな画面(2019/04/24)になると思う。これの

cuDNN Runtime Library for Ubuntu18.04 (Deb)

cuDNN Developer Library for Ubuntu18.04 (Deb)

cuDNN Code Samples and User Guide for Ubuntu18.04 (Deb)

をダウンロードした。

$ sudo dpkg -i libcudnn7_7.5.0.56-1+cuda10.1_amd64.deb
$ sudo dpkg -i libcudnn7-dev_7.5.0.56-1+cuda10.1_amd64.deb
$ sudo dpkg -i libcudnn7-doc_7.5.0.56-1+cuda10.1_amd64.deb

依存関係があるらしく、libcudnn7_7.5.0.56-1+cuda10.1_amd64.debを最初にインストールしてやらないといけなかった。

OpenCVも入れておく

公式ドキュメントにOpenCVも入れておけとか書かれていたので

https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/installation.md

$ sudo apt install libopencv-dev

だるくてaptなんかでインストールしてしまったけど全然最新版でもなんでもないのであまりおすすめしない。

参考: Ubuntu16.04へのOpenCV 3.3.0インストールメモ

このへん読めばできると思う。

OpenPoseのインストール

cmakeが古いとインストールに失敗する

ここからが本題となる。

公式ドキュメントの通りにやったがうまくいかず、吐くエラーをググってもダメ。

結局失敗の一番大きな要因だったと思うのはcmakeのバージョンである。

aptでインストールしていた少し古いバージョンのcmakeを使っていたのだが、それがまずかったっぽい。Githubのissueにもそんなことが書いてあって「まさかな」って思って最新版のソースをダウンロードしてきてビルドしたらうまくいったっていう……。そこらへんのインストールはググって。

実際にインストール

実際にインストール手順は以下のURLを参考にした。

参考: Jetson Nano に Openpose 入れてみる

$ git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose
$ cd openpose
$ sudo bash ./scripts/ubuntu/install_deps.sh
$ mkdir build
$ cd build
$ cmake ..
$ make -j4
$ sudo make install

これでうまくいった。

確認はデモ動かした。

kim@Kim-Desktop:~/openpose$ ./build/examples/openpose/openpose.bin --video examples/media/video.avi

映像が出てきてやってくれる。OKOK、疲れた。

ちなみにRTX2080で、実行中にnvidia-smiを見てやると、

kim@Kim-Desktop:~$ nvidia-smi
Wed Apr 24 01:54:07 2019       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.39       Driver Version: 418.39       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 2080    Off  | 00000000:01:00.0 Off |                  N/A |
| 23%   47C    P2   198W / 215W |   3267MiB /  7952MiB |     89%      Default |
+-------------------------------+----------------------+----------------------+

結構重たいことがわかる。RTX2080Tiにしておけばよかったか……?

とりあえずUbuntuでOpenposeのデモは動いた。そこから先はまだ執筆時では未検証であるので今後変更するかもしれない。

OpenPose関連記事

OpenPose for Unity で人の動きを二次元に落とし込む
 OpenPoseのJSON形式をCSVに変換する