2017年5月26日金曜日

既存の Caffe 上に OpenPose のみビルドした。 (built OpenPose on my own Caffe)

 
サンプル画像の検出結果

はじめに

OpenPoseは今月の初め普通のWebカメラの画像からボーンが取得できると、一部の界隈で話題になったので、試してみようとした。
当初、処理時間がかかってもCPUで何とかなるだろうと考え試してみたが、残念ながらこの試みは無駄に終わった。(後日簡単ないきさつをまとめる予定)
しかたがないのでGPUボードを新規に購入し、CUDA環境を整え、こちらも新規にGPU版のCaffeをビルドし、その環境の上に再度OpenPoseのビルドを試みた。

インストールの仕方は、ここを参考にした。それによれば、 install_openpose.sh を実行すればよいとのことだが、試してみるといくつか問題あった。結局、 install_openpose.sh の中の処理を手動で実行することで回避した。スクリプトの内部は以下手順がかかれている。

1 ubuntuのバージョンチェック
   14.04 と 15以降を別扱いに

2 CPUのコア数をチェック

3 Makefile.config.Ubuntu16.exampleをMakefile.configにコピーする。
  CUDA8が前提となっている。
  CUDA7の場合は、Makefile.config.Ubuntu16.cuda_7.example を使用することになる

4 コア数を指定し make allを実行

5 models ディレクトリに移動し、getModels.sh を実行し、モデルを取得する

  coco ディレクトリには、
  wget http://posefs1.perception.cs.cmu.edu/Users/tsimon/Projects/coco/data/models/coco/pose_iter_440000.caffemodel

  mpi ディレクトリには
  wget http://posefs1.perception.cs.cmu.edu/Users/tsimon/Projects/coco/data/models/mpi/pose_iter_160000.caffemodel

 によりモデルデータが取得される。

 モデルデータは、約200Mbyteぐらいあり、サーバが遅いのでそれぞれの取得に1時間以上かかる。

つまづいたポイント

オリジナルのMakefile.configでmakeを行うと

./include/openpose/core/netCaffe.hpp:8:25: fatal error: caffe/net.hpp: No such file or directory


/usr/bin/ld: cannot find -lcaffe
などのエラーが生じmakeに失敗する。

対策としてMakefile.configにCaffeのパスを追加すれば解決する。

INCLUDE_DIRS := /usr/local/include /usr/include/hdf5/serial /opt/caffe/build/include
LIBRARY_DIRS := /usr/local/lib /usr/lib /opt/caffe/build/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial


サンプルのプログラムに関しては次回に続く


環境

ubuntu 16.04  GPUボード GTX 1050Ti
CUDA 8.0 cuDNN 6

以上

0 件のコメント:

コメントを投稿