Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Thread Subject:
problem using sift for matching

Subject: problem using sift for matching

From: Alienware

Date: 21 Apr, 2010 02:01:20

Message: 1 of 4

hi everyone,
I am doing a project on image comparison. I am using SIFT for determining the keypoints of the images and then using NNS(Nearest Neighbour Search) for comparing the two images.
My problem is that, when I am comparing an image with its flipped image, it is not showing any matched keypoints. But on comparing an image with its rotated image it is showing about 95% match.

Why is this so? Is this the problem in SIFT or in NNS?

Subject: problem using sift for matching

From: ImageAnalyst

Date: 21 Apr, 2010 02:15:54

Message: 2 of 4

"Alienware " <rajesh89.ni...@gmail.com> :
Why do you think an image should be matched to it's flipped mirror
image version? Do you think that a template image of a right hand
should produce hits in an image composed of a bunch of left hands?
Maybe that's your definition of a match but it might not be everyone's
definition of a match.

Subject: problem using sift for matching

From: Akshay

Date: 1 Mar, 2011 13:41:08

Message: 3 of 4

ImageAnalyst <imageanalyst@mailinator.com> wrote in message <e506ac45-b5cf-45ad-b0af-685eb909f9ee@f17g2000vbd.googlegroups.com>...
> "Alienware " <rajesh89.ni...@gmail.com> :
> Why do you think an image should be matched to it's flipped mirror
> image version? Do you think that a template image of a right hand
> should produce hits in an image composed of a bunch of left hands?
> Maybe that's your definition of a match but it might not be everyone's
> definition of a match.

I think this is a case of out of plane rotation. When you flip an image, you are performing 180 degree rotation about the X/Y axes, while SIFT is capable of handling rotations and scaling about the Z axis

Subject: problem using sift for matching

From: Pierre

Date: 1 Mar, 2011 14:10:09

Message: 4 of 4

"Alienware" wrote in message <hqlm9g$npm$1@fred.mathworks.com>...
> hi everyone,
> I am doing a project on image comparison. I am using SIFT for determining the keypoints of the images and then using NNS(Nearest Neighbour Search) for comparing the two images.
> My problem is that, when I am comparing an image with its flipped image, it is not showing any matched keypoints. But on comparing an image with its rotated image it is showing about 95% match.
>
> Why is this so? Is this the problem in SIFT or in NNS?

This is due to the SIFT descriptor. But it's not a problem in terms of defect, but it cannot handle this per design. You haven't read [Lowe2004: Section 6], have you?

I really think it should be possible to handle flipped images, although it would consist of a special case (e.g. searching for non-flipped images, then for flipped ones). As each of your d components of your descriptors represents a value computed in regard to the key point's orientation, it should be feasible to find a static permutation to directly transform a descriptor to the "mirrored/flipped" version of the descriptor. But you will have to know the implementation of the descriptor as it is–generally spoken–quite unimportant which component reflects which region around the key point as long as this is consistent throughout all descriptors one wants to compare.

If you do not have access to the source code building the descriptors this is going to be really tricky.

[Lowe2004]: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.157.3843&rep=rep1&type=pdf

Tags for this Thread

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Contact us