Reputation: 63
I notice that Vlfeat/Sift generates same number of descriptors for different images, why? And what is the aim of orientation assignment? It seems there is a similar process in the descriptor formation process. I am quite new to the SIFT and confused about a lot of stuff in SIFT. Thanks for your help.
Upvotes: 0
Views: 249
Reputation: 16121
Vlfeat/Sift generates same number of descriptors for different images, why?
Except if you explicitly pass a file with given input keypoints (*) the number of descriptors is NOT the same and clearly depends on the input image content.
For example, if you compare the Starbucks logo with Lena:
./sift --frames starbucks.pgm; wc -l starbucks.frame
601 starbucks.frame
./sift --frames lena.pgm; wc -l lena.frame
1769 lena.frame
Here I used 300x300 pixels images. The --frames
outputs the keypoints found with one position, scale and orientation per line.
(*) This means you ask VLFeat to describe a set of pre-defined interest points. With the sift
VLFeat command line tool, you can do that with the --read-frames
option.
What is the aim of orientation assignment?
This is to achieve rotation invariance. If you refer to the original paper:
One or more orientations are assigned to each keypoint location based on local image gradient directions. All future operations are performed on image data that has been transformed relative to the assigned orientation, scale, and location for each feature, thereby providing invariance to these transformations.
Upvotes: 1