Ronny Hänsch1 Igor Drude
1Technische Universität Berlin, Germany
Modern Methods of Bundle Adjustment on the GPU, Annals of the ISPRS, 2016
The task to compute 3D reconstructions from large amounts of data has become an active field of research within the last years. Based on an initial estimate provided by structure from motion, bundle adjustment seeks to find a solution that is optimal for all cameras and 3D points. The corresponding nonlinear optimization problem is usually solved by the Levenberg-Marquardt algorithm combined with conjugate gradient descent. While many adaptations and extensions to the classical bundle adjustment approach have been proposed, only few works consider the acceleration potentials of GPU systems. This work elaborates the possibilities of time- and space savings when fitting the implementation strategy to the terms and requirements of realizing a bundler on heterogeneous CPU-GPU systems. Instead of focusing on the standard approach of Levenberg-Marquardt optimization alone, nonlinear conjugate gradient descent and alternating resection-intersection are studied as two alternatives. The experiments show that in particular alternating resection-intersection reaches low error rates very fast, but converges to larger error rates than Levenberg-Marquardt. PBA, as one of the current state-of-the-art bundlers, converges slower in 50% of the test cases and needs 1.5-2 times more memory than the Levenberg-Marquardt implementation.
GPU-BA
===
The GPU-BA framework implements three different approaches for bundle adjustment on the GPU (Cuda), namely Levenberg-Marquardt, nonlinear conjugate gradient descent, and alternating resection-intersection.
For additional documentation with compile instructions, parametrization and configuration, as well as information about input/output see Readme.pdf contained in the main directory of the source code.
===
The framework was tested on Windows systems only, but no Windows-specific libraries were included. Additional requirements:
- CUDA enabled Nvidia-GPU (at least compute capability 2.0).
- CUDA TOOLKIT 6.5 or higher (only cuda.lib and cudart.lib are used)
R. Hänsch, I. Drude, O. Hellwich, Modern Methods of Bundle Adjustment on the GPU, Annals of the ISPRS, tba, July 2016, Pages tba
@ARTICLE{ Haensch:2016:ISPRSA, author = {H\"ansch, Ronny and Drude, Igor and Hellwich, Olaf}, title = {Modern Methods of Bundle Adjustment on the GPU}, journal= {ISPRS Annals of Photogrammetry, Remote Sensing and Spatial Information Sciences}, volume = {III-3}, pages = {43--50}, year = {2016}, URL = {http://www.isprs-ann-photogramm-remote-sens-spatial-inf-sci.net/III-3/43/2016/}, DOI = {10.5194/isprs-annals-III-3-43-2016} }