I am trying to match images from a large dataset which exactly match the given input image.(images with deformations/transformations are treated as different)

I have tried euclidean distance but it isn't very scalable. I have also tried matching gradient magnitude and orientation pixel by pixel, but again it seems to work in approximate manner and is slow.

I believe, pixel by pixel matching wouldn't be apt for matching from such large dataset. Moreover, even if certain approximation is allowed, can the threshold be decided dynamically rather than prefixed ?


Make use of perceptual hashes. It is very fast to compute and is very lightweight, both in terms of memory and cpu consumption. They are represented by simple long integers and can be indexed using many types of data structures such as VP Trees:


If that doesn't work, you can extract SURF features, quantize them into visual words using a vocabulary tree or BOW and index these with a database structure such as inverted file index. Check out OpenCV. It has many of the tools I mentioned here.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.