hirax.net::Keywords::「ディープラーニング」のブログ



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で「男子の夢な妄撮カメラ」を作ってみよう!?






2017-05-28[n年前へ]

ディープラーニング姿勢推定openposeで「妄撮カメラ iOS版」を作ってみる!? 

 ディープラーニングによる姿勢推定openposeで「男子の夢な(衣服の下を透視する)妄撮カメラ」を作ってみよう!?で書いたコードを元にして、画像をhttpでPOSTすると(httpサーバ側で)姿勢推定を行い、画像に写る人の「服の下が透けて見える妄想映像」を自動生成する画像処理を行って、httpクライアントに妄想撮影画像を返すサーバ側コードを書き、さらに(iOS上でPythonを使うことができるようにするPythonistaを使い)iPhone上でカメラ撮影をすると、自動的に妄撮画像を生成するアプリコードを書くことで、手元のiPhoneを「妄撮カメラ」に仕立ててみました。

 試しに、妄撮カメラ(iPhone Pythonista版)を動かしてみたようすが、下に貼り付けた動画です。こういうカメラ、20世紀後半に中2くらいだった男子には需要がありそうな気がするのですが、草食男子化とコンプライアンスという言葉が流行る21世紀の今日この頃には、全く需要も無い気がする今日この頃です。

 ちなみに、今や一人一台持ち歩くスマホでなく、現代の化石たるコンパクトデジカメを(メーカ・機種問わず)全て妄撮カメラしてしまう無線LAN SDカードPQI Air内部で動くRubyコードも書いてみたのですが、なぜか思ったように動かなくて悩んでいます。

 何はともあれ、勢いで書いたサーバ側コードとPythonistaコードは、中2男子以外の誰の役に立つことも120%無い気がしますが、明日にでもダウンロードできるようにしておこうと思います。


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

2017-05-30[n年前へ]

機械学習による姿勢推定openposeで「妄撮カメラ iOS版(ネイティブアプリ)」を作ってみる!? 

 10日くらい前、機械学習により画像に写る人体の姿勢を推定するアルゴリズム(コード)のopenposeを使い、画像に写る人の衣服を妄想的に脱がす画像処理ソフトを作ってみました(ディープラーニングによる姿勢推定openposeで「男子の夢な(衣服の下を透視する)妄撮カメラ」を作ってみよう!?)。そして、先週末は、そのソフトをiPhoneから自由自在に使うことができるように(カメラを備えたクライアントiPhone側と機械学習や画像処理を行うサーバ側双方の)Pythonコードを書いてみました(ディープラーニング姿勢推定openposeで「妄撮カメラ iOS版」を作ってみる!?)。

 書いたPythonコードはここに置いておきます。下記2ファイルのうち、前者がサーバ側ファイルで、後者がiOSアプリたるPythonistaコードです。前者は jupyter notebook ファイルなので、jupyterからコードを実行すると、8080ポートでopenposeを使った妄撮(姿勢推定・類似姿勢検索・画像合成)サービスが起動します。そして、後者がiOS上で動くPython(Pythonista)で実装した、妄撮サーバ機能を使うことができるカメラアプリコードです。

  1. boysCamera.ipynb.20170530
  2. boysCamera.py.20170530

 とはいえ、これだけでは先週末に書いたコードをアップロードしただけ…ということになってしまうので、今日はPythonistaコードをiOS用ネイティブアプリケーションにする方法についても書いておきます。

 まずは、Pythonista用のXcodeプロジェクトをダウンロードします。そして、プロジェクト中の main.py に自分が書いたiOS用Python(Pythonista)コードを貼り付けます。そして、Xcodeでプロジェクトをビルドした上で、ビルドされたアプリケーションをiOSデバイスに転送すると、iOSデバイス上でネイティブアプリケーションとして妄撮カメラを使うことができるようになります。

 …というわけで、ネイティブにビルドした妄撮カメラアプリケーションを使って、中二男子大好きな妄想撮影をしてみたようすが、下に貼り付けた動画です。深夜ドラマだった懐かしの「トリック」主人公の姿さえ、透撮できてしまうことに驚きます。

 試してみると強烈に実感しますが、現実世界と妄想世界を(中二男子的に)重ね合わせる「妄撮カメラ」アプリケーションは、実に強烈なMR/ARアプリケーションです。…こうしたアプリケーション、ライセンス的に誰もが使用可能なデータベースやソフトウェアコードを書けば、(中二男子に限って言えば)世界を変えるキラーアプリケーションになるかも!と思ったり思わなかったりします。

2017-06-01[n年前へ]

