[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#484433: ITP: sba -- sparse bundle adjustment C/C++ package

Package: wnpp
Severity: wishlist

* Package name    : sba
  Version         : 1.4
  Upstream Author : Manolis Lourakis <lourakis@ics.forth.gr>
* URL             : http://www.ics.forth.gr/~lourakis/sba/
* License         : GPL
  Programming Lang: C
  Description     : sparse bundle adjustment C/C++ package

I have begun a Debian-izing effort with this Bazaar branch on Launchpad:

 sba is a C/C++ package for generic sparse bundle adjustment. Bundle
 Adjustment (BA) is almost invariably used as the last step of every
 feature-based multiple view reconstruction vision algorithm to obtain
 optimal 3D structure and motion (i.e. camera matrix) parameter
 estimates. Provided with initial estimates, BA simultaneously refines
 motion and structure by minimizing the reprojection error between the
 observed and predicted image points. The minimization is typically
 carried out with the aid of the Levenberg-Marquardt (LM)
 algorithm. However, due to the large number of unknowns contributing
 to the minimized reprojection error, a general purpose implementation
 of the LM algorithm (such as MINPACK's lmder) incurs high
 computational costs when applied to the minimization problem defined
 in the context of BA.
 Fortunately, the lack of interaction among parameters for different
 3D points and cameras results in the underlying normal equations
 exhibiting a sparse block structure (click this for an example). sba
 exploits this sparseness by employing a tailored sparse variant of
 the LM algorithm that leads to considerable computational gains. sba
 is generic in the sense that it grants the user full control over the
 definition of the parameters describing cameras and 3D
 structure. Therefore, it can support virtually any
 manifestation/parameterization of the multiple view reconstruction
 problem such as arbitrary projective cameras, partially or fully
 intrinsically calibrated cameras, exterior orientation (i.e. pose)
 estimation from fixed 3D points, refinement of intrinsic parameters,
 etc. All the user has to do to adapt sba to any such problem is to
 supply it with appropriate routines for computing the estimated image
 projections and their Jacobian for the problem and parameterization
 at hand. Routines for computing analytic Jacobians can be either
 coded by hand, generated with a tool supporting symbolic
 differentiation (e.g. maple), or obtained using automatic
 differentiation techniques. There is also the alternative of
 approximating Jacobians with the aid of finite
 differences. Additionally, sba includes routines for checking the
 consistency of user-supplied Jacobians. To the best of our knowledge,
 sba is the first and currently the only software package of its kind
 to be placed in the public domain in source form.

Reply to: