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)で実装した、妄撮サーバ機能を使うことができるカメラアプリコードです。
- boysCamera.ipynb.20170530
- 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カードを刺したコンパクトデジカメです。つまり、世界初のリアル妄撮コンパクトデジタルカメラ。…世界を変えることはないでしょうが、このカメラをひとたび手にしたならば、あなたが見る世界を・周りに存在する世界を見る目を変えてしまう…かもしれません。
書いたコードは、ここからダウンロードできるようにしておきます。
2017-07-26[n年前へ]
■Mac OSX のキーボードをiOS(や各種デバイス)外部キーボードとして繋げるTypeetoが「結構良い」
スマホ(iOS)上でPythonプログラミングできる環境 Pythonista が便利です。とはいえ、スマホのキーボード上でプログラミングするのは快適なものではありません。…かといって、Bluetooth接続の外部キーボードなどをスマホに繋げると、今度は(普段使っている)キーボードとの違いが気になります。
そこで、(普段使っているPCである)Mac OSX のキーボードをiOS(や各種デバイス)外部キーボードとして繋げることができるソフトウエア Typeeto を使い始めました。この Typeeto が結構良かったので、使い方をメモしておきます。
まず、Mac(OSX)マシンに、「iOS(外部デバイス)側から」Bluetoothで接続しておきます(自動で接続するようにしておきます)。その状態で、Typeetoを立ち上げると(実際には、Typeetoは自動起動にしておいて、ショートカットキーで、デバイスに対して入力するかを指定して実行すると)、あたかもMac(OSX)のキーボードがiOS(外部デバイス)側の外部キーボードになったかのような状態になります。すると、少なくともOSX/iOSユーザであれば、実に自然な感覚でタイピングも(デバイス内での)コピペも日本語入力もできるようになります。
ちなみに、OSX側のクリップボードからのコピペもできるのですが、Macから外部デバイスへのコピペに関しては「日本語はNG/(英字モード含む)ATOKを入力ソースにしているとNG」というハマリどころがありました。コピペはもちろん、ショートカットの登録も、入力ソースがATOKの場合には上手く動きませんでした。
また、いわゆるSendKeysのような形態で実装がされているようで、キーボードを1文字1文字タイプしていくような具合で(Mac OSX側からiOSへの)コピペならぬタイピングがされていきます。そのため、非常に長い文章をコピペするには向きませんが、いわゆる短めのソースコードやURLなどを(OSX側からデバイス側へ)コピペして作業するにはとても便利です。(この場合、iOS側の予測変換などの余計な機能は切っておかなければ、入力された文字が書き換わってしまい、困ることになります)
他の類似機能を持つソフトもありますが、少なくとも、OSX-iOSという使い方であれば(そしてOSX側の日本語文章をデバイス側にコピーしたいというのでなければ)、このTypeetoは結構良いできです。(為替レートにもより)1300円くらいの値段がしますが、Mac(OSX)側とiOS側の両方で同時作業をする人なら試してみても良いかも、です。
2017-08-01[n年前へ]
■300円くらいで「高性能な立体顕微鏡」を作ってみよう!?
先日、「3000円くらいの立体顕微鏡」を作ってみました。けれど、3000円ではまだ高い!というわけで、そのさらに10分の1のお小遣いでも買える「300円くらいの立体顕微鏡」を作ってみました。
「やったこと」をひとことで言うと、300円ほどで買ったスマホ用レンズを使って、スマホからの特殊撮影をすることで、300円のレンズ+スマホを立体顕微鏡に仕立ててみました。
たとえば、下に貼り付けたのは、深圳の油画村(大芬油画村)で買った「油絵」の表面を撮影してみたものです。油絵具材の盛り上がりのようすが見てとれます。こんなようすが、300円程度のレンズとスマホを使って撮影できるのは、結構面白いのではないでしょうか。
下に貼り付けたテスト撮影を眺めると「千円札のインク盛り上がり」くらいなら撮影できそうな感じです。
この後は、レーウェンフック系の単レンズ顕微鏡用のボールレンズや「水滴「など、各種安レンズを使ったテスト撮影を行った上で、来週には、コストはさらに10分の1・解像度はさらに10倍くらいの世界を目指してみたいと思います。 10ミクロンオーダーくらいの面内&高さ精度の立体顕微鏡を、100円玉一個くらいで実現するのが来週の目標です。…そして、今年2017年の夏休みの終わり頃には、それを誰でも使えるようにしてみたいと思います(と、日記には書いておこう)。
2017-08-21[n年前へ]
■続 300円くらいで「高性能な立体顕微鏡」を作ってみよう!?
300円くらいで「高性能な立体顕微鏡」を作ってみよう!?で試した、約300円で買ったスマホ用レンズで特殊撮影+後処理+3D表示をするソフトウエアを、スマホ(iOS)単体で行うことができるようにする作業をしています。
そんな「300円でできるスマホ立体顕微鏡ソフト」を作る作業をしていると、スマホが「ありとあらゆるセンサー」と「昔のスパコンレベルの計算能力」を備えているために、なんだかとても楽しくてハマっているところです。
いわゆる「8月31日まで」の夏休みの終わり・・・までに終えることはできそうにないですが、9月の終わりくらいまでには一旦リリースしたいなと思っています。