It seems that we had to
- include distortion for GeoCalib
- not skip rectification
after doing these changes, i get another error (so it goes a bit further):
================================================================
Step 1: Multi-view calibration started
================================================================
Executing: docker exec multiview_2025-10-28_10-58-28 pyarmor_python "/auto-magic-calib/core/camera_estimation/multi_view_calib.py" -c /auto-magic-calib/configs/config_AutoMagicCalib/mv_amc_config.yaml -i /auto-magic-calib/input -o /auto-magic-calib/output
INFO - ----------------------------------------------------------------------------------------------------
INFO - Step 1: read single view calib output
INFO - ----------------------------------------------------------------------------------------------------
DEBUG - Track ids: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26}
DEBUG - Track ids: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}
INFO - ----------------------------------------------------------------------------------------------------
INFO - Step 2: tracklet matching
INFO - ----------------------------------------------------------------------------------------------------
INFO - Processing camera pair: [0, 1]
DEBUG - Filtered tracklet1: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
DEBUG - Filtered tracklet2: [0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17]
<frozen camera_estimation.math_utils>:57: RuntimeWarning: invalid value encountered in scalar divide
DEBUG - Initial matching. sorted_score_dict: [((9, 4), 6)]
DEBUG - Hungarian algorithm matched pairs: [(1, 0), (5, 1), (9, 4), (12, 5), (14, 6), (18, 9), (19, 10), (21, 14), (22, 15), (23, 17)]
DEBUG - sorted_score_dict_hungarian: [((22, 15), 0.36332383467300217), ((21, 14), 0.4116160513941688), ((19, 10), 0.4643004537374812)]
DEBUG - Sorted tracklet matches: [[((22, 15), 0.36332383467300217), ((21, 14), 0.4116160513941688), ((19, 10), 0.4643004537374812)]]
INFO - tracklet_matches: [((0, 22), (1, 15)), ((0, 21), (1, 14)), ((0, 19), (1, 10))]
DEBUG - Tracklet to global mapping: {(0, 22): 0, (1, 15): 0, (0, 21): 1, (1, 14): 1, (0, 19): 2, (1, 10): 2}
INFO - Saved tracklet to global ID mapping to /auto-magic-calib/output/tracklet_to_global.json
INFO - ----------------------------------------------------------------------------------------------------
INFO - Step 3: multi-view calibration
INFO - ----------------------------------------------------------------------------------------------------
INFO - ====================================================================================================
INFO - Processing camera pair: [0, 1]
DEBUG - Track ids: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26}
DEBUG - Track ids: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}
DEBUG - sorted_tracklet_matches: [[[22, 15], 0.36332383467300217], [[21, 14], 0.4116160513941688], [[19, 10], 0.4643004537374812]]
DEBUG - matches: [[22, 15], [21, 14], [19, 10]]
INFO - --- Method 3: estimate R, t using 2D matching points (robust method) ---
INFO - calibrate_2_cams_robust method
DEBUG - best_in_out_ratio: 0.4144927536231884, best_n_inliers: 143, best_n_outliers: 202
DEBUG - best_reproj_err1: 21.935595372066416, best_reproj_err2: 5.732716638038623
ERROR - Failed to estimate R and t after 100 iterations
Auto-generated camera_pairs from cam_dir: [[0, 1]]
Camera directories: ['cam_00', 'cam_01'] -> Camera numbers: [0, 1]
Traceback (most recent call last):
File "/usr/local/bin/pyarmor_python", line 16, in <module>
runpy.run_path(script_to_run, run_name="__main__")
File "/usr/lib/python3.10/runpy.py", line 289, in run_path
return _run_module_code(code, init_globals, run_name,
File "/usr/lib/python3.10/runpy.py", line 96, in _run_module_code
_run_code(code, mod_globals, init_globals,
File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "</auto-magic-calib/core/camera_estimation/multi_view_calib.py>", line 1, in <module>
File "<frozen camera_estimation.multi_view_calib>", line -1, in <module>
File "<frozen camera_estimation.multi_view_calib>", line 2477, in main
File "<frozen camera_estimation.multi_view_calib>", line 2127, in two_view_calib
TypeError: tuple indices must be integers or slices, not str
Error: Multi-view calibration failed