LoginSignup
6
6

More than 3 years have passed since last update.

OpenPose(Caffe版)をMacBookで動かしてみる

Posted at

OpenPose(Caffe版)をMacBookで動かしてみる

はじめに

  • 画像から人体の骨格情報を取得できるOpenPoseを手持ちのMacBookで使ってみたかったが,ビルドする時に若干詰まったので備忘も兼ねてメモを残してみた.
  • OpenPoseにはCPU版とGPU版があり,高い精度の認識結果を早く取得したい場合はGPU版が推奨される.
    • 手持ちのMacBookにはGPUがついていなかったためCPU版を入れることにした.

OpenPoseとは?

  • DeepLearningを使って画像から体や顔・手足を認識して人体の骨格情報を取得することができる.

    • 通常のカメラで撮影した画像・動画から取得できるため,MicrosoftのKinectやIntelのRealSenseの様な機材の準備が不要.
  • 本家大元GitHubのREADMEに実際に認識させた例が掲載されている.

  • Caffe版とTensorFlow版の2種類のバージョンがあり,今回は上記GitHubのCaffe版を使ってみた.

環境

  • モデル: MacBook Pro (Late 2016)
  • OS: macOS Catalina (バージョン10.15.4)
  • CPU: Intel Core i5-6287U CPU @ 3.10GHz
  • メモリ: 16GB
  • OpenPoseのバージョン: v1.6.0

導入方法

1. GitHubリポジトリからclone

  • OpenPoseのGitHubリポジトリからcloneする.
$ git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git

2. cloneしたリポジトリに入る

  • cloneしたディレクトリにcdする.(基本はこのディレクトリで作業)
$ cd openpose

3. Homebrewを入れる(未導入の場合)

  • OpenPoseを動かすのに必要なパッケージのインストールにmacOS用パッケージ管理システムであるHomebrewが必要となるため,事前にインストールしておく.
    • TOPページ記載のスクリプトをターミナルで実行する.

4. CMakeをインストール

  • Homebrewを使いビルドに使用するCMakeをインストールする.
$ brew cask install cmake

5. 依存関係のあるパッケージをインストール

  • cloneしたディレクトリ内に依存関係のあるパッケージをインストールするシェルスクリプトが同梱されているため,それを実行する.
$ bash ./scripts/osx/install_deps.sh

6. ビルド先のフォルダを作成

  • CMakeでビルドした物を入れるため,「build」フォルダを作成する.
$ mkdir build

7. Caffeをcloneする

  • OpenPoseのビルドにはCaffeが必要となるため,OpenPoseのディレクトリ内にCaffeをcloneする.
$ cd 3rdparty
$ git clone https://github.com/CMU-Perceptual-Computing-Lab/caffe.git
  • Caffeのcloneが完了したらOpenPoseのルートディレクトリに戻る.
$ cd ../

8. CMake起動

  • OpenPoseのビルドを設定するため,CMakeを起動する.
$ cmake-gui

9. ビルド設定

  • 画面上部の「Where is the source code:」にソースコードのディレクトリを,「Where to build the binaries:」にはビルド先のディレクトリを入力する.

    • ソースコードはcloneしたopenposeディレクトリを,ビルド先は6.で作成した「build」フォルダを指定する.
  • 「Add Entry」ボタンをクリックし,下記情報を追記する.

    • Name: BUILD_CAFFE
    • Type: BOOL
    • Value: True (チェックボックスを入れる)

10. Configureを実行&Makefileを作成

  • ビルド設定を行ったら「Configure」ボタンをクリックする.

    • 画面下部のコンソールに「Configuring done」が表示されたら成功.
  • Configureができたら「Generate」ボタンをクリックする.

    • コンソールに「Generating done」が表示されたらMakefileの作成完了.
    • 「build」フォルダにMakefileが作成されていることを確認する.

11. ビルドする

  • 「build」フォルダに移動し,makeを実行&インストールする.
$ cd build
$ make -j `nproc`
$ sudo make install

OpenPoseを使ってみる

画像を認識させる

  • 画像を読み込ませて認識させ,認識結果の画像ファイルや骨格座標データのJSONファイルを出力することができる.
$ ./build/examples/openpose/openpose.bin --image_dir <画像ファイルのフォルダパス> --write-images <認識結果の画像ファイル出力先パス> --write-json <骨格座標データのJSONファイル出力先パス>
  • 認識結果

    • before
      before.png
    • after
      before.png
    • いらすとや」から引用させていただいた画像も認識させることができた.

動画を認識させる

  • 動画も認識させることができる.ただしCPU版だと1フレームの処理に時間がかかるため,時間の長い動画等を認識させたい場合はGPU版を使用した方が良いかもしれない.
$ ./build/examples/openpose/openpose.bin --video <動画ファイルのパス> --write-video <認識結果の動画ファイル出力先パス> --write-json <認識した骨格座標データのJSONファイル出力先パス>

参考ページ

6
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6