No jobs
Advanced 10 min 3 of 3

Recovering pose, and the scale you cannot recover

Eight points give you the essential matrix; decomposing it gives four poses and no metres.

What this repairs

Expecting a two-view reconstruction to be metric, and being surprised when the trajectory is "right but the wrong size".

xBExA=0\mathbf{x}_B^\top E\, \mathbf{x}_A = 0 is linear in the entries of EE . Each correspondence gives one equation, so eight give a linear system whose null space is EE — the eight-point algorithm. It works, and it works badly on raw pixel coordinates: the entries of the design matrix span several orders of magnitude and the system is atrociously conditioned. Hartley's normalisation — translate the points to zero mean and scale them to average distance 2\sqrt{2} from the origin — is not a refinement, it is the difference between a usable answer and noise.

EE has only five degrees of freedom (three rotation, three translation, minus one for scale), so the linear solution must be projected onto the essential manifold: take the SVD and replace the singular values with (1,1,0)(1, 1, 0) .

What remains ambiguous cannot be settled at all. EE is defined up to scale, so t\mathbf{t} is recovered as a direction. A scene twice as large, viewed from twice as far apart, produces identical images. From two views of unknown points you get the shape of the scene and the shape of the trajectory, both in units of "one baseline".

Metric scale must come from outside: a known object size, a stereo rig with a measured baseline, an IMU with an accelerometer, a wheel odometer, or a depth sensor. Monocular visual odometry without such an input does not merely have an unknown scale — the scale drifts, because each new pair is scaled relative to the last and the errors compound.

Check yourself

Your monocular VO trajectory has the right shape but is 40% too small, and the error grows over time. Which two problems are these?

Show answer

The constant factor is the unrecoverable global scale — there is nothing to fix, only something to supply, from a sensor or a known dimension. The growth over time is scale drift: each new segment is triangulated relative to the previous map, so scale error accumulates multiplicatively. Loop closure with a similarity transform (7-DoF, including scale) corrects it where loops exist; without loops, only an absolute-scale sensor prevents it.

Euler View - ML Experiment Monitor