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

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






2017-05-20[n年前へ]

スマホ(BLE)から動かせる街中スナップ用の(Ricoh Theta用)自動制御アームで特殊映像を撮ってみる 

スマホ(BLE)から動かせる街中スナップ用の(Ricoh Theta S用)2軸自動制御アームを作ってみる」を南国バンコクに持ち込んで、この撮影機材をリュックの中に詰め込んで、自転車で街中をウロウロしながら特殊撮影をしてみました。特殊撮影というのはどういうことかというと、異なるたくさんの視点から撮影した全周画像をもとに3次元空間を再現したり、その3次元空間に光が注ぐ世界の中を歩いてみたり…という実験です。

 リュックから大型三脚とBLE経由制御の駆動ユニットを組み立てて、Ricoh Theta Sを取り付けるまで、慣れれば1分で完了します。そして、バンコクの通りに立てた特殊機材の近くから、iPhone 経由で駆動制御と撮影をしてやるのです。数十枚〜百枚弱の撮影をおよそ5分弱の間に行うのです。

 そんな撮影をしたら、カメラの周りに存在した3次元空間を再現するための計算をCPUとGPUをぶん回し行います。あるいは、そんな世界に差し込む光や反射する光をガウス的に捉え再現するための計算を、やはりCPU・GPUをぶん回して行うのです。…そんなことをするこで、色んな映像を作り出すことができます。

 たとえば、下の動画はBTS(バンコク中央部を走る高架鉄道)のスラサック駅近くにある、中華系の墓地の Tae Chew Association of Thailand で撮影した72枚の全円周な画像群から生成した3次元映像です。この動画では3次元空間を1方向に向かい眺めているだけですが、再現されたデータ世界の中では、「一応」すべての方向に向かう風景が生成されています。

 といっても、こんな映像はとてもチープなのもまた確かです。けれど、そんな撮影画像であっても、「もう二度と見ることができない今の時代を撮影した」データであるような気もする…ので、こんな変な撮影を色々してみて残していこうかな、と思います。

スマホ(BLE)から動かせる街中スナップ用の(Ricoh Theta用)自動制御アームで特殊映像を撮ってみるスマホ(BLE)から動かせる街中スナップ用の(Ricoh Theta用)自動制御アームで特殊映像を撮ってみる






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アプリケーションです。…こうしたアプリケーション、ライセンス的に誰もが使用可能なデータベースやソフトウェアコードを書けば、(中二男子に限って言えば)世界を変えるキラーアプリケーションになるかも!と思ったり思わなかったりします。