Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

Conversation

@dlichy
Copy link
Contributor

@dlichy dlichy commented Dec 14, 2025

Summary

This PR adds a small Python wrapper to match SIFT descriptors directly (without a database).

Related to #3667.

What’s included

  • New pycolmap.SiftMatcher wrapper around COLMAP FeatureMatcher
  • GPU matching and CPU brute-force matching supported
  • Added docstring explained how to cache descriptors on GPU with image_id and warning that reusing an image_id for different descriptors can produce incorrect results.

Limitation

  • CPU FAISS matching (cpu_brute_force_matcher=False) is not supported. See follow-up question.

Example

sift = pycolmap.Sift()
k1, d1 = sift.extract(img1)
k2, d2 = sift.extract(img2)

matcher = pycolmap.SiftMatcher(device=pycolmap.Device.cuda)  # or Device.cpu
matches = matcher.match(d1, d2, image_id1=1, image_id2=2)

Follow-ups

  • If this looks good, I can go ahead and implement the MatchGuided function as part of this class.
  • For CPU FAISS, do you have any ideas or comments about integrating index caching?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant