Graphics Reference
In-Depth Information
involving the camera parameters and the scene points. That is, it has the form
J
PP
b
P
b
X
δ
P
δ
X
J
PX
=
(6.68)
J
PX
J
XX
From Figure
6.14
b, we know that
J
PP
and
J
XX
are both block-diagonal matrices; that
is, each dark square in
J
PP
isa10
10matrix involving second derivatives with respect
to the parameters of a single camera, while each dark square in
J
XX
isa3
×
3 matrix
involving second derivatives with respect to the parameters of a single scene point.
Since a bundle adjustment problem usually involves many more scene points than
cameras, we assume that
J
XX
is larger than
J
PP
.
Now we apply a trick based on the
Schur complement
of
J
XX
; we multiply both
sides of Equation (
6.68
)by
×
I
J
PX
J
−
1
XX
−
(6.69)
0
I
where
I
and
0
are appropriately sized identity and zero matrices, respectively. The
result is:
J
PP
−
b
P
−
J
PX
J
−
1
J
PX
J
−
1
XX
J
PX
δ
P
δ
0
XX
b
X
=
(6.70)
J
PX
J
XX
b
X
X
The top half of these equations corresponds to:
J
PX
J
−
1
XX
J
PX
)δ
J
PX
J
−
1
(
J
PP
−
=
b
P
−
XX
b
X
(6.71)
P
which is a relatively small, easily solved linear system for the camera update
δ
P
. Once
we have obtained
δ
P
, we plug it into the bottom half of Equation (
6.70
) to obtain:
J
PX
δ
P
J
XX
δ
X
=
b
X
−
(6.72)
which is also easily solved since
J
XX
is block diagonal with small blocks.
This approach is the basis of the sparse Levenberg-Marquardt bundle adjustment
algorithm proposed by Lourakis and Argyros [
305
], which is widely used. However,
the same authors [
303
] also observed that a sparse implementation of Powell's dog-
leg algorithm might be an even more efficient optimization algorithm for bundle
adjustment. Recently, Agarwal et al. [
4
] advocated the use of a preconditioned con-
jugate gradient algorithm for efficiently solving Equation (
6.67
), instead of using the
Schur complement approach. This method is especially useful for the extensions in
Section
6.6.2
, where the matrix on the left-hand side of Equation (
6.71
) may be diffi-
cult to construct and not sparse. Steedly et al. [
468
] also discussed related issues for
solving Equation (
6.71
), as well as methods for efficient incremental bundle adjust-
ment as new information becomes available [
467
]. Triggs et al. [
500
] discuss further
practical optimization issues for bundle adjustment.
6.5.4
An Example Result
Now, we illustrate an example matchmoving result on a real video sequence.
Figure
6.15
illustrates several images from the sequence, which was obtained using
by moving a handheld camera approximately 180
◦
around a building. The video
sequence was 383 frames long.