gtsfm icon indicating copy to clipboard operation
gtsfm copied to clipboard

Theia Match Verification

Open travisdriver opened this issue 1 year ago • 6 comments

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

result_metrics.zip

TODO:

  • [x] Finish pyTheia PR
  • [x] Build Linux wheels
  • [x] Add descriptors to KeypointsAndDescriptors

travisdriver avatar Jun 14 '23 22:06 travisdriver