goo blog サービス終了のお知らせ 

改め Objective Technician

はぐれ技術者のやりたい放題

AS3: Flashで画像のフーリエ解析&周波数pickup

2009-11-28 21:31:15 | 勉強
画像をフーリエ変換して,その周波数領域から少しずつ成分を取り出していくと元画像が少しずつ再構成されて浮き出て見えてくる,という Flash.





クリックすると Flash ページに飛びます




webから任意の画像をロードできるようにしたかったけど,外部から読んだ画像をビットマップで扱おうとするとセキュリティサンドボックス侵害でおこられる.

例外的にFlickrが crossdomain.xml で全てのドメインからのアクセスを許可しているので,ここの画像(もしくはswfファイルと同じドメインの画像)だったらデータに直接アクセスできる.



あと,ローカルで実行してローカルファイルを読み込みたいときはコンパイル時のオプションで

-use-network=false

とすればいい.

Flash 物理シミュレーション その4

2009-11-16 23:18:35 | 勉強
これのさらに続き

バイトで作ってる物理シミュレーション Flash 3件



そろそろネタが苦しくなってきた。なんか面白い現象ないかな…




画像をクリックするとシミュレーションページに飛びます。


・振動子の相互作用




・共鳴




・角運動量の保存








以下は、物理じゃないけど Vision Science 関係の Flash。


・色順応の錯視




・等輝度運動




・線分の受容野




つづく

年に一度あるかないか

2009-11-03 18:36:24 | 勉強
その午後この仮説をテストするため、僕は実験用のプログラムを一気に書き上げて一連の実験をしてみた。

僕の理論が正しければ、 physically 条件と illusory 条件との結果は一致するはずなのだ。

実験の結果は誤差4%で両者は一致すると出た。心理物理学の分野ではこれほど近い数値が出ることは非常にまれで、ふつうは統計的手法を用いて結果の検定をする。それがたった誤差何%と言えるぐらいならかなりの正確度だ。


僕は続けてもっと他のものについても調べてみたが、みなうまくおさまる。また次々と新しいものを試してみても、どれもこれもぴたりと合う。

僕はいささか興奮してきた。何しろ僕は今、世界中で他の誰も知らない自然の法則を一人で握っているのだ。


それぞれ異なる過程で出てきた数値が見事に一致するという事実を目前にして、僕はまるで壮大な物語を見ているかのような感動を覚えた。

そして、あぁこれは高校のときの物理実験で幾度と出合った感覚と同じだなと思い、嬉しくなった。


僕は、視覚科学の幕開けとなる発見をしたヒューベルとウィーゼルのことを思った。彼らほど画期的でないかもしれないが、先人たちの蓄積に僕もとうとう新しい知見を加えることができそうなのだ。


実験方法と結果の美しさにひとしきり酔いしれたあと、僕はこの感動を誰かに伝えたいと思い、教授のいる部屋へ一目散に駆け出した…





間池留出版 イサベラの「ご冗談でしょう、ブラウンさん(下)」より


徒然草 神無月のころ

2009-10-25 00:31:07 | 勉強
第十一段


神無月の頃、ScienceDirectといふサイトを過ぎて、ある文献を尋ね読む事侍りしに、数多なる引用論文のリンクを踏み分けて、かねて探したる研究見つけたり。

書類に埋もるゝ机の中ならでは、つゆおとなふものなし。

デスクトップに未読の論文など折り散らしたる、さすがに、住む人のあればなるべし。


かくてもあられけるよとあはれに見るほどに、先行研究の追試の幾つか行いたるが、それらのきびしく再現されずして、原因を探りしこそ、少しことさめて、このデータなからましかばと覚えしか


雪国

2009-10-24 00:04:58 | 勉強
先輩に連れられて廊下を抜けると修羅場であった。学生の前途が暗くなった。会議室の前で足が止まった


向側の座席から発表者が立って来て、パワポを開きプレゼンを始めた。教授の怒声と溜息が流れ込んだ。発表者は目をいっぱいに見開いて、遠くへ叫ぶように、「すみません、すみません」

