Here is a good vocabulary tree implementation - libvot . It uses the standard C ++ 11 multi-threaded library to speed up the build process, so it works pretty fast.
It uses three steps to create a vocabulary tree. The first step is to create a kmeans tree using sifting descriptors. The second step is to create an image database using the dictionary tree that you create in the first step. The third step is to query the image for the image database. This repository also reflects some best practices, such as inverted list and L1 distance measurement.
Nothing more
source share