OpenPoseを試してみた

Alternative Kinect

OpenPoseはweb cameraだけで人体の骨格や表情を認識することができる技術だ。今後注目すべき技術になると思う。今はマシンパワーが少し必要であるが、2015年モデルのMac book Proでビルドして試してみても、まぁまぁな速度で動作する。でも実際に仕事の案件などで使用するなら、少し物足りない気がした。また、オープンソースであるが、商用利用にはライセンス費を支払う必要がある。1年で$2,5000とかなりお高め。ただし、オリジナルのOpenPoseから派生したプロジェクトもいくつかあり、こちらはApache 2.0ライセンスなので、商用利用できるようだ。

 

github.com

 

インストール方法

本家のOpenPoseのインストール方法を記載する。本家のOpenPoseはMacのインストールはCPUビルドのみサポートしているようだ。また、CPUバージョンは8GBのRAMと少なくても最新のCPU8コアが強く推奨されている。 ちなみに私の環境はMacbook Pro 15 inchの2015年モデルで、4コアでRAMは16GBだ。

$git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose
$cd openpose
  • cmakeをインストール (cmake guiも同時にインストールされる)
$brew cask install cmake
$bash 3rdparty/osx/install_deps.sh
  • cmake経由でインストールされたcaffeを削除して、再インストールする
$brew uninstall caffe
$brew install caffe
  • cmake-guiコマンドでcmakeするためのGUIを開く
$cmake-gui
  • ソースコードパスとbuildフォルダパスを指定する
    buildフォルダは空のフォルダを生成しておく
Where is the source code: /path/to/openpose
Where to the binaries: /path/to/build

f:id:o2mitsu:20180922124419p:plain * Add Entryボタンを押して、以下の追加情報を設定する

Name : BUILD_CAFFE
Type   : bool
Value  : false (チェックボックスのチェックを外す)
Name : Caffe_INCLUDE_DIRS
Type   : PATH
Value  : /usr/local/include/caffe
Name : Caffe_LIBS
Type   : PATH
Value  : /usr/local/lib/libcaffe.dylib
  • Configureボタンで設定を反映
    ここでエラーとして赤いラインが表示されても、問題なかった
  • Generateボタンでバイナリを生成
    buildフォルダにexampleなどのフォルダが生成されていれば成功
  • buildフォルダに移動して、makeする
    (このステップは必要ないかもしれない)
$cd build/
$make -j`nproc`
$sudo make install
Quick Start

exampleフォルダにあるvideoファイルから、人物認識をするデモが実行できる。

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

f:id:o2mitsu:20180922130052p:plain

webカメラを使う場合は、--videoオプションではなく--cameraオプションを使えば良い

$./build/examples/openpose/openpose.bin --camera 0

また、fpsの調整で一番簡単な方法が、--net_resolustionのサイズを小さくすることらしい。ただし、サイズを小さくするとその分認識精度は落ちる。
--net_resolutionは16の倍数で設定する必要がある。net__resolutionはTensorflowによって作られた学習モデルに渡す画像サイズのようだ。

$./build/examples/openpose/openpose.bin --net_resolution 656x368 --camera 0