gtsfm
gtsfm copied to clipboard
Theia Match Verification
This PR implements epipolar-guided matching using pyTheia. This was done by wrapping the theia::TwoViewMatchGeometricVerification::VerifyMatches
method. I borrowed some things from the feature/theia branch that @ayushbaid put together a while back, but I thought it made more sense as a verification scheme as opposed to a replacement for two view estimation.
Based on preliminary results on the door-12 dataset, the epipolar-guided matching increases the total number of tracks, but the median stays unchanged. If you compare the number of matches for each pair in verifier_summary_PRE_BA_2VIEW_REPORT.json
to the results from the current CI, the guided matching adds a lot of matches. Pre-2view BA pose errors are also significantly reduced. Will need to test on more datasets for more definitive proof.
Here's the pyTheia PR if you want to build it and run yourself: https://github.com/urbste/pyTheiaSfM/pull/19
TODO:
- [x] Finish pyTheia PR
- [x] Build Linux wheels
- [x] Add descriptors to KeypointsAndDescriptors