| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | .. _chapter-introduction:============Introduction============Solving nonlinear least squares problems [#f1]_ comes up in a broadrange of areas across science and engineering - from fitting curves instatistics, to constructing 3D models from photographs in computervision. Ceres Solver [#f2]_ [#f3]_ is a portable C++ library forsolving non-linear least squares problems accurately and efficiently.**Features**#. A friendly :ref:`chapter-modeling` API.#. Automatic and numeric differentiation.#. Robust loss functions and local parameterizations.#. Multithreading.#. Trust-Region (Levenberg-Marquardt and Dogleg) and Line Search   (Nonlinear CG and L-BFGS) solvers.#. Variety of linear solvers.   a. Dense QR and Cholesky factorization (using `Eigen      <http://eigen.tuxfamily.org/index.php?title=Main_Page>`_) for      small problems.   b. Sparse Cholesky factorization (using `SuiteSparse      <http://www.cise.ufl.edu/research/sparse/SuiteSparse/>`_ and      `CXSparse <http://www.cise.ufl.edu/research/sparse/CSparse/>`_) for      large sparse problems.   c. Specialized solvers for bundle adjustment problems in computer      vision.   d. Iterative linear solvers with preconditioners for general sparse      and bundle adjustment problems.#. Portable: Runs on Linux, Windows, Mac OS X and Android.At Google, Ceres Solver has been used for solving a variety ofproblems in computer vision and machine learning. e.g., it is used toto estimate the pose of Street View cars, aircrafts, and satellites;to build 3D models for PhotoTours; to estimate satellite image sensorcharacteristics, and more.`Blender <http://www.blender.org>`_ uses Ceres for `motion tracking<http://mango.blender.org/development/planar-tracking-preview/>`_ and`bundle adjustment<http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.67/Motion_Tracker>`_... rubric:: Footnotes.. [#f1] For a gentle but brief introduction to non-linear least         squares problems, please start by reading the         :ref:`chapter-tutorial`... [#f2] While there is some debate as to who invented the method of         Least Squares [Stigler]_, there is no debate that it was         `Carl Friedrich Gauss         <http://en.wikipedia.org/wiki/Carl_Friedrich_Gauss>`_ who         brought it to the attention of the world. Using just 22         observations of the newly discovered asteroid `Ceres         <http://en.wikipedia.org/wiki/Ceres_(dwarf_planet)>`_, Gauss         used the method of least squares to correctly predict when         and where the asteroid will emerge from behind the Sun         [TenenbaumDirector]_. We named our solver after Ceres to         celebrate this seminal event in the history of astronomy,         statistics and optimization... [#f3] For brevity, in the rest of this document we will just use         the term Ceres.
 |