Fast Automatic Differentiation for Large Scale Bundle Adjustment
Author(s) -
Yan Shen,
Yuxing Dai
Publication year - 2018
Publication title -
ieee access
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.587
H-Index - 127
ISSN - 2169-3536
DOI - 10.1109/access.2018.2812173
Subject(s) - aerospace , bioengineering , communication, networking and broadcast technologies , components, circuits, devices and systems , computing and processing , engineered materials, dielectrics and plasmas , engineering profession , fields, waves and electromagnetics , general topics for engineers , geoscience , nuclear engineering , photonics and electrooptics , power, energy and industry applications , robotics and control systems , signal processing and analysis , transportation
A parallelized implementation of automatic differentiation that derives from the problem of bundle adjustment is proposed in this paper. Reverse mode of automatic differentiation is more efficient to compute the derivatives of functions with n real-value parameters, which is the case of computing the Jacobian matrix in bundle adjustment problem. By reason of a large number of small derivative computing tasks being needed in bundle adjustment problem, we implement an automatic differentiation library based on operator overloading and OpenCL parallel framework. In order to parallelize the computation in the framework of OpenCL, we generate forward and reverse computational sequences from computational graph by topological sorting. This library enables us to write down the function formula elegantly and then evaluate the derivatives rapidly and automatically. Finally, large scale bundle adjustment data sets is used to evaluate our proposed implementation. The result shows that our implementation runs about 3.6 times faster than Ceres Solver, which utilizes OpenMP parallel programming model.
Accelerating Research
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom
Address
John Eccles HouseRobert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom