Reputation: 63
I have a image library, with has ~5000 images with ~150 features. Now I have another image with ~300 features, and I want to find 5 most similar images in my library.
The brute force need about 300 * 5000 * 150 * 128 operations, costs too much time. So I built a kd-tree for features in each image in my library, which means ~5000 kd-trees. I used bbf search for approximate nearest neighbors like other sift libraries did. But the performance became even slower than my brute force algorithm. To make sure that its not my implementation's fault, I modified other libraries's matching algorithm to brute force, and their performance increased too.
My question is that is there any possible to combine ~5000 kd-trees into one tree? Or is there some other way to increase performance while matching multiple images?
Upvotes: 2
Views: 1094
Reputation: 12524
You might consider using Locality Sensitive Hashing, which should be considerably faster, if not 100% accurate.
Upvotes: 2