Regarding the NNDR

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Regarding the NNDR

Kaifei
Hi Mathieu,

    In your TRO2013 paper, you said "As in [31], two features are considered to be represented by the same word if the distance with the nearest neighbor is less than T_NNDR times the distance to the second-nearest neighbor.".
     But in [31], it says: "A more effective measure is obtained by comparing the distance of the closest neighbor to that of the second-closest neighbor. If there are multiple training images of the same object, then we define the second-closest neighbor as being the closest neighbor that is known to come from a different object than the first, such as by only using images known to contain different objects.".

     I went through the RTABMap code (i.e., VWDictionary.cpp), it doesn't seem to check whether the second-closest neighbor come from a different object than the first. (And of course it is hard to check)
     I'm just wondering whether this difference will make big difference in the matching accuracy? Is there alternative (and potentially better) ways to do this?

Thanks!
Kaifei
Reply | Threaded
Open this post in threaded view
|

Re: Regarding the NNDR

matlabbe
Administrator
Hi,

It may difficult to know if two descriptors from different images are from the same object a priori before using NNDR to actually know they are from the same object or not. I didn't explore many other matching criteria, beside using an absolute distance, different nearest-neighbor distance ratios or cross-matching.

Indeed, better matches would give better Precision/Recall for loop closure detection. Note that too precise matches (like reducing NNDR) could result in a low number of common words between images, and even not match the same feature on different images representing the same location or object because of the noise (image quality, exposure, motion blur, shadows...).

cheers