rust-cv / cv

Rust CV mono-repo. Contains pure-Rust dependencies which attempt to encapsulate the capability of OpenCV, OpenMVG, and vSLAM frameworks in a cohesive set of APIs.
792 stars 62 forks source link

vSLAM and frame LSH #34

Closed vadixidav closed 2 years ago

vadixidav commented 2 years ago

This changes the internals of cv-reconstruction. Now, frames are matched to each other using an LSH of the bag of features representing the frame using the hamming-lsh crate. This has several benefits, such as being able to better tie together the reconstruction, and guards against problems that occurred with the old model where so many features were added to the ANN search that none of them were sufficiently discriminate, and the number of matches went down as the number of frames added increased. This new technique makes it so that the number of matches (shared observances of a landmark) added is retained during the whole reconstruction.

One last thing needs to be dealt with, which is merging two reconstructions. This should be possible, but requires more code. Once this is complete, this PR can be merged.