全てのデジカメをリアル妄撮カメラにしてしまう狂気!無線LAN内蔵SDカードアダプタPQI Air Cardと機械学習の間違った使い方 

 先日、機械学習を使い人体姿勢を推定するアルゴリズム(コード)openposeをキッカケに、人を妄想的に脱衣させてしまうPC画像処理ソフト(ディープラーニングによる姿勢推定openposeで「男子の夢な(衣服の下を透視する)妄撮カメラ」を作ってみよう!?)や、そのスマホアプリ化(ディープラーニング姿勢推定openposeで「妄撮カメラ iOS版」を作ってみる!?)、さらにはiOSネイティブアプリケーション化をしてみました(機械学習による姿勢推定openposeで「妄撮カメラ iOS版(ネイティブアプリ)」を作ってみる!?)。…今日は、その最終駅として、お仕事で使うようなPCでもなく・いつも持ち歩くスマホでもなくて、もはや過去の遺物になりつつある「デジタルカメラ」をリアル妄想撮影カメラにしてみることにしました。

 実際のところ、そんなことはとても簡単です。すでに、撮影した画像をサーバに投げるだけで、姿勢推定や脱衣画像を自動生成するコードは書いてあるので(ディープラーニング姿勢推定openposeで「妄撮カメラ iOS版」を作ってみる!?)、その機能をデジカメから使うようにするだけで良いのです。…というわけで、内部で動作するLinuxを自由に使うことができる無線LAN内蔵SDカードアダプタPQI Air Cardを使い、SDカード内のJPGファイルに対して自動で人体姿勢推定と脱衣画像合成処理をするRubyコードを書いてみました。もちろん、こんなことはPQI Air Cardで動くRubyを知っている人であれば、実に簡単にできる作業です(デジカメ内部でRubyを動かす狂気!無線LAN内蔵SDカードアダプタPQI Air Cardの間違った使い方)。

 まずは、PQI Air CardにRuby(あるいはCurlなど)を(前記のリンク先などから)インストールしておきます。それと同時に、PQI Air Card が起動時から外部無線LANアクセスポイントに接続してクライアントとして動作する設定にしておきます(autorun.shから/usr/bin/w2を呼ぶだけですね)。そして、autorun.sh の最終端からRubyコードを起動して、/mnt/sd/DCIM内の".JPG"ファイル群に対して妄撮画像処理を実行させてやると、デジカメで撮影した(そしてSDカード内に保存された)写真に写る人が、いつの間にか中二妄想的な脱衣姿になってしまう…というわけです。

 そんなSDカードを作り、作ったSDカードをデジカメに刺して、撮影画像を妄想撮影してみた処理例が、右上の2枚の写真です。まずは左に写る画像が(PCに写る画面を)デジカメで撮影した画像で、デジカメ内部で(サーバを経由して)生成された妄想撮影画像結果が2枚の右側に写る画像です。

 機械学習の力を活用したopenposeを使い、SDカードのDCIMディレクトリのJPGファイルをフルオートマチックに妄想撮影画像にしてしまうRubyコードをウンストールしたのが右のSDカードです。このSDカードを刺すだけで(刺したら最期)、ほぼ全てのデジカメが妄撮カメラに変身してしまいます。レンズを向けた風景に写るひと全てが、一皮も二皮も剥けた姿に変わってしまうのです。中二男子には素晴らしい道具ですが、それ以外の人にとっては単なる極悪ツールです。

 ちなみに、そんな極悪もしくは中二男子の妄想的機能を備えたRubyコードが動くSDカードを刺したコンパクトデジカメです。つまり、世界初のリアル妄撮コンパクトデジタルカメラ。…世界を変えることはないでしょうが、このカメラをひとたび手にしたならば、あなたが見る世界を・周りに存在する世界を見る目を変えてしまう…かもしれません。


 書いたコードは、ここからダウンロードできるようにしておきます。

全てのデジカメをリアル妄撮カメラにしてしまう狂気!無線LAN内蔵SDカードアダプタPQI Air Cardと機械学習の間違った使い方全てのデジカメをリアル妄撮カメラにしてしまう狂気!無線LAN内蔵SDカードアダプタPQI Air Cardと機械学習の間違った使い方全てのデジカメをリアル妄撮カメラにしてしまう狂気!無線LAN内蔵SDカードアダプタPQI Air Cardと機械学習の間違った使い方全てのデジカメをリアル妄撮カメラにしてしまう狂気!無線LAN内蔵SDカードアダプタPQI Air Cardと機械学習の間違った使い方






2017-07-17[n年前へ]

WEBカメラアプリ「私、脱いだらスゴイんです!ー筋肉自慢 版」 

 WEBベースのカメラアプリ、「私、脱いだらスゴイんです!ー筋肉自慢 版」を書いてみました。先日作った「妄撮アプリ」、つまりはopenpose を使った人体姿勢推定からの脱衣的な画像処理を、取り回し良いように修正を入れた上で、スマホ対応のWEBカメラアプリ(撮影・画像処理アプリ)にしてみたものです。

 画像処理のサーバ側は、Python/bottleという、恐ろしいチープさなので、サーバが無反応とかエラー返すことも多そうな気もしますが、「まぁ気にしない」ということにしておきましょう。

 今回の想定用途は、自撮り用カメラとして「ウソっこ筋肉自慢」です。…といいつつ、サーバ立ち上げ用に画像処理テストをしていると、腐女子のための「妄撮」カメラの方が似合う気がしてきます。けれど、それは腐女子の生態を理解していないことによる勘違いな気もします(そんな発想をする、腐女子という存在は無いのかも)。

 WEBカメラアプリ「私、脱いだらスゴイんです!ー筋肉自慢 版」のURL、"/lookInside/muscle" というURLを眺めると、当然「これはアレだな。muscle部分を変えれば、違う用途にも動きそうだな。"lookInside"が”手続き”で、"muscle"部分がーどんなキーワードにもとづくかーなんだな」と思われそうです。・・・もちろん、実際のところ、そういう作りにしていますが、この記事を書いた時点では look inside できるのは "muscle" だけにしてあります。

WEBカメラアプリ「私、脱いだらスゴイんです!ー筋肉自慢 版」WEBカメラアプリ「私、脱いだらスゴイんです!ー筋肉自慢 版」








■Powered by yagm.net