Jun 23, 2012

SIFT feature

Other reference
In my continuous struggle to remember things that I once learned, this part I will deal with SIFT feature.
SIFT proposed by David Lowe-extract some local features in an image that are invariant to
  • Scale
  • Illumination
  • Rotation
  • Affine transformation (of the form Ax+T, which is another thing I always forget.)

The theory behind the SIFT requires more understanding, so I will leave it for later. Here I will deal with the outcome of the SIFT. Given an image, we can compute several key-points in the image along with its 128 bin long histogram of descriptor. For example given an image of building I can get following SIFT descriptors using VL_FEAT implementation of SIFT:

f: [4x683 double]
d: [128x683 uint8]
name: 'b10_1.jpg'
size: 683

The there are 683 frames found for the image 'b10_1.jpg'. For each of the 683 frames we also have a 128-Dimensional descriptor. The first frame, for example, has following attibutes:
trainSet(1).f(:,4)
x_location_of_the_disc = 12.9428  % in the column direction in the image
y_location_of_the_disc = 10.3563  % in the row direction  
scale = 2.0881
orientation = -0.0163
If the frames are plotted using vl_feat is function then it will look something like this (it is a different image though):

The yellow discs denote some random frames.


2 comments:

Unknown said...

Lowe was the first to come up with SIFT, but he patented his work. Rob Hess published open source SIFT library, written in C. Kudos to Hess.

Md. Alimoor Reza said...

I didn't know about that. VLfeat library works well too.

Down with the Dictatorship!

    "Let them hate me, so that they fear me" - Caligula 41AD