# Bundle Adjustment (BA)

Bundle adjustment in SLAM is an optimization technique. It refines estimates of camera poses and 3D points in the map to minimize the re-projection error.

Bundle adjustment is a least squares solution for orienting images and estimating 3D point locations.

**SLAM**: Creates a map of an unknown environment while also tracking the agent’s position within it.**Bundle Adjustment**: Optimizes the estimated camera poses and 3D points simultaneously.

Resources

- Bundle Adjustment - 5 Minutes with Cyrill
- The Basics about Bundle Adjustment (Cyrill Stachniss)
- slides here

- The Numerics of Bundle Adjustment (Cyrill Stachniss)
- slides here

Implementations

Bundle Adjustment Statistically optimal solution.

Is BA the bottleneck of the SLAM pipeline?

Bottleneck is still the data association according to Cyrill.

Bundle “block” adjustment: multiple images are corrected “en bloc”

Key idea of BA

- Start with an initial guess
- Project the estimated 3D points into the estimated camera images
- Compare locations of the projected 3D points with measured (2D) ones
- Adjust to minimize error in the images

Why is the correction done for the 2D point, and not the 3D point?

??

Unknowns:

- 3D locations of new points
- 1D scale factor
- 6D exterior orientation
- 5D projection parameters (interior orientation)
- Non-linear distortion parameter

In the end, you don’t really need the scale factor.

Are the control points noisy or noise-free?

### Initial Guess

Having a good initial guess is key. How are we supposed to obtain the initial guess?

- Compute Relative Orientation from the first image pair
- Compute orientation for subsequent images through P3P/RRS

Critical issues

- Gross error handling is essential
- Requires enough new points in each image overlap
- No singular/critical configurations

### Gross Errors / Outliers

Reasons for gross errors

- Wrong correspondences
- Wrong point measurements

Observations per point

- At least 4 views to identify the observation with a gross error
- Observed points from 5 to 6 different views typically yield good estimates

Eliminating Gross Errors

- Decompose the problem into several small blocks of 3-6 images first
- Check for gross errors in the small blocks using statistical tests
- Only consider features that can be tracked consistently in all 3-6 images
- Relative orientation (5-Point algo.) combined with RANSAC
- Eliminate gross errors, then run full BA