Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 606
w00 Avatar asked Nov 09 '11 13:11

w00


2 Answers

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.

like image 79
Jav_Rock Avatar answered Dec 07 '22 08:12

Jav_Rock


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

like image 41
Adi Shavit Avatar answered Dec 07 '22 10:12

Adi Shavit