You will be provided with a reference and some statements. Please determine whether each statement is 'supported', 'unsupported', or 'unknown' with respect to the reference. Please note:
First, assess whether the reference contains any valid content. If the reference contains no valid information, such as a 'page not found' message, then all statements should be considered 'unknown'.
If the reference is valid, for a given statement: if the facts or data it contains can be found entirely or partially within the reference, it is considered 'supported' (data accepts rounding); if all facts and data in the statement cannot be found in the reference, it is considered 'unsupported'.

You should return the result in a JSON list format, where each item in the list contains the statement's index and the judgment result, for example:
[
    {
        "idx": 1,
        "result": "supported"
    },
    {
        "idx": 2,
        "result": "unsupported"
    }
]

Below are the reference and statements:
<reference>
18th Computer Vision Winter Workshop
Walter G. Kropatsch, Fuensanta Torres, Geetha Ramachandran (eds.)
Hernstein, Austria, February 4-6, 2013

Constrained Bundle Adjustment for Panoramic Cameras
Cenek Albl and Tomas Pajdla
Czech Technical University, Faculty of Electrical Engineering
Karlovo Namesti 13, Prague, Czech Republic
alblcene@cmp.felk.cvut.cz, pajdla@cmp.felk.cvut.cz

Abstract. In this paper we propose, design and implement a method of Bundle adjustment (BA) incorporating constraints that describe a camera undergoing a circular motion. Using these constraints we
are able to capture the physical properties of various rotating camera systems into the BA process, for
example panoramic camera systems used on Mars
rovers or turntables. We incorporated our method
into the recently released Google non-linear least
squares solver Ceres. By using constrained BA, we
aim at improving the accuracy of reconstructing both
the 3D points and the camera positions. The improvement in accuracy was experimentally verified
on synthetic as well as real datasets.

1. Introduction
There has been a lot of attention given to the
Structure from motion reconstruction, resulting in
many practical applications such as Photosynth and
Bundler [13]. Current research aims to provide more
precise reconstruction as well as the ability to handle
larger datasets [1], [3].
Bundle Adjustment (BA) [14] is an important part
of the structure from motion reconstruction as it optimizes the resulting estimates of 3D point coordinates
and the position, orientation and calibration of cameras. Detailed analysis of BA optimization methods,
parametrizations, error modeling and constraints has
been given in [14]. An efficient and comprehensive
algorithm that utilizes the sparsity of BA has been developed by Lourakis and Argyros [10] and the code
is made freely available. This algorithm has been further used in [13], to build a full structure from motion pipeline. An extended version of [10] has been
developed in [7] utilizing the sparsity even further
in order to reduce computation time. Recently, the
performance of BA on large datasets has been scru-

tinized [1]. The use of conjugate gradients and its
effect on performance has been investigated in [2].
In [6], significant performance improvements using
multiple techniques, such as embedded point iterations and preconditioned conjugate gradients were
shown.

1.1. Constrained Bundle Adjustment
A general graph solver which can be used for BA
is described in [12] and available online. Although
[12] seems to be capable of handling camera constraints, authors have not investigated this possibility.
BA with constraints on the structure has been used in
[15] and [11]. Experiments with camera constrained
BA designed specifically for stereo rig were carried
out in [8]. The results showed that modeling stereo
camera pair with proper constraints and incorporating it into BA can improve the precision of the reconstruction. In [4], authors incorporate constraints for
a Pancam system consisting of two cameras mounted
on a rotating shaft used on a Mars Exploration Rover
mission. BA designed for a turntable has been presented in [15], where authors described the object as
a set of points rotating around an axis with a fixed
distance from the camera. They showed that this projection model brought an improvement in terms of
precision of the reconstruction.

1.2. Contribution
In this paper we provide a general approach to
describe a rotating camera and incorporate it into
Bundle Adjustment optimization implemented in the
open source solver Ceres from Google. In comparison to [4] and [15] our method is not limited to a
specific Pancam system or a turntable even though it
is capable of handling both of them. Using our approach we can optimize wide variety of scenarios,
such as multiple panoramic cameras in one scene,

cameras undergoing circular motions with different radii, orientations and on different locations or
turntables with more than just one camera position.
This is done by adjusting the camera model, keeping
only the circular motion constraints. The initialization does not require any previous knowledge about
the scene as in the case of [4], instead we estimate
the constraints from an initial unconstrained SfM result. In our experiments we confirm that using just
enough constraints to keep the generality still leads
to improvement of the reconstruction in terms of precision.
In section 2 we describe the basics of BA and introduce the notation we will use further in the paper.
Section 3 presents the model used for rotating camera systems. Experiments and their results are shown
in section 4 and the results discussed in section 5.

