hirax.net::inside out

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

2017年10月 を読む << 2017年11月 を読む >> 2017年12月 を読む

2017-11-23[n年前へ]

スマホで「(光の波長ごとのイメージを取得する)分光撮影カメラ」を作ってみよう!  share on Tumblr 

 一番身近にある各種センサを備えたコンピュータ、いわゆるひとつの「スマホ」を使って簡単に特殊撮影をしたり・色々遊んぶツールを作っています。そのひとつとして、スマホを使った「(光の波長ごとのイメージを取得する)分光撮影カメラ」があると一体どんなことができるかを確かめてみたくなり…試しにスマホ分光カメラを作って蛍光灯を撮影してみました。撮影し蛍光灯は、右上に貼り付けたいたって普通の蛍光灯です。

 スマホ分光カメラで撮影した分光画像を、カメラから観た時の画像XY座標と光の波長方向軸(長波長←→短波長)で眺めてみた動画が下に貼り付けた動画です。眺める景色を、その光の波長ごとに分解したイメージとして意識することは少ないので、こうして眺めてみると少し面白い気がします。

スマホで「(光の波長ごとのイメージを取得する)分光撮影カメラ」を作ってみよう!スマホで「(光の波長ごとのイメージを取得する)分光撮影カメラ」を作ってみよう!






2017-11-19[n年前へ]

お札を顕微鏡で眺めて「赤外透過インクと赤外吸収インクの位置合わせ精度」を眺めて驚くの巻  share on Tumblr 

 偽造防止のために、紙幣は「赤外透過インクと赤外吸収インク」が場所毎に切り替えられた印刷になっています。可視光しか見えない肉眼で眺めてみても「そのインク種の切り替わり部分」は識別できませんが、赤外線カメラで紙幣を眺めると、全く違うお札の姿が見えてきます。

 肉眼では見えなくても、さすがに顕微鏡で「可視光下」と「赤外光下」で眺めれば、そのインク切り替わり箇所は識別できるに違いない点と思い、千円札の「可視光では普通の画像に見える、けれど赤外光では透明に見える部分」と「可視光でも赤外光でも普通の画像に見える部分」について、その境界を拡大撮影してみました。それが下に貼り付けた画像です。(可視光画像→可視光+赤外光画像→赤外光画像、の繰り返し)

 赤外光照明と可視光照明下で紙幣を撮影した顕微鏡画像を眺めてみても、そのインク切り替わり部分を全く視認することができないことに驚かされました。印刷の異なるインクを位置合わせする精度や、重ね合わせを気付かせない処理制度は、想像以上でした。

2017-11-18[n年前へ]

Software Design 12月号「物理と数学、そしてプログラミング」  share on Tumblr 

 今週末に発売された Software Design 12月号 に、「第1特集 ITエンジニアと数学」中の4時限目(「物理と数学、そしてプログラミング」)として、駄文を書かせて頂きました。 記事書きのために書いたサンプル Jupyter ノートブックは、ここに置いておきます

 世界を方程式で表して、何が起きるかを計算する物理(科学)計算プログラム…言葉だけ眺めると、一見とても難しく思えます。けれど、実は「わりと簡単なのにとても楽しい」ものです。…それが少しでも伝わって、あなたの口癖が(ガリレオ湯川先生みたいな)こんなフレーズになれば幸いです。
「なるほど、実に面白い」

Software Design 12月号「物理と数学、そしてプログラミング」Software Design 12月号「物理と数学、そしてプログラミング」






2017-11-15[n年前へ]

毎年の月齢12番目の月、その満月の夜を過ごす場所。  share on Tumblr 

Chiangmai Loy Kraton  ある頃から、毎年の月齢12番目の月には、その満月の夜、タイのチェンマイに行き続けている。人の顔も名前も全く覚えることができないくらい記憶力が悪く、かといってWEB日記(死語)にマメに記録を残すわけでもない(あえて書かないことも、もしかしたら多かったのかもしれない)ので、WEB日記を読み返してみても、もう全く思い出すことができないのだけれど、どうやら十数年前から、11月の満月の夜には、その辺りにいるようだ。

 毎年の月齢12番目の月、その満月の夜をいつもそこで過ごし始めた理由は、とても単純だ。…端的に書けば、その景色がとても心地良く、「その景色を見た後なら、いつかの瞬間に死んでも、何だか後悔しない気」がするからだ。逆に言えば、そこに行かない一年があった時、その一年の間に死んだら「心残りで地縛霊になってしまいそう」にも感じたりする。

 その日眺めた「今日見た景色」、その瞬間には書き残すことが面倒だとしても、もしかしたら後で記憶を振り返るには「少し面白いもの」だったりすることもあるに違いない。あるいは、書き残すデメリットを、書き残したことでの何かのメリットが(後になってみれば)上回ることもあるかもしれない。

 というわけで、駄文を適当に気楽に書いてみることにしよう。WEB1.0な人たちが、今も不思議に(まるで地縛霊のように)あがき続けているように、成長しないままだったとしても、記憶を補うためにWEBノートを書いてみることにしよう。

