3

私はSIFTを実装しようとしていますが、現在、MATLABで実装を開始する前に、それがどのように機能するかを理解しようとしています.Taylor Expansionを使用してサブピクセル精度を計算する方法を除いて、ほとんどを理解しています:

ここに画像の説明を入力

上は元の論文の方程式です。適用方法についていくつか質問があります。

導関数は各次元で別々に計算され、方程式は x に適用され、次に y に適用されますか?

1 番目と 2 番目の導関数はシグマ軸にも適用されますか?

以前の実装を見るのに疲れましたが、どこでこれを行っているかを見つけることができません。前もって感謝します

4

1 に答える 1

0

この場合、D は変数x = (x,y,s)を持つ体積関数です。ここで、s はオクターブのスケールです。

質問:導関数は各次元で別々に計算され、方程式は x に適用され、次に y に適用されますか?

答え:「導関数は各次元で別々に計算されていますか?」はい、一次導関数については、x、y、および s の偏導関数を個別に計算します。「x に適用される方程式は y ですか?」、いいえ、偏導関数の結果は長さ 3 のベクトルになり、これに逆ヘッセ行列 (3 X 3 行列) を掛けてxのサブピクセル位置を計算します。

二次導関数には、ヘッセ行列 (この場合は 3X3 行列) を使用します。

質問: 1 番目と 2 番目の導関数はシグマ軸にも適用されますか?

はいと答えてください。これは、D が定義されている 3D 空間の軸を表すためです。

ノート:

  • 数学的に詳細な説明については、
  • C++ のコードについては、を参照してください。
  • 離散領域で偏導関数を計算するために、 有限差分を使用します。
于 2015-05-25T11:59:54.813 に答える