4

matlab で SIFT を実装しようとしています。私は Lowe の 2004 年の論文に従っています。キーポイントの計算とそれらへの方向の割り当てまで完了しました(つまり、すべてのオクターブに対して)。ここで、記述子を実装する前に 1 つの疑問が生じました。他のサイズのオクターブでキーポイントの記述子を見つけるにはどうすればよいでしょうか。(元の画像サイズが 256*256 の場合、他のサイズのオクターブは 128*128,64*64 のようになります)。

私のアプローチを以下に説明します。

  1. ここでは、256*256 の画像とオクターブを 256*256,128*128,64*64,32*32 の画像として撮影しました。各オクターブに 5 枚の画像 (元の画像 1 枚とぼやけた画像 4 枚)。

  2. すべてのオクターブのキーポイントと方向を計算しました。(これには、各オクターブに2つの画像があります)。

  3. サイズ 128*128、64*64、32*32 のオクターブ単位のキーポイント。これらのキーポイントを 256*256 の画像で表現したい場合、どのように表現できますか? (私の疑問は、たとえば 64*64 画像のキーポイント範囲が (64,64) までであるということです)。

    答えが 64*64 画像の 256*256 への補間である場合。キーポイント (位置、縮尺、向き) はどのように補間されますか?

どんなアドバイスでも大歓迎です。ありがとう。

4

2 に答える 2

4

VLFeatのSIFT実装(C / C ++コードのmexラッパー)を確認することをお勧めします。ソースコードを掘り下げて、彼らが何をしているのか、そしてその理由を見つけてください。ロウの論文と比較してください。

于 2011-08-16T16:29:29.520 に答える
0

あなたが実際に何を指しているのかわかりません。matlabでsiftコードを再現するのに行き詰まっているということですか。その場合、実際には、低縮尺の画像に存在するキーポイントを元の縮尺で表現する必要はありません。値は、それが存在するオクターブとともに「ベクトル」に格納されます。コーディングの後の段階では、オクターブ番号を使用してさらに計算し、マッチング機能を実行できます。

于 2011-08-23T21:20:26.193 に答える