Bundle Adjustment
光束法平差BAAdvancedJointly fine-tunes all camera poses and 3D point coordinates to minimize reprojection error.
Bundle adjustment traces back to photogrammetry in the 1950s; “bundle” refers to the bundle of light rays traveling from each 3D point to a camera’s optical center. Given feature points matched across multiple images, it treats every camera’s pose — sometimes intrinsics and distortion too — and every 3D point’s coordinates as unknowns, and minimizes reprojection error: the sum of squared distances between where each 3D point projects under the current parameters and where it was actually observed in the image. When image noise is zero-mean Gaussian, this is equivalent to maximum likelihood estimation. It is typically solved with nonlinear least-squares methods like Levenberg–Marquardt, exploiting the problem’s sparse structure for speed. Bundle adjustment is the core step of structure from motion (SfM) and the back end of visual SLAM — COLMAP reconstruction and ORB-SLAM’s local and global optimization are both running BA — with common solver libraries including Ceres, g2o, and GTSAM.
ExampleWalking around a table taking dozens of photos with a phone: SfM first roughly estimates each photo’s camera pose and triangulates a sparse point cloud, then runs one pass of BA to jointly refine everything, dropping the reprojection error and making both the point cloud and camera trajectory more accurate.
- Also called
- BA
- Related
- Structure from Motion · Reprojection Error · Simultaneous Localization and Mapping · SLAM Front-end / Back-end · Factor Graph Optimization · Ceres Solver
- Sources
- Bundle adjustment - Wikipedia