awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
ceres-solver avatar

ceres-solver/ceres-solver

0
View on GitHub↗
4,499 stars·1,125 forks·C++·13 viewsceres-solver.org↗

Ceres Solver

Ceres Solver is a C++ library for numerical optimization, specializing in non-linear least squares and unconstrained optimization problems. It serves as a framework for automatic differentiation and robust curve fitting, providing tools to solve large-scale mathematical models.

The library is distinguished by its bundle adjustment capabilities, which exploit sparse matrix structures to refine 3D scene points and camera parameters. It utilizes dual-number automatic differentiation to compute derivatives of cost functions, removing the need for manual Jacobian derivation.

The project covers a broad range of optimization capabilities, including manifold constraints for non-Euclidean spaces, robust loss functions to mitigate outliers, and both dense and sparse linear system solving. It also provides utilities for rotation representation conversion, tabulated data interpolation, and parameter covariance estimation.

Build configurations are available for Android and iOS targets to support mobile hardware optimization.

Features

  • Bundle Adjustment Algorithms - Provides specialized algorithms for refining 3D coordinates and camera poses by exploiting sparse matrix structures via the Schur complement.
  • Non-Linear Optimizers - Implements a high-performance solver for minimizing sums of squared non-linear functions in large-scale mathematical models.
  • Automatic Differentiation - Provides a framework for computing exact derivatives of cost functions automatically using dual-number differentiation.
  • Non-linear Problem Solvers - Provides a solver for large-scale non-linear least squares and unconstrained optimization problems using trust-region methods.
  • Cost Functions - Computes residuals and Jacobian matrices for terms in an objective function using multiple differentiation schemes.
  • Robust - Modifies the contribution of residuals using weight functions to prevent outliers from dominating the total cost.
  • Pose Graph Optimizations - Provides techniques for optimizing pose graphs to align 3D point clouds and trajectory data while minimizing sensor drift.
  • Local Parameterizations - Defines local parameterizations to constrain parameters to specific spaces such as quaternions or lines.
  • Manifold Constraints - Restricts optimization variables to non-Euclidean spaces like spheres or quaternions to maintain geometric constraints.
  • Sparse Linear Algebra Routines - Integrates high-performance sparse linear algebra routines to solve large systems of equations efficiently.
  • Numerical Optimization Libraries - Provides a high-performance C++ toolkit for numerical optimization, linear algebra, and manifold parameterization.
  • Numerical Computation Optimizers - Calculates the gradient of objective functions using analytic formulas, finite differences, or automatic differentiation.
  • Problem Modeling - Implements a system for assembling optimization problems by connecting cost functions and loss functions to specific parameter blocks.
  • Manifold Parameterization - Handles non-Euclidean variables by mapping them to a tangent space for updates and projecting them back to the manifold.
  • Trust-Region Methods - Iteratively approximates the objective function with a quadratic model and restricts the step size to a safe region.
  • Cost Function Composition - Allows wrapping cost functions into functors to mix analytic, numeric, and automatic differentiation within a single composition.
  • Numerical Gradient Approximations - Approximates Jacobians using finite difference methods when analytic derivatives are unavailable.
  • Iterative Refinement - Casts linear systems to single precision for speed and applies iterative refinement to maintain numerical accuracy.
  • Sensor Calibration - Estimates intrinsic and extrinsic characteristics of cameras and IMUs to ensure accurate spatial measurements.
  • Robust - Ships robust loss functions to prevent anomalous data points from biasing the curve fitting results.
  • Bound Constraints - Enforces upper and lower limits on parameters during the trust region minimization process.
  • Dense Linear System Solvers - Executes fast dense linear solves using QR, Cholesky, or Schur decompositions.
  • Schur Decompositions - Employs Schur complement decomposition to exploit sparsity patterns and reduce the dimensionality of bundle adjustment linear systems.
  • Numerical Derivative Estimations - Ceres Solver estimates Jacobians using finite differencing schemes for functions where analytic derivatives are not available.
  • Preconditioned Iterative Solvers - Improves the convergence rate of iterative solvers using specialized preconditioning expansion techniques.
  • Dynamic Sparsity Management - Optimizes memory and computation when the structural patterns of data change during the optimization process.
  • Optimization Solvers - Large scale nonlinear optimization library.
  • Numerical Optimization Solvers - Large-scale non-linear least squares optimization library.
  • Optimization Libraries - C++ library for large-scale nonlinear optimization problems.
  • Robotics Libraries - Library for modeling and solving complex optimization problems.

