AWSでOpenPoseを試す
OpenPoseは人の写真から、その骨格(ボーン)を検出することができるライブラリ。参考画像はこちらなど。
簡単にいうと、普通のカメラでKindleのような認識ができる。活用例としては、例えばゲームで、自分のモーションをカメラで撮影することで、ゲーム内でも同様の動きをさせることができる。ただあくまで、現時点では2次元版までで3Dのボーンはbeta版のようだ。
これを漫画に対して試そうと思い、もちろんGPUを持ってないので、AWS上で実施しました。
インスタンス
Deep Learning Base AMI (Ubuntu) Version 1.0のp2.xlargeを用いました。ストレージ等は初期設定のまま。
インストール
こちらを参考に、git cloneののちinstall。
僕はcmakeを用いたinstallを行いました。GUIを用いたinstall方法ではなく、CMake Command Line Configurationのコマンドを用いた方法で行いました。
一点注意点としては、Buildを忘れないようにすることだと思います。
OpenPoseの実行
インストールが完了したら、こちらを参考に実行します。ただ記載のコードをそのまま実行すると、inputした画像にボーンを描き、表示しようとします。terminal越しなのでファイルとして保存してほしい。
そのため、いくつかパラメータを設定します。
./build/examples/openpose/openpose.bin --image_dir input/20171123/ --write_images output/20171123/ --no_display --face --hand --write_keypoint_json keypoint
write_images
でファイルの保存先を指定--no_display
画像を表示--face
顔や目の輪郭を取得--hand
指のボーンを取得write_keypoint_json
ボーンの各部位をjson形式で取得、保存先フォルダの指定
上記を実行するとボーンの描かれた画像を取得することができます。だいたい画像1枚につき1〜2秒程度の時間がかかりました。
実行結果についての感想
漫画のため実行結果を張れないのが申し訳ないのですが。。。
- 漫画によって取りやすいもの、取りにくいものがある。
- 白黒では取りにくいが、カラー(アニメや、カラー版の漫画など)だとうまく行きやすいことも。肌色が重要なのかな?
- 明らかな間違い(コートを足と認識してしまったり)もあるし、そもそもキャラを全く認識しないことも多数。
OpenPoseは学習に人物写真を用いており、漫画のキャラクターは用いていない。そのため、写真として収められにくい構図や、漫画の世界でしかありえないようなポーズなどは間違えやすいのかも、と感じました。