introlab / rtabmap

RTAB-Map library and standalone application
https://introlab.github.io/rtabmap
Other
2.77k stars 786 forks source link

Dictionary Size with number of nodes for same scene #506

Open adityarasam opened 4 years ago

adityarasam commented 4 years ago

Hi

In my experiment I am observing the Dictionary size in the statistic window. We have fixed the trajectory using a track and the camera is placed on the Tripod and the track is placed parallel to the wall with camera looking into the wall with some newspaper and posters on the wall. So the camera captures feature from the flat wall.

We are moving the tripod back and forth from one end to the other to see the increase in the words in the dictionary. We were expecting that when moving along the track for the first time the words should increase and after that the dictionary size should stop increasing, but we see the increase in the number of words even when going along the same trajectory over and over again. What we thought was as most of the scenes are overlapped the descriptors for features are considered to be the same based on NNDR ratio which we have set to 0.8 and hence the dictionary size should not increase for repeated scene. Can you please explain why there is an increase in the number of the words in the dictionary? This is the image for Dictionary size over time DictionaryWordSize

This is the image for graph nodes image

matlabbe commented 4 years ago

It is because that even when looking at the same scene, as the threshold (Kp/NndrRatio) is relative, not all features are matched. The dictionary will then increase over time. Slightly noise in the camera (and lighting variations) would increase this effect. It also depends on the feature type. In particular float descriptors would be easily matched (thus dictionary size would increase less faster) as they are more discriminative than binary ones. We can increase NNDR ratio but we reduce distinctiveness between BOW signatures (thus less good loop closure detection).

Other info: