反面教師あり学習

*/

反面教師あり学習

Negative Supervised Learning

OpenPose (v1.4.0) を動かすためのDocker環境を作った

TL;DR

  • OpenPose (https://github.com/CMU-Perceptual-Computing-Lab/openpose) の環境構築が超絶だるいのでDockerfile書いた
  • ホストマシン側に接続したUSBカメラを実行中のコンテナにマウントし,OpenPoseでカメラの映像を処理できるようにした

github.com

OpenPoseについて

カメラの画像から任意の数の人の姿勢をリアルタイムで推定する手法. コンピュータビジョン系研究のトップカンファレンスであるCVPR2017で,オリジナルの"Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields"が発表され,現在GitHubにあるOpenPoseは2018年にarXivに出たものになっている.

CVPR2017版:

github.com

arxiv.org

OpenPose (arXiv版):

github.com

arxiv.org

ちなみに下記書籍にCVPR2017版のOpenPoseの実装も含めた解説がある. Caffeのコードを読む気があんまりしないのでありがたい. OpenPoseの解説は邦書だと唯一かも?

つくりながら学ぶ!PyTorchによる発展ディープラーニング [ 小川雄太郎 ]

価格:3,828円
(2019/10/4 02:08時点)
感想(0件)

Docker環境つくった

OpenPoseでKinectのようなセンサー無しのカメラだけで人の姿勢をそこそことれるのは嬉しいけどどうも環境構築がめんどくさい. Protocol Buffer周りがPythonのAnaconda環境と相性が悪かったりする.

そこで,OpenPoseをビルドおよび実行できる専用の環境をDockerで作ることにした.

以下のリポジトリで公開している.このリポジトリREADME.md にも実行方法を載せてある.

github.com

Dockerのコマンド実行にはdocker-composeを使っているので,ホストマシンにPythonとdocker-composeをインストールしておく必要がある.pyenv使うといいと思う.

docker-compose使うとイメージやコンテナのビルドのために長いコマンド打ったり,イメージやコンテナの名前を毎回考えなくて済むのでDockerの利用が捗る.おすすめ.

OpenPoseのバイナリ自体はDockerイメージに含めていない.コンテナ起動してからインストール用のスクリプト (scripts/install_openpose.sh) を実行してOpenPoseをビルドし,生成されたバイナリをコンテナ間で使い回す構成にしてある.Dockerイメージに含めても困ることは無いと思うので今後変更するかもしれない.

実行にはscripts/launch_openpose.shを使う. スクリプトを実行するとOpenPoseが起動し,PCに接続したカメラの映像に対して姿勢推定をやってくれる.

リポジトリに用意しているスクリプトは以上だが,scripts/launch_openpose.shの中のコマンドを書き換えれば動画への適用や推定結果の保存もできる.

コンテナ内の /work 以下はホスト側の docker-compose.yaml がおいてあるディレクトリにマウントされてるので,コンテナ内で計算した姿勢推定の結果のやりとりも楽にできる.

おわり