Star history

Star history chart for ceres-solver/ceres-solverStar history chart for ceres-solver/ceres-solver

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does ceres-solver/ceres-solver do?

Ceres Solver is a C++ library for numerical optimization, specializing in non-linear least squares and unconstrained optimization problems. It serves as a framework for automatic differentiation and robust curve fitting, providing tools to solve large-scale mathematical models.

What are the main features of ceres-solver/ceres-solver?

The main features of ceres-solver/ceres-solver are: Bundle Adjustment Algorithms, Non-Linear Optimizers, Automatic Differentiation, Non-linear Problem Solvers, Cost Functions, Robust, Pose Graph Optimizations, Local Parameterizations.

What are some open-source alternatives to ceres-solver/ceres-solver?

Open-source alternatives to ceres-solver/ceres-solver include: hkust-aerial-robotics/vins-mono — VINS-Mono is a monocular visual-inertial odometry system and loop closure SLAM framework. It functions as a real-time… nvidia/isaac-gr00t. dusty-nv/jetson-inference — jetson-inference is a set of libraries and tools for executing optimized deep learning models on embedded GPU… ethz-asl/kalibr — Kalibr is a software suite for multi-camera calibration and visual-inertial parameter estimation. It provides a… exacity/deeplearningbook-chinese — This project is a comprehensive Chinese translation of a technical deep learning textbook, providing an educational… borglab/gtsam — GTSAM is a library of C++ classes that implement smoothing and mapping (SAM) in robotics and vision, using factor…

Open-source alternatives to Ceres Solver

Similar open-source projects, ranked by how many features they share with Ceres Solver.
  • hkust-aerial-robotics/vins-monoHKUST-Aerial-Robotics avatar

    HKUST-Aerial-Robotics/VINS-Mono

    5,936View on GitHub↗

    VINS-Mono is a monocular visual-inertial odometry system and loop closure SLAM framework. It functions as a real-time state estimator that fuses data from a single camera and an inertial measurement unit to determine a robot's position and orientation. The project includes a non-linear optimizer for robotics and tools for sensor calibration. The system distinguishes itself through online sensor calibration, which automatically determines spatial extrinsics and temporal offsets between the camera and inertial unit during operation. It also incorporates rolling shutter distortion correction to

    C++state-estimationvinsvio
    View on GitHub↗5,936
  • nvidia/isaac-gr00tNVIDIA avatar

    NVIDIA/Isaac-GR00T

    6,222View on GitHub↗
    Jupyter Notebook
    View on GitHub↗6,222
  • dusty-nv/jetson-inferencedusty-nv avatar

    dusty-nv/jetson-inference

    8,734View on GitHub↗

    jetson-inference is a set of libraries and tools for executing optimized deep learning models on embedded GPU hardware. Its primary purpose is to enable real-time computer vision and AI inference at the edge with low latency and high throughput. The project distinguishes itself through high-performance streaming analytics and the ability to execute concurrent AI pipelines on auto-grade silicon. It provides specialized support for multi-sensor stream processing, utilizing zero-copy data transport to load camera frames directly into GPU memory. The codebase covers a broad surface of capabiliti

    C++caffecomputer-visiondeep-learning
    View on GitHub↗8,734
  • ethz-asl/kalibrethz-asl avatar

    ethz-asl/kalibr

    5,511View on GitHub↗

    Kalibr is a software suite for multi-camera calibration and visual-inertial parameter estimation. It provides a mathematical framework for determining intrinsic and extrinsic parameters across multiple cameras and calculating the spatio-temporal offsets between cameras and inertial measurement units. The project features a non-linear least-squares optimizer to minimize reprojection and inertial errors. It includes specialized tools for rolling-shutter camera calibration to estimate projection and distortion parameters for sensors that capture images row-by-row. The system covers a broad rang

    C++
    View on GitHub↗5,511
  • See all 30 alternatives to Ceres Solver→