  We propose a new formulation for the bundle adjustment problem which relies
on nullspace marginalization of landmark variables by QR decomposition. Our
approach, which we call square root bundle adjustment, is algebraically
equivalent to the commonly used Schur complement trick, improves the numeric
stability of computations, and allows for solving large-scale bundle adjustment
problems with single-precision floating-point numbers. We show in real-world
experiments with the BAL datasets that even in single precision the proposed
solver achieves on average equally accurate solutions compared to Schur
complement solvers using double precision. It runs significantly faster, but
can require larger amounts of memory on dense problems. The proposed
formulation relies on simple linear algebra operations and opens the way for
efficient implementations of bundle adjustment on hardware platforms optimized
for single-precision linear algebra processing.
