背景
CVPR2017で発表された、DeepLearningを使った、単眼カメラでのスケルトン検出アルゴリズムが、OpenPoseという名称でライブラリ化・公開された。
早速、Ubuntu(1404)で、OpenPoseを動かしてみた。
https://github.com/CMU-Perceptual-Computing-Lab/openpose
上記画像ソースは、[ ぱくたそ(www.pakutaso.com)]様のフリー写真素材を使用しました。
論文
Realtime Multi-Person 2D Human Pose Estimation using Part Affinity Fields, CVPR 2017:
動画:
https://www.youtube.com/watch?v=pW6nZXeWlGM&t=77s
プレゼン:
http://image-net.org/challenges/talks/2016/Multi-person%20pose%20estimation-CMU.pdf
論文:
https://arxiv.org/pdf/1611.08050.pdf
ライブラリのインストール
基本的にはdoc/installation.mdを参照してインストールすれば良い。
https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/installation.md
OpenPoseは、CUDA, cuDNN, OpenCV, Atlas を予めインストールする必要がある。
私の環境はUbuntu1404の為、CUDA8.0とcuDNN5.1をインストールした。
CUDAのインストール
https://developer.nvidia.com/cuda-downloads
から、debをダウンロードしてインストール。
sudo dpkg -i cuda-repo-ubuntu1404-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
cuDNNのインストール
https://developer.nvidia.com/rdp/cudnn-download
から、debをダウンロードしてインストール。
sudo dpkg -i libcudnn5-dev_5.1.10-1+cuda8.0_amd64.deb
sudo dpkg -i libcudnn5_5.1.10-1+cuda8.0_amd64.deb
ここで、私の環境では、
libEGL.so.1 is not a symbolic link
が出た為、以下の用にリンクを修正。
sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1
参考:http://stackoverflow.com/questions/43016255/libegl-so-1-is-not-a-symbolic-link
OpenCV , Atlasのインストール
これはapt-getでインストールすれば良い。
sudo apt-get install libopencv-dev
sudo apt-get install libatlas-base-dev
openposeのインストール
openpose直下の、下記のファイルを実行すると、付随して必要なライブラリ・学習器のダウンロード・インストールと、サンプルのコンパイルが行われる。
./install_caffe_and_openpose.sh
サンプルを動かしてみる。
1. サンプル動画で動かしてみる
./build/examples/openpose/rtpose.bin --video examples/media/video.avi
2. Webカメラで動かしてみる
./build/examples/openpose/rtpose.bin
3. サンプル静止画で動かしてみる
./build/examples/openpose/rtpose.bin --image_dir examples/media/
所感
RGB-Dカメラでも、ステレオでもない、単眼のWEBカメラでリアルタイムにスケルトン検出ができてるのを見ると、純粋に技術の進歩を感じる。