2. Bundle Adjustment
We build our method upon the Google non-linear
least squares optimizer Ceres, which encompasses
several methods for Bundle Adjustment, including
the approaches described in [1] and [9]. We set Ceres
to use a Levenberg-Marquardt algorithm [14] which
iteratively solves the normal equation
(JT J +

1
D)δp = JT e
µ

(1)

where K is the calibration matrix, R is a rotation
matrix from world to camera coordinates and C is the
camera center in the world coordinates. According
to [5], the calibration matrix can be described by 5
parameters as


αx
s
x0
K =  0 arαx y0 
(4)
0
0
1
Where
ar =

αy
αx

(5)

is the aspcet ratio.

3. Camera systems with rotational constraint
When dealing with multiple camera systems,
which have some fixed physical properties, it would
be meaningful to utilize this additional information
in the BA process. We did that by using an adapted
projection function describing the relationships between cameras. Such systems can be a camera rotating around an axis, where our additional knowledge
is represented by the fact that camera centers lie on a
circular trajectory. Each camera center Ci can therefore be expressed by a function involving center of
rotation, the orientation of the rotation plane in space,
the radius of the rotation and a displacement angle of
the camera. Such equation can be written as

 

ρ cos φi
Ccx
Ci = Rc  ρ sin φi  +  Ccy 
(6)
0
Ccz

where J is the Jacobian of the projection function,
D is a matrix containing a diagonal of J, p is the
vector of parameters of cameras and 3D points and
e is the error vector between the measured and predicted image points. The trust region radius µ controls the magnitude of sought updates δp to the parameter vector. Detailed description can be found in
[5] and [14]. J and JT J have known sparse structure
and do not have to be computed explicitly. Ceres can
make use of the Schur complement [5] to solve (1)
for the camera parameters first, which requires less
computational effort.
The projection functions we use are based on the
perspective camera projection

When we express the rotation matrices using quaternions, we obtain the following parameter vector

λx = PX

aj = [k, q, CTc , qc , ρ]

(8)

=
=
=
=

(9)

Pi = Ri [I| − Ci ]

(2)

where X is a 3D point and x the image point, both in
homogeneous coordinates. P is the projection matrix
according to [5] and it can be decomposed as
P = KR [I| − C]

where Rc is a rotation matrix representing the orientation of the panoramic rotation plane in space, vector Cc = [Ccx , Ccy , Ccz ]T represents the center of
rotation, ρ the radius and φ the camera displacement
angle. Having Ci we can construct Pi followingly

(3)

(7)

where
ki
qi
Cc
qc

[fx , x0 , y0 , ar, s]
[qi1 , qi2 , qi3 , qi4 , φj ]
[Ccx , Ccy , Ccz ]T
[qc1 , qc2 , qc3 , qc4 ]

so the blocks denoted by index i belong to each individual camera and blocks denoted by j describe
the circular constraints for a cluster of cameras. It is
clear, that parameters describing the panoramic rotation (Cc , qc , ρ) will be identical for all cameras from
the same panorama. It is possible within the Ceres
platform to make any of these blocks shared by multiple cameras. The reason why we chose such blocks
is that we can set any combination of radius, circle
orientation and circle position shared also between
multiple camera clusters. As an example, Pancam in
[4] could be described by two camera clusters with
shared rotation axis position and orientation but different radii.
ρ

β
φi

Table 1. Datasets

Dino1
Dino2
Ship
Street

cameras
40
20
13
54

points
14038
3080
8851
34443

projections
42241
7343
29259
93348

of parameters describing a camera was 14 (five for
intrinsics, four for camera orientation, three for camera center location and two for radial distortion) for
SBA and 20 (as in (8) plus two for radial distortion)
for XBA. Because two intrinsic were kept fixed, the
numbers of parameters adjusted were 12 and 18 for
SBA and XBA respectively. The XBA parameters
were described in section 3.

Cc
α

Rc(qc1,qc2,qc3,qc4)

Ri(qi1,qi2,qi3,qi4)

Figure 1. Visualization of parameters used to describe
panoramic camera. Parameters Cc , Rc and ρ describe
the circle of rotation, therefore they are shared among all
cameras within this panorama. Ci and φi determine the
positions of individual camera centers and Ri their orientations.

