TL;DR
- 姿勢解析システムOpenposeを,コンテナ実行するDockerfileを作成します
- 作成済みのDockerfile をGithubで公開しています
- nvidiaのGPUを持っていないので,Amazon AWSのg3インスタンスを使って動作検証を行いました
準備
- nvidiaのGPUを搭載したDockerホスト(Dockerを動かすマシン)
- nvidia-docker2がインストールされたDocker環境
- docker-ceとnvidia-docker2をインストールしておく
- AWS EC2 g3s.xlargeで動作テストをしています
使い方
Dockerイメージのビルド
git clone https://github.com/myoshimi/openpose-docker
cd openpose-docker
sudo docker build -t openpose .
Openposeで動画処理コマンド
openpose.binのオプションは以下の通り OpenPose - コマンド一覧(Qiita)が詳しいので,参照してください.
docker run --rm --runtime=nvidia \
-v ${PWD}:/tmp/ openpose:latest \
--face --hand --part_candidates \
--display 0 \
--model_folder /usr/local/openpose/models \
--video /tmp/input.avi \
--write_json /tmp/outputJSON \
--write_video /tmp/output.avi
-
--write_json
: 時刻ごとの姿勢情報(JSON形式)が出力されるディレクトリ -
--display 0
: 姿勢推定結果を表示しない( AWSのVMなので途中結果の表示は不要 ) -
--model_folder
: 使用する学習モデルも格納位置の指定 -
--video
: 解析対象となる動画ファイル -
--write_video
: 解析結果を含んだ動画のファイル
静止画処理コマンド
動画と同様に,静止画も解析対象にできます.下記のように,動画ファイルを
指定する代わりに,画像ファイルを格納したディレクトリを指定するだけです.
ディレクトリ内の全ての画像が解析対象になります.
docker run --rm --runtime=nvidia \
-v ${PWD}:/tmp/ openpose:latest \
--face --hand --part_candidates \
--display 0 \
--model_folder /usr/local/openpose/models \
--image_dir ./image \
--write_json ./outputJSON \
--write_images ./output_image \
Dockerにまとめてしまえば,アプリケーションインストールでホストPCの環境を汚さないので,とても便利です.