Scale Invariant Feature Transform (SIFT ) Implementation in Matlab

arun picture arun · Aug 15, 2011 · Viewed 12.5k times · Source

I am trying to implement SIFT in matlab. I am following the Lowe's 2004 paper. I completed upto calculation of keypoints and assigning orientations to them.(i.e for all octaves). Here i got one doubt before implementing descriptors.. how I can find the descriptors for the keypoints in octaves of other size. ( If original image size is 256*256, the octaves of other size means like 128*128,64*64).

my approach is explained below.

  1. Here I taken a 256*256 image and octaves as 256*256,128*128,64*64,32*32 images. In each octave 5 images (one original and 4 blurred images).

  2. I calculated upto keypoints and orientations for all octaves. ( In this I have 2 images in each octave).

  3. the keypoints in octaves of size 128*128, 64*64,32*32. If I want to represent these keypoints on an image of 256*256 image, how I can represent? (My doubt is for eg. 64*64 image has keypoints range upto (64,64) ).

    If the answer is interpolation of 64*64 image to 256*256. how keypoints(i.e location,scale and orientation) are interpolated?

Any advice is greatly appreciated. Thanks.

Answer

peakxu picture peakxu · Aug 16, 2011

I'd recommend you take a look at VLFeat's SIFT implementation (mex wrapper around C/C++ code). Dig into the source code to find what they're doing and why. Compare w/ Lowe's paper.