4. Experiments
To validate our method, we performed a set of
tests on synthetic and real data. We compared our extended bundle adjustment (XBA) algorithm to SBA,
upon which our algorithm was built.

4.1. Parametrization
Shared parameters in XBA were set to utilize all
physically meaningful properties of the camera system. In the case of panoramic cameras, the camera
centers were placed on circles and all circles shared
the same radius. Stereo setup used a shared baseline and orientation of the second camera with respect to the first one over the whole sequence. Both
SBA and XBA adjusted 3 internal camera calibration parameters (fx ,x0 ,y0 ) and kept the 2 remaining
fixed (ar,s). We also estimated the radial distortion
using the same model as [13]. The overall number

4.2. Datasets
We examined the performance of XBA on four
real world dataset captured using a panoramic camera setup. Pictures were acquired using a Nikon D60
and D3100 DSLR cameras. First dataset was simulating a panoramic observation of environment, using a camera rotating on a shaft mounted on a tripod. Three panoramic observations were made on
three different locations, each consisting of 18 images of an urban environment. The data was then
reconstructed using the SfM pipeline [13] and estimates for camera and structure parameters were obtained. The rest of the real world datasets was obtained using a turntable with two objects each with
different shape properties. The turntable was used
to capture the model from various viewpoints, while
keeping the circular trajectory of the camera with respect to the object.
To evaluate our method, we needed some ground
truth information about the scenes. For that purpose
we took the outcome of the SfM pipeline, placed the
cameras on circular trajectories (as they were in reality) and projected the 3D points into new image
projections. Therefore, we obtained a perfect ground
truth information in a real world scenarios.
In all datasets, the 3D points were perturbed by
a uniformly distributed error e ∈ [0; d/20], where d
is the distance from the camera centers. The image
projections were perturbed by a Gaussian noise with
mean 0 and standard deviation of 0.7.

4.3. Analysis
In measurements we analyzed the following aspects
1. Error in reconstructed structure with respect to
ground truth
2. Error in reconstructed camera positions with respect to ground truth
3. Evolution of the reconstruction error during iterations
(a)

(b)

(c)

(d)

Figure 2. Perturbed initializations for datasets (a) Dino1,
(b) Dino2, (c) Ship and (d) Street.

4. Evolution of the mean reprojection error
To express the reconstruction error, we used a
least square fit of either the resulting 3D point positions or the camera center positions onto the ground
truth data. Camera fit means that a transformation
was found between the reconstructed camera centers
and the ground truth camera centers and this transformation was then applied to reconstructed camera
centers as well as 3D points. Points fit applies the
same principle but the transformation between reconstructed and ground truth 3D points was found in this
case. After the fit, error in both camera centers and
3D points was measured as the Euclidean distance
from the correct positions. These measurements express how accurately were the camera positions and
3D points reconstructed and also how accurately can
we determine the camera positions knowing the 3D
structure parameters and vice versa. This evaluation
was also carried out for each individual BA step to
show how the accuracy of the model develops during the process. For each dataset, the tests were run
multiple times with different random initialization.
Results of reconstruction error of camera centers
are in figure 4, which shows, how precisely we estimated the surrounding structure relatively to the
camera positions, e.g. their relative scale. The precision of reconstructed structure with respect to the
ground truth can be read from figure 5. Analogically
to the camera centers’ case, figure 5 now show how
precisely we can determine the camera centers relatively to the structure.
To investigate the behavior of XBA versus SBA
deeper, we show for each iteration on the dataset
Dino2 the mean reprojection error and the reconstruction error in Figure .

5. Discussion
As shown in figure 3, more dimensions of freedom
cause SBA to achieve lower image reprojection error,

Dino1 − Camera positions error
Euclidean distance [m]

Mean image reprojection error
SBA
XBA

2

e [pix]

10

1

10

4

6

8

10
Iterations

12

14

SBA
XBA

0.04

0.02

0

16

20

0.05

8

Euclidean distance [m]

Euclidean distance [m]

SBA camfit
SBA pointfit
XBA camfit
XBA pointfit

0.1

4
6
Iteration

SBA
XBA

0.15
0.1
0.05
0

10

20

0.05

8

Euclidean distance [m]

Euclidean distance [m]

SBA camfit
SBA pointfit
XBA camfit
XBA pointfit

0.1

4
6
Iteration

80

100

Ship − Camera positions error

Street − Camera positions error

2

40
60
Initialization

(b)

(b)

0

100

Dino2 − Camera positions error

Street − 3D coordinates error

2

80

(a)

(a)

0

40
60
Initialization

