No jobs
Advanced 10 min 3 of 3

Bundle adjustment

The reprojection error is the residual, and everything else is bookkeeping about which Jacobian block goes where.

What this repairs

Regarding bundle adjustment as a mysterious refinement step rather than as the same least-squares problem with an obvious residual.

Bundle adjustment minimises, over all camera poses and all 3D points,

ijV(i)ρ ⁣(π ⁣(K,CjTW,Xi)uijΣij2),\sum_{i}\sum_{j \in \mathcal{V}(i)} \rho\!\left( \left\lVert \pi\!\left(K,\, {}^{C_j}T_{W},\, \mathbf{X}_i \right) - \mathbf{u}_{ij} \right\rVert^2_{\Sigma_{ij}} \right),

where π\pi is the projection from the first topic, ρ\rho is the robust kernel from the estimation topic, and V(i)\mathcal{V}(i) is the set of cameras that saw point ii . There is nothing else in it. The name refers to the bundles of rays from each point, adjusted until they agree.

Minimising reprojection error — in pixels, where the noise actually is — rather than 3D distance is the correct choice and the one that makes it work at all. It weights each observation by the geometry of its own ray, which is exactly what the midpoint triangulation of the two-view topic failed to do.

Check yourself

Why does fixing one camera and one baseline length remove all gauge freedom in a monocular reconstruction, while fixing one camera alone does not?

Show answer

Fixing one camera pins the six rigid degrees of freedom — the reconstruction can no longer be translated or rotated. It cannot, however, prevent everything from being scaled about that camera, which leaves the images unchanged. Fixing one additional distance — a baseline, or one point's depth — pins the seventh. Together they reduce the seven-dimensional family of equivalent solutions to a single point, and the information matrix becomes full rank.

Euler View - ML Experiment Monitor