I am trying to implement SIFT in MATLAB.
I have obtained keypoints for (say) 4 different octaves by locating local maxima and minima in DOG (difference of gaussian) space. However I am at loss at what to do with the keypoints from the last 3 octaves.
Do I include them in keypoints for the original image, if yes then how do I do the translation from the reduced image to the original e.g pixel (i,j) in 256 x 256
image(2nd octave) to pixel(i',j') in 512x512
image (1st octave). I tried many sift tutorials but didn't find anything conclusive.
These keypoints are scale & rotation invariant that can be used for various computer vision applications, like image matching, object detection, scene detection, etc. We can also use the keypoints generated using SIFT as features for the image during model training.
Let’s get rolling! SIFT, or Scale Invariant Feature Transform, is a feature detection algorithm in Computer Vision. SIFT helps locate the local features in an image, commonly known as the ‘ keypoints ‘ of the image.
So, in 2004, D.Lowe, University of British Columbia, came up with a new algorithm, Scale Invariant Feature Transform (SIFT) in his paper, Distinctive Image Features from Scale-Invariant Keypoints, which extract keypoints and compute its descriptors. * (This paper is easy to understand and considered to be best material available on SIFT.
It was created by David Lowe from the University British Columbia in 1999. David Lowe presents the SIFT algorithm in his original paper titled Distinctive Image Features from Scale-Invariant Keypoints.
It is not clear, what do you mean by "last 3 octaves"? About translation - you multiply obtained scale (from blurring kerkel) and (x,y) by factor of two for 2nd octave, by 4 for 3rd octave, etc...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With