Ceres Solver is a portable and open source C++ library from Google that allows for modeling and solving large complex nonlinear least squares problems.
Solving nonlinear least squares problems comes up in a broad range of areas across science and engineering - from fitting curves in statistics, to constructing 3D models from photographs in computer vision.
Detailed instructions on how to install and use the Ceres Solver utility on your Mac are available HERE.
Ceres Solver is cross-platform and it works on Mac OS X and Linux. Binaries for the Linux platform are available on the project's homepage.
Here are some key features of "Ceres Solver":
· A friendly API: build your cost function one residual at a time
· Automatic differentiation
· Robust loss functions
· Local parameterizations
· Threaded Jacobian evaluators and linear solvers
· Dense QR factorization (using Eigen) for small problems
· Sparse Cholesky factorization (using SuiteSparse) for large sparse problems
· Specialized solvers for bundle adjustment problems in computer vision.
· Scales from servers to cell phones.
What's New in This Release: [ read full changelog ]
New Features:
· A new richer, more expressive and consistent API for ordering parameter blocks.
· A non-linear generalization of Ruhe & Wedin’s Algorithm II. This allows the user to use variable projection on separable and non-separable non-linear least squares problems. With multithread- ing, this results in significant improvements to the convergence behavior of the solver at a small increase in run time.
· An image denoising example using fields of experts. (Petter Strandmark)
· Defines for Ceres version and ABI version.
· Higher precision timer code where available. (Petter Strandmark)
· Example Makefile for users of Ceres.
· IterationSummary now informs the user when the step is a non-monotonic step.
· Fewer memory allocations when using DenseQRSolver.
· GradientChecker for testing CostFunctions (William Rucklidge)
· Add support for cost functions with 10 parameter blocks in Problem. (Fisher)
· Add support for 10 parameter blocks in AutoDiffCostFunction.
Bug Fixes:
· static cast to force Eigen::Index ...