hirax.net::inside out::2017年05月18日

最新記事(inside out)へ  |   年と月を指定して記事を読む(クリック!)

2017年4月 を読む << 2017年5月 を読む >> 2017年6月 を読む

2017-05-18[n年前へ]

ディープラーニングによる姿勢推定openposeで「男子の夢な(衣服の下を透視する)妄撮カメラ」を作ってみよう!? 

 ディープラーニングによる単眼画像からの人物姿勢推定を行うコード OpenPose が公開されました。公開されたコードを使うと、画像ファイルや動画、あるいはWEBカメラで撮影された画像などを入力として、そこに写る人の姿勢(主要な関節の位置など)を推定することができます。姿勢推定の品質もなかなか素晴らしく、画像に写る人の姿勢が見事に写し出されます。

 画像から、人物の姿勢推定を簡単にできる…となると、「中二男子の夢的なこと」「あの頃夢見た妄想」をやってみたくなります。つまり、女の子の服の下をひたすら妄想し、その下の姿を透視する男子の夢の実現です。

可愛い女の子の服の下はどんなだろう……?そんな中学男子マインドを持ち続けたまま大人になった男たちへ。
妄撮

 手順はそれほど難しくありません。少なくとも、男子禁制の世界を手に入れる夢に向かう力があれば、実際のところとても簡単です。

 まず、google画像検索から任意のキーワードで画像を収集することができるgoogliser.shなどで、自由自在な「あなたのお好みスタイルに沿った人物姿勢画像」をダウンロードします。たとえば、下の例であれば、少し胸が大きめな立ち姿勢の(そして生まれたままの姿の)人物画像が集まります。もちろん、「どちらかと下着くらいは着ていて欲しいんだボクは」というのであれば、そうした検索語句でコマンドを走らせれば一発です。

./googliser.sh --phrase "naked body boobs" --title 'nakedBodyBoobs' --upper-size 900000 --lower-size 2000 --failures 40 --number 100 --retries 3
 次に、肝心要の「妄想したい画像」も用意しておきましょう。すべては、衣服の下に隠されたその姿を透視するためなのですから、その画像は何より一番大切です(好みに合わせてね)。

 そして、openpose を使えるようにした上で姿勢推定のテストをしてみます。たとえば、下のコマンドのような具合で動かせば、ディレクトリ(sampleImages)に入ってる画像群に写る人の姿勢が、YAML形式でposesディレクトリに生成されるようになります。

./build/examples/openpose/openpose.bin --image_dir sampleImages --write_pose poses/ --write_video result.avi

 ここまで来れば、あとはわずかにコードを書くだけです。妄想・透視したい画像・人物のYAML姿勢ファイルと、Google検索で集めた人物YAMLファイルを読み込み、妄想・透視したい人物の姿勢と類似する(妄想内容に近い)別の人物画像を見つけ出し、それらを中二男子の夢的な画像合成をしてやれば良いわけです。姿勢の類似性は、姿勢の大きさを適当に正規化し、向きも基準の方向を決めた上で、同じ関節どうしの距離を比較する、という具合で良いでしょう。そして、妄撮カメラ用途なら、胴体に近い部分の関節だけを計算に使うので十分でしょう(多分ね)。

 最期に、試しに書いたPython コードで確かめてみた妄想結果が、右上に二枚並べた画像です。男子の多くが夢見た妄想が、機械学習・ディープラーニング力により見事に実現しています。もちろん多少のズレが生じることも少なからずありますが、所詮は妄想、ズレがあっても・中味が全然本人と違っていても、「見えた気になれば良い」のです。

 妄想力だけで書いたコードはここに置いておきます。いつものように、何も考えず書いたコードなので、誰かの役に立つかはわかりませんが、jupyter notebookとpythonコードを置いておきます。また、妄想感度を高めるために、「紙・写真を破った感じで(こういうディティールは妄想満足度をアップさせるのにとても重要です)、その下の姿と画像合成する」処理を行うpythonコード中からマスク画像を読み込んでいます。その部分は、たとえば右に貼り付けたような画像を使えば良いかと思います。

 何はともあれ、妄想こそが発明の親。「こんなこといいな、できたらいいな」と思ったら、その瞬間に男の子は誰もがドラえもんになることができるのです。未来を描くのは、全てがいつも妄想です。
 というわけで、「こんな娘がいいな、見えたらいいな」と心の中のドラえもんに念じたことがあるボクら全員のために、機械の力と妄想力をフルに使い、ディープラーニングによる姿勢推定openposeで「男子の夢な妄撮カメラ」を作ってみました。

こんな娘がいいな、見えたらいいな。
あんな夢、こんな夢、一杯あるけど…
みんなみんなみんな、叶えてくれる、
深層学習が叶えてくれる。


 この後、妄撮カメラをサーバ側で実行するPythonコードと(Pythonistaで)iOS側コードを書き、iPhoneが妄撮カメラになりました。( ディープラーニングによる姿勢推定openposeで「男子の夢な(衣服の下を透視する)妄撮カメラ」を作ってみよう!?

 さらに、機械学習/ディープラーニングによる姿勢推定アルゴリズム/コードのopenposeを使った「妄撮カメラ」について、 サーバ/クライアントPythonコードをダウンロード可能にして、iOS用ネイティブアプリ作成方法も書いて起きました。( 機械学習による姿勢推定openposeで「妄撮カメラ iOS版(ネイティブアプリ)」を作ってみる!?

ディープラーニングによる姿勢推定openposeで「男子の夢な妄撮カメラ」を作ってみよう!?ディープラーニングによる姿勢推定openposeで「男子の夢な妄撮カメラ」を作ってみよう!?ディープラーニングによる姿勢推定openposeで「男子の夢な妄撮カメラ」を作ってみよう!?ディープラーニングによる姿勢推定openposeで「男子の夢な妄撮カメラ」を作ってみよう!?