2017-11-14[n年前へ]

ライフルで照準前に空を見る動作…それが何で狙いを正確にするのか?  share on Tumblr 

 今の韓国大統領、文在寅がライフルを扱う様子について、「文在寅が、照準する前に一瞬空を見る動作をしてるけど…空を見ることで瞳孔を小さくし、照準しやすくする効果があるらしい「軍人」としての文在寅・韓国大統領~なぜ彼は銃を構えた時、一瞬空を見上げるのか?)」というtweetを読んだ。けれど、その言葉だけでは今ひとつ納得できなかったので、何がわからなかった(何に落ちこぼれた)のかを書いてみる。

 高性能なライフルに備えられるような光学照準器の場合、レンズ群を通して、ライフルで狙うターゲットの光学像を照準線面で一旦結像させた後、照準線とターゲットが同じ焦点面に一致するようなさらなる光学系が組まれている。つまり、それは、ある一定距離の場所にあるものを眺める「一般的な視力検査」のような問題に思われる。

 人間が備える目の構造は、比較的単純な光学系であるが、そのレンズ絞りに相当する瞳孔は、瞳孔から目に入る光量に応じて約2mm〜8mmに調整される。…といっても、眼の光量調整は、絞りと視覚系の感度とがそれぞれ調整される機構となっているので、感度に関して、絞りが一義的に支配をしているわけではない。

 瞳孔の径は、視覚系の感度が入ることにより、通常状態では3mm弱程度である。そして、瞳孔径がそれより小さいと、回折により(たとえ焦点を正確に合わせても)光学性能は劣化するし、瞳孔系がそれより大きくても、その場合には光学収差で、やはり光学性能は低下してしまう。光学系を絞りすぎてもダメだし、大きくてもダメ…という単レンズ系の「当たり前の制約」である。

 レンズ枚数が少ない人間の眼はまだまだ光学的に改善の余地があるとも言えるかもしれないし、「人間の眼は、通常状態で最高の性能を発揮するように進化してきた」と言うこともできるかもしれない。それは、眼の光学系(瞳孔径)が最高の性能を発揮するように、撮像素子側の感度調整が自動でされる…ということである。…ちなみに、1秒とかいった短い時間で調整されるのは、瞳孔径であり、視覚系の感度特性はそれより長い時間で動く制御システムとなっている。

 人間の眼が、生物進化の過程で、瞳孔径にして約3mm弱で最高の合焦・光学性能を発揮するとなると、それはつまり「対象物を普通に眺めている状態が最高の状態」だということになる。ターゲットをライフル照準に合わせる時、その光学解像精度を最高にしたければ、「対象物をただ普通に眺める」ということが最高の結果をもたらすのではないか…と考えられる。決して、対象物とは異なる輝度の「空」を眺めるべきではないように思われる。

 もちろん、スナイパーは眼が悪く、焦点を合わせる性能に不自由していて(目が悪くて)、瞳孔径を小さく・あたかもピンホールカメラのようにしないといけない状況だというのであれば、ライフルで照準前に空を見る動作はプラスの効果をもたらすように思われる。…けれど、今回の話の場合には、そんなピント外れのスナイパーを題材にした話ではないに違いない。『眼が悪ければ、眼を細めればいいよ!」という話では、全くもって凄い話ではない。

 ライフルで照準前に空を見る動作…それはどういう過程で狙いを正確にするのだろうか?

2017-10-27[n年前へ]