SBA
XBA

0.15
0.1
0.05
0

20

10

40
60
Initialization

80

100

(c)
(c)

but the constraints ensure that the 3D reconstruction
error becomes lower using XBA.
The results, summarized in table 2, show that
XBA can in certain scenarios outperform SBA in
terms of reconstruction precision. Particularly, in the
dataset Street the reconstruction errors of XBA were
much smaller than of SBA. As can be seen in the
results, the difference between XBA and SBA varies
with different initializations. On rare occasions, SBA
achieves similar results as XBA or even slightly better. However, on average, the reconstruction using

Euclidean distance [m]

Figure 3. Real PANCAM. (a) The image reprojection
error during iterations of SBA and XBA on the dataset
Street. (b) Development in 3D point and camera position
error during iterations of SBA and XBA on the dataset
Street.

Street − Camera positions error
0.3

SBA
XBA

0.2
0.1
0

20

40
60
Initialization

80

100

(d)

Figure 4. Camera position error. Error in camera center
positions after reconstructing and fitting through 3D point
positions for datasets (a) Dino1, (b) Dino2, (c) Ship and
(d) Street.

XBA was more correlated with the ground truth.
This could be useful in many applications, such as

Table 2. Summary of the results for all datasets

Euclidean distance [m]

Dino1 − 3D coordinates error
0.02

SBA
XBA

0.015
0.01

Dino1

0.005
0

20

40
60
Initialization

80

100

Ship

(a)

Euclidean distance [m]

Dino2 − 3D coordinates error

Street
SBA
XBA

0.1

0.05

0

20

40
60
Initialization

80

100

(b)

Euclidean distance [m]

Ship − 3D coordinates error
SBA
XBA

0.015
0.01
0.005
0

20

40
60
Initialization

80

100

(c)
Street − 3D coordinates error
Euclidean distance [m]

Dino2

Mean reconstruction error [m]
SBA
XBA
cams
pts
cams
pts
cfit 0.0207 0.0060 0.0121 0.0089
pfit 0.0208 0.0035 0.0135 0.0017
cfit 0.0166 0.0348 0.0120 0.0306
pfit 0.0564 0.0066 0.0567 0.0075
cfit 0.0033 0.0042 0.0023 0.0045
pfit 0.1166 0.0149 0.0638 0.0082
cfit 0.0763 0.1528 0.0456 0.0939
pfit 0.796 0.1528 0.0489 0.0950

0.6
SBA
XBA
0.4
0.2
0

20

40
60
Initialization

80

100

(d)

Figure 5. Camera position error. Error in camera center
positions after reconstructing and fitting through 3D point
positions for datasets (a) Dino1, (b) Dino2, (c) Ship and
(d) Street.

localization and mapping. If one knows information
about the dimension of either the structure or camera

positions (for example the diameter of panoramic rotation), one can better estimate the dimension of the
other.
For the datasets acquired using a turntable the performance of XBA was not always better than SBA
as in the case of the Street dataset. In dataset Dino1
XBA handled better the reconstruction of the scene
with respect to the points and in dataset Dino2 with
respect to the cameras. Since Dino1 has far less cameras, points and projections, this could be interpreted
as the ability of constrained BA to maintain the correct positions of cameras even with less observations
and interconnectivity of the cameras and points in the
scene.
Another situation occurs in the case of the Ship
dataset. The points fit slightly better to the ground
truth cameras using SBA, but points with respect to
points and cameras with respect to either cameras or
points are reconstructed better using XBA by a large
margin. In this scenario, the camera circle is purposively incomplete and, as expected, XBA handled the
camera positions much better. This could be useful
if we are interested in precise poses of cameras, such
as in the case of dense stereo reconstruction.
However, it can be concluded, that XBA does not
bring such an improvement in the case of turntable
scenarios, where all cameras are pointing towards a
single object and the scene is heavily interconnected,
i.e. cameras have high overlaps and each point is
observed by many cameras. The potential of XBA
seems to be more in the outdoor scenarios, where
cameras are pointing outwards of the axis of rotation
and have smaller overlap.

6. Conclusion
We proposed and implemented a new method
of constrained BA (XBA) for cameras undergoing
circular motion into Google optimization software
Ceres. This method incorporates circular constraints
for systems such as panoramic camera or a turntable.
The method was validated on several real datasets
and the reconstruction error in camera positions and
3D points was measured. The results show for certain scenarios improved quality of the reconstruction
over the previous method. The advantages of this
method and its possible applications were discussed.

