mirror of
https://github.com/ceres-solver/ceres-solver.git
synced 2026-08-29 16:40:38 +08:00
Refactor the landing page to be a bit more compact.
Also minor changes to the introduction. Change-Id: Iaa71f576b95c869f075d6837dbb60ba4bb608ee7
This commit is contained in:
+21
-30
@@ -23,36 +23,28 @@ Ceres Solver
|
||||
bibliography
|
||||
license
|
||||
|
||||
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.
|
||||
Ceres Solver is an industrial-grade C++ library for modeling and
|
||||
solving `nonlinear least squares`_ problems. These 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.
|
||||
|
||||
Ceres Solver features an integrated modeling layer with automatic
|
||||
differentiation (you can also use numeric and/or analytic
|
||||
derivatives), well optimized code with extensive tests and state of
|
||||
the art performance on a variety of problems.
|
||||
|
||||
Ceres Solver is used in Google `Street View`_, Google `PhotoTours`_,
|
||||
Google `PhotoSphere`_, `Project Tango`_, `Blender`_, and more.
|
||||
|
||||
.. _nonlinear least squares: http://en.wikipedia.org/wiki/Non-linear_least_squares
|
||||
.. _fitting curves: http://en.wikipedia.org/wiki/Nonlinear_regression
|
||||
.. _3D models from photographs: http://en.wikipedia.org/wiki/Structure_from_motion
|
||||
|
||||
What is Ceres Solver?
|
||||
---------------------
|
||||
Ceres is an industrial-grade C++ library for modeling and solving large and
|
||||
small nonlinear least squares problems of the form
|
||||
|
||||
.. math:: \frac{1}{2}\sum_{i} \rho_i\left(\left\|f_i\left(x_{i_1}, ... ,x_{i_k}\right)\right\|^2\right).
|
||||
|
||||
For a brief introduction to nonlinear solving in general, see the
|
||||
:ref:`chapter-tutorial`.
|
||||
|
||||
Who uses Ceres Solver?
|
||||
----------------------
|
||||
There are many users of Ceres, including Google Street View, Google Maps,
|
||||
several SLAM pipelines, Blender, and more. See the :ref:`chapter-introduction`
|
||||
for more users.
|
||||
|
||||
Why use Ceres Solver?
|
||||
---------------------
|
||||
Ceres is a world-class least squares solver for a variety of reasons, including
|
||||
an integrated modelling layer, automatic differentiation, optimized code,
|
||||
extensive tests, and more. See the :ref:`chapter-introduction` for a detailed
|
||||
list.
|
||||
.. _Street View: http://youtu.be/z00ORu4bU-A
|
||||
.. _PhotoTours: http://google-latlong.blogspot.com/2012/04/visit-global-landmarks-with-photo-tours.html
|
||||
.. _PhotoSphere: http://www.google.com/maps/about/contribute/photosphere/
|
||||
.. _Project Tango: https://www.google.com/atap/projecttango/
|
||||
.. _Blender: http://mango.blender.org/development/planar-tracking-preview/
|
||||
|
||||
Getting started
|
||||
---------------
|
||||
@@ -67,18 +59,17 @@ Getting started
|
||||
|
||||
git clone https://ceres-solver.googlesource.com/ceres-solver
|
||||
|
||||
* Read the :ref:`chapter-tutorial`
|
||||
* Browse the :ref:`chapter-modeling` and :ref:`chapter-solving`.
|
||||
* Read the :ref:`chapter-tutorial`, browse :ref:`chapter-modeling` and :ref:`chapter-solving`.
|
||||
* Join the `mailing list
|
||||
<https://groups.google.com/forum/?fromgroups#!forum/ceres-solver>`_
|
||||
and ask questions.
|
||||
* File bugs, feature requests in the `issue tracker
|
||||
<https://code.google.com/p/ceres-solver/issues/list>`_.
|
||||
* Improve Ceres by :ref:`chapter-contributing`
|
||||
|
||||
|
||||
Cite Us
|
||||
-------
|
||||
If you use Ceres Solver for a publication, you must cite it as::
|
||||
If you use Ceres Solver for a publication, please cite it as::
|
||||
|
||||
@misc{ceres-solver,
|
||||
author = "Sameer Agarwal and Keir Mierle and Others",
|
||||
|
||||
@@ -43,29 +43,29 @@ Why use Ceres Solver?
|
||||
---------------------
|
||||
* Ceres has an **integrated modelling layer**, making it easy and intutive to
|
||||
model large, complex cost functions with interacting terms, such as a moving
|
||||
vehicle with multiple sensors and tricky dynamics
|
||||
vehicle with multiple sensors and tricky dynamics.
|
||||
* Ceres has **integrated automatic differentiation**, avoiding the error-prone
|
||||
task of manually computing derivatives
|
||||
task of manually computing derivatives.
|
||||
* Ceres can model a **wide variety of problems**, beyond simple nonlinear least
|
||||
squares, thanks to robust loss functions and local parameterizations (e.g.
|
||||
for quaternions)
|
||||
for quaternions).
|
||||
* Ceres is **very fast**, thanks to threaded cost function evaluators, threaded linear
|
||||
solvers, and generous amounts of engineering time spent optimizing
|
||||
solvers, and generous amounts of engineering time spent optimizing.
|
||||
* Ceres has **multiple nonlinear solvers** including trust region (fast, uses
|
||||
more memory) and line search (slower, uses less memory)
|
||||
more memory) and line search (slower, uses less memory).
|
||||
* Ceres has **multiple linear solvers** for both sparse and dense systems,
|
||||
leveraging Eigen or MKL for dense solving, CHOLMOD or CXSparse for sparse
|
||||
solving, and specialized linear solvers bundle adjustment
|
||||
solving, and specialized linear solvers for bundle adjustment.
|
||||
* Ceres has **thorough automated tests** ensuring it is high-quality
|
||||
* Ceres is **industrial grade** thanks to **many compute-years** spent
|
||||
running its code, analyzing the results, and improving it
|
||||
running its code, analyzing the results, and improving it.
|
||||
* Ceres has **world-class solution quality**, with the best known results of
|
||||
any least squares solver on the `NIST least squares precision benchmark`_
|
||||
any least squares solver on the `NIST least squares precision benchmark`_.
|
||||
* Ceres has an **active community** encouraging contributions and mentoring
|
||||
those starting out
|
||||
those starting out.
|
||||
* Ceres runs on **many platforms** including Linux, Windows, Mac OS X, Android, and
|
||||
iOS (sort of)
|
||||
iOS (sort of).
|
||||
* Ceres is **liberally licensed (BSD)** so that you can use it freely in
|
||||
commercial applications without releasing your code
|
||||
commercial applications without releasing your code.
|
||||
|
||||
.. _NIST least squares precision benchmark: https://groups.google.com/forum/#!topic/ceres-solver/UcicgMPgbXw
|
||||
|
||||
Reference in New Issue
Block a user