AS3でFunction.bind()

今回は久しぶりにActionScript(ECMAScript)関連を。 ECMAScript 5では Function.prototype に bind() メソッドが追加されます。 (JavaScript 1.8.5 で実装、ChromeやFirefox4などでは既に利用可能) Function.apply() や Function.call() と同じように利用できるので、 また一つ強力な技が備わったという感じでしょうか。 有名なJavascriptライブラリ prototype.js 由…

パーティクルフィルタによる物体追跡

今回はパーティクルフィルタを簡単に紹介。 (Wikipedia: 粒子フィルタ – Wikipedia) これは、一般状態空間モデルにおける状態ベクトルの推定法で、 Wikipediaではなにやら難しげに書かれているように見えますが、 要は、条件付き分布をたくさんのサンプル点で近似表現するだけの手法です。 この手法は、逐次モンテカルロ法とも呼ばれているように、 ランダムサンプリングによるモンテカルロ近似によって状態推定を行います。 パーティクルフィルタを物体追跡に適用するためには、 …

Stardust test 2 Klein Bottle

前回に引き続き Stardust を触っています。 今回は3D関連の処理を試してみました。 利用フローは基本的に2Dの時と同じなので簡単です。 カメラ関連のAPIを調べつつ、付属のサンプルを読めばだいたい掴めるかと。 Papervision3D などの外部の3Dエンジンを組み合わせるのではなく、 idv.cjcat.stardust.threeD.* パッケージを使っていきます。 (2D関連は idv.cjcat.stardust.twoD.* パッケージ) 例によって昔作ったものをコンバートす…

Stardust test Tinkerbell Map

自由度が高いと評判の Stardust を使ってみました。 パーティクル表現についての知識はほとんどない僕ですが、何事も経験ということで。 >> demo Tinkerbell Map を Stardust を使って描いてみたのですが、 2年前に描いたものよりは良くなっていると思います(あくまで主観ですが;)。 Stardust の触り心地としては、 「APIをペタペタ貼ってたらいつの間にかできていた」 という感じだったので、特に難しいところもないかと思います。 API Documentatio…

Flashにおけるメモリ管理

flash.sampler っていうパッケージを最近知ったので使ってみたかっただけです。 メモリ管理のコツとかそういう tips 的なことは一切書いてないですごめんなさい。。 注) 32bit CPU での検証結果です flash.sampler.getSize() で各クラスのサイズを調べてみました。 [as] import flash.sampler.getSize; // トップレベルのコアクラス (Error のサブクラスなどは除く) var top_level:Array = [Arr…

ByteArrayキャッシュ

今回は、Flash内で扱うデータのキャッシュについて。 CPUバウンドな処理を行うFlashを公開するにあたり、処理を軽くする方法をいろいろ考えましたが、 シンプルに考えて、計算結果をどこかにキャッシュしておくことにしました。 少し前に書いたFlashでステレオビジョン入門を例に取ります。 例えば、ブロックマッチング法などでは動的計画法(DP)を用いて途中の計算結果を使い回しますが、 “アプリケーション”であれば、最終的な計算結果のみをどこかにキャッシュしておき、 次のリ…

Flashでハイブリッドイメージ

何日か前に、はてなでハイブリッドイメージが話題になっていたみたいです。 僕も数年前にJavaで作った記憶があり、懐かしさも覚えつつも今回はFlashで。 例によってマリリンシュタイン。 >> Demo (ハイパス/ローパスフィルタの半径をスライダーで変更可能) 今回のデモではアインシュタインの方にローパスフィルタを、 マリリンモンローの方にハイパスフィルタをかけています。 近視の人だとマリリンモンローはほとんど見えないはずです。 ただ、はてブの例ほど良い画像を組み合わせていないので、 近くで見て…

WebカメラでVTR調フィルタ

2008年のエントリー VTR調変換 AS3.0 の内容を動画でも試してみました。 ダビングや経年などで劣化したVTR映像のような効果を付加するものです。 2年前の記事では OpenCV の IplImage 構造体を模した独自クラスを作り、 そのクラスのメンバに画像データを入れて処理しています。 今回は対象が動画ということもあり、メインのロジック部分をコンパクトにしました。 なるべくキャッシュにヒットするように書いているつもりですが、 GCのSweep Phaseで荒らされると思いますので気休…