Bundle adjustment is the optimization that refines camera poses and 3D points together so they best explain every image observation — the accuracy engine inside visual SLAM, structure-from-motion, and 3D reconstruction.
Bundle adjustment fine-tunes where the cameras were and where the 3D points are, all at once, so that every point lands as close as possible to where it actually appeared in each photo. It's what makes 3D reconstructions crisp.
Reconstruct 3D structure from a set of photos and the first pass is always a little wrong — cameras slightly mislocated, points slightly off. Bundle adjustment is the optimization that polishes it all into agreement.
The idea
Bundle adjustment jointly refines two things at once: where every camera was, and where every 3D point is. The quantity it minimizes is reprojection error — for each 3D point, project it into each camera using that camera's estimated pose and calibration, and measure the pixel gap between where it lands and where it was actually observed.
Refine cameras and points to fit every image
The name comes from the 'bundles' of light rays from each point to each camera — bundle adjustment tweaks everything until the rays line up.
Summed over thousands of points and images, this is a huge nonlinear least-squares problem, solved with Levenberg-Marquardt in solvers like Ceres and g2o — made tractable by the problem's sparse structure (each point is seen by only some cameras).
Where it lives
Structure-from-motion and photogrammetry — turning photo collections into 3D models; bundle adjustment is the final accuracy step.
Visual SLAM — systems like ORB-SLAM run local bundle adjustment over a sliding window of recent keyframes in real time, and global bundle adjustment after a loop closure.
They're cousins. Pose-graph optimization optimizes only poses using relative-pose constraints — lighter, great for the SLAM back-end. Bundle adjustment optimizes poses and the 3D points using raw image measurements — heavier but more accurate, the gold standard when you need precise structure. Many systems use a fast pose graph for large-scale consistency and bundle adjustment locally for precision.
Why it matters
Bundle adjustment is the accuracy backbone of camera-based 3D perception — the reason a phone can rebuild a room or a drone can map a field to centimeters. It's decades old and still the final word on visual reconstruction precision.