0

I am trying to undertstnad a deeper level of feature matching using FLANN, and it looks like there are two usable approaches: with and without an index.

Here is SO question about matching using FLANN with indicies: How to use opencv flann::Index?

And here is an example of matching using FLANN without indicies: https://github.com/Itseez/opencv/blob/master/samples/cpp/matching_to_many_images.cpp

I see the differences in the code of course, but I'm trying to understand what the advantages of using one approach over the other would be. I know in databases, adding an Index increases performance in many cases. Is that analogous when using FLANN to match features???

Does anyone have any experience with this?

Community
  • 1
  • 1
Brett
  • 11,637
  • 34
  • 127
  • 213

1 Answers1

0

Index for feature matching is a way to trade accuracy for speed. What FLANN does is called "approximate nearest neighbor search". It means you lose a little bit accuracy (e.g. in certain fraction of times you find the next best nearest neighbor rather than the real best one), but you gain orders of magnitude speedup. Because you feature data themselves are noisy, some approximation in searching stage is usually tolerable. The KGraph library provides an index that usually runs several times faster than FLANN at the same accuracy.

  • 1
    Good info. Thanks. Posting the KGraph url here for others to reference: http://www.kgraph.org/ – Brett Mar 26 '14 at 17:19
  • @WeiDong The KGraph library is currently only available for Linux. I would be very interested in a Windows version, is it still planned ? – BConic Feb 23 '15 at 08:44