Pavel Podlipensky
Pavel Podlipensky

Reputation: 8269

Quantize descriptors in OpenCV

I'm building image search engine and I want to reduce memory usage by quantizing image descriptors. What is the best way to quantize SIFT descriptors in OpenCV library? What is the fastest way? How can I measure quantization error?

Upvotes: 0

Views: 847

Answers (2)

old-ufo
old-ufo

Reputation: 2860

Take a look at this project, it does exactly what you want to archive - image retrieval system based on SIFT bag-of-words.

Upvotes: 0

David Nilosek
David Nilosek

Reputation: 1412

Quantizing descriptors for memory reduction may not be the best solution to your problem. As throwing away information within the descriptors themselves will likely lead to significant mismatch in your search.

OpenCV has a number of binary description algorithms which are intended to be quick and memory efficient. A very robust one which has been shown to be as good (and better in some cases) as SIFT is the FREAK descriptor. It does require a separate keypoint detection, (such as FAST). All of which is easily accessible using the OpenCV feature detector and descriptor interface.

If you need to solve the problem using SIFT descriptors, I would suggest looking at PCA-SIFT. You can use PCA to effectively reduce the descriptor dimensionality and retain information. However, that would be less straightforward to do in OpenCV.

Upvotes: 4

Related Questions