OpenPoseをUbuntu18.04に導入する方法(2019.11)(※2021.11一部更新)


OpenPoseとは

OpenPoseは、画像から骨格を推定することができるソフトです。研究室の教授から薦められたものの、導入に手こずってしまったので手順を具体的に記していこうと思います。

基本的には、以下のOpenPose公式を参考にしています。(英語)
https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master

環境構築の前に注意!!(スペックに関して)

うちの研究室は画像や音声処理を扱った研究室なのですが、私はもともと音声処理の研究をしています。そのため、コンパクトサイズに収まるMacminiを使用していましたが、CPUに搭載されている内蔵GPUで動かそうとすると、びっくりするぐらい解析に時間がかかります。(0.1fpsくらい、10分の動画なら2~3日かかるレベル)
そこで、教授にお願いして映像処理に対応できるPCを支給してもらいました。(先生ありがとうございます。)

今回使用したPCのスペックはこちらです。

  • CPU: Intel Core i7 8700
  • GPU: Nvidia Geforce 1660
  • Memory: 8GB
  • OS:Ubuntu 18.04

この環境下であれば、サクサクとまでは行かないものの十分作業ができます。

まずは、GPUまわりのtensolflow環境の構築

まずはじめにGPUの環境を整える必要があります。基本的には以下のサイトがとても参考になるので、そちらを参考にしてほしいです。
https://www.nemotos.net/?p=3176

ただし、ひとつだけ注意しなければならないことがあります。
(2021.11更新)注意事項が2つに増えました。

1.OpenPose推奨のCUDA10台のバージョンは、RTX3000番台には非対応

これらのGPUを使っている場合は、CUDA11とCUDA10の両方をダウンロードした上で、CUDA10にあってCUDA11にないファイルをコピペしてください。

2.NVIDIAアカウントを作成する必要がある

cuDNNをinstallするときに、

sudo apt install --no-install-recommends cuda-10-1 libcudnn7 libcudnn7-dev

で導入できるという旨が書かれていますが、cuDNNを導入するためには、nvidiaのアカウントを用いて直接サイトからダウンロードしないと弾かれてしまいます。(ここは盲点です。)

以下のサイトからダウンロードできます。
https://developer.nvidia.com/rdp/cudnn-download

すべての作業が完了し、terminalで次のような感じになればOKです!

$ nvidia-smi
Thu Nov 21 16:14:59 2019       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.50       Driver Version: 430.50       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 GTX 1660    Off  | 00000000:01:00.0  On |                  N/A |
| 33%   36C    P8    15W / 120W |    474MiB /  5936MiB |      1%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1259      G   /usr/lib/xorg/Xorg                            36MiB |
|    0      1305      G   /usr/bin/gnome-shell                          51MiB |
|    0      1626      G   /usr/lib/xorg/Xorg                           194MiB |
|    0      1772      G   /usr/bin/gnome-shell                         121MiB |
|    0      2328      G   /usr/lib/firefox/firefox                       3MiB |
|    0      2549      G   ...quest-channel-token=4185260004788428097    65MiB |
+-----------------------------------------------------------------------------+

OpenCVも忘れずに!

sudo aptで、ぱっと手にはいります。

sudo apt install libopencv-dev

CMake GUIの導入(最重要事項)

(注意!!OpenPoseのオフィシャルによると、Anacondaを導入しているPCでは、OpenPoseがうまく動作しない場合があります。)

ubuntu 14or16の場合

terminalに次のことを打ち込めば、設定は完了です。

sudo apt-get install cmake-qt-gui

ubuntu 18の場合

1.まずは、古いcMakeをアンインストールします。

sudo apt purge cmake-qt-gui

その後、次を実行します。

sudo apt-get install qtbase5-dev

2.新しいcMakeをダウンロード
次のサイトの、Latest ReleaseのLinux Sourceから、cmake-X.X.X.tar.gzをダウンロードします。
https://cmake.org/download/

それを解凍して、openposeと同じディレクトリに配置しておきます。

3.cMakeのインストール

次のコマンドを実行します。

./configure --qt-gui
./bootstrap && make -j`nproc` && sudo make install -j`nproc`

これで、エラーが起きなければ準備完了です。

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 -j`nproc`
$ sudo make install

あとは、実行するだけです。

OpenPoseを実際に動かしてみる。

以下のコマンドを打ち込みます。

$ cd ..
$ ./build/examples/openpose/openpose.bin --video examples/media/video.avi


このような画面が出て来れば、成功です。

自分が用意したものを再生したいときは、video.aviの部分を用意したファイルに変えてもらえればOKです。

参考になったサイト