Skip to content

Fix vocabulary tree builder descriptor dimensions - #4923

Merged
ahojnnes merged 7 commits into
colmap:mainfrom
Nikhila-Dhevi-R:codex/issue-4918-vocab-tree-descriptor-dimension
Oct 30, 2026
Merged

ahojnnes merged 7 commits into
colmap:mainfrom
Nikhila-Dhevi-R:codex/issue-4918-vocab-tree-descriptor-dimension

Conversation

@Nikhila-Dhevi-R

Copy link
Copy Markdown
Contributor

Fixes #4918.

vocab_tree_builder always created the default 128-dimensional visual index, even when the database contained descriptors with another supported dimension. This made vocabulary-tree training abort for LoMa-B descriptors (256 dimensions).

This change:

  • derives the visual-index descriptor dimension from the descriptors loaded from the database;
  • preserves the existing 32/16, 128/64, and 256/64 visual-index combinations; and
  • adds factory coverage for all supported descriptor dimensions while extending the retrieval build matrix to 256-dimensional descriptors.

Testing:

  • git diff --check
  • Native local CMake build was not available in this Windows checkout because the required Eigen and system dependency stack is not installed; upstream CI should provide the cross-platform build and test validation.

@ahojnnes ahojnnes left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, LGTM.

@ahojnnes ahojnnes added the full-ci Run Windows and remaining pycolmap CI label Oct 30, 2026
@ahojnnes
ahojnnes enabled auto-merge (squash) October 30, 2026 11:00
@ahojnnes
ahojnnes merged commit ce2b5ab into colmap:main Oct 30, 2026
21 checks passed
fringehush-gif added a commit to fringehush-gif/colmap that referenced this pull request Nov 3, 2026
## Summary
- Integrate all 12 upstream commits after the shared base 9371f7b, including LoMa BF16 loading, matching-worker error propagation, keypoint shape scaling, and project-file CLI overrides.
- Preserve the fork's CUDA blocking-sync helper alongside upstream's BF16 device check and register the shared CUDA test once.

## Validation
- Resolved all merge conflicts; no conflict markers or unmerged paths remain; git diff --check passes.
- Incremental Linux CUDA build linked six focused test executables. The prepared custom Ceres closure required its existing Abseil/CUDA library directories on the linker's search path.
- CTest passed controllers/base_option_manager_test, feature_matching_utils_test, incremental_pipeline_test, option_manager_test, feature/loma_test, and util/cuda_test (six programs, one run each).
- No full suite, Python binding, end-to-end, or performance claim.

## Upstream commits

- `ea470c0c4f4a40a3bdfa33d01eb38375c5df64de` Run Windows and remaining pycolmap CI only with the full-ci label (colmap#4904)
- `c0339e95482c404b51f38ff9b86866de495984f0` Fix MSVC warnings C4805, C4996, and C4756 (colmap#4910)
- `f00d6063bb0b120cf10ee190f7f06f4a34edf432` Expose Ceres solver thresholds in incremental mapping (colmap#4892)
- `978a4467f36bbfc9ae18780f2dca253000b0d008` Keep division-camera derivatives finite on the optical axis (colmap#4888)
- `98f31541f483788ab550f5c4a4e0804e8674b9e0` Fix leak and check covariance in CovarianceWeightedCostFunction (colmap#4911)
- `a467519441171054c7aaa17dffe86fe06431f05c` Avoid stack overflow when compressing union-find chains (colmap#4906)
- `404b83db2c2cc04892e14a578ddfa73e0ac9bfb1` Fix LoMa bf16 fallback on CUDA by loading it like any other model (colmap#4924)
- `d02e6701dede22eaeee89f73784a8c79f6f289ac` Add max_num_features option to automatic_reconstructor and benchmark (colmap#4907)
- `82c3b5db78d96a7e93ca7b8b2af0634e28aa33f4` Propagate errors of feature matching workers instead of terminating (colmap#4921)
- `4afe8d1156a71a2ff33974895f221c8eb3740cb1` Rescale keypoint shapes in image coordinates (colmap#4926)
- `ce2b5ab9df3801c2b75edbba338c04ad3c8cc6af` Fix vocabulary tree builder descriptor dimensions (colmap#4923)
- `f956ce629c21a88d75a7f7b3107298d1faf3dcf3` Fix command-line overrides for project files (colmap#4902)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

full-ci Run Windows and remaining pycolmap CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

vocab_tree_builder always builds a 128-d index, so trees can't be trained on LoMa / ALIKED descriptors

2 participants