From c222fc37b514d9810a809dd8ab42d4fa9e287aed Mon Sep 17 00:00:00 2001 From: RobinLindh Date: Mon, 9 Feb 2026 17:26:37 +0100 Subject: [PATCH] chore: clean up log spam --- utils/dataset_utils.py | 3 ++- utils/geometry_utils.py | 22 ++++++++++++++-------- utils/refinement_util.py | 2 +- utils/triangulation.py | 6 ++++-- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/utils/dataset_utils.py b/utils/dataset_utils.py index b8194899..99306ed4 100644 --- a/utils/dataset_utils.py +++ b/utils/dataset_utils.py @@ -682,7 +682,8 @@ def _get_refined_results( stitch_data.chunks_image_ids, stitch_data.detections_per_qr, stitch_data.image_ids_per_qr, - with_scale=True + with_scale=True, + logger=logger ) # World space QR detections using globally refined camera poses diff --git a/utils/geometry_utils.py b/utils/geometry_utils.py index 17ad5bdc..2f09b965 100644 --- a/utils/geometry_utils.py +++ b/utils/geometry_utils.py @@ -1,4 +1,5 @@ import itertools +import logging from typing import Dict, List import numpy as np import pycolmap @@ -47,17 +48,19 @@ def align_reconstruction_chunks( chunks_image_ids: List[List[int]], detections_per_qr: Dict[str, List[pycolmap.Rigid3d]], image_ids_per_qr: Dict[str, List[int]], - with_scale: bool = True + with_scale: bool = True, + logger: logging.Logger = None ): + if logger is None: + logger = logging.getLogger() - print("Going to optimize chunk alignment...") + logger.info("Going to optimize chunk alignment...") t_local_chunk_quat = [pycolmap.Rigid3d().rotation.quat for _ in range(len(chunks_image_ids))] t_local_chunk_translation = [pycolmap.Rigid3d().translation for _ in range(len(chunks_image_ids))] image_id_to_chunk_id = {image_id : chunk_id for chunk_id, image_ids in enumerate(chunks_image_ids) for image_id in image_ids} problem = pyceres.Problem() - #loss = pyceres.HuberLoss(0.1) loss = None @@ -118,7 +121,7 @@ def align_reconstruction_chunks( for chunk_idx in range(len(chunks_image_ids)): if len(qr_ids_per_chunk[chunk_idx]) < 2: chunks_to_fix_scale = [chunk_idx] - print(f'Chunk {chunk_idx} has less than 2 correspondences, fixing scale') # for chunks {chunks_to_fix_scale}.') + logger.info(f"Chunk {chunk_idx} has less than 2 correspondences, fixing scale") for chunk_fix_idx in chunks_to_fix_scale: quat = t_local_chunk_quat[chunk_fix_idx] if problem.has_parameter_block(quat) and not problem.is_parameter_block_constant(quat): @@ -148,15 +151,18 @@ def align_reconstruction_chunks( summary = pyceres.SolverSummary() pyceres.solve(solver_options, problem, summary) - print(summary.FullReport()) + if logger.isEnabledFor(logging.DEBUG): + logger.debug(f"{summary.FullReport()}") + else: + logger.info(f"{summary.BriefReport()}") t_local_chunks = [pycolmap.Sim3d(pycolmap.Rotation3d(quat).norm()**2, pycolmap.Rotation3d(quat), translation) for quat, translation in zip(t_local_chunk_quat, t_local_chunk_translation)] for t_local_chunk in t_local_chunks: t_local_chunk.rotation.normalize() - print('Refined Sim3 transforms:') + logger.debug('Refined Sim3 transforms:') for chunk_idx, t_local_chunk in enumerate(t_local_chunks): - print(f'Chunk {chunk_idx} ({len(chunks_image_ids[chunk_idx]):5,d} images): {t_local_chunk}') + logger.debug(f'Chunk {chunk_idx} ({len(chunks_image_ids[chunk_idx]):5,d} images): {t_local_chunk}') for image_id in reconstruction.images.keys(): chunk_id = image_id_to_chunk_id[image_id] @@ -177,6 +183,6 @@ def align_reconstruction_chunks( chunk_id = image_id_to_chunk_id[image_id] detections_per_qr[qr_id][det_idx].translation *= t_local_chunks[chunk_id].scale - print("Chunk alignment optimization DONE\n") + logger.info("Chunk alignment optimization DONE") return \ No newline at end of file diff --git a/utils/refinement_util.py b/utils/refinement_util.py index 0ac08127..4c2c29e7 100644 --- a/utils/refinement_util.py +++ b/utils/refinement_util.py @@ -174,7 +174,7 @@ def prepare_data_for_loop_closure( nearest_image = image_per_timestamp[nearest_image_timestamp] cam_space_qr_pose = nearest_image.cam_from_world() * detection["pose"] #T_RC = T_WC*T_RW - logger.info(f"QR code {id} @ {timestamp} ns, nearest image: {nearest_image}, cam space pos: {cam_space_qr_pose}") + logger.debug(f"QR code {id} @ {timestamp} ns, nearest image: {nearest_image}, cam space pos: {cam_space_qr_pose}") detections_per_qr[id].append(cam_space_qr_pose) image_ids_per_qr[id].append(nearest_image.image_id) diff --git a/utils/triangulation.py b/utils/triangulation.py index 0075a62d..a1d85638 100644 --- a/utils/triangulation.py +++ b/utils/triangulation.py @@ -210,8 +210,10 @@ def run_triangulation( logger.info(f"{category}: {loss}") logger.info("------------") - # logger.info("\n".join(summary.FullReport().split(","))) - logger.info(f"{summary.FullReport()}") + if logger.isEnabledFor(logging.DEBUG): + logger.debug(f"{summary.FullReport()}") + else: + logger.info(f"{summary.BriefReport()}") num_changed_observations = 0 num_changed_observations += mapper.complete_and_merge_tracks(tri_options)