ubc-vision/image-matching-benchmark

[Question] Considering the sign of the unit translation vector as ambiguous

Closed this issue · 1 comments

In the function evaluate_R_t (

def evaluate_R_t(R_gt, t_gt, R, t, q_gt=None):
), the computation of angular error will return an error of zero between two unit vectors of the opposite sign.

Is there a reason behind considering the sign to be ambiguous too? The translations obtained from decomposition of the essential matrix are scale agnostic, but the scale has to be a positive number. Also, the directions of translations are important for downstream tasks like translation averaging (e.g. 1DSFM: https://research.cs.cornell.edu/1dsfm/)

Thank you for your time.

kmyi commented

It's because the stereo problem is defined only up to scale. In other words, scalar multiples of your solutions are all valid. In order to avoid this, you would need more than two images being used for the metric, such as the SfM case. However, that brings complications when forming the baseline, thus we opt for the easy one.