ubc-vision / image-matching-benchmark

Public release of the Image Matching Benchmark: https://image-matching-challenge.github.io
https://image-matching-challenge.github.io
Apache License 2.0
527 stars 93 forks source link

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

Closed ayushbaid closed 4 years ago

ayushbaid commented 4 years ago

In the function evaluate_R_t (https://github.com/ubc-vision/image-matching-benchmark/blob/3e9709e0f21351cebd2e20d7700222554d59eeba/utils/eval_helper.py#L99), 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 4 years ago

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.