Ask Your Question

Detecting multiple instances of same object with Keypoint-Matching approach

asked 2013-08-01 03:13:44 -0500

Marcus K. gravatar image


for an Augmented Reality application for controlling Smart-Buildings (KNX) from an Android Device I'd like to implement a solution for recognising different kinds of controllable objects (like aircon, lights and switches..) and overlay controls for these objects. I got the impression that a keypoint detection/description/matching approach using binary descriptors (FREAK) and hamming BF matching might be a reasonable way to go to achieve bearable performance on the mobile devices. I am able to detect objects reasonably well with my implementations based on Features2D + Homography to find a known object but I now realize that it will be tough to detect several objects of the same class in my frame as there won't be a way to find a single homography, as matches will happen between the training keypoints and several of the instances.

I am thinking about no longer calculating the homography and just finding areas with many matches. Just marking a detected objects "center" will do for me. Should I use more KNN steps to get more matches for the same training keypoint? Or maybe trying to find homography based matches in segments of the input frame might help.

Do you have any suggestions, ideas or comments on my ideas on how to apporoach that issue? I'd be grateful for any kind of input.

Regards, Marcus

[I'll now try to quickly get a train cascade based approach to run just to get an idea about performance. Will have to build the windows sdk first though as those elements don't come with the Android Distribution]

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2013-08-01 07:49:27 -0500

Guido gravatar image

Usually, when detecting various objects, you have a clustering step (mean shift for example) after key points detection. The key points close in the image are supposed to belong to the same object. Then you can execute the rest of your pipeline independently on each cluster.

For a more detailed approach you can take a look at : Object Recognition and Full Pose Registration from a Single Image for Robotic Manipulation, A. Collet.

At the section : "Pose estimation of multiple instances"

Hope this helps,


edit flag offensive delete link more

Question Tools

1 follower


Asked: 2013-08-01 03:13:44 -0500

Seen: 2,130 times

Last updated: Aug 01 '13