Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions gtsfm/cluster_optimizer/cluster_mvo.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,11 @@ def __init__(
correspondence_generator: CorrespondenceGeneratorBase,
two_view_estimator: TwoViewEstimator,
multiview_optimizer: MultiViewOptimizer,
drop_outlier_after_camera_merging: bool | None = None,
drop_child_if_merging_fail: bool | None = None,
drop_camera_with_no_track: bool | None = None,
plot_reprojection_histograms: bool | None = None,
run_bundle_adjustment_on_parent: bool | None = None,
dense_multiview_optimizer: Optional[MVSBase] = None,
gaussian_splatting_optimizer: Optional[Any] = None,
save_gtsfm_data: bool = True,
Expand All @@ -68,6 +73,15 @@ def __init__(
) -> None:
super().__init__(output_worker=output_worker)
self._pose_angular_error_thresh = pose_angular_error_thresh
# These legacy cluster-merging options are still present in several Hydra configs,
# but the leaf-only MVO optimizer does not consume them directly.
_ = (
drop_outlier_after_camera_merging,
drop_child_if_merging_fail,
drop_camera_with_no_track,
plot_reprojection_histograms,
run_bundle_adjustment_on_parent,
)
Comment on lines +76 to +84

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

why is this code needed?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

the fix is to update the configs.

# assign MVO-only correspondence generator on this instance
self.correspondence_generator = correspondence_generator
self.two_view_estimator = two_view_estimator
Expand Down
16 changes: 8 additions & 8 deletions gtsfm/configs/unified_megaloc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -113,11 +113,11 @@ cluster_optimizer:
calibration_prior_focal_sigma: 20.0
measurement_noise_sigma: 1.0

# comment out to not run
dense_multiview_optimizer:
_target_: gtsfm.densify.mvs_patchmatchnet.MVSPatchmatchNet

gaussian_splatting_optimizer:
_target_: gtsfm.splat.gaussian_splatting.GaussianSplatting
cfg:
_target_: gtsfm.splat.gaussian_splatting.Config
# # comment out to not run
# dense_multiview_optimizer:
# _target_: gtsfm.densify.mvs_patchmatchnet.MVSPatchmatchNet

# gaussian_splatting_optimizer:
# _target_: gtsfm.splat.gaussian_splatting.GaussianSplatting
# cfg:
# _target_: gtsfm.splat.gaussian_splatting.Config
9 changes: 8 additions & 1 deletion gtsfm/runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,13 @@ def _set_mvo_overwrites(self, scene_optimizer: "SceneOptimizer", main_cfg) -> No
if not self.parsed_args.run_mvs:
multiview_optimizer.dense_multiview_optimizer = None
logger.info("🔄 Disabled Multiview dense MVS optimizer via CLI flag --run_mvs=False")
OmegaConf.update(main_cfg, "cluster_optimizer.dense_multiview_optimizer", None, merge=False)
OmegaConf.update(
main_cfg,
"cluster_optimizer.dense_multiview_optimizer",
None,
merge=False,
force_add=True,
)

# Override gaussian splatting
if self.parsed_args.run_gs:
Expand All @@ -305,6 +311,7 @@ def _set_mvo_overwrites(self, scene_optimizer: "SceneOptimizer", main_cfg) -> No
"cluster_optimizer.gaussian_splatting_optimizer",
gs_cfg.gaussian_splatting_optimizer,
merge=False,
force_add=True,
)
else:
multiview_optimizer.gaussian_splatting_optimizer = None
Expand Down
6 changes: 3 additions & 3 deletions run
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ else
fi

if [ "$#" -eq 0 ]; then
exec "${PYTHON_CMD[@]}" gtsfm/runner.py --help
exec "${PYTHON_CMD[@]}" -m gtsfm.runner --help
else
exec "${PYTHON_CMD[@]}" gtsfm/runner.py "$@"
fi
exec "${PYTHON_CMD[@]}" -m gtsfm.runner "$@"
fi
Loading