JavaScriptでHarrisオペレータによるコーナー検出

ひさしぶりのブログ。 ブラウザの処理能力の進化を測るには個人的に画像処理が一番わかりやすいです。 今回は画像内にあるオブジェクトのコーナー(corner:頂点, エッジの交点)を検出をしてみます。コーナー検出に用いられる特徴点検出法はいくつか提案されていますが、今回はブラウザ上で実行することを考慮し計算量とメモリ使用量の観点からHarrisオペレータを採用します。 コーナー検出法についてはWikipediaを参考に。 コーナー検出法 – Wikipedia Harrisオペレータは微…

JavaScriptで2D-FFTによるハイパス/ローパスフィルタ

これまでにJavaScriptとHTML5 Canvas APIでいくつかの画像処理を試してきましたが、今回は二次元離散フーリエ変換(2D-DFT、実装上では2D-FFT)で得られた周波数スペクトルにハイパス/ローパスフィルタ(HPF/LPF)を適用します。 「フーリエ変換」は音声処理でよく耳にする単語かと思います。音声データをフーリエ変換してHTML5 Canvas上でビジュアライズするデモもたくさん公開されています(例: Visualizing an audio spectrum &#821…

JavaScriptでステレオ画像処理

過去、OpenCVやFlashで簡単なステレオ画像処理を試してきましたが (ステレオ画像処理, Flashでステレオビジョン入門)、今回はJavaScriptとCanvas APIで同じものを作ってみます。 Demo: HTML5 Stereo Vision Source Code: cv/stereo_matching at master from wellflat/jslib – GitHub ここではKinectのように赤外線センサーはもちろん利用できないので、純粋な画像解析の…

JavaScriptで決定木

前回のAS3でNaive Bayesによる文書分類に関連して機械学習による分類問題を扱います。 今回は決定木(Decision Tree)をCanvasに描いてみます。前回のナイーブベイズよりも決定木の方が解釈が簡単で、分類過程が見た目にも分かりやすいので手軽に試すことができました。今回も理論的な部分はWebや書籍の方を参考にしてもらって、ここでは試したことだけ書きます。 今回扱う問題は集合知プログラミングにある「サインアップを予測する」を取り上げます。これは、あるユーザーがあるWebサービスの…

Consistent Hashing in AS3

前回のエントリー「Redis AS3クライアント」に関連して、キーの分散処理を行うために Consistent Hashing をAS3で書いてみました。イマドキのNoSQLデータベース(MongoDBなどshardingで分散するもの以外)クライアントならだいたい実装されているアルゴリズムですね。 理論の説明は以下のサイトなどを参考に。 Consistent Hashing スマートな分散で快適キャッシュライフ * Consistent Hashing implementation in AS…

HLAC: 高次局所自己相関特徴

今回は画像特徴量の1つである高次局所自己相関特徴 (HLAC: Higher-order Local AutoCorrelation)について。 HLACは画像認識に対する基本的な要望としての位置不変性および加法性を満たすものであり、一次にとどまらない高次の相関に基づく統計的特徴量になっています。現在では様々なHLACの発展系が生まれていますが、今回はその基本となるアルゴリズムについて整理したいと思います。 基本アルゴリズム 自己相関関数を高次に拡張したN次の自己相関関数は、対象となる画像領域内…

Flashのガベージコレクション – 遅延参照カウント

前回のエントリーの続きです。 Flashのガベージコレクションに関する正しい理解 ——————– Flash Player(AVM2)のガベージコレクション(以下 GC)は以下のアルゴリズムを採用しています。 (参照: AS3TuningInsideAVM2JIT.pdf) * Deferred Reference Counting (DRC) * Backed by incremental conservati…

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

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