Skip to content

Conversation

@MotivaCG
Copy link
Contributor

WHAT IS DONE?

The intention is to make point_triangulator more useful when starting from approximate poses. It adds three optional flags:

--refine_intrinsics (default 0): refine focal length and extra params (principal point stays fixed).
--refine_extrinsics (default 0): allow pose refinement; otherwise poses are kept fixed.
--refine_loop (default 0): after initial triangulation, run a short loop of global BA → CompleteAndMergeTracks → FilterPoints with early stopping.

WHY IS THIS USEFUL?

Running a standalone bundle adjustment after triangulation does not add/merge tracks using the improved geometry. The refine loop interleaves bundle adjustment with track completion and filtering, which typically yields a cleaner and more complete sparse model without chaining multiple commands.

This could fit the required features in issues like
#3502
#2819
#3433

Meanwhile maintenance is easier than doing a new mode for Colmap CLI

HOW IT WORKS?

Initial triangulation respects refine_extrinsics (fix_existing_frames = !refine_extrinsics).
In the loop, poses are optimized only if --refine_extrinsics=1; otherwise a bundle adjustment is run with all poses kept constant.
Defaults preserve current behavior (no loop, poses fixed), so it doesn't break compatibility at all!

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