cvg / pixel-perfect-sfm

Pixel-Perfect Structure-from-Motion with Featuremetric Refinement (ICCV 2021, Best Student Paper Award)
Apache License 2.0
1.29k stars 132 forks source link

Error for evaluating camera pose estimation #80

Closed guohengkai closed 1 year ago

guohengkai commented 1 year ago

Hi,

When running the evaluation for camera pose estimation without refinement, I met the following error:

Traceback (most recent call last): File "/mnt/miniconda/envs/deepfeat/lib/python3.6/runpy.py", line 193, in _run_module_as_main "main", mod_spec) File "/mnt/miniconda/envs/deepfeat/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/mnt/pixel-perfect-sfm/pixsfm/eval/eth3d/localization.py", line 306, in args.output_path, args.thresholds, args.overwrite) File "/mnt/pixel-perfect-sfm/pixsfm/eval/eth3d/localization.py", line 261, in main results = run_scene(method, paths, sfm, cfg.localization) File "/mnt/pixel-perfect-sfm/pixsfm/eval/eth3d/localization.py", line 212, in run_scene name, all_pairs, paths.matches, rec, holdout_set, name2id, File "/mnt/pixel-perfect-sfm/pixsfm/eval/eth3d/localization.py", line 59, in get_query_matches if len(image.points2D) == 0: RecursionError: maximum recursion depth exceeded while calling a Python object

The command is: python -m pixsfm.eval.eth3d.localization \ --methods sift \ --tag raw \ --config norefine

Do you have any ideas to solve it?

guohengkai commented 1 year ago

After set the limit to a large number using sys.setrecursionlimit(), it will cause segmentation fault.

Phil26AT commented 1 year ago

This is a bug from pycolmap. The respective fix can be found in the following PR: https://github.com/colmap/pycolmap/pull/95. We will try to merge this ASAP.