スマホの1ショット撮影でHDR(ハイダイナミックレンジ)画像を作り出してみる!?  share on Tumblr 

 機械学習を使った「単一露光画像からのHDR(ハイダイナミックレンジ)画像生成」の Paper PDF が出ていて、プロジェクトページ には Tensorflow / Pythonによるコードが公開されていた。

 そこで、まずは iPhone 6s で撮影した1ショット RAW(DNG)画像(右)から、詳細がわかるように…というかGPUメモリが許す画像サイズに切り抜いた上で、HDR画像を生成してみました。それが下の結果です。下左側画像が(1ショット単一露光画像)入力画像で、下右側が機械学習が出力したHDR画像です。相対的に明るすぎて白飛びしている箇所が、それっぽくHDR生成されていることがわかります。

 最近のスマホなら、高速連写機能を使ったHDR撮影が普通にできる時代です。とはいえ、動画撮影をするときは、そんなHDR処理が働かないもの。…ということは、撮影した「動画」が白飛びしていたりしたら、こんな機械学習による単一露光条件動画からのHDR動画を作り出してみるのも良いかもしれません。

 ところで、下に貼り付けた画像は、全天周カメラ Ricoh Theta で撮影した単一露光条件の低解像度画像から生成してみたHDR画像です。…こうした全天周画像に対して機械学習で使われるCNN(Convolutional Neural Network)処理を掛けようとすると、XY座標系の2次元画像ではなく、曲率を持つ球表面に適用可能なCNN画像処理を掛けたくなります。…そんな全天周画像処理を探す旅に出たくなります。

スマホの1ショット撮影でHDR(ハイダイナミックレンジ)画像を作り出してみる!?スマホの1ショット撮影でHDR(ハイダイナミックレンジ)画像を作り出してみる!?スマホの1ショット撮影でHDR(ハイダイナミックレンジ)画像を作り出してみる!?スマホの1ショット撮影でHDR(ハイダイナミックレンジ)画像を作り出してみる!?スマホの1ショット撮影でHDR(ハイダイナミックレンジ)画像を作り出してみる!?






2017-10-07[n年前へ]

スマホ撮影画像の「距離マップ」を使って「レンブラント」写真を撮ってみる  share on Tumblr 

 AppleのiPhone新機能の紹介記事、”コスプレをiPhone 8 Plusの新機能「ポートレートライティング」で撮影するとこうなる”がとても面白いです。内容は、(おそらく)スマホのステレオカメラなどを使って得られる「スマホの撮影画像に写る各点までの距離マップ」を使った画像処理により、さまざまな照明効果を使った写真撮影や動画撮影ができるというものです。紹介記事中では、 ”iPhone 8 Plus / Xの新機能「”ということだったので、普通のスマホで同じことをやったらどうなるか?を簡単に確かめてみることにしました。

 やったことはとても簡単です。まず、普通のスマホ(iPhone 6s )で撮影位置を少し動かしながら画像を撮り、その画像から3次元・距離マップ情報を作り出します。そして、その距離情報を使って、撮影画像の色画像に適切な階調変換や照明処理を掛けてやるわけです。

 距離マップ情報が無い場合、つまり、色画像情報だけだと、(もしも単純に処理をしたとすると)「同じ色・輝度の場所は同じような画像処理を掛ける」ことになってしまいます。すると、階調変換処理により被写体だけを浮かび上がらせようとしても、背景にも同じ階調変換処理が掛かってしまい、できばえがイマイチということになってしまいます。けれど、距離マップ情報があれば、被写体だけを上手く浮かび上がらせた処理も、割と楽にできるというわけです。

 というわけで、撮影した生画像(左下画像)から、他撮影画像(右画像)との視差で生成した距離マップを処理データとして使いつつ作成した「レンブラントライティング」を掛けてみたのが右下画像です。「同じ明るさの場所に対して同じような階調変換」が掛けられているのではないことがわかるかと思います。そして、被写体(マネキン頭部ですが)だけを浮かび上がらせることもわかるのではないでしょうか。

 眺めていると、「レンブラントライティング」だけでなく、色んなリライティングの「モード」を、スマホのカメラで試したくなります。

スマホ撮影画像の「距離マップ」を使って「レンブラント」写真を撮ってみるスマホ撮影画像の「距離マップ」を使って「レンブラント」写真を撮ってみるスマホ撮影画像の「距離マップ」を使って「レンブラント」写真を撮ってみるスマホ撮影画像の「距離マップ」を使って「レンブラント」写真を撮ってみる






2017-09-26[n年前へ]

