diff --git a/docs/source/index.rst b/docs/source/index.rst index 6ac00da..0dcf5a0 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -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 `_ and ask questions. * File bugs, feature requests in the `issue tracker `_. -* 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", diff --git a/docs/source/introduction.rst b/docs/source/introduction.rst index 72625c8..d21f7d9 100644 --- a/docs/source/introduction.rst +++ b/docs/source/introduction.rst @@ -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