Bundle Adjustment
   HOME

TheInfoList



OR:

In
photogrammetry Photogrammetry is the science and technology of obtaining reliable information about physical objects and the environment through the process of recording, measuring and interpreting photographic images and patterns of electromagnetic radiant ima ...
and computer stereo vision, bundle adjustment is simultaneous refining of the 3D
coordinates In geometry, a coordinate system is a system that uses one or more numbers, or coordinates, to uniquely determine and standardize the Position (geometry), position of the Point (geometry), points or other geometric elements on a manifold such as ...
describing the scene geometry, the parameters of the relative motion, and the optical characteristics of the camera(s) employed to acquire the images, given a set of images depicting a number of 3D points from different viewpoints. Its name refers to the '' geometrical bundles'' of
light ray In optics, a ray is an idealized geometrical model of light or other electromagnetic radiation, obtained by choosing a curve that is perpendicular to the ''wavefronts'' of the actual light, and that points in the direction of energy flow. Rays ...
s originating from each 3D feature and converging on each camera's optical center, which are adjusted optimally according to an optimality criterion involving the corresponding image projections of all points.


Uses

Bundle adjustment is almost always used as the last step of feature-based 3D reconstruction algorithms. It amounts to an optimization problem on the 3D structure and viewing parameters (i.e., camera pose and possibly intrinsic calibration and radial distortion), to obtain a reconstruction which is optimal under certain assumptions regarding the noise pertaining to the observed image features: If the image error is zero-mean Gaussian, then bundle adjustment is the Maximum Likelihood Estimator. Bundle adjustment was originally conceived in the field of
photogrammetry Photogrammetry is the science and technology of obtaining reliable information about physical objects and the environment through the process of recording, measuring and interpreting photographic images and patterns of electromagnetic radiant ima ...
during the 1950s and has increasingly been used by
computer vision Computer vision tasks include methods for image sensor, acquiring, Image processing, processing, Image analysis, analyzing, and understanding digital images, and extraction of high-dimensional data from the real world in order to produce numerical ...
researchers during recent years.


General approach

Bundle adjustment boils down to minimizing the reprojection error between the image locations of observed and predicted image points, which is expressed as the sum of squares of a large number of nonlinear, real-valued functions. Thus, the minimization is achieved using nonlinear least-squares algorithms. Of these, Levenberg–Marquardt has proven to be one of the most successful due to its ease of implementation and its use of an effective damping strategy that lends it the ability to converge quickly from a wide range of initial guesses. By iteratively linearizing the function to be minimized in the neighborhood of the current estimate, the Levenberg–Marquardt algorithm involves the solution of linear systems termed the normal equations. When solving the minimization problems arising in the framework of bundle adjustment, the normal equations have a sparse block structure owing to the lack of interaction among parameters for different 3D points and cameras. This can be exploited to gain tremendous computational benefits by employing a sparse variant of the Levenberg–Marquardt algorithm which explicitly takes advantage of the normal equations zeros pattern, avoiding storing and operating on zero-elements.


Mathematical definition

Bundle adjustment amounts to jointly refining a set of initial camera and structure parameter estimates for finding the set of parameters that most accurately predict the locations of the observed points in the set of available images. More formally, assume that n 3D points are seen in m views and let \mathbf_ be the projection of the ith point on image j. Let \displaystyle v_ denote the binary variables that equal 1 if point i is visible in image j and 0 otherwise. Assume also that each camera j is parameterized by a vector \mathbf_j and each 3D point i by a vector \mathbf_i. Bundle adjustment minimizes the total reprojection error with respect to all 3D point and camera parameters, specifically : \min_ \displaystyle\sum_^ \; \displaystyle\sum_^ \; v_ \, d(\mathbf(\mathbf_j, \, \mathbf_i), \; \mathbf_)^2, where \mathbf(\mathbf_j, \, \mathbf_i) is the predicted
projection Projection or projections may refer to: Physics * Projection (physics), the action/process of light, heat, or sound reflecting from a surface to another in a different direction * The display of images by a projector Optics, graphics, and carto ...
of point i on image j and d(\mathbf, \, \mathbf) denotes the Euclidean distance between the image points represented by vectors \mathbf and \mathbf. Because the minimum is computed over many points and many images, bundle adjustment is by definition tolerant to missing image projections, and if the distance metric is chosen reasonably (e.g., Euclidean distance), bundle adjustment will also minimize a physically meaningful criterion.


See also

* Adjustment of observations *
Stereoscopy Stereoscopy, also called stereoscopics or stereo imaging, is a technique for creating or enhancing the depth perception, illusion of depth in an image by means of stereopsis for binocular vision. The word ''stereoscopy'' derives . Any ster ...
* Levenberg–Marquardt algorithm *
Sparse matrix In numerical analysis and scientific computing, a sparse matrix or sparse array is a matrix in which most of the elements are zero. There is no strict definition regarding the proportion of zero-value elements for a matrix to qualify as sparse ...
*
Collinearity equation The collinearity equations are a set of two equations, used in photogrammetry and computer stereo vision, to relate coordinates in a sensor plane (in two dimensions) to object coordinates (in three dimensions). The equations originate from the P ...
* Structure from motion * Simultaneous localization and mapping


References


Further reading

* A. Zisserman
Bundle adjustment
CV Online.


External links


Software



Apero/MicMac, a free open source photogrammetric software. Cecill-B licence.
sba
A Generic Sparse Bundle Adjustment C/C++ Package Based on the Levenberg–Marquardt Algorithm ( C (programming language), C,
MATLAB MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementat ...
). GPL.
cvsba
{{Webarchive, url=https://web.archive.org/web/20131024142608/http://www.uco.es/investiga/grupos/ava/node/39/ , date=2013-10-24 : An OpenCV wrapper fo
sba
library ( C++). GPL.
ssba
Simple Sparse Bundle Adjustment package based on the Levenberg–Marquardt Algorithm (C++). LGPL.
OpenCV
Computer Vision library in th

module. BSD license.
mcba
Multi-Core Bundle Adjustment (CPU/GPU). GPL3.
libdogleg
General-purpose sparse non-linear least squares solver, based on Powell's dogleg method. LGPL.
ceres-solver
A Nonlinear Least Squares Minimizer. BSD license.

General Graph Optimization (C++) - framework with solvers for sparse graph-based non-linear error functions. LGPL.

The program DGAP implement the photogrammetric method of bundle adjustment invented by Helmut Schmid and Duane Brown. GPL.
Bundler
A structure-from-motion (SfM) system for unordered image collections (for instance, images from the Internet) by Noah Snavely. GPL.
COLMAP
A general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline with a graphical and command-line interface. BSD license.
Theia
A computer vision library aimed at providing efficient and reliable algorithms for Structure from Motion (SfM). New BSD license. * Ames Stereo Pipeline has a tool for bundle adjustment (Apache II licence). Geometry in computer vision Geodesy Photogrammetry Surveying Cartography