LoginSignup
11
11

More than 5 years have passed since last update.

OpenPoseで姿勢解析環境のセットアップ Ubuntu18.04LTS

Posted at

TL;DR

  • AWS EC2上のVM( g3s.xlarge, Ubuntu 18.04LTS )で,姿勢解析システムOpenposeを作り,実験する手順(2019年03月03日時点)を紹介します.
    • nvidiaのGPUを持っていないので,Amazon AWSのg3インスタンスを使いますが,ローカルのGPUでもほぼ同様の方法が使えるはずです.

EC2 g3インスタンスの作成

AWS EC2 Management Consoleで,仮想マシンを作成します.
留意点は以下の通りです.

  • インスタンスタイプはGPU(cuda)が使用できるg2またはg3のものを選びます(g3s.xlargeなど).
    • 初期状態では,インスタンスタイプの作成制限によって,g3タイプのインスタンスが作れない場合があります.その場合は,上限緩和申請フォーム から,上限緩和申請をしてください
  • マシンイメージは「 Ubuntu Server 18.04 LTS (HVM), SSD Volume Type 」を使用します
  • 動画を解析対象にする場合は,ストレージ(EBS)を大きめに確保しておいたほうが良いです
    • 動画サイズにもよるが,解析結果をデフォルトのaviファイル形式で出力すると,サイズが大きく膨らみます
    • この実験では,100GBで作成しました
  • 費用はそれほど安くないので,使用していない時間はVMのシャットダウン,EBSの削除をしましょう(1敗).数時間の使用ならば500円もかかりません.
    • VMがUSD 1.04/hour (g3s xlarge,東京リージョンの場合)
    • EBSでUSD 0.12/GB/月
    • データアウト通信 USD 0.114/GB

Openposeのセットアップ

cmakeのインストール

Openposeのビルドに必要なcmakeをインストールします( cmake-3.13.4を使用しました ).
パッケージでは古いバージョンがインストールされるので,ソースからコンパイルします.

sudo apt-get install \
     qtbase5-dev \
     build-essential \
     gdebi \
     libopencv-dev
wget https://github.com/Kitware/CMake/releases/download/v3.13.4/cmake-3.13.4.tar.gz
tar xzvf cmake-3.13.4.tar.gz
cd cmake-3.13.4
./configure --qt-gui
./bootstrap
make -j6
sudo make install

GPGPU環境のセットアップ

NVIDIAドライバ,ツールキット,ライブラリのインストール

  • 一般的なCUDA環境のインストールです.
  • CUDA Toolkit 10から,当該のツールキットをダウンロード
    • [Linux][Ubuntu][18.04][x86_64]を選ぶ
    • OpenPoseのビルドでコケた気がするので,バージョン10.1以降の方が望ましい
  • NVIDIA cuDNNをダウンロード
    • debファイルでlibcudnn7, libcudnn7-devをダウンロードする
wget https://developer.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.105_418.39_linux.run
sudo sh cuda_10.1.105_418.39_linux.run

# いくつか聞かれたとおりに答える
# (ライセンス条項にAcceptするとか,
#  /usr/local/cudaにシンボリックリンクを張るとか.
#  X driverは入れなくて良いかも)

sudo gdebi libcudnn7_7.5.0.56-1+cuda10.0_amd64.deb
sudo gdebi libcudnn7-dev_7.5.0.56-1+cuda10.0_amd64.deb

PATHの設定

.bashrc, .zshrcなどに以下の行を追加して,NVIDIAツールに対するパスを通します.

export PATH=/usr/local/cuda/bin:$PATH

Openposeのビルド

mkdir -p ~/local/src && cd ~/local/src
git clone \
  https://github.com/CMU-Perceptual-Computing-Lab/openpose
cd openpose
sudo bash ./scripts/ubuntu/install_deps.sh

mkdir -p openpose/build
cd openpose/build
cmake ..
make -j4
sudo make install

上記手順で,~/local/src/openpose/build/examples/openpose/openpose.binが作られ,利用できるようになります.

OpenPoseで姿勢解析

動画ファイル対象でポーズ情報をJSON形式で出力して解析結果の動画も作る

~/local/src/openpose/build/examples/openpose/openpose.bin \
   --write_json outputJSON/ \
   --display 0 \
   --model_folder ~/local/src/openpose/models \
   --video "./inputVideo.mp4" \
   --write_video outputVideo.avi

Starting OpenPose demo...
Configuring OpenPose...
Starting thread(s)...
Auto-detecting all available GPUs... Detected 1 GPU(s), using 1 of them starting at GPU 0.
OpenPose demo successfully finished. Total time: 264.185226 seconds.
  • openpose.binのオプションは以下の通り OpenPose - コマンド一覧(Qiita)が詳しい
    • --write_json : 時刻ごとの姿勢情報(JSON形式)が出力されるディレクトリ
    • --display 0 : 姿勢推定結果を表示しない( AWSのVMなので途中結果の表示は不要 )
    • --model_folder : 使用する学習モデルも格納位置の指定
    • --video : 解析対象となる動画ファイル
    • --write_video : 解析結果を含んだ動画のファイル

手と顔の検出も含めた解析

--face--hand--part_candidatesのオプションを追加すると,顔,手の検出も行えます.計算時間もかなり(5倍〜10倍)増えるのが注意点です.

~/local/src/openpose/build/examples/openpose/openpose.bin \
   --face --hand --part_candidates 
   --write_json outputJSON/ \
   --display 0 \
   --model_folder ~/local/src/openpose/models \
   --video "./inputVideo.mp4" \
   --write_video outputVideo.avi

画像解析

動画ではなく,静止画も解析対象にできます.

  • 写真は,フリー素材ぱくたそ( www.pakutaso.com )から,「空前絶後の肉まんを食べる男性 [モデル:大川竜弥]」(https://www.pakutaso.com/20181221337post-18843.html) を使用させてもらいました
    • オプション(--image_dirおよび--write_images)を,画像用(入出力のフォルダ指定)に変更するだけです
~/local/src/openpose/build/examples/openpose/openpose.bin \
    --face --hand --part_candidates \
    --write_json ./output_json \
    --display 0 \
    --model_folder ~/local/src/openpose/models
    --image_dir ./image \
    --write_images ./output_image \
  • 計算結果
    • image-20190303060216817.png

参考

11
11
0

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
11
11