Improving Accuracy and Computational Burden of Bundle Adjustment Algorithm Using GPUs
- 1 Department of Electrical Engineering and Computer Science, University of Wyoming, Laramie, Wyoming, USA
- 2 Department of Electrical Engineering and Computer Science, University of Wyoming, Laramie, Wyoming, USA
- 3 Department of Electrical Engineering and Computer Science, University of Wyoming, Laramie, Wyoming, USA
Abstract
Bundle adjustment is a camera and point refinement technique in a 3D scene reconstruction pipeline. The camera parameters and the 3D points are refined by minimizing the difference between computed projection and observe d projection of the image points formulated as a non-linear least-square prob lem. Levenberg-Marquardt method is used to solve the non-linear least-square problem. Solving the non-linear least-square problem is computationally expensive, proportional to the number of cameras, points, and projections. In this paper, we implement the Bundle Adjustment (BA) algorithm and analyze techniques to improve algorithmic performance by reducing the mean square error. We investigate using an additional radial distortion camera parameter in the BA algorithm and demonstrate better convergence of the mean square error. We also demonstrate the use of explicitly computed analytical derivatives. In addition, we implement the BA algorithm on GPUs using the CUDA parallel programming model to reduce the computational time burden of the BA algorithm. CUDA Streams, atomic operations, and cuBLAS library in the CUDA programming model are proposed, implemented, and demonstrated to improve the performance of the BA algorithm. Our implementation has demonstrated better convergence of the BA algorithm and achieved a speedup of up to 16× on the use of the BA algorithm on various datasets.
- Chen, C.I., Sargent, D., Tsai, C.M., Wang, Y.F. and Koppel, D. (2009) Uniscale Multi-View Registration Using Double Dog-Leg Method. Medical Imaging 2009: Visualization, Image-Guided Procedures, and Modeling, Vol. 7261, 468-477. https://doi.org/10.1117/12.810966
- Favalli, M., Fornaciai, A., Isola, I., Tarquini, S. and Nannipieri, L. (2012) Multiview 3D Reconstruction in Geosciences. Computers & Geosciences, 44, 168-176. https://doi.org/10.1016/j.cageo.2011.09.012
- Lowe, D.G. (2004) Distinctive Image Features from Scale-Invariant Keypoints. International Journal of Computer Vision, 60, 91-110. https://doi.org/10.1023/B:VISI.0000029664.99615.94
- Arya, S., Mount, D.M., Netanyahu, N.S., Silverman, R. and Wu, A.Y. (1998) An Optimal Algorithm for Approximate Nearest Neighbor Searching Fixed Dimensions. Journal of the ACM (JACM), 45, 891-923. https://doi.org/10.1145/293347.293348
- Agarwal, S., Snavely, N., Simon, I., Seitz, S.M. and Szeliski, R. (2009) Building Rome in a Day. 2009 IEEE 12th International Conference on Computer Vision, Kyoto, 29 September-2 October 2009, 72-79. https://doi.org/10.1109/ICCV.2009.5459148
- Lourakis, M.I. and Argyros, A.A. (2009) SBA: A Software Package for Generic Sparse Bundle Adjustment. ACM Transactions on Mathematical Software (TOMS), 36, 1-30. https://doi.org/10.1145/1486525.1486527
- Agarwal, S., Snavely, N., Seitz, S.M. and Szeliski, R. (2010) Bundle Adjustment in the Large. Computer Vision ECCV 2010: 11th European Conference on Computer Vision, Heraklion, 5-11 September 2010, 29-42. https://doi.org/10.1007/978-3-642-15552-9_3
- Bjorck, A. (1996) Numerical Methods for Least Squares Problems. Society for Industrial and Applied Mathematics, Philadelphia.
- Curry, H.B. (1944) The Method of Steepest Descent for Non-Linear Minimization Problems. Quarterly of Applied Mathematics, 2, 258-261. https://doi.org/10.1090/qam/10667
- Levenberg, K. (1944) A Method for the Solution of Certain Non-Linear Problems in Least Squares. Quarterly of Applied Mathematics, 2, 164-168. https://doi.org/10.1090/qam/10666
- Marquardt, D.W. (1963) An Algorithm for Least-Squares Estimation of Nonlinear Parameters. Journal of the Society for Industrial and Applied Mathematics, 11, 431-441. https://doi.org/10.1137/0111030
- Wu, C., Agarwal, S., Curless, B. and Seitz, S.M. (2011) Multicore Bundle Adjustment. CVPR 2011, Colorado Springs, 20-25 June 2011, 3057-3064. https://doi.org/10.1109/CVPR.2011.5995552