import logging from siclib.models.optimization.lm_optimizer import LMOptimizer logger = logging.getLogger(__name__) # flake8: noqa # mypy: ignore-errors class InferenceOptimizer(LMOptimizer): default_conf = { # Camera model parameters "camera_model": "pinhole", # {"pinhole", "simple_radial", "simple_spherical"} "shared_intrinsics": False, # share focal length across all images in batch "estimate_gravity": True, "estimate_focal": True, "estimate_k1": True, # will be ignored if camera_model is pinhole # LM optimizer parameters "num_steps": 30, "lambda_": 0.1, "fix_lambda": False, "early_stop": True, "atol": 1e-8, "rtol": 1e-8, "use_spherical_manifold": True, # use spherical manifold for gravity optimization "use_log_focal": True, # use log focal length for optimization # Loss function parameters "loss_fn": "huber_loss", # {"squared_loss", "huber_loss"} "up_loss_fn_scale": 1e-2, "lat_loss_fn_scale": 1e-2, "init_conf": {"name": "trivial"}, # pass config of other models to use as initializer # Misc "loss_weight": 1, "verbose": False, }