SIFT(Scale-Invariant Feature Transform)特徴量

Loweという人がSchmidらの局所領域の特徴量記述の考え方を拡張し、画像のスケール変化・回転に不変な特徴量として提案。

SIFTの計算は次の2(4)ステップからなる。
1.detection
1-1.スケールとキーポイントの検出
1-2.キーポイントのローカライズ
2.description
2-1.オリエンテーションの算出
2-2.特徴量の記述

1-1ではDoG処理によりスケールスペースでの極値探索をし、キーポイント(この周りで特徴量を算出する)とスケールを決定する
1-2では1-1で見つけたキーポイントのうちDoG出力値の小さい値、エッジ部分など、ノイズや開口問題に影響を受けやすい点を除去する。
2-1ではキーポイントにおける方向(オリエンテーション)を算出する。この方向により、向きに関する正規化を行い、特徴量を回転不変にする。
2-2でキーポイントを2-1のオリエンテーション方向に回転し、このキーポイントを中心に1-1のスケールを半径とした円領域から周辺の勾配情報を求める。
この周辺領域を1辺4ブロック、計16ブロックに分割し、ブロックごとに8方向(45度づつ)の勾配ヒストグラムを計算する。このヒストグラムが特徴量となる。

動画からの特徴抽出に使えるかと思って実装してみようと思ったのだが、1-1の時点で相当時間がかかることが判明。とてもじゃないけどこら使えん。作り方が悪かったのかな・・・?
友だちからSIFTのToolboxをもらってるのでそれで一度どれくらい時間がかかるか確認してみよう。本当はこのToolBoxを使うのが時間かからなくていいのだが、なんせmex処理してるもんで、どこがどうなってるか分からんのです。SIFTをそのまんま使うつもりしてなかったから、ソースを色々いじる必要あるのに、これではしんどいし。

次はHOG(Histgrams of Oriented Gradients)を試そう。しかし、次元がうん千次元とかになるんだよなぁ・・・。

追記2008.12.09
どうやら、ツールボックスが使えなかった理由はワークスぺースが間違っていたからだったようだ。
パス通したはずだったのになぁ…。