Feature/adaptive thresholding#40
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds the adaptive thresholding functionality to image sequence procedure.
Selecting a good matching threshold beforehand is a challenging task. And even if such a threshold was found there no guarantees that the threshold will hold while the query sequence is progressing.
In this PR, we estimate the matching threshold based on the similarity values in the vicinity of the current best match hypothesis. This is an online adaptation method that requires an initial estimate of matching cost. However, the method is not sensitive to a wrong matching threshold. If you are using cosine distance for matching the descriptors, where 0 is not a match and 1 is perfect match. Then everything above 0.2 should work.
Note, that the matching threshold should be specified in cost = 1./matching_threshold format. If you would like to set the matching threshold to 0.5, then you should provide cost of 2.0 in the config file.
For more details about the underlying technology please refer to this paper.