Ceres Solver is a portable C++ library that allows for modeling and solving large complex nonlinear least squares problems. The notable features are:
• A simple, expressive API
• Automatic differentiation
• Robust loss functions
• Local parameterizations
• A 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 problems in 3D computer vision
• A liberal license (New BSD)
• Scales from servers to cell phones.
We use Ceres Solver at Google to estimate the pose of Street View cars, aircrafts, and satellites; to build 3D models for PhotoTours; to estimate satellite image sensor characteristics, and more. For example, the video below shows three instances of Ceres Solver fusing data from the sensors mounted on a Street View car to estimate its correct position and orientation on the surface of earth.
We hope you will download the code, solve some problems, and share your experiences on the mailing list.
By Sameer Agarwal & Keir Mierle, Geo Software Engineers