「ペットボトル中の水」回転させながら出すのと、底に大穴を開けて出すのとどちらが早いか?  share on Tumblr 

 「ペットボトル中の水」を早く出そうと思ったら、「回転させて渦を作れば、一瞬で水が出る」という話になる。その理由は、渦の中心に生まれた空気トンネルのおかげで、「ペットボトル中の気圧が下がらず、ペットボトルから出ようとする水の流れを妨げないから」というわけである。

 それなら、「ペットボトル中から、一番早く水を出そうと思ったら、底を切ったペットボトルを逆さにすれば良いんですよね〜」と言うと、「いや、渦を作った方が早く出るんじゃないの?感覚的に。」という、物理無視的な感覚意見が多く出た。

 というわけで、2リットル入りのペットボトル中から、色んなやり方で水を出して結果が下の動画です。ちなみに、一番右のものが、底を切ったペットボトルを逆さにしてみたものです。…渦を作って水を出す(右から2番目の)ものはテクニックはイマイチですが、それにしても、「渦を作った方が早く出るんじゃないの?感覚的に」というー感覚ーが意外なほど多数派だったりするのは、少し面白いかもしれません。

2017-09-23[n年前へ]

続「妄撮カメラソフト」WEBアプリ版(胸限定)を作ってみた。  share on Tumblr 

 春が終わる頃、京都の街を散歩中に学生時代を思い出し、「男子の夢な(衣服の下を透視する)妄撮カメラ」を作りました。そして、梅雨が終わり夏本番に入る頃、そのコードをもとにして、WEBカメラアプリ「私、脱いだらスゴイんです!ー筋肉自慢 版」を動かしてみました。…ただ、筋肉自慢ソフトというのは、「かつての自分がやりたかったこと」とは違う「画像入れ替え処理」のせいか、心のモチベーションがどうにも上がらないな、とも感じていました。

 そこで、自分で使い倒すソフトにするなら「こうありたい(こういう機能が欲しい)」という初心に戻り、「妄撮ソフト(胸限定)」として、多少のコードを書いてアップデートさせてみました。  

 使い方は簡単で、右のQRコードもしくは、上記のリンクからカメラソフトを立ち上げ、「カメラ撮影/もしくは撮影済みなどの画像を選択」した上で、「妄想する!(Strip it off!)」ボタンを押すと、その妄想が現実のものとして具現化するのです。
 HTML5ベースで動くので、特に環境を選ぶことはないと思いますが、動作テストをしたのはApple iPhone 6s(iOS10/iOS11 Safari)のみです。
 また、試しに使っているようすを撮影したものが、下に貼り付けた動画です。簡単に「現実の世界から妄想が生まれる」さまがわかるかと思います。

続「妄撮カメラソフト」WEBアプリ版(胸限定)






2017-09-01[n年前へ]

下着マチ部分の「わずかな凹凸」がなぜボトムスの上から視認されるのか?  share on Tumblr 

 平日のラッシュ時間、駅のホームから上がる階段は、人がギュウギュウに詰まっている。 その階段を登りながら、こう考えた。

 職場や学校に向かうだろ多くの人に挟まれて、密度高く窮屈に階段を昇っていると、ちょうど1メートルくらい先の正面に、階段を上る女性がいる。 私の顔のちょうど正面に彼女のヒップがあるせいか、それとも何か他のユング心理学的な何か深層心理の原因があるせいか、とにかくその球面状のヒップが目に入る。 もしかしたら、そのヒップが気になったのは、下着の線が浮かび上がっていたせいかもしれない。 女性はストレッチ素材のボトムス(ズボン)をはいていて、階段を昇るために足を上げる動作をするせいか、ボトムスに明瞭に下着の線が浮き上がっている。 それは、下着のアウトラインだけでなく、股部分の左右を繋ぐ「マチ」も線となり浮き上がり、それはまさにあだち充が描く「ムフ♡!」的な気持ちを思い起こさせた。

 人が何に「ムフ♡!」を感じるかは、それはまさに個性で、その人次第に違いない。 けれど、私の場合は、下股部分の左右を繋ぐ、上を凸とする「マチ」の円弧状の曲線に、「ムフ♡!」を感じるらしい。それはもしかしたら、あだち充ではなくて、桂正和の影響だったのかもしれない。

 そこまで考えが漂流してきた時に、こんな疑問が湧いてくる。 「なぜ、下着のマチ部分を、ボトムスの上から見ることができるのだろう?」 「マチ部分には確かに凹凸ができるだろうけど、それほど大きくなさそうな凹凸を、なんで視認することができるのだろう?」 そこで、目の前のヒップを観察しながら階段を登りつつ考えた。

 下着のマチ部分は、他の部分に比べて約2ミリメートルくらい厚い。 つまり、女性の丸いお尻が下着をはくと、丸い曲面上に「下着のマチ」という高さ約2ミリメートル程度の山脈ができる。

 そんな山を持つ曲面面を、さらにストレッチ素材のボトムスが覆うとき、収縮しようとするストレッチ素材の生地を支配する方程式は、ポテンシャル曲面は可能な限り「滑らか」になるというラプラス方程式である。 つまり、下着のマチ部分を覆うストレッチ素材のボトムスがどう見えるかを考えるときには、ラプラス方程式の解を求めればよい。

 自然界の多くの現象がラプラス方程式を使って解くことができるように、下着のマチ厚みが作るボトムス表面形状を、ラプラス方程式で求めることにしよう。…そのために、まずは、下着のマチ部分あたりの女性のヒップを、直径8センチメートルの球面形状だとしてみる。 すると、ラプラス方程式の解を概算すると、下着のマチ部分のストレッチ素材のボトムスは、ざっくり「高さ2ミリメートルで、両側になだらかな斜面が約9ミリメートルほどつづく山(凸形状)」ができることになる。

 すると、次の疑問がさらに湧く。
