w00
w00

Reputation: 26812

Using keypoints to compute object similarities

I'm trying to get the location of a certain object in an image taken with a camera. Template matching will not do in this case, because i need a scale/rotation invariant solution.

So i'm now using the FAST algorithm from OpenCV to detect keypoints in my image, which seems to be working good.

But what next? I have a 'template image' of the object that i want to detect. I can imagine that i have to detect the keypoints of this template image too, and then compare it showhow to the image taken with the camera. Is this what i have to do next and if so, what functions can i use for that?? (i'm using OpenCV)

Or is there another way of doing this?

So how can i use the keypoints to detect a certain object in my image?

Upvotes: 6

Views: 2907

Answers (3)

Jav_Rock
Jav_Rock

Reputation: 22245

You are using FAST for detecting keypoints, that is OK.

Now the next step is using a Descriptor Extractator. What a descriptor extractor is? Is an algorithm that generates a description of a keypoint that makes this keypoint recognizable by a matcher. Famous descriptors are SIFT, FREAK...

After you find descriptors in the template image and in the query image, you will need a matcher. The matcher will tell you which descriptors are the same.

Note that SIFT requires an euclidean-distance-based matcher (FLANN), but FREAK or other binary descriptors require a hamming-distance-based matcher.

Upvotes: 6

Zombia
Zombia

Reputation: 91

Maybe you can try SIFT keypoint description

VLfeat

Rob Hess

the second one is opencv based .

Upvotes: 1

Adi Shavit
Adi Shavit

Reputation: 17295

Try the ORB features instead. They are designed to be faster.
Also, take a look at the CARD descriptors.

Upvotes: 1

Related Questions