This commit is contained in:
Keir Mierle
2012-05-07 04:34:10 -07:00
3 changed files with 9 additions and 5 deletions
+3 -3
View File
@@ -126,7 +126,7 @@ CostFunction* cost_function
Dimension of y -------------------+
\end{minted}
In this example, there is usually an instance for each measumerent of k.
In this example, there is usually an instance for each measurement of k.
In the instantiation above, the template parameters following
\texttt{MyScalarCostFunction}, \texttt{<1, 2, 2>} describe the functor as computing a
@@ -150,7 +150,7 @@ In the instantiation above, the template parameters following
To get a numerically differentiated cost function, define a subclass of
\texttt{CostFunction} such that the \texttt{Evaluate} function ignores the jacobian
parameter. The numeric differentiation wrapper will fill in the jacobians array
if nececssary by repeatedly calling the \texttt{Evaluate} method with
if necessary by repeatedly calling the \texttt{Evaluate} method with
small changes to the appropriate parameters, and computing the slope. For
performance, the numeric differentiation wrapper class is templated on the
concrete cost function, even though it could be implemented only in terms of
@@ -582,7 +582,7 @@ Note that this requires a version of Ceres built with protocol buffers.
The finite differencing is done along each dimension. The
reason to use a relative (rather than absolute) step size is
that this way, numeric differentation works for functions where
that this way, numeric differentiation works for functions where
the arguments are typically large (e.g. 1e9) and when the
values are small (e.g. 1e-5). It is possible to construct
"torture cases" which break this finite difference heuristic,
+5 -1
View File
@@ -11,9 +11,13 @@ Ceres relies on a number of open source libraries, some of which are optional. H
\item{\cmake~\footnote{\url{http://www.cmake.org/}}} is the cross-platform build system used by Ceres.
\item{\eigen~\footnote{\url{http://eigen.tuxfamily.org}}} is used for doing all the low level matrix and
linear algebra operations.
\item{\glog~\footnote{\url{http://code.google.com/p/google-glog}}} is used for error checking and logging.
Note: Ceres requires \texttt{glog}\ version 0.3.1 or later. Version 0.3 (which ships with Fedora 16) has a namespace bug which prevents Ceres from building.
\item{\gflags~\footnote{\url{http://code.google.com/p/gflags}}} is used by the code in
\texttt{examples}. It is not required to build the core Ceres library.
\texttt{examples}. It is also used by some of the tests. While technically it is not required to build the core library, we do not recommend building Ceres without it.
\item{\suitesparse~\footnote{\url{http://www.cise.ufl.edu/research/sparse/suitesparse/}}} is used for sparse matrix analysis,
ordering and factorization. In particular Ceres uses the
\amd, \colamd\ and \cholmod\ libraries. This is an optional
+1 -1
View File
@@ -179,7 +179,7 @@ the constraint that no two \texttt{e\_block} co-occur in a residual
block means that if we were to treat the sparsity structure of the
block matrix $H$ as a graph, then the set of \texttt{e\_block}s is an
independent set in this graph. The larger the number of
\texttt{e\_block}, the smaller is the size of the Schur complement $S$. Indeed the reason Schur based solvers are so efficient at solving bundle adjustment problems is because the numner of points in a bundle adjustment problem is usually an order of magnitude or two larger than the number of cameras.
\texttt{e\_block}, the smaller is the size of the Schur complement $S$. Indeed the reason Schur based solvers are so efficient at solving bundle adjustment problems is because the number of points in a bundle adjustment problem is usually an order of magnitude or two larger than the number of cameras.
Thus, the aim of the \texttt{SCHUR} ordering algorithm is to identify the largest independent set in the graph of $H$. Unfortunately this is an NP-Hard problem. But there is a greedy approximation algorithm that performs well~\cite{li2007miqr} and we use it to identify \texttt{e\_block}s in Ceres.