Embodied AI Glossary中文

Ceres Solver

Advanced

Google's open-source C++ library for nonlinear least-squares optimization, a common backend for SLAM and calibration.

Ceres Solver is an open-source C++ optimization library from Google, mainly used to solve nonlinear least-squares problems (minimizing the sum of squares of a set of error terms), and it can also handle general unconstrained optimization. Users only need to specify how each error term (residual) is computed; Ceres can differentiate automatically, and it provides algorithms such as Levenberg-Marquardt and Dogleg along with sparse linear solvers that handle problems with thousands of variables. Many problems in robotics and 3D vision can be cast in this form — bundle adjustment, SLAM pose-graph optimization, camera-IMU calibration, and hand-eye calibration among them. Open-source systems such as VINS-Mono and Google's Cartographer use it as their optimization backend. It occupies roughly the same niche as g2o and GTSAM, and the three are often treated as interchangeable tools.

ExampleDuring camera calibration, write the reprojection error of each detected corner as a residual block, and let Ceres jointly optimize the intrinsics and each image's extrinsics.

Also called
Ceres
Related
Bundle Adjustment · Simultaneous Localization and Mapping · g2o (General Graph Optimization) · GTSAM (Georgia Tech Smoothing and Mapping) · Factor Graph Optimization · Camera Calibration
Sources
Ceres Solver 官网 (Chinese)
ceres-solver/ceres-solver (GitHub)

See it in the full glossary →