MVG Chapter 18: N-View Computational Methods, Check that for deeper analysis.
If Kalman Filters are the "quick and dirty" recursive solution, Bundle Adjustment (BA) is the "slow and perfect" batch solution.
It is the de facto standard for offline SLAM and 3D reconstruction.
Definition: Simultaneous refinement of the 3D coordinates of scene geometry (
1. The Visual Objective Function
Unlike ICP-SLAM (which minimizes 3D-3D distance), Visual BA minimizes 2D-3D Reprojection Error.
: Observed pixel coordinates of point in frame . : The Camera Projection function (World Camera Image). : Camera Pose ( ). : 3D Landmark position.
2. The Projection Model
This is where it differs from ICP. We have to project 3D points to the image plane.
- Transform:
- Normalize:
(Perspective Division) - Pixelate:
3. The Jacobian (The Chain Rule)
The residual is
Using the Chain Rule:
Part A: The Projection Derivative (
How pixel
Note the
Part B: The Manifold Derivative (
Same as ICP-SLAM.
Multiply A and B to get the
4. The Schur Complement (The Computational Trick)
We have a system
The Structure:
: Camera-Camera block (Sparse). : Point-Point block (Diagonal! Because points don't see each other). : Camera-Point interaction.
Since
- Solve for Cameras (Reduced Camera System):
The matrix
- Back-Substitute for Points:
This reduces complexity from cubic in points to linear in points. This is why we can run BA on thousands of landmarks.