-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Description
For the baseline methods, the results are stored using a dictionary with the key (method, iters). However, the if condition that updates these results is based solely on the iteration count (iters). As a result, for each batch, the results are reassigned as an empty list, causing only the results from the last batch to be retained. This is the primary reason why all the baseline methods perform poorly.
superansac/tests/essential_matrix/tester_baseline.py
Lines 377 to 382 in e2c5214
| for iters in [10, 25, 50, 100, 250, 500, 750, 1000, 1500, 2500, 5000, 7500, 10000]: | |
| key = (method, iters) | |
| if iters not in pose_errors: | |
| pose_errors[key] = [] | |
| runtimes[key] = [] | |
| inlier_numbers[key] = [] |
In superansac, it's correct.
superansac/tests/essential_matrix/tester_superansac.py
Lines 224 to 229 in e2c5214
| for iters in [10, 25, 50, 100, 250, 500, 750, 1000, 1500, 2500, 5000, 7500, 10000]: | |
| key = iters | |
| if iters not in pose_errors: | |
| pose_errors[key] = [] | |
| runtimes[key] = [] | |
| inlier_numbers[key] = [] |
In my experiment, I avoided this issue because my implementation uses only the iteration count (iters) as the key.

You should address this bug, otherwise, others running the evaluation may obtain results similar to those in your paper, where the code is incorrect. Consequently, all the reported results in the paper need to be corrected.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels