Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use SIFT/SURF as features for a machine learning algorithm?

Im working on an automatic image annotation problem in which im trying to associate tags with images. For that im trying for SIFT features for learning. But the problem is all the SIFT features are a set of keypoints, each of which have a 2-D array, and the number of keypoints are also huge.How many and how do I give them for my learning algorithm which typically accepts only one-d features?

like image 829
sreeraag Avatar asked Nov 18 '13 06:11

sreeraag


People also ask

How do you detect a feature using SIFT SURF orb algorithm?

SIFT and SURF detect more features then ORB, but ORB is faster. We then load one by one the three algorythms. We find the keypoints and descriptors of each spefic algorythm. A keypoint is the position where the feature has been detected, while the descriptor is an array containing numbers to describe that feature.

What is SIFT in machine learning?

Scale-Invariant Feature Transform (SIFT)—SIFT is an algorithm in computer vision to detect and describe local features in images. It is a feature that is widely used in image processing. The processes of SIFT include Difference of Gaussians (DoG) Space Generation, Keypoints Detection, and Feature Description.

How do SURF features work?

The SURF feature detector works by applying an approximate Gaussian second derivative mask to an image at many scales. � Because the feature detector applies masks along each axis and at 45 deg to the axis it is more robust to rotation than the Harris corner.

What is SURF algorithm used for?

In computer vision, speeded up robust features (SURF) is a patented local feature detector and descriptor. It can be used for tasks such as object recognition, image registration, classification, or 3D reconstruction. It is partly inspired by the scale-invariant feature transform (SIFT) descriptor.


2 Answers

You can represent single SIFT as "visual word" which is one number and use it as SVM input, I think it is what you need. It is usually done by k-means clustering.

This method is called "bag-of-words" and described in this paper.

Short presentation review of method.

like image 93
old-ufo Avatar answered Oct 13 '22 22:10

old-ufo


You should read the original paper about SIFT, it tells you what is SIFT and how to use it, you should carefully read the chapter 7 and rest for understanding how to use it practically. Here is the link for original paper.

like image 43
guneykayim Avatar answered Oct 13 '22 21:10

guneykayim