From 085cd4a6641c404334d17e5ea38f9e5b68a06ba7 Mon Sep 17 00:00:00 2001 From: Sameer Agarwal Date: Wed, 6 Feb 2013 14:31:07 -0800 Subject: [PATCH] Rewrite of the tutorial. 1. Quicker starting point. 2. Better discussion of derivatives. 3. Better hyperlinking to code and class documentation. 4. New robust estimation example. 5. Better naming of example code. 6. Removed dependency on gflags in all the core examples covered in the tutorial. Change-Id: Ibf3c7fe946fa2b4d22f8916a9366df267d34ca26 --- docs/source/fit.png | Bin 116826 -> 0 bytes docs/source/least_squares_fit.png | Bin 0 -> 52864 bytes docs/source/modeling.rst | 29 +- docs/source/non_robust_least_squares_fit.png | Bin 0 -> 55071 bytes docs/source/robust_least_squares_fit.png | Bin 0 -> 53412 bytes docs/source/tutorial.rst | 621 +++++++++++------- examples/CMakeLists.txt | 40 +- .../{data_fitting.cc => curve_fitting.cc} | 6 +- .../{quadratic_auto_diff.cc => helloworld.cc} | 24 +- ...adratic.cc => helloworld_analytic_diff.cc} | 37 +- ...ric_diff.cc => helloworld_numeric_diff.cc} | 29 +- examples/powell.cc | 14 +- examples/robust_curve_fitting.cc | 163 +++++ examples/simple_bundle_adjuster.cc | 18 +- 14 files changed, 634 insertions(+), 347 deletions(-) delete mode 100644 docs/source/fit.png create mode 100644 docs/source/least_squares_fit.png create mode 100644 docs/source/non_robust_least_squares_fit.png create mode 100644 docs/source/robust_least_squares_fit.png rename examples/{data_fitting.cc => curve_fitting.cc} (97%) rename examples/{quadratic_auto_diff.cc => helloworld.cc} (86%) rename examples/{quadratic.cc => helloworld_analytic_diff.cc} (75%) rename examples/{quadratic_numeric_diff.cc => helloworld_numeric_diff.cc} (84%) create mode 100644 examples/robust_curve_fitting.cc diff --git a/docs/source/fit.png b/docs/source/fit.png deleted file mode 100644 index b80e46b3723f80f3a5b078548050a2bc09af3d47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116826 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�VGC6;7BKvPI4(I*DF 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 N5|bA#d1mnL{{b%g-r4{F diff --git a/docs/source/least_squares_fit.png b/docs/source/least_squares_fit.png new file mode 100644 index 0000000000000000000000000000000000000000..7984b9bc5fd72495c43a7eea75be4f6c99c171ac GIT binary patch literal 52864 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 C<5hA1 literal 0 HcmV?d00001 diff --git a/docs/source/robust_least_squares_fit.png b/docs/source/robust_least_squares_fit.png new file mode 100644 index 0000000000000000000000000000000000000000..55279f370cf37501ffaf1aac449a55ee146de367 GIT binary patch literal 53412 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

PStxBa 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 b`1VfO{ay#Cxh^{Dg2+p&ye^S63;KTmX@W2p literal 0 HcmV?d00001 diff --git a/docs/source/tutorial.rst b/docs/source/tutorial.rst index 82e38f124..c85e98acc 100644 --- a/docs/source/tutorial.rst +++ b/docs/source/tutorial.rst @@ -1,23 +1,50 @@ +.. highlight:: c++ + +.. default-domain:: cpp + .. _chapter-tutorial: ======== Tutorial ======== +Ceres solves robustified non-linear least squares problems of the form -.. highlight:: c++ +.. math:: \frac{1}{2}\sum_{i=1} \rho_i\left(\left\|f_i\left(x_{i_1}, ... ,x_{i_k}\right)\right\|^2\right). + :label: ceresproblem -.. _section-hello-world: +The expression +:math:`\rho_i\left(\left\|f_i\left(x_{i_1},...,x_{i_k}\right)\right\|^2\right)` +is known as a ``ResidualBlock``, where :math:`f_i(\cdot)` is a +:class:`CostFunction` that depends on the parameter blocks +:math:`\left[x_{i_1},... , x_{i_k}\right]`. In most optimization +problems small groups of scalars occur together. For example the three +components of a translation vector and the four components of the +quaternion that define the pose of a camera. We refer to such a group +of small scalars as a ``ParameterBlock``. Of course a +``ParameterBlock`` can just be a single parameter. -Full working code for all the examples described in this chapter and -more can be found in the `example +:math:`\rho_i` is a :class:`LossFunction`. A :class:`LossFunction` is +a scalar function that is used to reduce the influence of outliers on +the solution of non-linear least squares problems. As a special case, +when :math:`\rho_i(x) = x`, i.e., the identity function, we get the +more familiar `non-linear least squares problem` `_ directory. +.. _section-hello-world: + Hello World! ============ -To get started, let us consider the problem of finding the minimum of -the function +To get started, consider the problem of finding the minimum of the +function .. math:: \frac{1}{2}(10 -x)^2. @@ -25,87 +52,77 @@ This is a trivial problem, whose minimum is located at :math:`x = 10`, but it is a good place to start to illustrate the basics of solving a problem with Ceres [#f1]_. -Let us write this problem as a non-linear least squares problem by -defining the scalar residual function :math:`f_1(x) = 10 - x`. Then -:math:`F(x) = [f_1(x)]` is a residual vector with exactly one -component. - -When solving a problem with Ceres, the first thing to do is to define -a subclass of :class:`CostFunction`. It is responsible for computing -the value of the residual function and its derivative (also known as -the Jacobian) with respect to :math:`x`. +The first step is to write a functor that will evaluate this the +function :math:`f(x) = 10 - x`: .. code-block:: c++ - class SimpleCostFunction : public ceres::SizedCostFunction<1, 1> { - public: - virtual ~SimpleCostFunction() {} - virtual bool Evaluate(double const* const* parameters, - double* residuals, - double** jacobians) const { - const double x = parameters[0][0]; - residuals[0] = 10 - x; + struct CostFunctor { + template + bool operator()(const T* const x, T* residual) const { + residual[0] = T(10.0) - x[0]; + return true; + } + }; - // Compute the Jacobian if asked for. - if (jacobians != NULL) { - jacobians[0][0] = -1; - } - return true; +The important thing to note here is that ``operator()`` is a templated +method, which assumes that all its inputs and outputs are of some type +``T``. The reason for using templates here is because Ceres will call +``CostFunctor::operator()``, with ``T=double`` when just the +residual is needed, and with a special type ``T=Jet`` when the +Jacobians are needed. In :ref:`section-derivatives` we discuss the +various ways of supplying derivatives to Ceres in more detail. + +Once we have a way of computing the residual function, it is now time +to construct a non-linear least squares problem using it and have +Ceres solve it. + +.. code-block:: c++ + + int main(int argc, char** argv) { + google::InitGoogleLogging(argv[0]); + + // The variable to solve for with its initial value. + double initial_x = 5.0; + double x = initial_x; + + // Build the problem. + Problem problem; + + // Set up the only cost function (also known as residual). This uses + // auto-differentiation to obtain the derivative (jacobian). + CostFunction* cost_function = + new AutoDiffCostFunction(new CostFunctor); + problem.AddResidualBlock(cost_function, NULL, &x); + + // Run the solver! + Solver::Options options; + options.linear_solver_type = ceres::DENSE_QR; + options.minimizer_progress_to_stdout = true; + Solver::Summary summary; + Solve(options, &problem, &summary); + + std::cout << summary.BriefReport() << "\n"; + std::cout << "x : " << initial_x + << " -> " << x << "\n"; + return 0; } - }; +:class:`AutoDiffCostFunction` takes a ``CostFunctor`` as input, +automatically differentiates it and gives it a :class:`CostFunction` +interface. -``SimpleCostFunction`` is provided with an input array of -``parameters``, an output array for ``residuals`` and an optional -output array for ``jacobians``. In our example, there is just one -parameter and one residual and this is known at compile time, -therefore we can save some code and instead of inheriting from -:class:`CostFunction`, we can instead inherit from the templated -:class:`SizedCostFunction` class. - - -The ``jacobians`` array is optional, ``Evaluate`` is expected to check -when it is non-null, and if it is the case then fill it with the -values of the derivative of the residual function. In this case since -the residual function is linear, the Jacobian is constant. - -Once we have a way of computing the residual vector, it is now time to -construct a non-linear least squares problem using it and have Ceres -solve it. - -.. code-block:: c++ - - int main(int argc, char** argv) { - double x = 5.0; - ceres::Problem problem; - - // The problem object takes ownership of the newly allocated - // SimpleCostFunction and uses it to optimize the value of x. - problem.AddResidualBlock(new SimpleCostFunction, NULL, &x); - - // Run the solver! - Solver::Options options; - options.max_num_iterations = 10; - options.linear_solver_type = ceres::DENSE_QR; - options.minimizer_progress_to_stdout = true; - Solver::Summary summary; - Solve(options, &problem, &summary); - std::cout << summary.BriefReport() << "\n"; - std::cout << "x : 5.0 -> " << x << "\n"; - return 0; - } - - -Compiling and running the program gives us +Compiling and running `examples/helloworld.cc +`_ +gives us .. code-block:: bash - 0: f: 1.250000e+01 d: 0.00e+00 g: 5.00e+00 h: 0.00e+00 rho: 0.00e+00 mu: 1.00e+04 li: 0 it: 0.00e+00 tt: 0.00e+00 - 1: f: 1.249750e-07 d: 1.25e+01 g: 5.00e-04 h: 5.00e+00 rho: 1.00e+00 mu: 3.00e+04 li: 1 it: 0.00e+00 tt: 0.00e+00 - 2: f: 1.388518e-16 d: 1.25e-07 g: 1.67e-08 h: 5.00e-04 rho: 1.00e+00 mu: 9.00e+04 li: 1 it: 0.00e+00 tt: 0.00e+00 - Ceres Solver Report: Iterations: 2, Initial cost: 1.250000e+01, Final cost: 1.388518e-16, Termination: PARAMETER_TOLERANCE. - x : 5.0 -> 10 - + 0: f: 1.250000e+01 d: 0.00e+00 g: 5.00e+00 h: 0.00e+00 rho: 0.00e+00 mu: 1.00e+04 li: 0 it: 6.91e-06 tt: 1.91e-03 + 1: f: 1.249750e-07 d: 1.25e+01 g: 5.00e-04 h: 5.00e+00 rho: 1.00e+00 mu: 3.00e+04 li: 1 it: 2.81e-05 tt: 1.99e-03 + 2: f: 1.388518e-16 d: 1.25e-07 g: 1.67e-08 h: 5.00e-04 rho: 1.00e+00 mu: 9.00e+04 li: 1 it: 1.00e-05 tt: 2.01e-03 + Ceres Solver Report: Iterations: 2, Initial cost: 1.250000e+01, Final cost: 1.388518e-16, Termination: PARAMETER_TOLERANCE. + x : 5 -> 10 Starting from a :math:`x=5`, the solver in two iterations goes to 10 [#f2]_. The careful reader will note that this is a linear problem and @@ -120,9 +137,8 @@ and parameter settings for Ceres. .. rubric:: Footnotes -.. [#f1] Full working code for this example can found in - `examples/quadratic.cc - `_ +.. [#f1] `examples/helloworld.cc + `_ .. [#f2] Actually the solver ran for three iterations, and it was by looking at the value returned by the linear solver in the third @@ -132,6 +148,133 @@ and parameter settings for Ceres. convergence, which is why you only see two iterations here and not three. +.. _section-derivatives: + + +Derivatives +=========== + +Ceres Solver like most optimization packages, depends on being able to +evaluate the value and the derivatives of each term in the objective +function at arbitrary parameter values. Doing so correctly and +efficiently is essential to getting good results. Ceres Solver +provides a number of ways of doing so. You have already seen one of +them in action -- +Automatic Differentiation in `examples/helloworld.cc +`_ + +We now consider the other two possibilities. Analytic and numeric +derivatives. + + +Numeric Derivatives +------------------- + +In some cases, its not possible to define a templated cost functor, +for example when the evaluation of the residual involves a call to a +library function that you do not have control over. In such a +situation, numerical differentiation can be used. The user defines a +functor which computes the residual value and construct a +:class:`NumericDiffCostFunction` using it. e.g., for :math:`f(x) = 10 - x` +the corresponding functor would be + +.. code-block:: c++ + + struct NumericDiffCostFunctor { + bool operator()(const double* const x, double* residual) const { + residual[0] = 10.0 - x[0]; + return true; + } + }; + +Which is added to the :class:`Problem` as: + +.. code-block:: c++ + + CostFunction* cost_function = + new NumericDiffCostFunction( + new NumericDiffCostFunctor) + problem.AddResidualBlock(cost_function, NULL, &x); + +Notice the parallel from when we were using automatic differentiation + +.. code-block:: c++ + + CostFunction* cost_function = + new AutoDiffCostFunction(new CostFunctor); + problem.AddResidualBlock(cost_function, NULL, &x); + +The construction looks almost identical to the used for automatic +differentiation, except for an extra template parameter that indicates +the kind of finite differencing scheme to be used for computing the +numerical derivatives [#f3]_. For more details see the documentation +for :class:`NumericDiffCostFunction`. + +**Generally speaking we recommend automatic differentiation instead of +numeric differentiation. The use of C++ templates makes automatic +differentiation efficient, whereas numeric differentiation is +expensive, prone to numeric errors, and leads to slower convergence.** + + +Analytic Derivatives +-------------------- + +In some cases, using automatic differentiation is not possible. For +example, Ceres currently does not support automatic differentiation of +functors with dynamically sized parameter blocks. Or it may be the +case that it is more efficient to compute the derivatives in closed +form instead of relying on the chain rule used by the automatic +differentition code. + +In such cases, it is possible to supply your own residual and jacobian +computation code. To do this, define a subclass of +:class:`CostFunction` or :class:`SizedCostFunction` if you know the +sizes of the parameters and residuals at compile time. Here for +example is ``SimpleCostFunction`` that implements :math:`f(x) = 10 - +x`. + +.. code-block:: c++ + + class QuadraticCostFunction : public ceres::SizedCostFunction<1, 1> { + public: + virtual ~QuadraticCostFunction() {} + virtual bool Evaluate(double const* const* parameters, + double* residuals, + double** jacobians) const { + const double x = parameters[0][0]; + residuals[0] = 10 - x; + + // Compute the Jacobian if asked for. + if (jacobians != NULL) { + jacobians[0][0] = -1; + } + return true; + } + }; + + +``SimpleCostFunction::Evaluate`` is provided with an input array of +``parameters``, an output array ``residuals`` for residuals and an +output array ``jacobians`` for Jacobians. The ``jacobians`` array is +optional, ``Evaluate`` is expected to check when it is non-null, and +if it is the case then fill it with the values of the derivative of +the residual function. In this case since the residual function is +linear, the Jacobian is constant [#f4]_ . + +As can be seen from the above code fragments, implementing +:class:`CostFunction` objects is a bit tedious. We recommend that +unless you have a good reason to manage the jacobian computation +yourself, you use :class:`AutoDiffCostFunction` or +:class:`NumericDiffCostFunction` to construct your residual blocks. + +.. rubric:: Footnotes + +.. [#f3] `examples/helloworld_numeric_diff.cc + `_. + +.. [#f4] `examples/helloworld_analytic_diff.cc + `_. + .. _section-powell: @@ -142,6 +285,7 @@ Consider now a slightly more complicated example -- the minimization of Powell's function. Let :math:`x = \left[x_1, x_2, x_3, x_4 \right]` and + .. math:: \begin{align} @@ -149,103 +293,59 @@ and f_2(x) &= \sqrt{5} (x_3 - x_4)\\ f_3(x) &= (x_2 - 2x_3)^2\\ f_4(x) &= \sqrt{10} (x_1 - x_4)^2\\ - F(x) & = \left[f_1(x),\ f_2(x),\ f_3(x),\ f_4(x) \right] + F(x) &= \left[f_1(x),\ f_2(x),\ f_3(x),\ f_4(x) \right] \end{align} -:math:`F(x)` is a function of four parameters, and has four -residuals. Now, one way to solve this problem would be to define four -CostFunction objects that compute the residual and Jacobians. e.g. the -following code shows the implementation for :math:`f_4(x)`. +:math:`F(x)` is a function of four parameters, has four residuals +and we wish to find :math:`x` such that :math:`\frac{1}{2}\|F(x)\|^2` +is minimized. + +Again, the first step is to define functors that evaluate of the terms +in the objective functor. Here is the code for evaluating +:math:`f_4(x_1, x_4)`: .. code-block:: c++ - class F4 : public ceres::SizedCostFunction<1, 4> { - public: - virtual ~F4() {} - virtual bool Evaluate(double const* const* parameters, - double* residuals, - double** jacobians) const { - double x1 = parameters[0][0]; - double x4 = parameters[0][3]; - - residuals[0] = sqrt(10.0) * (x1 - x4) * (x1 - x4) - - if (jacobians != NULL && jacobians[0] != NULL) { - jacobians[0][0] = 2.0 * sqrt(10.0) * (x1 - x4); - jacobians[0][1] = 0.0; - jacobians[0][2] = 0.0; - jacobians[0][3] = -2.0 * sqrt(10.0) * (x1 - x4); - } - return true; - } - }; - - -But this can get painful very quickly, especially for residuals -involving complicated multi-variate terms. Ceres provides two ways -around this problem. Numeric and automatic symbolic differentiation. - -Automatic Differentiation -------------------------- - -With its automatic differentiation support, Ceres allows you to define -templated objects/functors that will compute the ``residual`` and it -takes care of computing the Jacobians as needed and filling the -``jacobians`` arrays with them. For example, for :math:`f_4(x)` we -define - -.. code-block:: c++ - - class F4 { - public: - template bool operator()(const T* const x1, - const T* const x4, - T* residual) const { + struct F4 { + template + bool operator()(const T* const x1, const T* const x4, T* residual) const { residual[0] = T(sqrt(10.0)) * (x1[0] - x4[0]) * (x1[0] - x4[0]); return true; } }; -The important thing to note here is that ``operator()`` is a templated -method, which assumes that all its inputs and outputs are of some type -``T``. The reason for using templates here is because Ceres will call -``F4::operator()``, with ``T=double`` when just the residual is -needed, and with a special type ``T=Jet`` when the Jacobians are -needed. - -Note also that the parameters are not packed -into a single array, they are instead passed as separate arguments to -``operator()``. Similarly we can define classes ``F1``, ``F2`` -and ``F4``. Then let us consider the construction and solution -of the problem. For brevity we only describe the relevant bits of -code [#f3]_. +Similarly, we can define classes ``F1``, ``F2`` and ``F4`` to evaluate +:math:`f_1(x_1, x_2)`, :math:`f_2(x_3, x_4)` and :math:`f_3(x_2, x_3)` +respectively. Using these, the problem can be constructed as follows: .. code-block:: c++ - double x1 = 3.0; double x2 = -1.0; double x3 = 0.0; double x4 = 1.0; + double x1 = 3.0; double x2 = -1.0; double x3 = 0.0; double x4 = 1.0; + + Problem problem; + // Add residual terms to the problem using the using the autodiff // wrapper to get the derivatives automatically. problem.AddResidualBlock( - new ceres::AutoDiffCostFunction(new F1), NULL, &x1, &x2); + new AutoDiffCostFunction(new F1), NULL, &x1, &x2); problem.AddResidualBlock( - new ceres::AutoDiffCostFunction(new F2), NULL, &x3, &x4); + new AutoDiffCostFunction(new F2), NULL, &x3, &x4); problem.AddResidualBlock( - new ceres::AutoDiffCostFunction(new F3), NULL, &x2, &x3) + new AutoDiffCostFunction(new F3), NULL, &x2, &x3) problem.AddResidualBlock( - new ceres::AutoDiffCostFunction(new F4), NULL, &x1, &x4); + new AutoDiffCostFunction(new F4), NULL, &x1, &x4); -A few things are worth noting in the code above. First, the object -being added to the ``Problem`` is an ``AutoDiffCostFunction`` with -``F1``, ``F2``, ``F3`` and ``F4`` as template parameters. Second, each -``ResidualBlock`` only depends on the two parameters that the -corresponding residual object depends on and not on all four +Note that each ``ResidualBlock`` only depends on the two parameters +that the corresponding residual object depends on and not on all four parameters. -Compiling and running ``powell.cc`` gives us: +Compiling and running `examples/powell.cc +`_ +gives us: .. code-block:: bash @@ -270,55 +370,12 @@ It is easy to see that the optimal solution to this problem is at :math:`0`. In 10 iterations, Ceres finds a solution with an objective function value of :math:`4\times 10^{-12}`. -Numeric Differentiation ------------------------ - -In some cases, its not possible to define a templated cost functor. In -such a situation, numerical differentiation can be used. The user -defines a functor which computes the residual value and construct a -``NumericDiffCostFunction`` using it. e.g., for ``F4``, the -corresponding functor would be - -.. code-block:: c++ - - class F4 { - public: - bool operator()(const double* const x1, - const double* const x4, - double* residual) const { - residual[0] = sqrt(10.0) * (x1[0] - x4[0]) * (x1[0] - x4[0]); - return true; - } - }; - - -Which can then be wrapped ``NumericDiffCostFunction`` and added to the -``Problem`` as follows - -.. code-block:: c++ - - problem.AddResidualBlock( - new ceres::NumericDiffCostFunction(new F4), NULL, &x1, &x4); - - -The construction looks almost identical to the used for automatic -differentiation, except for an extra template parameter that indicates -the kind of finite differencing scheme to be used for computing the -numerical derivatives. ``examples/quadratic_numeric_diff.cc`` shows a -numerically differentiated implementation of -``examples/quadratic.cc``. - -**We recommend automatic differentiation if possible. The use of C++ -templates makes automatic differentiation extremely efficient, whereas -numeric differentiation can be quite expensive, prone to numeric -errors and leads to slower convergence.** - .. rubric:: Footnotes -.. [#f3] The full source code for this example can be found in -.. `examples/powell.cc -.. `_. +.. [#f5] `examples/powell.cc + `_. + .. _section-fitting: @@ -329,7 +386,7 @@ The examples we have seen until now are simple optimization problems with no data. The original purpose of least squares and non-linear least squares analysis was fitting curves to data. It is only appropriate that we now consider an example of such a problem -[#f4]_. It contains data generated by sampling the curve :math:`y = +[#f6]_. It contains data generated by sampling the curve :math:`y = e^{0.3x + 0.1}` and adding Gaussian noise with standard deviation :math:`\sigma = 0.2`. Let us fit some data to the curve @@ -340,14 +397,12 @@ residual. There will be a residual for each observation. .. code-block:: c++ - class ExponentialResidual { - public: + struct ExponentialResidual { ExponentialResidual(double x, double y) : x_(x), y_(y) {} - template bool operator()(const T* const m, - const T* const c, - T* residual) const { + template + bool operator()(const T* const m, const T* const c, T* residual) const { residual[0] = T(y_) - exp(m[0] * T(x_) + c[0]); return true; } @@ -358,9 +413,9 @@ residual. There will be a residual for each observation. const double y_; }; -Assuming the observations are in a :math:`2n` sized array called ``data`` -the problem construction is a simple matter of creating a -``CostFunction`` for every observation. +Assuming the observations are in a :math:`2n` sized array called +``data`` the problem construction is a simple matter of creating a +:class:`CostFunction` for every observation. .. code-block:: c++ @@ -370,14 +425,15 @@ the problem construction is a simple matter of creating a Problem problem; for (int i = 0; i < kNumObservations; ++i) { - problem.AddResidualBlock( - new AutoDiffCostFunction( - new ExponentialResidual(data[2 * i], data[2 * i + 1])), - NULL, - &m, &c); + CostFunction* cost_function = + new AutoDiffCostFunction( + new ExponentialResidual(data[2 * i], data[2 * i + 1])); + problem.AddResidualBlock(cost_function, NULL, &m, &c); } -Compiling and running ``data_fitting.cc`` gives us: +Compiling and running `examples/curve_fitting.cc +`_ +gives us: .. code-block:: bash @@ -410,27 +466,73 @@ see such deviations. Indeed, if you were to evaluate the objective function for :math:`m=0.3, c=0.1`, the fit is worse with an objective function value of :math:`1.082425`. The figure below illustrates the fit. -.. figure:: fit.png +.. figure:: least_squares_fit.png :figwidth: 500px :height: 400px :align: center - Least squares data fitting to the curve :math:`y = e^{0.3x + - 0.1}`. Observations were generated by sampling this curve uniformly - in the interval :math:`x=(0,5)` and adding Gaussian noise with - :math:`\sigma = 0.2`. + Least squares curve fitting. + .. rubric:: Footnotes -.. [#f4] The full source code for this example can be found in ``examples/data_fitting.cc``. +.. [#f6] `examples/curve_fitting.cc + `_ + + +Robust Curve Fitting +===================== + +Now suppose the data we are given has some outliers, i.e., we have +some points that do not obey the noise model. If we were to use the +code above to fit such data, we would get a fit that looks as +below. Notice how the fitted curve deviates from the ground truth. + +.. figure:: non_robust_least_squares_fit.png + :figwidth: 500px + :height: 400px + :align: center + +To deal with outliers, a standard technique is to use a +:class:`LossFunction`. Loss functions, reduce the influence of +residual blocks with high residuals, usually the ones corresponding to +outliers. To associate a loss function in a residual block, we change + +.. code-block:: c++ + + problem.AddResidualBlock(cost_function, NULL , &m, &c); + +to + +.. code-block:: c++ + + problem.AddResidualBlock(cost_function, new CauchyLoss(0.5) , &m, &c); + +:class:`CauchyLoss` is one of the loss functions that ships with Ceres +Solver. The argument :math:`0.5` specifies the scale of the loss +function. As a result, we get the fit below [#f7]_. Notice how the +fitted curve moves back closer to the ground truth curve. + +.. figure:: robust_least_squares_fit.png + :figwidth: 500px + :height: 400px + :align: center + + Using :class:`LossFunction` to reduce the effect of outliers on a + least squares fit. + + +.. rubric:: Footnotes + +.. [#f7] `examples/robust_curve_fitting.cc + `_ Bundle Adjustment ================= One of the main reasons for writing Ceres was our need to solve large -scale bundle adjustment -problems [HartleyZisserman]_, [Triggs]_. +scale bundle adjustment problems [HartleyZisserman]_, [Triggs]_. Given a set of measured image feature locations and correspondences, the goal of bundle adjustment is to find 3D point positions and camera @@ -441,27 +543,28 @@ the observed feature location and the projection of the corresponding 3D point on the image plane of the camera. Ceres has extensive support for solving bundle adjustment problems. -Let us consider the solution of a problem from the `BAL `_ dataset [#f5]_. +Let us solve a problem from the `BAL +`_ dataset [#f8]_. The first step as usual is to define a templated functor that computes the reprojection error/residual. The structure of the functor is similar to the ``ExponentialResidual``, in that there is an instance of this object responsible for each image observation. - Each residual in a BAL problem depends on a three dimensional point and a nine parameter camera. The nine parameters defining the camera can are: Three for rotation as a Rodriquez axis-angle vector, three for translation, one for focal length and two for radial distortion. -The details of this camera model can be found on Noah Snavely's -`Bundler homepage `_ -and the `BAL homepage `_. +The details of this camera model can be found the `Bundler homepage +`_ and the `BAL homepage +`_. .. code-block:: c++ struct SnavelyReprojectionError { SnavelyReprojectionError(double observed_x, double observed_y) : observed_x(observed_x), observed_y(observed_y) {} + template bool operator()(const T* const camera, const T* const point, @@ -494,15 +597,24 @@ and the `BAL homepage `_. residuals[1] = predicted_y - T(observed_y); return true; } + + // Factory to hide the construction of the CostFunction object from + // the client code. + static ceres::CostFunction* Create(const double observed_x, + const double observed_y) { + return (new ceres::AutoDiffCostFunction( + new SnavelyReprojectionError(observed_x, observed_y))); + } + double observed_x; double observed_y; - } ; + }; -Note that unlike the examples before this is a non-trivial function +Note that unlike the examples before, this is a non-trivial function and computing its analytic Jacobian is a bit of a pain. Automatic -differentiation makes our life very simple here. The function -``AngleAxisRotatePoint`` and other functions for manipulating +differentiation makes life much simpler. The function +:func:`AngleAxisRotatePoint` and other functions for manipulating rotations can be found in ``include/ceres/rotation.h``. Given this functor, the bundle adjustment problem can be constructed @@ -510,13 +622,8 @@ as follows: .. code-block:: c++ - // Create residuals for each observation in the bundle adjustment problem. The - // parameters for cameras and points are added automatically. ceres::Problem problem; for (int i = 0; i < bal_problem.num_observations(); ++i) { - // Each Residual block takes a point and a camera as input and outputs a 2 - // dimensional residual. Internally, the cost function stores the observed - // image location and compares the reprojection against the observation. ceres::CostFunction* cost_function = new ceres::AutoDiffCostFunction( new SnavelyReprojectionError( @@ -529,17 +636,19 @@ as follows: } -Again note that that the problem construction for bundle adjustment is -very similar to the curve fitting example. +Notice that the problem construction for bundle adjustment is very +similar to the curve fitting example -- one term is added to the +objective function per observation. -One way to solve this problem is to set -``Solver::Options::linear_solver_type`` to -``SPARSE_NORMAL_CHOLESKY`` and call ``Solve``. And while -this is a reasonable thing to do, bundle adjustment problems have a -special sparsity structure that can be exploited to solve them much -more efficiently. Ceres provides three specialized solvers -(collectively known as Schur-based solvers) for this task. The example -code uses the simplest of them ``DENSE_SCHUR``. +Since this large sparse problem (well large for ``DENSE_QR`` anyways), +one way to solve this problem is to set +:member:`Solver::Options::linear_solver_type` to +``SPARSE_NORMAL_CHOLESKY`` and call :member:`Solve`. And while this is +a reasonable thing to do, bundle adjustment problems have a special +sparsity structure that can be exploited to solve them much more +efficiently. Ceres provides three specialized solvers (collectively +known as Schur-based solvers) for this task. The example code uses the +simplest of them ``DENSE_SCHUR``. .. code-block:: c++ @@ -550,15 +659,17 @@ code uses the simplest of them ``DENSE_SCHUR``. ceres::Solve(options, &problem, &summary); std::cout << summary.FullReport() << "\n"; - For a more sophisticated bundle adjustment example which demonstrates the use of Ceres' more advanced features including its various linear solvers, robust loss functions and local parameterizations see -``examples/bundle_adjuster.cc``. +`examples/bundle_adjuster.cc +`_ + .. rubric:: Footnotes -.. [#f5] The full source code for this example can be found in ``examples/simple_bundle_adjuster.cc``. +.. [#f8] `examples/simple_bundle_adjuster.cc + `_ Other Examples @@ -568,21 +679,25 @@ Besides the examples in this chapter, the `example `_ directory contains a number of other examples: +#. `bundle_adjuster.cc + `_ + shows how to use the various features of Ceres to solve bundle + adjustment problems. + #. `circle_fit.cc `_ shows how to fit data to a circle. -#. `nist.cc - `_ - implements and attempts to solves the `NIST - `_ - non-linear regression problems. - #. `denoising.cc `_ implements image denoising using the `Fields of Experts `_ model. +#. `nist.cc + `_ + implements and attempts to solves the `NIST + `_ + non-linear regression problems. diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 2307a0334..94132bebf 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -28,28 +28,35 @@ # # Author: keir@google.com (Keir Mierle) -IF (${GFLAGS}) - ADD_EXECUTABLE(quadratic quadratic.cc) - TARGET_LINK_LIBRARIES(quadratic ceres) +ADD_EXECUTABLE(helloworld helloworld.cc) +TARGET_LINK_LIBRARIES(helloworld ceres) +ADD_EXECUTABLE(helloworld_numeric_diff helloworld_numeric_diff.cc) +TARGET_LINK_LIBRARIES(helloworld_numeric_diff ceres) + +ADD_EXECUTABLE(helloworld_analytic_diff helloworld_analytic_diff.cc) +TARGET_LINK_LIBRARIES(helloworld_analytic_diff ceres) + +ADD_EXECUTABLE(powell powell.cc) +TARGET_LINK_LIBRARIES(powell ceres) + +ADD_EXECUTABLE(curve_fitting curve_fitting.cc) +TARGET_LINK_LIBRARIES(curve_fitting ceres) + +ADD_EXECUTABLE(robust_curve_fitting robust_curve_fitting.cc) +TARGET_LINK_LIBRARIES(robust_curve_fitting ceres) + +ADD_EXECUTABLE(simple_bundle_adjuster + simple_bundle_adjuster.cc) +TARGET_LINK_LIBRARIES(simple_bundle_adjuster ceres) + +IF (${GFLAGS}) ADD_EXECUTABLE(nist nist.cc) TARGET_LINK_LIBRARIES(nist ceres) - ADD_EXECUTABLE(quadratic_auto_diff quadratic_auto_diff.cc) - TARGET_LINK_LIBRARIES(quadratic_auto_diff ceres) - - ADD_EXECUTABLE(quadratic_numeric_diff quadratic_numeric_diff.cc) - TARGET_LINK_LIBRARIES(quadratic_numeric_diff ceres) - - ADD_EXECUTABLE(powell powell.cc) - TARGET_LINK_LIBRARIES(powell ceres) - ADD_EXECUTABLE(circle_fit circle_fit.cc) TARGET_LINK_LIBRARIES(circle_fit ceres) - ADD_EXECUTABLE(data_fitting data_fitting.cc) - TARGET_LINK_LIBRARIES(data_fitting ceres) - ADD_EXECUTABLE(bundle_adjuster bundle_adjuster.cc bal_problem.cc) @@ -61,6 +68,3 @@ IF (${GFLAGS}) TARGET_LINK_LIBRARIES(denoising ceres) ENDIF (${GFLAGS}) -ADD_EXECUTABLE(simple_bundle_adjuster - simple_bundle_adjuster.cc) -TARGET_LINK_LIBRARIES(simple_bundle_adjuster ceres) diff --git a/examples/data_fitting.cc b/examples/curve_fitting.cc similarity index 97% rename from examples/data_fitting.cc rename to examples/curve_fitting.cc index 5d5412364..e77e177ef 100644 --- a/examples/data_fitting.cc +++ b/examples/curve_fitting.cc @@ -28,8 +28,8 @@ // // Author: sameeragarwal@google.com (Sameer Agarwal) +#include #include "ceres/ceres.h" -#include "gflags/gflags.h" using ceres::AutoDiffCostFunction; using ceres::CostFunction; @@ -118,8 +118,7 @@ const double data[] = { 4.950000e+00, 4.669206e+00, }; -class ExponentialResidual { - public: +struct ExponentialResidual { ExponentialResidual(double x, double y) : x_(x), y_(y) {} @@ -136,7 +135,6 @@ class ExponentialResidual { }; int main(int argc, char** argv) { - google::ParseCommandLineFlags(&argc, &argv, true); google::InitGoogleLogging(argv[0]); double m = 0.0; diff --git a/examples/quadratic_auto_diff.cc b/examples/helloworld.cc similarity index 86% rename from examples/quadratic_auto_diff.cc rename to examples/helloworld.cc index 1e2f3ef9e..63419183e 100644 --- a/examples/quadratic_auto_diff.cc +++ b/examples/helloworld.cc @@ -33,9 +33,7 @@ // Minimize 0.5 (10 - x)^2 using jacobian matrix computed using // automatic differentiation. -#include #include "ceres/ceres.h" -#include "gflags/gflags.h" #include "glog/logging.h" using ceres::AutoDiffCostFunction; @@ -48,8 +46,7 @@ using ceres::Solve; // x. The method operator() is templated so that we can then use an // automatic differentiation wrapper around it to generate its // derivatives. -class QuadraticCostFunctor { - public: +struct CostFunctor { template bool operator()(const T* const x, T* residual) const { residual[0] = T(10.0) - x[0]; return true; @@ -57,31 +54,28 @@ class QuadraticCostFunctor { }; int main(int argc, char** argv) { - google::ParseCommandLineFlags(&argc, &argv, true); google::InitGoogleLogging(argv[0]); - // The variable to solve for with its initial value. - double initial_x = 5.0; - double x = initial_x; + // The variable to solve for with its initial value. It will be + // mutated in place by the solver. + double x = 0.5; + const double initial_x = x; // Build the problem. Problem problem; // Set up the only cost function (also known as residual). This uses // auto-differentiation to obtain the derivative (jacobian). - problem.AddResidualBlock( - new AutoDiffCostFunction( - new QuadraticCostFunctor), - NULL, - &x); + CostFunction* cost_function = + new AutoDiffCostFunction(new CostFunctor); + problem.AddResidualBlock(cost_function, NULL, &x); // Run the solver! Solver::Options options; - options.max_num_iterations = 10; - options.linear_solver_type = ceres::DENSE_QR; options.minimizer_progress_to_stdout = true; Solver::Summary summary; Solve(options, &problem, &summary); + std::cout << summary.BriefReport() << "\n"; std::cout << "x : " << initial_x << " -> " << x << "\n"; diff --git a/examples/quadratic.cc b/examples/helloworld_analytic_diff.cc similarity index 75% rename from examples/quadratic.cc rename to examples/helloworld_analytic_diff.cc index 8527af3d8..bff480413 100644 --- a/examples/quadratic.cc +++ b/examples/helloworld_analytic_diff.cc @@ -34,19 +34,22 @@ #include #include "ceres/ceres.h" -#include "gflags/gflags.h" #include "glog/logging.h" +using ceres::CostFunction; using ceres::SizedCostFunction; using ceres::Problem; using ceres::Solver; using ceres::Solve; -class SimpleCostFunction +// A CostFunction implementing analytically derivatives for the +// function f(x) = 10 - x. +class QuadraticCostFunction : public SizedCostFunction<1 /* number of residuals */, 1 /* size of first parameter */> { public: - virtual ~SimpleCostFunction() {} + virtual ~QuadraticCostFunction() {} + virtual bool Evaluate(double const* const* parameters, double* residuals, double** jacobians) const { @@ -58,33 +61,47 @@ class SimpleCostFunction // f'(x) = -1. Since there's only 1 parameter and that parameter // has 1 dimension, there is only 1 element to fill in the // jacobians. + // + // Since the Evaluate function can be called with the jacobians + // pointer equal to NULL, the Evaluate function must check to see + // if jacobians need to be computed. + // + // For this simple problem it is overkill to check if jacobians[0] + // is NULL, but in general when writing more complex + // CostFunctions, it is possible that Ceres may only demand the + // derivatives w.r.t. a subset of the parameter blocks. if (jacobians != NULL && jacobians[0] != NULL) { jacobians[0][0] = -1; } + return true; } }; int main(int argc, char** argv) { - google::ParseCommandLineFlags(&argc, &argv, true); google::InitGoogleLogging(argv[0]); - // The variable with its initial value that we will be solving for. - double x = 5.0; + // The variable to solve for with its initial value. It will be + // mutated in place by the solver. + double x = 0.5; + const double initial_x = x; // Build the problem. Problem problem; + // Set up the only cost function (also known as residual). - problem.AddResidualBlock(new SimpleCostFunction, NULL, &x); + CostFunction* cost_function = new QuadraticCostFunction; + problem.AddResidualBlock(cost_function, NULL, &x); // Run the solver! Solver::Options options; - options.max_num_iterations = 10; - options.linear_solver_type = ceres::DENSE_QR; options.minimizer_progress_to_stdout = true; Solver::Summary summary; Solve(options, &problem, &summary); + std::cout << summary.BriefReport() << "\n"; - std::cout << "x : 5.0 -> " << x << "\n"; + std::cout << "x : " << initial_x + << " -> " << x << "\n"; + return 0; } diff --git a/examples/quadratic_numeric_diff.cc b/examples/helloworld_numeric_diff.cc similarity index 84% rename from examples/quadratic_numeric_diff.cc rename to examples/helloworld_numeric_diff.cc index 108261647..026b155ec 100644 --- a/examples/quadratic_numeric_diff.cc +++ b/examples/helloworld_numeric_diff.cc @@ -31,9 +31,7 @@ // Minimize 0.5 (10 - x)^2 using jacobian matrix computed using // numeric differentiation. -#include #include "ceres/ceres.h" -#include "gflags/gflags.h" #include "glog/logging.h" using ceres::NumericDiffCostFunction; @@ -44,8 +42,7 @@ using ceres::Solver; using ceres::Solve; // A cost functor that implements the residual r = 10 - x. -class QuadraticCostFunctor { - public: +struct CostFunctor { bool operator()(const double* const x, double* residual) const { residual[0] = 10.0 - x[0]; return true; @@ -53,30 +50,28 @@ class QuadraticCostFunctor { }; int main(int argc, char** argv) { - google::ParseCommandLineFlags(&argc, &argv, true); google::InitGoogleLogging(argv[0]); - // The variable to solve for with its initial value. - double initial_x = 5.0; - double x = initial_x; - - // Set up the only cost function (also known as residual). This uses - // numeric differentiation to obtain the derivative (jacobian). - CostFunction* cost = - new NumericDiffCostFunction ( - new QuadraticCostFunctor); + // The variable to solve for with its initial value. It will be + // mutated in place by the solver. + double x = 0.5; + const double initial_x = x; // Build the problem. Problem problem; - problem.AddResidualBlock(cost, NULL, &x); + + // Set up the only cost function (also known as residual). This uses + // numeric differentiation to obtain the derivative (jacobian). + CostFunction* cost_function = + new NumericDiffCostFunction (new CostFunctor); + problem.AddResidualBlock(cost_function, NULL, &x); // Run the solver! Solver::Options options; - options.max_num_iterations = 10; - options.linear_solver_type = ceres::DENSE_QR; options.minimizer_progress_to_stdout = true; Solver::Summary summary; Solve(options, &problem, &summary); + std::cout << summary.BriefReport() << "\n"; std::cout << "x : " << initial_x << " -> " << x << "\n"; diff --git a/examples/powell.cc b/examples/powell.cc index 6cd3611ac..4a41728e3 100644 --- a/examples/powell.cc +++ b/examples/powell.cc @@ -46,7 +46,6 @@ #include #include "ceres/ceres.h" -#include "gflags/gflags.h" #include "glog/logging.h" using ceres::AutoDiffCostFunction; @@ -55,8 +54,7 @@ using ceres::Problem; using ceres::Solver; using ceres::Solve; -class F1 { - public: +struct F1 { template bool operator()(const T* const x1, const T* const x2, T* residual) const { @@ -66,8 +64,7 @@ class F1 { } }; -class F2 { - public: +struct F2 { template bool operator()(const T* const x3, const T* const x4, T* residual) const { @@ -77,8 +74,7 @@ class F2 { } }; -class F3 { - public: +struct F3 { template bool operator()(const T* const x2, const T* const x4, T* residual) const { @@ -88,8 +84,7 @@ class F3 { } }; -class F4 { - public: +struct F4 { template bool operator()(const T* const x1, const T* const x4, T* residual) const { @@ -100,7 +95,6 @@ class F4 { }; int main(int argc, char** argv) { - google::ParseCommandLineFlags(&argc, &argv, true); google::InitGoogleLogging(argv[0]); double x1 = 3.0; diff --git a/examples/robust_curve_fitting.cc b/examples/robust_curve_fitting.cc new file mode 100644 index 000000000..01cbbb29e --- /dev/null +++ b/examples/robust_curve_fitting.cc @@ -0,0 +1,163 @@ +// Ceres Solver - A fast non-linear least squares minimizer +// Copyright 2010, 2011, 2012 Google Inc. All rights reserved. +// http://code.google.com/p/ceres-solver/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// * Neither the name of Google Inc. nor the names of its contributors may be +// used to endorse or promote products derived from this software without +// specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// Author: sameeragarwal@google.com (Sameer Agarwal) + +#include +#include "ceres/ceres.h" + +// Data generated using the following octave code. +// randn('seed', 23497); +// m = 0.3; +// c = 0.1; +// x=[0:0.075:5]; +// y = exp(m * x + c); +// noise = randn(size(x)) * 0.2; +// outlier_noise = rand(size(x)) < 0.05; +// y_observed = y + noise + outlier_noise; +// data = [x', y_observed']; + +const int kNumObservations = 67; +const double data[] = { +0.000000e+00, 1.133898e+00, +7.500000e-02, 1.334902e+00, +1.500000e-01, 1.213546e+00, +2.250000e-01, 1.252016e+00, +3.000000e-01, 1.392265e+00, +3.750000e-01, 1.314458e+00, +4.500000e-01, 1.472541e+00, +5.250000e-01, 1.536218e+00, +6.000000e-01, 1.355679e+00, +6.750000e-01, 1.463566e+00, +7.500000e-01, 1.490201e+00, +8.250000e-01, 1.658699e+00, +9.000000e-01, 1.067574e+00, +9.750000e-01, 1.464629e+00, +1.050000e+00, 1.402653e+00, +1.125000e+00, 1.713141e+00, +1.200000e+00, 1.527021e+00, +1.275000e+00, 1.702632e+00, +1.350000e+00, 1.423899e+00, +1.425000e+00, 5.543078e+00, // Outlier point +1.500000e+00, 5.664015e+00, // Outlier point +1.575000e+00, 1.732484e+00, +1.650000e+00, 1.543296e+00, +1.725000e+00, 1.959523e+00, +1.800000e+00, 1.685132e+00, +1.875000e+00, 1.951791e+00, +1.950000e+00, 2.095346e+00, +2.025000e+00, 2.361460e+00, +2.100000e+00, 2.169119e+00, +2.175000e+00, 2.061745e+00, +2.250000e+00, 2.178641e+00, +2.325000e+00, 2.104346e+00, +2.400000e+00, 2.584470e+00, +2.475000e+00, 1.914158e+00, +2.550000e+00, 2.368375e+00, +2.625000e+00, 2.686125e+00, +2.700000e+00, 2.712395e+00, +2.775000e+00, 2.499511e+00, +2.850000e+00, 2.558897e+00, +2.925000e+00, 2.309154e+00, +3.000000e+00, 2.869503e+00, +3.075000e+00, 3.116645e+00, +3.150000e+00, 3.094907e+00, +3.225000e+00, 2.471759e+00, +3.300000e+00, 3.017131e+00, +3.375000e+00, 3.232381e+00, +3.450000e+00, 2.944596e+00, +3.525000e+00, 3.385343e+00, +3.600000e+00, 3.199826e+00, +3.675000e+00, 3.423039e+00, +3.750000e+00, 3.621552e+00, +3.825000e+00, 3.559255e+00, +3.900000e+00, 3.530713e+00, +3.975000e+00, 3.561766e+00, +4.050000e+00, 3.544574e+00, +4.125000e+00, 3.867945e+00, +4.200000e+00, 4.049776e+00, +4.275000e+00, 3.885601e+00, +4.350000e+00, 4.110505e+00, +4.425000e+00, 4.345320e+00, +4.500000e+00, 4.161241e+00, +4.575000e+00, 4.363407e+00, +4.650000e+00, 4.161576e+00, +4.725000e+00, 4.619728e+00, +4.800000e+00, 4.737410e+00, +4.875000e+00, 4.727863e+00, +4.950000e+00, 4.669206e+00 +}; + +using ceres::AutoDiffCostFunction; +using ceres::CostFunction; +using ceres::CauchyLoss; +using ceres::Problem; +using ceres::Solve; +using ceres::Solver; + +struct ExponentialResidual { + ExponentialResidual(double x, double y) + : x_(x), y_(y) {} + + template bool operator()(const T* const m, + const T* const c, + T* residual) const { + residual[0] = T(y_) - exp(m[0] * T(x_) + c[0]); + return true; + } + + private: + const double x_; + const double y_; +}; + +int main(int argc, char** argv) { + google::InitGoogleLogging(argv[0]); + + double m = 0.0; + double c = 0.0; + + Problem problem; + for (int i = 0; i < kNumObservations; ++i) { + CostFunction* cost_function = + new AutoDiffCostFunction( + new ExponentialResidual(data[2 * i], data[2 * i + 1])); + problem.AddResidualBlock(cost_function, NULL, &m, &c); + } + + Solver::Options options; + options.linear_solver_type = ceres::DENSE_QR; + options.minimizer_progress_to_stdout = true; + + Solver::Summary summary; + Solve(options, &problem, &summary); + std::cout << summary.BriefReport() << "\n"; + std::cout << "Initial m: " << 0.0 << " c: " << 0.0 << "\n"; + std::cout << "Final m: " << m << " c: " << c << "\n"; + return 0; +} diff --git a/examples/simple_bundle_adjuster.cc b/examples/simple_bundle_adjuster.cc index cc6f04adf..736d4a252 100644 --- a/examples/simple_bundle_adjuster.cc +++ b/examples/simple_bundle_adjuster.cc @@ -160,6 +160,14 @@ struct SnavelyReprojectionError { return true; } + // Factory to hide the construction of the CostFunction object from + // the client code. + static ceres::CostFunction* Create(const double observed_x, + const double observed_y) { + return (new ceres::AutoDiffCostFunction( + new SnavelyReprojectionError(observed_x, observed_y))); + } + double observed_x; double observed_y; }; @@ -177,6 +185,8 @@ int main(int argc, char** argv) { return 1; } + const double* observations = bal_problem.observations(); + // Create residuals for each observation in the bundle adjustment problem. The // parameters for cameras and points are added automatically. ceres::Problem problem; @@ -184,12 +194,10 @@ int main(int argc, char** argv) { // Each Residual block takes a point and a camera as input and outputs a 2 // dimensional residual. Internally, the cost function stores the observed // image location and compares the reprojection against the observation. - ceres::CostFunction* cost_function = - new ceres::AutoDiffCostFunction( - new SnavelyReprojectionError( - bal_problem.observations()[2 * i + 0], - bal_problem.observations()[2 * i + 1])); + ceres::CostFunction* cost_function = + SnavelyReprojectionError::Create(observations[2 * i + 0], + observations[2 * i + 1]); problem.AddResidualBlock(cost_function, NULL /* squared loss */, bal_problem.mutable_camera_for_observation(i),