Image Descriptors with SIFT / VLFEAT

I want to perform a classification task in which I correlate a given image of an object with one of the list of predefined constellations in which the object can be located (i.e. find the most likely match). To get image descriptors (on which I will run machine learning algorithms), I was offered to use SIFT with the VLFeat implementation.

First of all, my main question is - I would like to ignore the key point of the screening search and use it only for my descriptors. In the textbook, I saw that it is possible to do just that by calling

[f,d] = vl_sift(I,'frames',fc) ;

where fc indicates key points. My problem is that I want to explicitly specify the bounding box in which I want to calculate the descriptors around the key point, but it seems that I can only specify the scale parameter, which is now a little cryptic for me and does not allow me to explicitly specify the bounding box. Is there any way to achieve this?

The second question is: does setting the scale manually and getting descriptors in this way really make sense? (i.e. get a good descriptor?). Any other suggestions on a better way to get descriptors? (using SIFT with other implementations or other descriptors other than SIFT). I should mention that my object is always the only object in the image, it is centered, has constant illumination and is changed by some types of rotations of its internal parts. And that’s why I thought SIFT would work, because I realized that it focuses on orientation gradients that would change accordingly when the object rotates.

thanks

+6
image-processing computer-vision classification sift
source share
3 answers

I agree that the scale of the descriptor looks a bit cryptic.

See the third image in the VLFeat SIFT tutorial , where they superimpose extracted descriptors on the image with the following commands

 h3 = vl_plotsiftdescriptor(d(:,sel),f(:,sel)) ; set(h3,'color','g') ; 

Thus, you can play with the scale and see if the area in which the histogram is located is extracted with the expected.

SIFT sounds like it might be redundant for your application if you have such control over your visualization environment, but it should work.

+2
source share

Hey. This could help trace the background of this thesis: http://www.cs.bris.ac.uk/Publications/pub_master.jsp?id=2001260

it will take me a while to explain the scale, so try reading it and see the appropriate quote. By the way, in this work, descriptors are used at basic resolution, i.e. Scale ~ 1.

Hope this helps.

0
source share

Perhaps I did not understand this problem, but if the request image should be compared with the database of train images, and both test and test images are constant in lighting, scale, ... maybe SIFT is not required here, you could take a look to correlation. Do you use matlab?

http://docs.opencv.org/doc/tutorials/imgproc/histograms/template_matching/template_matching.html#template-matching "Here" you can see an example of using correlation with opencv.

0
source share

All Articles