「高さ2ミリメートルで、両側になだらかな斜面が約9ミリメートルほどつづく山(凸形状)」を人は視認することができるものだろうか?

 約1メートル離れて、視線方向への2ミリの凹凸となると、両眼視差で形状を捉えるようなスケールではない。 となると、そのオフホワイト単色のボトムスに浮かぶ凹凸を識別する手掛かりは、陰影情報だけだろう。

 物体に照明があたるとき、その表面の陰影はコサイン(照明角度)で表される。 ということは、高さ2ミリメートルの下着マチ山脈の陰影は、「両側に約9ミリメートル続くなだらかな斜面」の角度(斜度)を計算し、そのコサインを評価してやれば良いことになる。 ちなみに、下着マチ山脈の斜度を計算してみると、約13度だ。 照明が約45度方向から照らすなら、下着マチ山脈の片側斜面は(他の部分より)約8パーセント明るく、もう片側の斜面はその逆に約8パーセント暗いということになる。

 人の視覚が濃淡模様を識別する特性を考えると、約1メートル離れた9ミリメートルピッチつまり角度約1度の濃淡模様は、数十分の1程度でも識別することができる。 つまり、下着マチ部分の濃淡は、その高さがわずか2ミリメートルだとしても、明瞭に視認されることになる。 もちろん、いわゆる視力的にも角度約1度は約0.02に相当するから、全くもって問題は無い。 結局のところ、「下着のマチ部分の凹凸はわずかでも、その陰影は視認するのに十分な濃淡になる」ということになる。

 と、考えがさらにここまで漂流してきた瞬間、駅の階段を踏み損なって転びかけた。足の先を強く打ち痛い思いはしたけれど、幸い何ともなかった。 階段を昇る目の前の女性のヒップに浮かぶ「ムフ♡!」を眺めつつ、考えごとをすることは、有意義と言うよりは少し危険なことなのかもしれない。

下着のマチ部分の「わずかな凹凸」が一体なぜ視認されるのか?下着のマチ部分の「わずかな凹凸」が一体なぜ視認されるのか?下着のマチ部分の「わずかな凹凸」が一体なぜ視認されるのか?下着のマチ部分の「わずかな凹凸」が一体なぜ視認されるのか?下着のマチ部分の「わずかな凹凸」が一体なぜ視認されるのか?






2017-08-21[n年前へ]

続 300円くらいで「高性能な立体顕微鏡」を作ってみよう!?  share on Tumblr 

 300円くらいで「高性能な立体顕微鏡」を作ってみよう!?で試した、約300円で買ったスマホ用レンズで特殊撮影+後処理+3D表示をするソフトウエアを、スマホ(iOS)単体で行うことができるようにする作業をしています。

 そんな「300円でできるスマホ立体顕微鏡ソフト」を作る作業をしていると、スマホが「ありとあらゆるセンサー」と「昔のスパコンレベルの計算能力」を備えているために、なんだかとても楽しくてハマっているところです。

 いわゆる「8月31日まで」の夏休みの終わり・・・までに終えることはできそうにないですが、9月の終わりくらいまでには一旦リリースしたいなと思っています。

続 300円くらいで「高性能な立体顕微鏡」を作ってみよう!?続 300円くらいで「高性能な立体顕微鏡」を作ってみよう!?






2017-08-03[n年前へ]