Acknowledgements
The authors were supported by Grant Agency of
the CTU Prague project SGS12/191/OHK3/3T/13.

References
[1] S. Agarwal, N. Snavely, S. M. Seitz, and R. Szeliski.
Bundle adjustment in the large. In ECCV (2), pages
29–42, 2010. 1, 2
[2] M. Byröd and K. Åström. Conjugate gradient bundle
adjustment. In Proceedings of the 11th European
conference on Computer vision: Part II, ECCV’10,
pages 114–127, Berlin, Heidelberg, 2010. SpringerVerlag. 1
[3] D. Crandall, A. Owens, and N. Snavely. Discretecontinuous optimization for large-scale structure
from motion. IEEE Conference on Computer Vision and Pattern Recognition (2008), 286(26):3001–
3008, 2011. 1
[4] K. Di, F. Xu, R. Li, B. Adjustment, and P. Image.
Constrained bundle adjustment of panoramic stereo
images for mars landing site mapping. MMT, 2003.
1, 2, 3
[5] R. I. Hartley and A. Zisserman. Multiple View Geometry in Computer Vision. Cambridge University
Press, ISBN: 0521540518, second edition, 2004. 2
[6] Y. Jeong, D. Nister, D. Steedly, R. Szeliski, and I.-S.
Kweon. Pushing the envelope of modern methods
for bundle adjustment. In Proc. IEEE Conf. Computer Vision and Pattern Recognition (CVPR), pages
1474–1481, 2010. 1
[7] K. Konolige. Sparse sparse bundle adjustment. In
British Machine Vision Conference, Aberystwyth,
Wales, 08/2010 2010. 1
[8] C. Kurz, T. Thormählen, and H.-P. Seidel. Bundle adjustment for stereoscopic 3D. In A. Gagalowicz and W. Philips, editors, 5th International
Conference on Computer Vision/Computer Graphics
Collaboration Techniques (MIRAGE 2011), volume
6930 of Lecture Notes in Computer Science, pages

1–12, Rocquencourt, France, October 2011. Inria,
Springer. 1
[9] A. Kushal. Visibility based preconditioning for bundle adjustment. In Proceedings of the 2012 IEEE
Conference on Computer Vision and Pattern Recognition (CVPR), CVPR ’12, pages 1442–1449, Washington, DC, USA, 2012. IEEE Computer Society. 2
[10] M. I. A. Lourakis and A. A. Argyros. Sba: A software package for generic sparse bundle adjustment.
ACM Transactions on Mathematical Software, 36:1–
30, 2009. 1
[11] C. McGlone. Bundle Adjustment with Geometric
Constraints for Hypothesis Evaluation, pages 529–
534. 1996. 1
[12] H. S. K. K. Rainer Kuemmerle, Giorgio Grisetti and
W. Burgard. g2o: A general framework for graph
optimization. In IEEE International Conference on
Robotics and Automation (ICRA), 2011. 1
[13] N. Snavely.
Bundler: Structure from motion (sfm) for unordered image collections.
http://phototour.cs.washington.edu/bundler/,
5 2011. 1, 3
[14] B. Triggs, P. Mclauchlan, R. Hartley, and A. Fitzgibbon. Bundle adjustment a modern synthesis. In Vision Algorithms: Theory and Practice, LNCS, pages
298–375. Springer Verlag, 2000. 1, 2
[15] K. H. Wong, M. Ming, and Y. Chang. 3d model reconstruction by constrained bundle adjustment. In
Proceedings of the Pattern Recognition, 17th International Conference on (ICPR’04) Volume 3 - Volume 03, ICPR ’04, pages 902–905, Washington, DC,
USA, 2004. IEEE Computer Society. 1
</reference>

<statements>
1. Because the physical mechatronic turntable constrains seed motion to a single circular trajectory around axis n, the vision pipeline implements Constrained Bundle Adjustment (CBA)
2. Angular coordinates θ_i are initialized directly from optical encoder timestamps, reducing the parameter search space by over 70% and eliminating local convergence minima
3. Constrained Bundle Adjustment: Enforcing rigid circular orbit kinematics parameterized by rotation axis n and center C_0 using Levenberg-Marquardt optimization within the Ceres solver
4. Intrinsic camera parameters (Kc), radial-tangential lens distortion polynomials (k1, k2, p1, p2), and multi-camera stereo baselines are resolved using nonlinear Levenberg-Marquardt optimization within the Ceres solver library
</statements>

Begin the assessment now. Output only the JSON list, without any conversational text or explanations.