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
$ 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です。
参考になったサイト
Author And Source
この問題について(OpenPoseをUbuntu18.04に導入する方法(2019.11)(※2021.11一部更新)), 我々は、より多くの情報をここで見つけました https://qiita.com/kazutoshipiano/items/b10d77fa5a73ba904846著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .