Re: Bag of Binary Words VS RTABMap

Posted by matlabbe on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Bag-of-Binary-Words-VS-RTABMap-tp2335p2361.html

Hi,

1. With "Kp/IncrementalFlann" false or true, the vocabulary is still incremental, new words are added to vocabulary after each image processed. This parameter indicates if we want to reconstruct the vocabulary (rebalancing) only after it doubles in size (=true) or after every time we add new words (=false). There is a parameter called Kp/IncrementalDictionary (along with Kp/DictionaryPath) that if set to true, an offline pre-built vocabulary is used (avoiding the structure update of the incremental vocabulary), but it is not very tested and the vocabulary creation is not documented.

2. Kp/IncrementalFlann set to true or false may not change Precision/Recall results, only processing time. As I said, this was an optimization done after writing the paper. However, when "Kp/IncrementalFlann=true", it is more difficult for memory management to correctly estimate the total processing time (as if a structure update happens, it will take a lot more time than the previous updates) so that it can correctly make sure that processing time will never get over the acquisition time (keeping loop closure detection online).

3. RTAB-Map lacks of a dedicated efficient structure for binary descriptors. I cannot tell you what are the best parameters for binary descriptor as I didn't test/benchmark them in large experiments. You can still use KDTree Kp/NNStrategy=1 with Kp/IncrementalFlann=true for ORB descriptors, that would reduce computation time, but not sure about Precision/Recall results. For this reason for loop closure detection with RTAB-Map, I would stick with SURF.

cheers,
Mathieu