Skip to content

Conversation

@flm8620
Copy link
Contributor

@flm8620 flm8620 commented Aug 11, 2024

This bug dates back to commit
Improve code of feature matchers

According to this doc in colmap/src/colmap/controllers/feature_matching.h:

// Sequentially match images within neighborhood:
//
// +-------------------------------+-----------------------> images[i]
//                      ^          |           ^
//                      |   Current image[i]   |
//                      |          |           |
//                      +----------+-----------+
//                                 |
//                        Match image_i against
//
//                    image_[i - o, i + o]        with o = [1 .. overlap]
//                    image_[i - 2^o, i + 2^o]    (for quadratic overlap)
//
// Sequential order is determined based on the image names in ascending order.
//
// Invoke loop detection if `(i mod loop_detection_period) == 0`, retrieve
// most similar `loop_detection_num_images` images from vocabulary tree,
// and perform matching and verification.
std::unique_ptr<Thread> CreateSequentialFeatureMatcher(
    const SequentialMatchingOptions& options,
    const SiftMatchingOptions& matching_options,
    const TwoViewGeometryOptions& geometry_options,
    const std::string& database_path);

As described in the above doc, also intruitively, If we give overlap 3 for sequential matcher, without the quadratic option, the image id 100 should be matched to
97, 98, 99, and 101, 102, 103, which incluses 97, 103.

@ahojnnes ahojnnes enabled auto-merge (squash) August 14, 2024 11:46
@ahojnnes
Copy link
Contributor

Thanks, the fix looks correct.

@ahojnnes
Copy link
Contributor

I'll follow up with some extra fix and a few basic tests.

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.

2 participants