dorian3d / DBoW2

Enhanced hierarchical bag-of-word library for C++
Other
851 stars 367 forks source link

Parameters to use #1

Closed oleg-alexandrov closed 9 years ago

oleg-alexandrov commented 9 years ago

Dorian, thank you for the DBoW2 software. I tried it in some preliminary tests with my own imagery and it performs very well. I have a question though. What are good values for branching factor and depth levels? The defaults are 9 and 3. Are these expected to scale with the number of images? Thank you.

dorian3d commented 9 years ago

Hi Oleg. In my experience, the more images, the larger the vocabulary you need to distinguish them. For convenience, I usually consider base 10 sizes: 10^4, 10^5, 10^6... It is to say, branching factor = 10 and depth levels between 4 or 6.

I found myself using 10^6 most of the time. Queries are also faster than with 10^4 or 10^5 if you have thousands of images because the inverted index is more sparse.

For other branching factors, take into account that the execution time increases for higher values. In general, the complexity of a query is O(k^L), being k the branching factor and L the depth levels.

oleg-alexandrov commented 9 years ago

Dorian, thank you, this is very helpful.