レーザーポインタをさげてゆっくり前へ出てきた次の発表者はいかにも負のオーラに身を包み、目に大きなクマを作っていた。

もうそんな状況かと学生は会議室を眺めると、撃沈されたらしい院生が隅の方に寒々と散らばっているだけで、彼の心はそこまで行かぬうちに闇に呑まれていた。

「先生、あと少しなんです、あと少し時間を下さい」
「ああ、話にならんじゃないか。またやり直しかい。先週も同じことを聞いたよ」



オリジナルはこちら

坊ちゃん

2009-10-21 00:05:29 | 勉強
親譲りの無鉄砲で子供の時から損ばかりしている。

大学院一年目の時分勝手に実験を計画して教授には事後報告でデータを取り、それを学会に出した事がある。

なぜそんな無闇をしたと聞く人があるかもしれぬ。

別段深い理由でもない。

本業の研究とは関係ないプログラムを趣味で組んでいたら、先輩の一人が偉そうに、いくら自分の好きなことをやっているといっても、研究ではそう上手くいくものじゃない。キミもあと何年かすれば分かるさ。と囃し立てたからである。

何週間か研究室に泊まり込んで文献を読み研究ストーリーを作り実験をまとめ資料を作成していた時、スタッフの一人が大きな眼をして一か月ちょっとでゼロから結果を出そうとするなんてバカじゃないのと言ったので、この次は一週間で結果を出して見せますと答えた。


枕草子

2009-10-20 00:12:36 | 勉強
春は構想。
まことに白紙のままの、研究テーマの僅かも具体化せずとて、脈絡のない予備実験データの細くたなびきたる。


夏は実験。
徹夜はさらなり。深夜実験もなほ、被験者の多く犠牲になりたる、また、ただ一つ二つなど、成り行きに研究テーマの脱線して行くもをかし。研究の方向性など発散するもをかし。


秋は論文。
夕 日のさしてやうやく論文を書かんとする気分になりたるに、すこし教授室へ確認へ行くとて、二時間三時間、三時間四時間など議論の発展するさへあはれなり。 まいて、現実逃避などの連ねたるが、ぷろぐらみんぐと云う遊びに興じるは、いとをかし。日入り果てて、なほぷろぐらみんぐに熱中しきぃぼぉどを叩く音、ま して堂々と仕事をなす振りとなるなど、はた言ふべきにあらず。


冬は学会。
原稿締切に追われるは言ふべきにもあらず、実験データの不整合も、またさらでも、いと矛盾ありきに、追加実験など急ぎ行いて、研究ストーリーを練り直し回るも、いとつきづきし。昼になりて、追試データを持ていけば、教授の顔色も白き灰がちになりてわろし。




対象を正視し続けることが思考の自由な働きを妨げる

2009-10-09 00:24:29 | 勉強
このあいだ研究会で聴いた話から。


人間の視覚機能のしくみが、怪しげな思想的な解釈ではなくきちんとした工学の理論(信号処理)で説明できることの一例。



運動検出器を時空間周波数座標での傾き検出器にすり替えて考えることで、仮現運動とサンプリング定理の概念が結びつく。


予備知識
 仮現運動:不連続に変化する絵なのに動きが見える現象。テレビとかパラパラマンガとか。
 ○○検出器:視覚系に割と低次のレベルから存在する、視覚像から特徴を選択的に抽出する神経基盤。線分の方位検出器や運動の速度検出器など。



まず、十分に細かいサンプリングで光点の運動を記録したときの時空間プロットの例が左図、この時空間周波数成分が右図。


この時空間周波数座標の丸で囲ったあたり(下図)の範囲に、周波数軸上での傾きを何らかの方法で検出する機構があれば、それはつまり運動検出器になる。







次に、サンプリング間隔を2倍に粗くしたときの時空間座標と周波数座標はこんな↓。周波数座標上に元信号のコピーが彼方から現れ、じりじりと迫ってきている。




でも、下図みたいに時空間周波数軸上での傾き検出器(= 運動検出器)が感度をもつ範囲にかかってなければ、上の方のニセ信号はローパスフィルタでカットされるので運動情報は完全に復元できる。この場合の仮現運動と実運動とは違いがないので区別できない。





