Beruflich Dokumente
Kultur Dokumente
Rainer Kummerle Giorgio Grisetti Hauke Strasdat Kurt Konolige Wolfram Burgard
Trajectory Trajectory
Abstract Many popular problems in robotics and computer Landmarks Landmarks
I. I NTRODUCTION
A wide range of problems in robotics as well as
in computer-vision involve the minimization of a non-
linear error function that can be represented as a graph.
Typical instances are simultaneous localization and map-
ping (SLAM) [19], [5], [22], [10], [16], [26] or bundle
adjustment (BA) [27], [15], [18]. The overall goal in these
(b)
problems is to find the configuration of parameters or state
variables that maximally explain a set of measurements Fig. 1. Real-world datasets processed with our system: The first row of
(a) shows the Victoria Park dataset which consists of 2D odometry and 2D
affected by Gaussian noise. For instance, in graph-based landmark measurements. The second row of (a) depicts a 3D pose graph of
SLAM the state variables can be either the positions of the a multi-level parking garage. While the left images shows the initial states,
robot in the environment or the location of the landmarks the right column depicts the respective result of the optimization process.
Full and zoomed view of the Venice bundle adjustment dataset after being
in the map that can be observed with the robots sensors. optimized by our system (b). The dataset consists of 871 camera poses and
Thereby, a measurement depends only on the relative loca- 2,838,740 projections.
tion of two state variables, e.g., an odometry measurement
provides acceptable results for most applications. However,
between two consecutive poses depends only on the con-
to achieve the maximum performance substantial efforts and
nected poses. Similarly, in BA or landmark-based SLAM a
domain knowledge are required.
measurement of a 3D point or landmark depends only on the
In this paper, we describe a general framework for per-
location of the observed point in the world and the position
forming the optimization of nonlinear least squares problems
of the sensor.
that can be represented as a graph. We call this framework
All these problems can be represented as a graph. Whereas
g2 o (for general graph optimization). Figure 1 gives an
each node of the graph represents a state variable to opti-
overview of the variety of problems that can be solved
mize, each edge between two variables represents a pairwise
by using g2 o as an optimization back-end. The proposed
observation of the two nodes it connects. In the literature,
system achieves a performance that is comparable with
many approaches have been proposed to address this class
implementations of state-of-the-art algorithms, while being
of problems. A naive implementation using standard meth-
able to accept general forms of nonlinear measurements. We
ods like Gauss-Newton, Levenberg-Marquardt (LM), Gauss-
achieve efficiency by utilizing algorithms that
Seidel relaxation, or variants of gradient descent typically
exploit the sparse connectivity of the graph,
This work has partly been supported by the European Commission under take advantage of the special structures of the graph that
FP7-231888-EUROPA, FP7-248873-RADHAR, and the European Research often occur in the problems mentioned above,
Council Starting Grant 210346.
R. Kummerle, G. Grisetti, and W. Burgard are with the University use advanced methods to solve sparse linear systems,
of Freiburg. G. Grisetti is also with Sapienza, University of Rome. H. and utilize the features of modern processors like SIMD
Strasdat is with the Department of Computing, Imperial College London. instructions and optimize the cache usage.
K. Konolige is with Willow Garage and a Consulting Professor at Stanford
University. Despite its efficiency, g2 o is highly general and extensible:
a 2D SLAM algorithm can be implemented in less than 30 x4 e24 x2 F(x) = e
12 12 e12
lines of C++ code. The user only has to specify the error + e
23 23 e23
...
function and its parameters. x1 e12 e23 + e
31 31 e31
In this paper, we apply g2 o to different classes of least + e
24 24 e24
squares optimization problems and compare its performance e31
x3 + ...
with different implementations of problem-specific algo-
rithms. We present evaluations carried out on a large set of Fig. 2. This example illustrates how to represent an objective function by
a graph.
real-world and simulated data-sets; in all experiments g2 o
offered a performance comparable with the state-of-the-art includes an implementation of a sparse PCG solver which
approaches and in several cases even outperformed them. applies a block-Jacobi pre-conditioner [13].
The remainder of this paper is organized as follows. We Morerecently, Dellaert and colleagues suggested a system
first discuss the related work with a particular emphasis on called SAM [5] which they implement using sparse direct
solutions to the problems of SLAM and bundle adjustment. linear solvers [4]. Kaess et al. [14] introduced a variant of
Subsequently, in Section III we characterize the graph- this called iSAM that is able to update the linear matrix
embeddable optimization problems that are addressed by associated with the nonlinear least-squares problem. Kono-
our system and discuss nonlinear least-squares via Gauss- lige et al. [16] showed how to construct the linear matrix
Newton or LM. In Section IV we then discuss the features efficiently by exploiting the typical sparse structure of the
provided by our implementation. Finally, in Section V, we linear system. However, the latter approach is restricted to
present an extensive experimental evaluation of g2 o and 2D pose graphs. In g2 o we share similar ideas with these
compare it to other state-of-the-art, problem-specific meth- systems. Our system can be applied to both SLAM and BA
ods. optimization problems in all their variants, e.g., 2D SLAM
with landmarks, BA using a monocular camera, or BA using
II. R ELATED W ORK
stereo vision. However, g2 o showed a substantially improved
In the past, the graph optimization problems have been performance compared these systems on all the data we used
studied intensively in the area of robotics and computer for evaluation purposes.
vision. One seminal work is that of Lu and Milios [19] In computer vision, Sparse Bundle Adjustment [27] is a
where the relative motion between two scans was measured nonlinear least-squares method that takes advantage of the
by scan-matching and the resulting graph was optimized by sparsity of the Jacobian pattern between points and camera
iterative linearization. While at that time, optimization of poses. Very recently, there have been several systems [15],
the graph was regarded as too time-consuming for realtime [13] that advance similar concepts of sparse linear solvers
performance, recent advancements in the development of and efficient calculation of the Schur reduction (see Section
direct linear solvers (e.g., [4]), graph-based SLAM has re- III-D) for large systems (100M sparse matrix elements).
gained popularity and a huge variety of different approaches There are also new systems based on nonlinear conjugate
to solve SLAM by graph optimization have been proposed. gradient that never form the linear system explicitly [1], [2];
For example, Howard et al. [12] apply relaxation to build a these converge more slowly, but can work with extremely
map. Duckett et al. [6] propose the usage of Gauss-Seidel large datasets (1000M matrix elements). In this paper we
relaxation to minimize the error in the network of constraints. compare g2 o to the SSBA system of [15], which is the best-
Frese et al. [8] introduced multi-level relaxation (MLR), a performing publicly available system to date.
variant of Gauss-Seidel relaxation that applies the relaxation
at different levels of resolution. Recently, Olson et al. [22]
III. N ONLINEAR G RAPH O PTIMIZATION USING
suggested a gradient descent approach to optimize pose
L EAST-S QUARES
graphs. Later, Grisetti et al. [10] extended this approach
by applying a tree-based parameterization that increases Many problems in robotics or in computer vision can be
the convergence speed. Both approaches are robust to the solved by finding the minimum of a function of this form:
initial guess and rather easy to implement. However, they X
assume that the covariance is roughly spherical and thus have F(x) = e(xi , xj , zij ) ij e(xi , xj , zij ) (1)
difficulties in optimizing pose-graphs where some constraints |
hi,jiC
{z }
Fij
have covariances with null spaces or substantial differences
in the eigenvalues. x = argmin F(x). (2)
x
Graph optimization can be viewed as a nonlinear least-
squares problem, which typically is solved by forming a Here, x = (x
1 , . . . , xn ) is a vector of parameters,
linear system around the current state, solving, and iterating. where each xi represents a generic parameter block, zij
One promising technique for solving the linear system is and ij represent respectively the mean and the information
preconditioned conjugate gradient (PCG), which was used matrix of a constraint relating the parameters xj and xi , and
by Konolige [17] as well as Montemerlo and Thrun [20] as e(xi , xj , zij ) is a vector error function that measures how
an efficient solver for large sparse pose constraint systems. well the parameter blocks xi and xj satisfy the constraint
Because of its high efficiency on certain problems, g2 o zij . It is 0 when xi and xj perfectly match the constraint.
For simplicity of notation, in the rest of this paper we will The LM algorithm introduces a damping factor and backup
encode the measurement in the indices of the error function: actions to Gauss-Newton to control the convergence. Instead
def. def. of solving Eq. 14, LM solves a damped version
e(xi , xj , zij ) = eij (xi , xj ) = eij (x). (3)
(H + I) x = b. (16)
Note that each error function, each parameter block, and
each error function can span a different space. A problem Here is a damping factor: the higher is the smaller the
in this form can be effectively represented by a directed x are. This is useful to control the step size in case of
graph. A node i of the graph represents the parameter block non-linear surfaces. The idea behind the LM algorithm is
xi and an edge between the nodes i and j represents an to dynamically control the damping factor. At each iteration
ordered constraint between the two parameter blocks xi and the error of the new configuration is monitored. If the new
xj . Figure 2 shows an example of mapping between a graph error is lower than the previous one, is decreased for the
and an objective function. next iteration. Otherwise, the solution is reverted and lambda
A. Least Squares Optimization is increased. For a more detailed explanation of the LM
algorithm implemented in our framework we refer to [18].
If a good initial guess x of the parameters is known, a
numerical solution of Eq. (2) can be obtained by using the
B. Alternative Parameterizations
popular Gauss-Newton or LM algorithms [23, 15.5]. The
idea is to approximate the error function by its first order The procedures described above are general approaches
Taylor expansion around the current initial guess x to multivariate function minimization. They assume that the
space of parameters x is Euclidean, which is not valid for
eij (xi + xi , xj + xj ) = eij (x + x) (4) several problems like SLAM or bundle adjustment. To deal
eij + Jij x. (5) with state variables that span over non-Euclidean space, a
def.
common approach is to express the increments xi in a
Here, Jij is the Jacobian of eij (x) computed in x and eij = space different from the one of the parameters xi .
eij (x). Substituting Eq. (5) in the error terms Fij of Eq. (1), For example, in the context of SLAM problem, each
we obtain parameter block xi consists of a translation vector ti and
Fij (x + x) (6) a rotational component i . The translation ti clearly forms
=
eij (x + x) ij eij (x + x) (7)
a Euclidean space. In contrast to that, the rotational com-
ponents i span over the non-Euclidean 2D or 3D rotation
(eij + Jij x) ij (eij + Jij x) (8)
group SO(2) or SO(3). To avoid singularities, these spaces
= e
ij ij eij +2 eij ij Jij x + x Jij ij Jij x (9) are usually described in an over-parameterized way, e.g., by
| {z } | {z } | {z }
cij bij Hij rotation matrices or quaternions. Directly applying Eq. (15)
= cij + 2bij x + x Hij x
(10) to these over-parameterized representations breaks the con-
straints induced by the over-parameterization. To overcome
With this local approximation, we can rewrite the function this problem, one can use a minimal representation for the
F(x) given in Eq. (1) as rotation (like Euler angles in 3D). This, however, is then
X
F(x + x) = Fij (x + x) (11) subject to singularities.
hi,jiC An alternative idea is to compute a new error function
X where the xi are perturbations around the current variable
cij + 2bij x + x Hij x (12)
hi,jiC
xi . xi uses a minimal representation for the rotations,
while xi utilizes an over-parameterized one. Since the xi
= c + 2b x + x Hx. (13)
are usually small, they are far from the singularities. The
The quadratic P
form in Eq. P(13) is obtained P
from Eq. (12) new value of a variable xi after the optimization can be
by setting c = cij , b = bij and H = Hij . It can obtained by applying the increment through a nonlinear
be minimized in x by solving the linear system operator : Dom(xi ) Dom(xi ) Dom(xi ) as follows:
H x = b. (14) xi = xi xi . (17)
Here, H is the information matrix of the system. The solution For instance, in case of 3D SLAM one can represent the
is obtained by adding the increments x to the initial guess increments xi by the translation vector and the axis of
x = x + x . (15) a normalized quaternion. The poses xi are represented as
a translation vector and a full quaternion. The operator
The popular Gauss-Newton algorithm iterates the lineariza- applies the increment xi to xi by using the standard
tion in Eq. (13), the solution in Eq. (14), and the update step motion composition operator (see [25]) after converting
in Eq. (15). In every iteration, the previous solution is used the increment to the same representation as the state variable:
as the linearization point and the initial guess until a given
def.
termination criterion is met. xi xi = xi xi . (18)
With this operator, a new error function can be defined as Error function eij
def. Jacobian
eij (xi , xj ) = eij (xi xi , xj xj ) (19) Jij
Linear Structure
= eij (x x) eij + Jij x, (20) (H + I)x = b
Plain Schur ...
0.001 0.01
V. E XPERIMENTS
Sp
Sc
N
In
V
V (bria
gr
ar
en
ew
ill
ic
ic ea
al
he
te
id
an
ag
ic
to
to ri
eD
l
ia
5k
r
ha
Co
e
e
ria ng
e
n
tta
rif
lle
n
ge
)
Fig. 6. 2D Datasets used for evaluating g2 o. From left to right: 2D pose-graph of the Intel Research Lab; 2D pose-graph of the Killian Court;
Manhattan3500, a simulated pose-graph; 2D dataset with landmarks of the Victoria Park; and Grid5000, a simulated landmark dataset.
30 2 5 108 1010
g o (Cholesky) every node g2o (Cholesky) every 10 nodes LIE ALGEBRA SE(3) LIE ALGEBRA SE(3)
2
g o (PCG) every node 4.5 iSAM every 10 nodes
25 UNIT QUATERNION UNIT QUATERNION
iSAM every node 4 HOG-Man every 10 nodes
Cumulative Time [s]
F(x)
F(x)
15 2.5 107
2
10 1.5 108
5 1
0.5
0 0 106 107
0 500 1000 1500 2000 2500 3000 3500 0 500 1000 1500 2000 2500 3000 3500 0 5 10 15 20 0 20 40 60 80 100
Number of nodes Number of nodes Iteration Iteration
Fig. 8. Online processing of the Manhattan3500 dataset. The left image Fig. 9. Evolution of F(x) using unit quaternions versus the Lie algebra
shows the runtime for optimizing after inserting a single node whereas the se(3) on the New College dataset (left) and Venice (right) dataset.
right image show the runtime for optimizing after inserting 10 nodes. TABLE II
efficiency in constructing the linear system. The results are C OMPARISON OF DIFFERENT LINEAR SOLVERS ( TIME IN SECONDS ).
summarized in Figure 7.
2 Dataset CHOLMOD CSparse PCG
Our system g o is faster than the implementation of Intel 0.0028 0.0025 0.0064 0.0026
SAM on all the 2D and 3D datasets we tested. While MIT 0.0086 0.0077 0.381 0.364
in principle they implement the same algorithm, g2 o takes Manhattan3500 0.018 0.018 0.011 0.0009
advantage of an efficient front end to generate the linearized Victoria 0.026 0.023 1.559 0.683
problem. On the 2D pose graph datasets the runtime of Grid5000 0.178 0.484 1.996 1.185
our framework is comparable to the highly optimized SPA Sphere 0.055 0.398 0.022 0.019
implementation. On the BA datasets g2 o achieves a similar Garage 0.019 0.032 0.017 0.016
New College 6.19 200.6 0.778 0.201
performance to sSBA, which is slightly faster than our Venice 1.86 39.1 0.287 0.135
general framework. Compared to RobotVision, g2 o is on Scale Drift 0.0034 0.0032 0.005 0.01
average two times faster.
Note that while g2 o focuses on batch optimization, it can are represented by members of the Lie algebra se(3) [26]. We
be used to process the data incrementally by optimizing after applied the different parameterizations to the New College
adding nodes to the graph. The efficiency of g2 o yields and Venice datasets. The evolution of the error is depicted
performance similar to approaches that are designed for in Figure 9. Both parameterizations converge to the same
incremental use, such as iSAM [14] or HOG-Man [9]. As solution, but convergence occurs faster using se(3).
visualized in Figure 8, by optimizing every 10 nodes or by C. Comparison of Linear Solvers
relaxing the termination criterion of PCG for optimizing after
Our system allows different linear solvers to solve ei-
inserting a single node g2 o can achieve acceptable run-times.
ther Eq. (14) or Eq. (25). We currently have implemented
Furthermore, it can be used as an efficient building block of
two solvers based on Cholesky decomposition, namely
more complex online systems [21], [9].
CHOLMOD and CSparse [4]. Additionally, we implemented
As mentioned, g2 o can compute the Jacobian Jij numer-
PCG as an iterative method using a block-Jacobi precondi-
ically, which allows rapid prototyping of a new optimization
tioner. Table II summarizes the time required for solving the
problem or a new error function. However, by specifying
linear system on several datasets. PCG performs very well
the Jacobians analytically one can achieve a substantial
on the New College and Venice datasets, where it is around
speed-up. For instance, the time required by one iteration
7 times faster than CHOLMOD. The PCG convergence
of g2 o on the Garage dataset drops from 80 ms to 40 ms
depends on how close the initial guess is to the optimum.
when specifying the analytic Jacobian. Despite the reduced
We terminate PCG if the relative residual is below a given
efficiency we did not observe a decrease in the accuracy
threshold (108 in the experiments). Therefore, PCG requires
when using the numeric Jacobian.
more time to converge, for example, on the MIT or Victoria
B. Testing different Parameterizations datasets. CHOLMOD is faster by up to a factor of 30 than
CSparse on the larger datasets. But surprisingly CSparse
Since our framework only requires to implement the error is the fastest solver on the smaller instances like the MIT
function and the update step, we are able to easily compare dataset where it outperforms both CHOLMOD and PCG.
different parameterizations. To this end, we implemented
two different parameterizations for representing poses in D. Utilizing the Knowledge about the Structure
BA. In the first parametrization, the increment xi is As discussed in Section III-D, certain problems have
represented by a translation vector and the axis of a unit a characteristic structure. Using this structure may result
quaternion. Whereas in the second one, the increments xi in substantial improvements in the solution of the linear
TABLE III
[3] Y. Chen, T. A. Davis, W. W. Hager, and S. Rajamanickam, Algo-
C OMPARISON OF DIFFERENT LINEAR SOLVERS . W E MEASURED THE rithm 887: Cholmod, supernodal sparse cholesky factorization and
AVERAGE TIME PER ITERATION OF g2 o ( IN SECONDS ). update/downdate, ACM Trans. Math. Softw., vol. 35, no. 3, pp. 1
14, 2008.
Dataset direct solution Schur decomposition [4] T. A. Davis, Direct Methods for Sparse Linear Systems. SIAM, 2006,
solve build / solve / total part of the SIAM Book Series on the Fundamentals of Algorithms.
Victoria 0.026 0.029 / 0.121 / 0.150 [5] F. Dellaert and M. Kaess, Square Root SAM: Simultaneous localiza-
Grid5000 0.18 0.12 / 0.16 / 0.28 tion and mapping via square root information smoothing, Int. Journal
New College 15.18 3.37 / 7.07 / 10.44 of Robotics Research, vol. 25, no. 12, pp. 11811204, Dec 2006.
Venice 33.87 11.25 / 1.78 / 13.03 [6] T. Duckett, S. Marsland, and J. Shapiro, Fast, on-line learning of
globally consistent maps, Autonomous Robots, vol. 12, no. 3, pp.
system. Landmark-based SLAM and BA have the same 287 300, 2002.
[7] U. Frese, A proof for the approximate sparsity of SLAM information
linear structure: the landmarks/points can be only connected matrices, in Proc. of the IEEE Int. Conf. on Robotics & Automation
with the robot poses/cameras, resulting in a block diagonal (ICRA), 2005.
structure for the landmark part of the Hessian Hll . [8] U. Frese, P. Larsson, and T. Duckett, A multilevel relaxation algo-
rithm for simultaneous localisation and mapping, IEEE Transactions
In this experiment we evaluate the advantages of using on Robotics, vol. 21, no. 2, pp. 112, 2005.
this specific decomposition for landmark based-SLAM and [9] G. Grisetti, R. Kummerle, C. Stachniss, U. Frese, and C. Hertzberg,
BA. Table III shows the timing for the different datasets Hierarchical optimization on manifolds for online 2d and 3d map-
ping, in Proc. of the IEEE Int. Conf. on Robotics & Automation
where we enabled and disabled the decomposition. From the (ICRA), 2010.
table it is evident that preforming the decomposition results [10] G. Grisetti, C. Stachniss, and W. Burgard, Non-linear constraint
in a substantial speedup when the landmarks outnumber network optimization for efficient map learning, IEEE Trans. on
Intelligent Transportation Systems, 2009.
the poses, which is the typically the case in BA. However, [11] G. Guennebaud, B. Jacob, et al., Eigen v3, http://eigen.tuxfamily.org,
when the number of poses becomes dominant, performing 2010.
the Schur marginalization leads to a highly connected system [12] A. Howard, M. Mataric, and G. Sukhatme, Relaxation on a mesh:
a formalism for generalized localization, in Proc. of the IEEE/RSJ
that is only slightly reduced in size, and requires more effort Int. Conf. on Intelligent Robots and Systems (IROS), 2001.
to be solved. [13] Y. Jeong, D. Nister, D. Steedly, R. Szeliski, and I. Kweon, Pushing
the envelope of modern methods for bundle adjustment, in Proc. of
VI. C ONCLUSIONS the IEEE Conf. on Comp. Vision and Pattern Recognition (CVPR),
2010.
In this paper we presented g2 o, an extensible and efficient [14] M. Kaess, A. Ranganathan, and F. Dellaert, iSAM: Incremental
smoothing and mapping, IEEE Trans. on Robotics, vol. 24, no. 6,
open-source framework for batch optimization of functions pp. 13651378, Dec 2008.
that can be embedded in a graph. Relevant problems falling [15] K. Konolige, Sparse sparse bundle adjustment, in Proc. of the British
into this class are graph-based SLAM and bundle adjustment, Machine Vision Conference (BMVC), 2010.
[16] K. Konolige, G. Grisetti, R. Kummerle, W. Burgard, B. Limketkai,
two fundamental and highly related problems in robotics and R. Vincent, Sparse pose adjustment for 2d mapping, in Proc. of
and computer vision. To utilize g2 o one simply has to the IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS),
define the error function and a procedure for applying a 2010.
[17] K. Konolige, Large-scale map-making, in Proc. of the National
perturbation to the current solution. Furthermore, one can Conference on Artificial Intelligence (AAAI), 2004.
easily embed in the system new linear solvers and thus [18] M. A. Lourakis and A. Argyros, SBA: A Software Package for
verify the characteristics of the specific solver for a wide Generic Sparse Bundle Adjustment, ACM Trans. Math. Software,
vol. 36, no. 1, pp. 130, 2009.
range of problems sharing this graph structure. We showed [19] F. Lu and E. Milios, Globally consistent range scan alignment for
the applicability of g2 o to various variants of SLAM (2D, environment mapping, Autonomous Robots, vol. 4, pp. 333349,
3D, pose-only, and with landmarks) and to bundle adjust- 1997.
[20] M. Montemerlo and S. Thrun, Large-scale robotic 3-d mapping of
ment. Practical experiments carried out on extensive datasets urban structures, in Proc. of the Int. Symposium on Experimental
demonstrate that g2 o achieves performance comparable to Robotics (ISER), 2004.
implementations of problem-specific algorithms and often [21] K. Ni and F. Dellaert, Multi-level submap based SLAM using nested
dissection, in Proc. of the IEEE/RSJ Int. Conf. on Intelligent Robots
even outperforms them. An open-source implementation of and Systems (IROS), 2010.
the entire system is freely available as part of ROS and on [22] E. Olson, J. Leonard, and S. Teller, Fast iterative optimization of pose
OpenSLAM.org. graphs with poor initial estimates, in Proc. of the IEEE Int. Conf. on
Robotics & Automation (ICRA), 2006, pp. 22622269.
[23] W. Press, S. Teukolsky, W. Vetterling, and B. Flannery, Numerical
ACKNOWLEDGMENTS Recipes, 2nd Edition. Cambridge Univ. Press, 1992.
[24] M. Smith, I. Baldwin, W. Churchill, R. Paul, and P. Newman, The
We thank E. Olson for the Manhattan3500 dataset, E. new college vision and laser data set, Int. Journal of Robotics
Nebot and H. Durrant-Whyte for the Victoria Park dataset, N. Research, vol. 28, no. 5, pp. 595599, May 2009.
Snavely for the Venice dataset, and M. Kaess for providing [25] R. Smith, M. Self, and P. Cheeseman, Estimating uncertain spatial
realtionships in robotics, in Autonomous Robot Vehicles, I. Cox and
a highly efficient implementation of iSAM. G. Wilfong, Eds. Springer Verlag, 1990, pp. 167193.
[26] H. Strasdat, J. M. M. Montiel, and A. Davison, Scale drift-aware large
R EFERENCES scale monocular SLAM, in Proc. of Robotics: Science and Systems
(RSS), 2010.
[1] S. Agarwal, N. Snavely, S. M. Seitz, and R. Szeliski, Bundle [27] B. Triggs, P. F. McLauchlan, R. I. Hartley, and A. W. Fitzibbon,
adjustment in the large, in Proc. of the European Conf. on Computer Bundle adjustment - a modern synthesis, in Vision Algorithms:
Vision (ECCV), 2010. Theory and Practice, ser. LNCS. Springer Verlag, 2000, pp. 298375.
[2] M. Byrod and K. Astroem, Conjgate gradient bundle adjustment, in
Proc. of the European Conf. on Computer Vision (ECCV), 2010.