8/5,6 東京ビッグサイト開催 Maker Faire Tokyo 2017 でお待ちしております。  share on Tumblr 

 今週末、8月5日と6日、東京ビッグサイトで開催されるMaker Faire Tokyo 2017を散策しに行くことにしました。「踊るアホに観るアホ、同じアホなら踊らな損」だと後押しして頂いたので、「ををつか屋」(A-01-04)に間借りして、スマホ(BLE)制御の特殊三脚撮影システムを展示しようと思います。

 もちろん、ここ1年の間に作ったその他特殊機器や機械学習応用のソフト資料も持って行く予定です(多分ね)。…というわけで、そんなアレコレに関する技術系雑談や各種応用相談、あるいは残暑の雑談や来場する方からのご自慢を伺うことなど、そんなことを楽しみしています。





8/5,6 東京ビッグサイト開催 Maker Faire Tokyo 2017 でお待ちしております。8/5,6 東京ビッグサイト開催 Maker Faire Tokyo 2017 でお待ちしております。8/5,6 東京ビッグサイト開催 Maker Faire Tokyo 2017 でお待ちしております。8/5,6 東京ビッグサイト開催 Maker Faire Tokyo 2017 でお待ちしております。8/5,6 東京ビッグサイト開催 Maker Faire Tokyo 2017 でお待ちしております。8/5,6 東京ビッグサイト開催 Maker Faire Tokyo 2017 でお待ちしております。8/5,6 東京ビッグサイト開催 Maker Faire Tokyo 2017 でお待ちしております。8/5,6 東京ビッグサイト開催 Maker Faire Tokyo 2017 でお待ちしております。






2017-08-01[n年前へ]

300円くらいで「高性能な立体顕微鏡」を作ってみよう!?  share on Tumblr 

 先日、「3000円くらいの立体顕微鏡」を作ってみました。けれど、3000円ではまだ高い!というわけで、そのさらに10分の1のお小遣いでも買える「300円くらいの立体顕微鏡」を作ってみました。

 「やったこと」をひとことで言うと、300円ほどで買ったスマホ用レンズを使って、スマホからの特殊撮影をすることで、300円のレンズ+スマホを立体顕微鏡に仕立ててみました。

 たとえば、下に貼り付けたのは、深圳の油画村(大芬油画村)で買った「油絵」の表面を撮影してみたものです。油絵具材の盛り上がりのようすが見てとれます。こんなようすが、300円程度のレンズとスマホを使って撮影できるのは、結構面白いのではないでしょうか。

 下に貼り付けたテスト撮影を眺めると「千円札のインク盛り上がり」くらいなら撮影できそうな感じです。

 この後は、レーウェンフック系の単レンズ顕微鏡用のボールレンズや「水滴「など、各種安レンズを使ったテスト撮影を行った上で、来週には、コストはさらに10分の1・解像度はさらに10倍くらいの世界を目指してみたいと思います。 10ミクロンオーダーくらいの面内&高さ精度の立体顕微鏡を、100円玉一個くらいで実現するのが来週の目標です。…そして、今年2017年の夏休みの終わり頃には、それを誰でも使えるようにしてみたいと思います(と、日記には書いておこう)。

300円くらいで「高性能な立体顕微鏡」を作ってみよう!?300円くらいで「高性能な立体顕微鏡」を作ってみよう!?300円くらいで「高性能な立体顕微鏡」を作ってみよう!?300円くらいで「高性能な立体顕微鏡」を作ってみよう!?300円くらいで「高性能な立体顕微鏡」を作ってみよう!?






2017-07-26[n年前へ]

Mac OSX のキーボードをiOS(や各種デバイス)外部キーボードとして繋げるTypeetoが「結構良い」  share on Tumblr 

 スマホ(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側の両方で同時作業をする人なら試してみても良いかも、です。

Mac OSX のキーボードをiOS(や各種デバイス)外部キーボードとして繋げるTypeetoが「結構良い」Mac OSX のキーボードをiOS(や各種デバイス)外部キーボードとして繋げるTypeetoが「結構良い」Mac OSX のキーボードをiOS(や各種デバイス)外部キーボードとして繋げるTypeetoが「結構良い」






2017-07-17[n年前へ]

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

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

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

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

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

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






2017-07-02[n年前へ]

USB顕微鏡で「簡易立体顕微鏡」を作ってみる  share on Tumblr 

 今日は、USB顕微鏡を使って「立体顕微鏡」を作ってみました。照明周りとソフト側をいじり、下記のような撮影をして、Shape From Specular 手法で法線積分から形状生成をすることで、カラー立体画像を撮影可能なUSB立体顕微鏡へ変身させてみる!という具合です。つまり、USB顕微鏡を「照明光の向きと各画素に対する撮影方向から、法線方向を推定し、その法線積分による形状を生成する」USB 3次元形状撮影顕微鏡に変身させてみた…という具合です(撮影のようすは、下に貼り付けた動画を見るとわかりやすいかもしれません)。

 下に貼り付けた、添付画像は「五千円札の樋口一葉」の目を中心にした「1ミリメートル角くらい」ぐらい部分を撮影してみたものです。五千円札の樋口一葉の眼を描く、インクの超盛り上がり具合を確認することができます。

 といっても、お札は偽造防止のために、触感でも本物・偽物をすぐに判別できるように、超盛り盛りでインクを盛り上げてあります。だから、これくらいの撮影ができなければ、…実際のところ「立体顕微鏡」なんて名乗る資格は無いのです。

 今や高倍率のUSB顕微鏡も1000円くらいで買うことができる時代。そして、「あったらいいな」と思うことを実現する処理アルゴリズムも、コンピュータで簡単に走らせることができる今日この頃。

 それはつまり、千円あれば「あんなことやこんなこと」…色んなことができるというのが2017年の夏なのかも、と思ったりします。

格安USB顕微鏡で「簡易立体顕微鏡」を作ってみる格安USB顕微鏡で「簡易立体顕微鏡」を作ってみる格安USB顕微鏡で「簡易立体顕微鏡」を作ってみる格安USB顕微鏡で「簡易立体顕微鏡」を作ってみる






2017-06-10[n年前へ]

「今と昔の暦がイキナリ1ヶ月ズレたのは給料1ヶ月分カットが目的」という驚き納得する話  share on Tumblr 

 『「今と昔の暦がイキナリ1ヶ月ズレたのは給料1ヶ月分カットが目的」という驚き納得する話』を書きました。よく、新暦と旧暦の違いから、お祭りの開催時期が本来の時期より1月ズレる問題を考えることがあります。そんな旧暦・新暦変更の歴史的な経緯が、素晴らしく(経済ロジックとして)わかりやすい…という話。

年末近くの11月、まさかの「来年からは、全然違うカレンダー使うことにしました!」という明治政府の発表は、来年の暦(カレンダー)を作成真っ最中の業者など、大混乱を引き起こしたといいます。…「さまざまなことへの影響が大きい暦の変更を、なんでイキナリ急いでやるの?」と思ったアナタは鋭い!聞けば納得の理由があるのですが、それが明らかになるのはもう少し先。

「今と昔の暦がイキナリ1ヶ月ズレたのは給料1ヶ月分カットが目的」という驚き納得する話

2017-06-04[n年前へ]

江戸の町に鳴らされる「時の鐘」の同期手法の科学と謎  share on Tumblr 

 江戸時代、時間を知らせる「時報」があった。江戸城を囲むように配置された何カ所もの「鐘」を鳴らして、江戸の町にその時刻を知らせていた。最も最初に作られた「時の鐘」は、今の東京駅や神田駅にほど近くに位置した本石町にあり、「時の鐘」はその後、他にも上野寛永寺や芝増上寺など10箇所以上に作られた。この「時の鐘」が「鐘を鳴らす順番が決まっていた」という解説を読み、いくつか不思議に思うこと(そして興味を感じること)があったので書いてみようと思う。

 そもそものきっかけは、以下の解説中の「①時の鐘は順番に鳴らされ、前の寺の鐘の音が必ず聞き取れるように配置されていた」「②捨て鐘という前振りを行うことで、遅速なく次のお寺で鐘が撞けるようにする」という記述である。この解説だけでなく、他の書籍などでもこの記述は見かけるのだが、まずはこの2点に、技術的な興味と少しの「引っかかり」を感じた。技術的興味というのはとくに②について、そして「引っかかり」は①についてである。

 時代によって設置場所と個数には変化がありますが、最初の9ヶ所は、①本石町②上野寛永寺③市ヶ谷八幡④赤坂田町成瀬寺⑤芝増上寺⑥目白不動尊⑦浅草寺⑧本所横堀⑨四谷天龍寺で、この順番で前の鐘の音を聞いて順序よく鐘を鳴らしていたのです。
 江戸では「捨て鐘」と呼ばれる撞き方があり、時刻を告げる時打ちの鐘を撞く前に、先ず注意をひくために三度撞き鳴らしていました。これは、一つ前の順番のお寺の「捨て鐘」を聞いたら、遅速なく次のお寺で鐘が撞けるようにするための知恵でした。江戸の「時の鐘」は、前の寺の鐘の音が必ず聞き取れるような位置関係に有ったようで、誤って遅速した場合の罰則はかなり厳しいものでありました。

江戸時代の暮らしと時間

 上の解説には、「①時の鐘は順番に鳴らされ、前の寺の鐘の音が必ず聞き取れるように配置されていた」と書かれているが、浦井 祥子氏の博士論文を元にした書籍「江戸の時刻と時の鐘 (近世史研究叢書 (6))」によれば、順番に鳴らされていたことがわかっているのは、史料からは

  1. 上野寛永寺
  2. 東円寺(市ヶ谷八幡)
  3. 赤坂成満寺
  4. 芝切り通し
の4つであるという。それ以外については、鳴らされ方は正かではない。

 鳴らされる順番がわかっている時の鐘に番号付けをした上で、他の時の鐘とともに地図上に描いてみたのが下図だ。ちなみに、名前を黄色背景としたところは「時計」を備えていたことがわかっている「鐘」である。

 こうして眺めてみると、当たり前のことだが、比較的高い土地に設置されていることがわかる。そうした場所に、高さ8m程度の建物の「時の鐘」を設置したというから、見通しよく鐘の音が伝わったのだろうとは思うが、「上野寛永寺と東円寺(市ヶ谷八幡)の4kmほどの距離」は少し気になる。この距離だと、梵鐘の鐘の音が届く限界距離に近く、現代より自動車音などや音波を遮蔽するビルなどが無いにしても、鐘の音を聞き取りにくい時も生じてしまうように思えてしまう。
 それに対して、東円寺(市ヶ谷八幡)から赤坂成満寺や芝切り通しへの「鐘の音リレー」は1.5km程度の間隔となっていて、こちらはとても自然だ。

 フジテレビ「トリビアの泉」で、梵鐘をヘリで吊して、高度100メートルから落下させたとき鐘の音が届く距離を調べる実験や梵鐘が聞こえる距離実験をしていて、その結果で鐘の音が聞こえる距離が1km前後だった(梵鐘を落下させたのでは、固有振動を最大限にすることは難しそうですが)。江戸の街は現代の東京よりも遙かに音が聞こえやすい…といっても、いつもきちんと伝えるのは難しいように思えてしまう。 当時、鐘の負担金を「聞こえる範囲」の300町〜400町(約3〜4km)の町人が負担したというが、果たしていつも「きちんと聞こえた」のだろうか。

 ところで、秒速340mほどの音速を考えると、上野寛永寺から芝切り通しまで「時の鐘」を伝えるためには、どんなに早くても約30秒掛かる。そして、こうした時の鐘が2次元上に配置されていることを考えると、それぞれの鐘の打ち手は一体どんな鐘の音シーケンスを聴いていたのを知りたくなる。

 「②捨て鐘という前振りを行うことで、遅速なく次のお寺で鐘が撞けるようにする」については、「江戸の時刻と時の鐘)」によれば、まず最初に鳴らされる「捨て鐘」は3打から構成され、1打目の後少し間を空けたあと、2打連続して撃ったという。つまり、モールス符号の「D-・・」のようにして撃つ作法だったという。そして、時刻を知らせる鐘は、時刻の数だけの鐘を「最初は間隔を長く、そして徐々に間隔を短くして」撃ったという。

 梵鐘を撃つ時、鐘を打つ橦木をスイングバックする必要があることを考えると、この打ち方をすることで、「捨て鐘」は「最初の鐘が大きく響き、後の2鐘は小刻みに小さな音で鳴る」ということになる。そして、時刻を知らせる鐘も同じように「音がだんだん小さく・小刻みになっていく」ことになる。この鳴らし方は、鐘の順番や数を聞き分けるために役立つような気もするし、単なる省略的な打ち方にも感じられる。

 何はともあれ、江戸の町に鳴らされる「時の鐘」の同期手法の科学を考えてみると、とても面白そうだ。江戸の町にどんな風に鐘の音が響いていたかを考えてみると、何だか江戸時代にタイムトリップしたような気になってくる。

江戸の町に鳴らされていた「時の鐘」を同期させる手法の科学(と謎)






2017-06-01[n年前へ]

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

 先日、機械学習を使い人体姿勢を推定するアルゴリズム(コード)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-05-30[n年前へ]

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

 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-05-28[n年前へ]

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

 ディープラーニングによる姿勢推定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版(ネイティブアプリ)」を作ってみる!?