1. Introduction

In this tutorial, we’ll talk about bundle adjustments and their role in photogrammetry and computer vision.

We’ll provide helpful tips and share best practices.

2. The Role in Computer Vision and Photogrammetry

Bundle adjustment (BA) enhances the accuracy and reliability of 3D scene reconstructions from multiple images and camera views:

Bundle adjustment representation

We use it to correct errors from the initial 3D reconstruction process, including inaccuracies in camera pose, scene structure, or feature tracking.

To do so, this technique optimizes the parameters of 3D reconstructions and refines the camera calibration parameters.

2.1. Applications

3. Workflow and Key Components of Bundle Adjustment

The workflow of Bundle Adjustment (BA) consists of a series of steps designed to refine the parameters of a 3D reconstruction model from several 2D images:

Workflow of Bundle Adjustment

3.1. Data Collection and Initial Reconstruction

4. Tools and Software Libraries Used for Bundle Adjustment

There are many tools and software libraries for bundle adjustment:

  • OpenCV provides various functions and classes for camera calibration and bundle adjustment, encompassing sparse and dense bundle adjustment. functions
  • COLMAP, an open-source software designed for 3D reconstruction from images, incorporates bundle adjustment as an integral part of its pipeline, supporting both sparse and dense reconstruction.
  • Bundler, a user-friendly tool for structure-from-motion (SfM), estimates camera parameters and 3D structure from 2D images, making it a suitable choice for basic bundle adjustment tasks.
  • g2o, an open-source C++ library specializing in optimizing graph-based nonlinear least-squares problems, enjoys widespread adoption in computer vision and robotics for bundle adjustment purposes.

These tools are implemented in various programming languages and address multiple use cases of bundle adjusting.

However, we can also use a general-purpose optimizer to minimize our objective function, for instance, Scipy and Ceres Solver.

5. Benefits of Using Bundle Adjustment

First, it enhances the accuracy of camera pose estimation and 3D reconstruction.

Furthermore, it ensures internal consistency among all camera poses and 3D points. The alignment of observations across different images reduces errors resulting from individual camera calibrations or noisy measurements.

Moreover, bundle adjustment is robust to outliers and noise in the data. It can effectively handle inaccurate feature correspondences by down-weighting or rejecting outliers during optimization. Feature correspondences identify and align distinct points across images, which is vital for 3D reconstruction. Leaving out outliers or down-weighting inaccurate matches enhances final accuracy, especially when dealing with noise and errors.

5.1. Summary

By optimizing camera poses and 3D point positions, it corrects errors and inaccuracies, resulting in highly precise and true-to-life 3D models.

Here’s a quick summary of its main benefits:

Benefits

Improved accuracy

Consistency

Optimizing parameters

Camera calibration

Robustness to noisy data

6. Conclusion

In this article, we discussed bundle adjustment, a method that enhances camera settings and 3D structure estimates in visual applications.

It does so by minimizing the sum of projection errors.