さらに、サンプリング間隔を4倍にしたとき↓。周波数軸上でのコピー成分の間隔がどんどんせまくなっていく。




これが、下図みたいに検出器が感度を持つ範囲に入ると、ニセ信号が拾われてしまうので運動情報を元通り復元できなくなる。こうなると運動が不自然にカクカクして見えて、初めて自然な実運動とは違うことが分かる。







でも、サンプリングが相当粗い場合でも、人間の視覚系は積極的に動きを見よう(仮現運動を作ろう)としてくれるので、特に困ることはないもの。




逆に、サンプリングが一定値より細かければそれは実運動と区別できないので、それ以上にムダにディスプレイのリフレッシュレートを上げても知覚上は意味ないんですよという話。




Wii リモコン×2 で 三次元らくがき帳

2009-10-01 22:46:01 | 勉強
もはや遊びと研究の区別が付かなくなってきている気がするが、今回のはいちおう本職の研究に関係するもの。



Wii リモコンで三次元空間に絵を描くアプリケーションを作った。



AS3ソースはこちら

三次元座標を取るには、赤外線光点を二つ使って Wiiリモコンから見える光点間の距離を使う方法があるけど、これだとやや不安定なので Wiiリモコンを2つ使うことにする。

そして、Wii リモコンを動かすのではなく赤外線 LED のほうを動かして、Wii リモコンは光点検出用のカメラ代わりにする。

2つの Wii リモコンを互いに直交する位置に固定すると、指先につけた赤外線 LED で三次元空間内で位置を指定できる(つまり一軸余る)。




ヌンチャクの加速度センサとボタンで回転とかの細かい制御。

ヌンチャクのスティックの値が取得できなかった。WiiFlash が未対応らしい。



三次元ペイントなら普通のカメラでもこれと同じやり方でできるけど、Wii リモコンを使うと光点検出の画像処理が一切不要。WiiFlash 側ではすでに座標値そのものが入ってるから、それをリアルタイムで取ってくるだけ。楽すぎる。



あと、作ってみて気づいたけど、Wiimoteのイベントはウィンドウにフォーカスが当たってなくてもリスナに通知される。

だから、マウスとかキーボードとかではひとつのウィンドウだけにしかイベントを送れないのに対して、Wiimote を使えば同時に複数のウィンドウを操作できる。


これを使うと、カメラの角度を微妙にずらして二つ同時起動するだけで、視差付きの立体映像が作れる。






WiiFlash と Papervision3D との組み合わせの可能性はすごい

Wii リモコンをハックする

2009-09-02 00:00:51 | 勉強
Wii リモコンを PC から使うための準備。


まず、リモコンの位置を取得するためのセンサーバーが必要。


買うと高いので自作した。


センサーバーと言っても、その実体は赤外線 LED が光ってるだけだから、構造はこの上なく単純。

これだけの材料とはんだがあれば作れる。

・USBから電源を取るケーブル
・赤外線 LED
・抵抗、基板





USB携帯充電器の先っぽを切り落とし、そこから DC 5V が来ていることを確認。

あとは、そのまんまの回路構成ではんだ付けて、テスターと CMOS カメラで動作確認して完成。

簡単すぎる。





Bluetooth で Wii リモコンをシンクロさせてから、試しに C# の WiimoteLib テストプログラムを起動して、リモコンの位置と傾きとボタンイベントがちゃんと取得できてるのを確認。



そのあと、WiiFlash で適当にとりあえず動くものを作ってみた。




AS3ソースはこちら




次は、リモコンを頭に付けて頭部運動解析とかやってみようか。






これを機に Java から本格的に ActionScript に乗り換えようかと思う。


これまで、三次元の絵を作るのには Java3D を好んで使っていたが、ActionScript + WiiRemote で 3D をグリグリやるとなると、Papervision3D を覚えて全部 Flash でまとめたほうがスマートだ。









さて、問題はこれで何をやるかだが…


これを使って本業の視覚研究にどんな応用ができるかというと…