Ceres Solver (Why Ceres Solver?)

Why Ceres Solver?

  • Code quality - Ceres Solver has been used for more than four years at Google products. It is a clean, been extensively tested and well documented code that has an active development and support.
  • Modeling API - very few people with accurate, complete formula for solving the problems begin. Ceres modeling API designed, a user can easily create and modify one of the objective function, and to do so without worrying about the result of changes solver (solver) how to deal with potential problems resulting sparsity / structure.
    • Derivative offer the most sophisticated optimization brought about by the library, the derivative of the most error-prone. Ceres provides automatic (Automatic) and values (numeric) differential. So you never have to manually calculate the derivative (unless you really want to do that). Moreover, Ceres also allows you to mix any combination of the derivative (automatic), the value (numeric) and analysis (Analytical) automatically.
    • Robustness loss function most Nonlinear Least Squares Problems related to the data, if there is some external (Outliers) data, Ceres allows the user to LossFunctioncreate (Shape) residue which, in order to reduce the influence of outliers.
    • Local parameterization In many cases, some of the parameters on the manifold (Manifold), rather than in the Euclidean (the Euclidean) space, such as a rotating matrix. In that case, by specifying the user can LocalParameterizationbe predetermined local tangent space geometry object.
  • Select the solver - depending on the size, the sparsity structure, budget and time and memory required accuracy of the solution, different optimization algorithms to meet different needs. To this end, Ceres Solver provides a variety of optimization algorithms:
    • Trust domain solver Ceres support Levenberg-Marquardt, Powell’s Dogleg, and Subspace doglegmethod. The key calculation cost of all these processes is the Solution of Linear groups. To this end, Ceres offers a variety of linear solver - QR-intensive and dense Cholesky decomposition (using Eigen or LAPACK) for dense problems, sparse Cholesky decomposition (SuiteSparse, CXSparse or Eigen) for large sparse problems customized based on dense, sparse, Schur and iterative linear solver for the problem of the fill bundle adjustment.
    • Search linear solver when the size of the problem is so great that it can not be stored and decomposition of Jacobian low accuracy or low-cost solutions when needed, Ceres provides a number of algorithms based on line search. This includes a number of non-linear conjugate gradient variant, BFGS and LBFGS.
  • Speed - Ceres Solver after extensive optimization, with C ++ templates, handwriting and linear algebra routines based on multi-threaded Jacques TBB or OpenMP than estimated and linear solver.
  • Quality of the solution - Ceres is Mondragon and Borchers for nonlinear least squares problem solver NIST benchmark of the concentrated expression of the best solver.
  • Covariance estimation to evaluate the sensitivity of the solution / uncertainty evaluation by all or part of the covariance matrix. Ceres is one of the few that allows you to carry out a large-scale one solver analysis.
  • Community - Since the release as open source software, Ceres has developed an active developer community, providing new features, bug fixes and support.
  • Portability - runs on Linux, Windows, Mac OS X, Android and IOS.
  • BSD license BSD license flexibility to distribute your application.

Guess you like

Origin blog.csdn.net/weixin_39675633/article/details/91352076