Vous êtes sur la page 1sur 70

INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE

Camera Self-Calibration from Video Sequences:


the Kruppa Equations Revisited
Cyril Zeller, Olivier Faugeras
INRIA Sophia Antipolis, BP 93, 06902 Sophia Antipolis Cedex, France

N 2793
Fevrier 1996

PROGRAMME 4

apport
de recherche
ISSN 0249-6399
Camera Self-Calibration from Video Sequences: the
Kruppa Equations Revisited
Cyril Zeller, Olivier Faugeras
INRIA Sophia Antipolis, BP 93, 06902 Sophia Antipolis Cedex, France
Programme 4  Robotique, image et vision
Projet Robotvis
Rapport de recherche n2793  Fvrier 1996  65 pages

Abstract: The use of some new techniques such as self-calibration and calibration
from partial a priori information about the observed scene (angles, distances), to-
gether with the use of some classical techniques of video sequence processing, such as
features extraction and token tracking, makes the computation of three-dimensional
measurements of the observed scene from video sequences possible. Depending upon
the kind of calibration that has been obtained for the camera, these measurements
are projective, ane or metric measurements. They can be obtained directly from
the images without any reconstruction process.
The self-calibration technique described in this article is the generalization to
a large number of images of the algorithm developped by Luong and Faugeras[8]
based on the Kruppa equations. A theoretical study of these equations as well as
experimental results on real video sequences are presented.
Key-words: self-calibration, measurements from video sequences.

(Rsum : tsvp)

Unite de recherche INRIA Sophia-Antipolis


2004 route des Lucioles, BP 93, 06902 SOPHIA-ANTIPOLIS Cedex (France)
Telephone : (33) 93 65 77 77 Telecopie : (33) 93 65 77 65
Autocalibration partir d'une squence vido: les
quations de Kruppa revisites.
Rsum : L'utilisation de nouvelles techniques, telles que l'autocalibration et la
calibration partir d'informations connues a priori sur la scne observe (angles,
distances), conjointement celle de techniques classiques de traitement d'image,
telles que l'extraction de primitives caractristiques et leur suivi, rend possible le
calcul de mesures tridimensionnelles de la scne observe. Suivant le type de la
calibration qui a t obtenue pour le systme, ces mesures sont de type projectif,
ane ou mtrique. Elles peuvent tre calcules directement dans les images sans
passer par une reconstruction de la scne.
La technique d'autocalibration dcrite dans cet article est la gnralisation un
grand nombre d'images de l'algorithme dvelopp par Luong et Faugeras[8] bas
sur les quations de Kruppa. Une tude thorique de ces quations ainsi que des
rsultats exprimentaux sur des squences vido relles sont prsentes.
Mots-cl : autocalibration, mesures partir de squence vidos.
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 1

Contents
1 Introduction 3
2 The model 3
2.1 The camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 The scene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Two views 4
3.1 The disparity between two views . . . . . . . . . . . . . . . . . . . . 5
3.1.1 The general case . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.2 The case of coplanar points . . . . . . . . . . . . . . . . . . . 6
3.1.3 The case of points at innity . . . . . . . . . . . . . . . . . . 7
3.2 Measurements from two views . . . . . . . . . . . . . . . . . . . . . . 8
3.2.1 Projective measurements . . . . . . . . . . . . . . . . . . . . 8
3.2.2 Ane measurements . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.3 Metric measurements . . . . . . . . . . . . . . . . . . . . . . 9
4 Computing F and H1 from point correspondences 10
5 Computing A from H1 or F 11
5.1 Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.2 Computing A from H1 . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.3 Computing A from F . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.3.1 The Kruppa equations . . . . . . . . . . . . . . . . . . . . . . 13
5.3.2 A study of the Kruppa equations . . . . . . . . . . . . . . . . 15
5.3.3 Solving the Kruppa equations . . . . . . . . . . . . . . . . . . 15
5.4 Using geometric information . . . . . . . . . . . . . . . . . . . . . . . 17
6 Computing the projection matrices from A and F 18
7 Results 20
8 Conclusion 37
A Study of S 39

RR n2793
2 Cyril Zeller, Olivier Faugeras

B Study of the self-calibration equations 43


B.1 Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
B.2 The solutions corresponding to one displacement . . . . . . . . . . . 44
B.3 The solutions corresponding to two displacements . . . . . . . . . . . 48
C Study of ranks 51
D Harmonic vectors 61

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 3

R M
p m

C
O
QFFCO
Figure 1: The pinhole model.

1 Introduction
Section 2 describes the model used for the camera and the scene observed and
section 3 analyses the relationship between two views. Some calibration parameters
naturally appear in section 3.1: the fundamental matrix F, the homography of the
plane at innity H1 and the intrinsic parameters matrices A and A0. The knowledge
of these quantities allows to compute projective, ane or metric measurements as
described in section 3.2.
Section 4 briey explains how to compute F and H1 from point correspondences.
Section 5 explains how, in the case where A0 = A, the camera self-calibrates from a
video sequence by computing A from F or H1 . Some partial a priori information
about the scene observed may easily be introduced in the process of self-calibration.

2 The model
2.1 The camera
The camera model used is the classical pinhole model. If the object space is conside-
red to be the 3-dimensional Euclidean space R3 embedded in the usual way in the
3-dimensional projective space P 3 and the image space the 2-dimensional Euclidean

RR n2793
4 Cyril Zeller, Olivier Faugeras

space R2 embedded in the usual way in the 2-dimensional projective space P 2, the
camera is then described as a linear projective application from P 3 to P 2 [6]. We can
write the projection matrix in any object frame FO of P 3:
2 32 3
u u 0 1 0 0 0
4 0 v v0 5 4 0 1 0 0 5 QF
6 76 7
FO
C (1)
0 0 1 0 0 1 0
| {z }| {z }
A P0
where A is the matrix of the intrinsic parameters, C the optical center (see gure 1)
and QFFji is the notation for the matrix of change of frame Fi to frame Fj , such that
M=Fj = QFFji M=Fi .
In particular, the projection equation, relating a point not in the focal plane
MT=FC = [XC ; YC ; ZC ; TC ]T , expressed in the normalized camera frame to its projec-
tion mT = [x; y; 1]T is
ZC m = AP0M=FC (2)
2.2 The scene
Even though our formalism also applies to dynamic objects, we concentrate in this
paper on scenes composed of static objects. Moreover, when we study the disparity
between two views, this restriction does not appear as a restriction any more if the
two views have been taken simultaneously by a stereoscopic system.

3 Two views
We study the relationship between two views of a scene. These views are supposed
to come from either two cameras or one camera in motion. The optical centers
corresponding to the views are denoted by C for the rst and C 0 for the second,
the intrinsic parameters by A and A0 respectively, the normalized camera frames
respectively by FC and FC 0 . The matrix of change of frame FC to frame FC 0 is a
matrix of displacement dened by a rotation matrix R and a translation vector t:
" #
QFFCC0 = R t (3)
0T 1
3

More precisely, given a point M of an object o, we are interested in establishing


the disparity equation of M for the two views, that is the equation relating the
projection m0 of M in the second view to the projection m of M in the rst view.

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 5

3.1 The disparity between two views


3.1.1 The general case
Assuming that M is not in the focal planes corresponding to the rst and second
views, we have, from equations (2) and (3):
h i
ZC0 0 m0 = A0P0M0=FC0 = A0 R t M=FC = ZC A0RA?1m + TC A0t
We thus have obtained the general disparity equation relating m0 to m:
ZC0 0 m0 = ZC H1m + TC e0 (4)
where
H1 = A0RA?1 (5)
0
e = At 0 (6)
H1 is the homography of the plane at innity, as detailed below in section 3.1.3. e0
is a vector representing the epipole in the image frame of the second view, that is,
the projection of C in the second view. Indeed, this projection is
h i
A0P C=FC0 = A0 R t C=FC = A0t
0

Similarly,
e = ?ART t (7)
is a vector representing the epipole in the image frame of the rst view.
Equation (4) means that m0 lies on the line going through e0 and the point
represented by H1 m, which is the epipolar line of m. It is given by the vector
Fm (8)
where
F = [e0 ]H1 (9)
or equivalently 1,
F = det(A0)A0? T EA?
1 1
(10)
1
using the algebraic equation [Mu] = det(M)M?1T [u] M?1 , valid if det(M) 6= 0

RR n2793
6 Cyril Zeller, Olivier Faugeras

with
E = [t]R (11)
F is the fundamental matrix which describes the correspondence between an image
point in the rst view and its epipolar line in the second (see [8]). E is the essential
matrix [6]. h i h i
Given two projection matrices P p and P0 p0 expressed in the same
object frame FO , we can easily write the disparity equation: If the projection equa-
tions are
m m = PP0M=FO + p and 0m0 m0 = P0P0M=FO + p0
the disparity equation is written
0m0 m0 = m P0P?1m + p0 ? P0 P?1p (12)
This implies that e0 is proportional to p0 ? P0P?1p, and F to [p0 ? P0P?1p]P0 P?1.
3.1.2 The case of coplanar points
In the case of coplanar points, the equation of the plane in FC , relating ZC and TC ,
allows us to unify their dierent disparity equations in one disparity equation valid
for all of them. h i
The plane being given in FC by the vector T = nT ?d , where n is its
unitary normal in FC and d, the distance from the plane to C , its equation is
T M=FC = 0, which can be written, using equation (2),
0 = nT P0M=FC ? TC d (13)
= ZC nT A?1m ? TC d (14)
If we rst assume that d 6= 0, that is the plane does not go through C , we then
obtain the new form of the disparity equation2:
ZC0 0 m0 = ZC Hm (15)
where
H = H1 + e0 nd A?
T
1
(16)
2
using the algebraic equation uvT Mw = (vT Mw)u

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 7

This equation establishes the linear projective application, given by H, the H -matrix
of the plane, relating the projections of the points of the plane in the rst view to
their projections in the second. It is at the basis of the idea which consists in
segmenting the scene in planar structures given by their respective H -matrices and,
using this segmentation, to compute motion and structure (see [4] or [18]).
If the plane does not go either through C 0 , its H -matrix is a homography
(det(H) 6= 0) since its inverse is given by
0T
H? = H0 = H?1 + e nd0 A0?
1 1 1
(17)
where n0 is its unitary normal in FC 0 and d0 , the distance from the plane to C 0 .
If the plane goes through only one of the two points C or C 0 , its H -matrix is still
dened by the one of the two equations (16) or (17) which remains valid, but is no
longer a homography; equation (14) shows that the plane then projects in one of the
two views in a line representing by the vector
A? T n or A0? T n0
1 1
(18)
If the plane is an epipolar plane, that is goes through both C and C 0 , its H -matrix
is undened.
Equations (16) and (9) show that we have
F = [e0 ]H (19)
Finally, equation (7) shows that e0 and e always satisfy equation (15), as expec-
ted, since e0 and e are the projections of the intersection of the line < CC 0 > with
the plane.
3.1.3 The case of points at innity
For the points of the plane at innity, represented by [0; 0; 0; 1]T , of equation TC = 0,
the disparity equation becomes
ZC0 0 m0 = ZC H1m (20)
Thus, H1 is indeed the H -matrix of the plane at innity. Equation (20) is also
the limit of equation (15), when d ! 1, which is compatible with the fact that the
points at innity correspond to the remote points of the scene.

RR n2793
8 Cyril Zeller, Olivier Faugeras

3.2 Measurements from two views


It has been shown that the knowledge of F allows to compute a projective recons-
truction of the scene [5, 12]. Likewise, the knowledge of F and H1 leads to an
ane reconstruction and the knowledge of F, H1 , A and A0 leads to an Euclidean
reconstruction[19, 20]. In each of these cases, some measurements can be directly
computed in the images.
3.2.1 Projective measurements
The camera is modeled as a projective linear transformation so some projective
measurements are computable without any knowledge. It is the case for the cross-
ratio of four aligned points which is simply equal to the cross-ratio of their images.
If F is known, the H -matrix of a plane dened by any three points is computable,
as explained in section 4. It is then possible to compute the intersection between
planes and lines.
Given the H -matrix H of a plane P and the correspondences (m; m0 ) and (n; n0)
of two points M and N , the image i0 of the intersection of the line < MN > with
P is
i0 = (m0  n0)  (Hm  Hn)
since i0 belongs both to < m0 n0 > and the image of < mn > by H[16].
Similarly, given two planes P and Q by their H -matrices HP and HQ, the
correspondences of the intersection L of P with Q is obtained by computing the
correspondences of two points of L. These points are, for example, the intersections
of two lines L1 and L2 of P with Q. The correspondences of such lines are obtained
by choosing two lines in the rst image representing by the vectors l1 and l2, their
corresponding lines in the second image being given by HP?1T l1 and HP?1T l2.
3.2.2 Ane measurements
If F and H1 are known, we can compute the intersection of any line with the plane
at innity, as explained in section 3.2.1. This allows us to tell whether two lines are
parallel or not: they are parallel if and only if they intersect at the same point at
innity. This also allows us to compute the ratio M M1 M2 for any three points M1 , M2
1 M3
and M3 belonging to a line L, as the cross-ratio of M1, M2, M3 and the intersection
of L with the plane at innity.

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 9

3.2.3 Metric measurements


If F, H1 , A and A0 are known, it is possible to compute the angle between two
lines or the ratio of two lengths[7, 2].
Angle between lines. The angle between two lines L and L is given by the
1 2
Laguerre formula
(L1; L2 ) = 21i log(fV1 ; V2; I12; J12g)
where V1 and V2 are the intersections with the plane at innity of L1 and L2 res-
pectively, and I12 and J12, the intersections of < V1 V2 > with the absolute conic

of equation
X2 + Y 2 + Z2 = 0 , T = 0
in any orthonormal frame of P 3. fV1; V2 ; I12; J12g denotes the cross-ratio of these
four points so that we also have
(L1 ; L2) = 21i log(fv1 ; v2; i12; j12g) (21)
v1 and v2 are computed using H1, as explained in section 3.2.1. i12 and j12 are
computed as the intersections of < v1 v2 > with the image ! of
. According to
equation (2), the equation of ! is
S (m; m) = 0 (22)
where
S (p; q) = pT A?1T A?1q
A general point of < v1 v2 > is v1 + v2, considering that v2 corresponds to  = 1.
According to equation (22), i12 and j12 correspond to the two complex conjuguate
roots 0 and 0 of
S (v1; v1) + 2S (v1 ; v2) + S (v2; v2)2 = 0
so that
p
0 = ?S (v 1 ; v2 )  i S (v1; v1)S (v2; v2) ? S (v1; v2)2 (23)
S (v2; v2)
Now, we have
1 ? 0 = 0
fv1 ; v2; i12; j12g = 00 ?? 0 : 1 ? 0 0
0

RR n2793
10 Cyril Zeller, Olivier Faugeras

We deduce from this and equations (21) and (23) that cos(L1; L2 ) is given by
c(v1; v2) = ? p S (v1 ; v2) (24)
S (v1; v1)S (v2; v2)
Ratio of lengths. The ratio CD
AB , where A, B , C and D are four points, decom-
posed as
AB = AB BC = sin(CA; ~ CB ~ ) sin(DB;
~ DC ~ )
CD BC CD sin(AB; ~ AC ~ ) sin(BC;
~ BD ~ )
So, once computed the images vab , vac , vbc , vbd and vcd of the intersections with the
plane at innity of < AB >, < AC >, < BC >, < BD > and < CD >, respectively,
AB is given by
as explained in section 3.2.1, CD
r(vab; vac ; vbc ; vbd; vcd ) =
s
S (vab; vab ) : S (vac ; vac )S (vbc ; vbc ) ? S 2 (vac; vbc ) : S (vbd ; vbd )S (vcd ; vcd ) ? S 2 (vbd ; vcd )
S (vcd; vcd ) S (vab; vab )S (vac ; vac) ? S 2 (vab; vac ) S (vbc ; vbc )S (vbd ; vbd ) ? S 2 (vbc ; vbd(25) )
which results from equation (24).

4 Computing F and H1 from point correspondences


F and the H -matrix H of any plane P , and in particular H1, are computed
from image point correspondences between the two views. These correspondences
are obtained either by tracking if the views belong to a sequence or by stereo
matching[19, 20, 21, 3].
The disparity equation gives then the equations relating F or H to the image
point correspondences:
m0T Fm = 0 (26)
m0  Hm = 0 (27)
We notice that these equations allow to compute F and H only up to a non-zero
scalar factor. So, eight points for F and four points for H in general conguration
are enough to compute them linearly. The epipoles are then computed as the eigen-
vectors of F and FT corresponding to the 0 eigenvalue. According to section 3.1.2,
they satisfy equation (27) and so three other points are enough to compute H.

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 11

In practice, much more points are available so that F and H are computed as
solutions of least squares problems [14, 21]. Their covariance matrices F and H
are also computed in order to quantify their uncertainty[3].
Of course, since equation (27) is satised only by some image point correspon-
dences corresponding to points belonging to P , some of them must be known to make
the computation of H possible. In particular, to compute H1, we need to know
images of points at innity, such as the intersections of parallel lines[17, 19, 20].
On the contrary, equation (26) is satised by any image point correspondences,
which makes the computation of F more immediate, since no additional knowledge
is necessary.

5 Computing A from H1 or F
While F is more easily computable than H1 , it is in return more dicult to compute
A from F than from H1, as explained in section 5.2 and 5.3.
5.1 Notations
The set of all the symmetric 3  3-matrices is a 6-dimensional vector space and X
equally refers to the matrix or its corresponding 6-dimensional vector.
For a set of linearly independent vectors fv1; : : : ; vN g, V (v1; : : : ; vN ) denotes
the vector space of basis (v1; : : : ; vN ).
We denote the rotation axis of a rotation matrix R by any vector r, such that
Rr = r.
5.2 Computing A from H1
Writing that R is an orthogonal matrix and using equation (5), we have
RRT = I () A0? H1 AAT HT1A0? T = I
3
1 1
3

which leads to
H1 KHT1 = K0 (28)
where
K = AAT and K0 = A0A0T
K is the matrix of the Kruppa coecients related to A. If we consider that u and v
(see equation (1)) are dierent from zero, which is always the case in practice, then

RR n2793
12 Cyril Zeller, Olivier Faugeras

K is a positive denite symmetric matrix: It is thus in one-to-one correspondence


with A since A is uniquely obtained by constructing the Cholesky decomposition of
K.
Equation (28) shows how we can compute A0 from A and H1.
In the case where A0 = A, we can use equation (28) to compute A from H1.
Since det(H1) = det(A) det(R det(A? ) is then equal to 1, H1 is exactly known
1

without a scalar factor indetermination and the problem is linear. More precisely,
proposition B.2 shows that a non-zero symmetric matrix X is a solution of equation
H1XHT1 = X (29)
if and only if
X 2 V (AAT ; ArrT AT )
This has already been shown [18, 13]. Consequently, two equations of the same type
as equation (29), obtained, for example, from three views with same intrinsic para-
meters A, are necessary and sucient to compute A, as soon as their corresponding
rotation axis are not parallel (see proposition B.7).
In practice, more than three views are available, so that K is computed as the
solution of a linear least squares problem [18, 1, 15].
5.3 Computing A from F
By multiplying equation (28) on the lefthand side by [e0 ] and on the righthand side
by [e0 ]T and using equation (9), we obtain
FKFT = [e0]K0 [e0]T (30)
But equation (30) is not usable as such in practice. Since F and e0 are computed
only up to non-zero scalar factors  and  (see section 4)
F~ = F and e~0 = e0 (31)
the equation actually available to us is
F~ KF~ T = k2[~e0 ]K0[~e0]T with k =  (32)
Equation (32) shows that we cannot compute A0 from A and F since, according
to proposition B.3, the following homogeneous linear system in the symmetric matrix
X
[e0]X[e0]T = 033

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 13

is of rank 3.
In the case where A0 = A, we can use equation (32) to compute A from F. Since
0
e is computed as the eigenvector of FT corresponding to the 0 eigenvalue, k is also
unknown and the problem is not linear.
Section 5.3.1 puts the problem in terms of the well-known Kruppa equations
[8] which shows that the problem is quadratic indeed. Section 5.3.2, together with
appendices A, B, C and D, gives the formal solutions of the Kruppa equations in
function of A, R and t. This allows us to show o the particular spatial congura-
tions of the cameras that lead to degenerate cases for the Kruppa equations. Lastly,
section 5.3.3 describes how we solve the Kruppa equations in practice.
5.3.1 The Kruppa equations
The problem of recovering A from F using equation (32) amounts to nd the sym-
metric matrices X such that
9x 2 R ? f0g; F~ XF~ T = x [~e0]X[~e0]T
2
(33)
Now, if we denote F~ XF~ T by MF and [~e0]X[~e0]T by Me0 , equation (33) is equivalent
to
9x 2 R ? f0g; M = MF ? x M0e = 0  2
3 3 (34)
Since M is a symmetric matrix, M = 0  is equivalent to a system of six scalar
3 3
equations of the form Mij = 0. Now, since
h i
Me0 = 0 where e0 = e0 e0 e0
3 1 2 3 (35)
this system is in turn equivalent to any system of three equations among which two
are coming from a same line i of M, say
Mii1 = 0 and Mii2 = 0 (36)
such that e0i3 6= 0, where i1 , i2 and i3 are distinct, and the other one from another
line j 6= i, say
Mjj1 = 0 (37)

RR n2793
14 Cyril Zeller, Olivier Faugeras

such that e0j2 6= 0, where j1 and j2 are distinct and dierent from i. Indeed, equa-
tion (35) implies that
e0i1 Mii1 + e0i2 Mii2 +e0i3 Mii3 = 0 (38)
e0j1 Mjj1 +e0j2 Mjj2 + e0i Mji = 0 (39)
e01 Mk1 + e02Mk2 + e03 Mk3 = 0 (40)
where k is the remaining line of M. Equations (38) and (36) then leads to Mii3 = 0.
Since then Mij = Mji = 0, equation (39) and (37) leads to Mjj2 = 0. Lastly,
two equations among Mk1 = 0, Mk2 = 0 and Mk3 = 0 are then satised, so that
equation (40) leads to the third one. Such a system of three equations always exists
since even if only one coordinate of e0 is dierent from zero, say el , then one can
take i3 = j2 = l. If all coordinates of e are dierent from zero, there are 16 such
systems. Indeed, one can extract 20 systems of three equations from a system of six
equations and, among them, the four following ones are not correct:
fM = 0;M = 0;M = 0g
11 22 33

8i 2 [1; 3]; fMi = 0;Mi = 0;Mi = 0g


1 2 3

So, equation (34) becomes


9x 2 R ? f0g;
MFii1 = x Me0 ii1
2
and MFii2 = x Me0 ii2 and MFjj1 = x Me0 jj1
2 2

which is equivalent to
MFii1 Me0jj1 = Me0 ii1 MFjj1 and MFii2 Me0 jj1 = Me0 ii2 MFjj1 (41)
Equations (41) are two homogeneous polynomials, denoted by P (F; X) and P (F; X)
1 2
of degree two in the six unknown coecients of
2 3
6
x1 x5 x37
X = 4x5 x2 x45
x3 x4 x6
They are the Kruppa equations.

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 15

5.3.2 A study of the Kruppa equations


From equation (33), we see that the Kruppa equations are also equivalent to
9x 2 R ? f0g; FXFT = x [e0]X[e0]T
2

which, according to proposition B.5, is equivalent to


9x 2 R ? f0g; X 2 VF;x
where
VF; = V (AAT ; ArrT AT ; AS? ttT ST? AT )
1 1 1

VF;x = V (ASxttT STx AT ; AS?xttT ST?xAT ; A(Sx2 trT + rtT STx2 )AT )
if t is not proportional to r or
VF; = V (AAT ; ArrT AT )
1

VF;x = V (ArrT AT )
otherwise and with
S = R + ( ? tr(R))R + ( ? tr(R) + tr(R))I
2 2
3

Appendix A is devoted to the study of S which helps in demonstrating the


above result in appendix B.
This result shows that K belongs to a solution vector space and so, that one set
of two Kruppa equations (41) is not enough to compute K. Appendix B, together
with appendices C and D, also studies how a system of two sets of two Kruppa
equations constrain K. More precisely, proposition B.9 shows that such a system
obtained, for example, from three views with the same intrinsic parameters A, is,
except for particular spatial congurations of the views that are detailed in table 9,
in general enough for K to be an isolated solution of the system, that is such that
there exists a neighborhood around K that contains only solutions proportional to
K.
5.3.3 Solving the Kruppa equations
In practice, more than three views are available, so that K is computed as the
solution of a non-linear least squares problem [1, 15].

RR n2793
16 Cyril Zeller, Olivier Faugeras

More precisely, K is computed as the matrix that minimizes the following crite-
rion:
N
C (X) = ( @P1 T P1 (Fi; X@P) 1 + @P2 T P2 (Fi; X@P) 2
X 2 2
)
i=1 @ F (Fi ; X)Fi @ F (Fi ; X) @ F (Fi; X)Fi @ F (Fi; X) (42)
where N is the number of fundamental matrices Fi available. If n views are avai-
lable, we have N = n(n2?1) . The minimization is done using a classical Levenberg-
Marquardt method [1, 15].
X is parametrized by an upper triangular matrix U such that X = UUT , in order
to be a symmetric positive denite matrix. Moreover, the bottom-right element
of U is xed to 1, which amounts to take x6 = 1: This eliminates the solutions
proportional to K. The minimization is thus done over ve parameters.
Three ways of initialization are possible:
 Taking three fundamental matrices leads to a system of six polynomials in ve
unknowns. From this system, we build six systems of ve polynomials and
solve them using a homotopic method.
 Assuming that = 0 (see equation (1)), which is a good approximation for
usual cameras, allows to introduce the following additional polynomial equa-
tion:
x5 = x3x4
so that taking two fundamental matrices leads to a system of ve polynomials
in ve unknowns which is also solved using a homotopic method.
 Assuming that = 0 and (u0; v0 ) is the center of the image, which is also a
good approximation for usual cameras, leaves only x1 and x2 as unknowns so
that taking one fundamental matrix leads to a system of two polynomials of
degree two in two unknowns which is solved analytically.
In each of these three ways, several systems are extracted from several fundamental
matrices and the solution common to all of them is chosen. The more systems are
taken in account, the more precise is the solution. Since, on one hand, they generate
a lot of solutions and, on the other hand, they need the use of a homotopic method,
which is a quite fastidious process, the systems built by the rst two initializations
are not well-adapted to a large number of images. On the contrary, p the thirdpini-
tialization allows a quick statistical processing: The points ( u = x1; v = x2)
are distributed along a line whose slope gives the aspect ratio  = uv ; this line is

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 17

estimated by robust tting and the corresponding outliers are not used in the pro-
cess of minimization; the mean is taken as initial value. Figures 3, 4 and 5 show
that choosing (u0; v0 ) around the image center does not have a big inuence on the
computed value of .
5.4 Using geometric information
If we have some a priori information about the scene such as Na angles j between
lines and Nr ratios j of lengths, equations (24) and (25) are used to add to the
criterion giving by equation (42) the following criteria:
Na X
X N (cos(j ) ? Cj (Fi; X))2
Cangle(X) = jT
j =1 i=1 @C @Cj
@ F (Fi ; X)Fi @ F (Fi; X)
XNr X N (j ? Rj (Fi; X))2
Cratio(X) = jT
j =1 i=1 @R @Rj
@ F (Fi; X)Fi @ F (Fi ; X)
where
Cj (Fi; X) = c(v1ij ; v2ij ) and Rj (Fi; X) = r(vabij ; vacij ; vbcij ; vbdij ; vcdij )
In order to evaluate Cangle(AAT ) and Cratio(AAT ), given a current A at each
iteration of the processus of minimization, and since these criteria require computing
the images of points at innity, we need to compute H1 from F and A.
For that, we rst compute E, using equation (10), and then, decompose E like in
equation (11) to recover R, H1 being then given by equation (5). In [6], Faugeras
shows that the decomposition of E like in equation (11) is possible if and only if E
has one singular value equal to zero and the other two singular values equal to each
other. Now, applying equation (10) directly leads to a matrix E~ = AT FA which does
have a singular value equal to zero, since F is parametrized in order to be exactly
singular, but whose two other singular values r and s are not necessarily equal. In
[10], Hartley explains that the closest matrix E to E~ under the sum-of-squares norm
which decomposes like in equation (11) is obtained by replacing r and s by r+2 s in
the singular value decomposition of E~ . Now, there are two ways to decompose E
like in equation (11) [10]. Indeed, if we denote Rt the rotation matrix of axis t and
angle , we have3
Rt = I3 + 2 k[tt]k2
2

3
using the Rodrigues formula R = I3 + sin()[r] + (1 ? cos())[r]2

RR n2793
18 Cyril Zeller, Olivier Faugeras

so that4
E = [?t]Rt R
[t] 3
= [?t]R ? 2 ktk R 2

= [t]R
To compute these two rotation matrices, we rst compute a vector proportionnal to
t, according to equations (31) and (6):
~t = A?1e~0 = t
where  is an unknown scalar. R and Rt R are then equal to
1 (ET  [~t] E)
~
ktk2 

where E is the matrix of cofactors of E [6]. When dealing with images that come
from a sequence, we choose the rotation of smallest angle.

6 Computing the projection matrices from A and F


The n views considered in this section are assumed to have the same intrinsic pa-
rameters matrix A and are such that the fundamental matrices between each two
views are known.
For any view i of optical center Ci and any view j of optical center Cj , we denote
" #
QFFCCji = Rij tij
0T 1 3

According to section 5.4, we can compute ~tij = ij tij and Rij where ij is an
unknown scalar. We then dene the frame FE by its matrix of change of frame from
FC1 to FE :
" #
QFFEC1 = I 0
3 3
(43)
0T 12
3
1

4
using the algebraic equation [u]3 = ?kuk2[u]

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 19

In FE , we have then
h i
P = AP QFFCE1 = A I 0
1 0 3 3
h i
P = AP QFFCE2 = AP QFFCC21 QFFCE1 = A R
2 0 0 12
~t12

and for any view i > 2


h
Pi = AP QFFCEi = AP QFFCCi1 QFFCE1 = A R i 12 ~t i
0 0 1 1i 1i
Now from
QFFCCi1 = QFFCCi2 QFFCC21
we deduce that
t i = R it + t i
1 2 12 2

so that
12 = (~t2i  ~t1i )T (~t2i  R2i~t12)
1i k~t2i  ~t1ik2
The projection matrices computed this way are in practice rened using a tech-
nique similar to the classical bundle adjustment method.
For that, we assume that we have p point correspondences corresponding to p
points Mi of the scene of unknowns coordinates (Mi)i2[1;p]. The renement of the
projections matrices is then done by minimizing the following criterion:
p X
((xij ? liT1Mj )2 + (yij ? lTi2Mj )2)
X T T
(44)
j =1 i2Ij li Mj
3 li Mj
3

over
 the set of all the points coordinates Mi (for each
h
j , Ij isi the set of the indices
T
i of the images in which the projection mij = xij yij of Mj is known),
 the set of the projection matrices of the n views (Pi)i2 ;n so that [1 ]

2T3
li 1
8i 2 [1; n]; Pi = 64lTi 75 2
lTi 3

RR n2793
20 Cyril Zeller, Olivier Faugeras

More precisely, this is done by minimizing the criterion (44) over the set of the
projection matrices only, by using a classical Levenberg-Marquardt method : at
each evaluation of the criterion, the points coordinates Mj are linearly computed
from the equation
8i 2 Ij ; mij  PiMj = 03
The projection matrices are parametrized the following way
h i h i
P =A I 0
1 3 3 and 8i 2 [2; n]; Pi = A Ri ti
which makes a total of 5 + 6(n ? 1) parameters. Ri is initialized by R1i and ti by
12 t .
1i 1i

7 Results
In this section, we show the results obtained with three real sequences. The point
correspondences have been obtained automatically by tracking, in the case of the
sequence 1 (gure 2) and manually, in the case of the sequences 2 (gure 7) and 3
(gure 11).
For each of the sequence, the results concerning the self-calibration technique
described in section 5.3.3 are rst shown. Three kinds of minimization are tested
depending on the parametrization of A: ve parameters, four parameters ( = 0),
four parameters ( v =  u ), three parameters ( = 0 and v =  u ), where  is
the aspect ratio evaluated at the initialization. In the case of the sequence 1, the
intrinsic parameters computed with a classical calibration method[9] are also given.
The aspect ratios are very similar. The other parameters are also well estimated,
above all with the two last kinds of minimizations, considering the fact that, even
with classical calibration methods, they are estimated up to 5% for u and v and
10% for u0 and v0 .
Metric measurements, computed directly in the images, using the equations gi-
ven in section 3.2.3, are then shown and compared with real measurements. Each
measurement shown is the median of all the measurements computed from all the
pairs of images of the sequence.
At last, for the sequences 2 and 3, a reconstruction is shown that has been obtai-
ned after computing the projection matrices by the method described in section 6.
Metric measurements, computed from the reconstructed points, are also shown.

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 21

Figure 2: Sequence 1 : 43 512  512-views; the tracks of the points in four images
(1, 12, 28, 43).

RR n2793
22 Cyril Zeller, Olivier Faugeras

4000

3000

av

2000

1000

00 500 1000 1500 2000 2500 3000


au
Figure 3: Sequence 1 : Robust t of the initial values of u and v ; the slope of
the line is the aspect ratio; here: u0 = 256, v0 = 256 and  = 1:474.

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 23

4000

3000

av

2000

1000

00 500 1000 1500 2000 2500 3000


au
Figure 4: Sequence 1 : Robust t of the initial values of u and v ; the slope of
the line is the aspect ratio; here: u0 = 200, v0 = 300 and  = 1:485.

RR n2793
24 Cyril Zeller, Olivier Faugeras

5000

4000

3000

av

2000

1000

00 500 1000 1500 2000 2500 3000


au
Figure 5: Sequence 1 : Robust t of the initial values of u and v ; the slope of
the line is the aspect ratio; here: u0 = 300, v0 = 200 and  = 1:495.

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 25

2 Minimization over 5 parameters


3
1164:15 ?9:96 198:34
A = 64 0 1761:47 289:5 75  = 1:513
0 0 1
Minimization
2 over 4 parameters
3 : =0
1094:4 0 208:72
A = 64 0 1649 269:2 75  = 1:508
0 0 1
Minimization
2 over 4 parameters
3 : = 0
952:66 ?0:36 215:26
A = 64 0 1404:07 214:3 75  = 1:474
0 0 1
Minimization
2 over 3 parameters 3: = 0 et = 0
949:82 0 215:26
A = 64 0 1399:88 214:3 75  = 1:474
0 0 1
2 Classical calibration
3
940 0:05 249:35
A = 64 0 1387 255:3575  = 1:475
0 0 1
Table 1: Sequence 1 : The intrinsic parameters computed by self-calibration com-
pared with those obtained using a calibration pattern.

RR n2793
26 Cyril Zeller, Olivier Faugeras

1
3 2

Figure 6: Sequence 1 : The segments used for measurements of table 2.

Angle Computed Real Ratio Computed Real


cos(1; 2) 0:079 0:089 1=2 2:68 2:8
cos(1; 3) 0:079 0:029 1=3 2:9 2:98
cos(2; 4) 0:91 0:94 2=4 1:1 1:2
cos(3; 5) 0:4 0:34 3=5 1:16 1:05

Table 2: Sequence 1 : Some measurements relative to the segments of gure 6,


computed directly in the images.

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 27

Figure 7: Sequence 2 : 10 768  512-views of the Arcades place in Valbonne (1, 2,


4, 6, 8, 10).

RR n2793
28 Cyril Zeller, Olivier Faugeras

Initialisation

5000

4000

3000
beta

2000

1000

00 200 400 600 800 1000 1200


alpha

0 = 1:089
2 Median 3
625:061 0 384
A = 64 0 564:979 25675  = 0:904
0 0 1
2Minimization over 5 parameters
3
667:732 9:832 415:015
A = 64 0 717:939 328:04775  = 1:075
0 0 1
Minimization
2 over 4 parameters3 : = 0
670:747 0 416:072
A = 64 0 729:394 334:97475  = 1:087
0 0 1
Minimization
2 over 4 parameters 3: = 0
666:705 9:897 414:542
A = 64 0 726:272 327:60675  = 1:089
0 0 1
Minimization
2 over 3 parameters : =3 0 et = 0
670:566 0 415:958
A = 64 0 730:478 327:60675  = 1:089
0 0 1
Table 3: Sequence 2 : The intrinsic parameters computed by self-calibration.
INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 29

1
15 3 2

5 9
14 13 4
6 8
7 10

11
12

Figure 8: Sequence 2 : The segments used for the measurements of table 4.

Angle Computed Real Ratio Computed Real


cos(3; 4) 0:031 0 1=2 1:04 1
cos(4; 8) 0:105 0 5=7 0:983 1
cos(8; 10) 0:032 0 11=12 0:373 1
cos(5; 6) 0:031 0 13=14 0:994 1
cos(13; 15) 0:07 0

Table 4: Sequence 2 : Some measurements relative to the segments of gure 8,


computed directly in the images.

RR n2793
30 Cyril Zeller, Olivier Faugeras

Figure 9: Sequence 2 : The segments reconstructed in gure 10.

Angle Computed Real Ratio Computed Real


cos(3; 4) 0:017 0 1=2 1:01 1
cos(4; 8) 0:004 0 5=7 0:954 1
cos(8; 10) 0:028 0 11=12 0:987 1
cos(5; 6) 0:007 0 13=14 0:983 1
cos(13; 15) 0:062 0

Table 5: Sequence 2 : Some measurements relative to the segments of gure 8,


computed from the reconstructed points.

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 31

Figure 10: Sequence 2 : Four views of the reconstruction of the segments of gure 9.

RR n2793
32 Cyril Zeller, Olivier Faugeras

Figure 11: Sequence 3 : 15 512  768-views of the church of Valbonne (1, 3, 5, 10,
12, 14).

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 33

Initialisation

4000

3000

beta

2000

1000

00 1000 2000 3000 4000 5000 6000


alpha

0 = 0:977
2 Median 3
639:460 0 256
A = 64 0 693:682 38475  = 1:085
0 0 1
2Minimization over 5 parameters
3
679:515 ?3:258 254:466
A = 64 0 677:470 383:47675  = 0:997
0 0 1
Minimization
2 over 4 parameters3 : = 0
681:345 0 258:802
A = 64 0 679:285 383:18875  = 0:997
0 0 1
Minimization
2 over 4 parameters 3: = 0
694:213 ?3:578 249:650
A = 64 0 677:954 377:62775  = 0:977
0 0 1
Minimization
2 over 3 parameters : =3 0 et = 0
694:998 0 255:448
A = 64 0 678:721 377:62775  = 0:977
0 0 1
RRTable 6: Sequence 3 : The intrinsic parameters computed by self-calibration.
n2793
34 Cyril Zeller, Olivier Faugeras

3
2
1

5 10 12
8 17 18
9 13 14
6 7 15 16
19
20

Figure 12: Sequence 3 : The segments used for the measurements of table 7.

Angle Computed Real Ratio Computed Real


cos(1; 3) 1 1 2=4 0:993 1
cos(1; 2) 0:054 0 4=5 0:999 1
cos(3; 5) 0:032 0 10=12 1:05 1
cos(6; 7) 0:999 1 8=9 1:004 1
cos(15; 16) 1 1 17=18 0:966 1
cos(19; 20) 0:101 0 13=14 0:902 1

Table 7: Sequence 3 : Some measurements relative to the segments of gure 12,


computed directly in the images.

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 35

Figure 13: Sequence 3 : The segments reconstructed in gure 14.

Angle Computed Real Ratio Computed Real


cos(1; 3) 1 1 2=4 0:982 1
cos(1; 2) 0:026 0 4=5 0:999 1
cos(3; 5) 0:018 0 10=12 1:022 1
cos(6; 7) 1 1 8=9 1:007 1
cos(15; 16) 1 1 17=18 0:984 1
cos(19; 20) 0:022 0 13=14 0:955 1

Table 8: Sequence 3 : Some measurements relative to the segments of gure 12,


computed from the reconstructed points.

RR n2793
36 Cyril Zeller, Olivier Faugeras

Figure 14: Sequence 3 : Four views of the reconstruction of the segments of


gure 13.

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 37

8 Conclusion
The self-calibration technique described in this article is the generalization to a
large number of images of the algorithm developped by Luong and Faugeras[8]. In
comparison with the original, its robustness is improved essentially because of the
use of statistical tools, such as robust model tting and covariance matrices, at each
step of the process (initialization and minimization).
Its main advantages over other algorithms[11] are that its initialization is easy
and needs no a priori knowledge about the camera due to the algebraic structure
of the equations and that the number of parameters over which the minimization is
done is low which makes it very ecient.

References
[1] E. Anderson, Z. Bai, C. Bishof, J. Demmel, J. Dongarra, J. Du Croz, A. Green-
baum, S. Hammarling, A. McKenney, S. Ostrouchov, and D. Sorensen. LA-
PACK Users' Guide. Society for Industrial and Applied Mathematics, 3600
University City Science Center, Philadelphia, PA 19104-2688, second edition,
1994.
[2] Boubakeur Boufama, Roger Mohr, and Franoise Veillon. Euclidean Constraints
for Uncalibrated Reconstruction. Technical Report RT96 IMAG 17 LIFIA,
LIFIA, INSTITUT IMAG, March 1993.
[3] Gabriella Csurka, Cyril Zeller, Zhengyou Zhang, and Olivier Faugeras. Cha-
racterizing the uncertainty of the fundamental matrix. Technical Report 2560,
INRIA, 1995.
[4] O.D. Faugeras and F. Lustman. Let us suppose that the world is piecewise
planar. In O. D. Faugeras and Georges Giralt, editors, Robotics Research, The
Third International Symposium, pages 3340. MIT Press, 1986.
[5] Olivier Faugeras. What can be seen in three dimensions with an uncalibrated
stereo rig. In G. Sandini, editor, Proceedings of the 2nd European Conference
on Computer Vision, volume 588 of Lecture Notes in Computer Science, pages
563578, Santa Margherita Ligure, Italy, May 1992. Springer-Verlag.
[6] Olivier Faugeras. Three-Dimensional Computer Vision: a Geometric View-
point. The MIT Press, 1993.

RR n2793
38 Cyril Zeller, Olivier Faugeras

[7] Olivier Faugeras. Stratication of 3-d vision: projective, ane, and metric
representations. Journal of the Optical Society of America A, 12(3):465484,
March 1995.
[8] Olivier Faugeras, Tuan Luong, and Steven Maybank. Camera self-calibration:
theory and experiments. In G. Sandini, editor, Proc 2nd ECCV, volume 588 of
Lecture Notes in Computer Science, pages 321334, Santa Margherita Ligure,
Italy, May 1992. Springer-Verlag.
[9] Olivier Faugeras and Giorgio Toscani. Camera Calibration for 3D Computer Vi-
sion. In International Workshop on Machine Vision and Machine Intelligence,
pages 240247, Tokyo, February 1987.
[10] Richard Hartley. Calibration of cameras using the essential matrix. In Pro-
ceedings of the ARPA Image Understanding Workshop, pages 911915. Defense
Advanced Research Projects Agency, Morgan Kaufmann Publishers, Inc., 1992.
[11] Richard Hartley. Lines and points in three views-an integrated approach. In
Proceedings of the ARPA Image Understanding Workshop. Defense Advanced
Research Projects Agency, Morgan Kaufmann Publishers, Inc., 1994.
[12] Richard Hartley, Rajiv Gupta, and Tom Chang. Stereo from uncalibrated ca-
meras. In Proceedings of the International Conference on Computer Vision and
Pattern Recognition, pages 761764, Urbana Champaign, IL, June 1992. IEEE.
[13] Q.-T. Luong and T. Viville. Canonic representations for the geometries of mul-
tiple projective views. In J-O. Eklundh, editor, Proceedings of the 3rd European
Conference on Computer Vision, volume 800-801 of Lecture Notes in Computer
Science, pages 589599, Vol. 1, Stockholm, Sweden, May 1994. Springer-Verlag.
[14] Quang-Tuan Luong, Rachid Deriche, Olivier Faugeras, and Thodore Papado-
poulo. On determining the fundamental matrix: analysis of dierent methods
and experimental results. In Israelian Conf. on Articial Intelligence and Com-
puter Vision, Tel-Aviv, Israel, 1993. A longer version is INRIA Tech Report
RR-1894.
[15] William H. Press, Brian P. Flannery, Saul A. Teukolsky, and William T. Vet-
terling. Numerical Recipes in C. Cambridge University Press, 1988.
[16] L. Robert and O.D. Faugeras. Relative 3d positioning and 3d convex hull
computation from a weakly calibrated stereo pair. In Proceedings of the 4th

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 39

Proc. International Conference on Computer Vision, pages 540544, Berlin,


Germany, May 1993. IEEE Computer Society Press. also INRIA Technical
Report 2349.
[17] Peter Sturm and Long Quan. Ane stereo calibration. Technical Report TR
29, LiaImag, 1995.
[18] T. Viville, C. Zeller, and L. Robert. Recovering motion and structure from a
set of planar patches in an uncalibrated image sequence. In Proceedings of the
International Conference on Pattern Recognition, pages 637641, Jerusalem,
Israel, October 1994. Computer Society Press.
[19] Cyril Zeller and Olivier Faugeras. Applications of non-metric vision to some
visual guided tasks. In Proceedings of the International Conference on Pattern
Recognition, pages 132136, Jerusalem, Israel, October 1994. Computer Society
Press. A longer version in INRIA Tech Report RR2308.
[20] Cyril Zeller and Olivier Faugeras. Applications of non-metric vision to some
visual guided tasks. Research Report 2308, INRIA, July 1994.
[21] Zhengyou Zhang, Rachid Deriche, Olivier Faugeras, and Quang-Tuan Luong.
A robust technique for matching two uncalibrated images through the recovery
of the unknown epipolar geometry. Articial Intelligence Journal, 1994. to
appear, also INRIA Research Report No.2273, May 1994.

Appendices
A Study of S
In this section, R is a 3  3-rotation matrix dierent from I3 ,  is its angle and r,
its rotation vector such that Rr = r and krk = 1.
Denition A.1 We dene S by
S = R + ( ? tr(R))R + ( ? tr(R) + tr(R))I
2 2
3

Proposition A.1
(R ? I )S = det(R ? I )I
3 3 3

RR n2793
40 Cyril Zeller, Olivier Faugeras

Proof. We have
det(R ? I3 ) = ?3 + tr(R)2 ? tr(R) + 1
so that, according to the Cayley-Hamilton's theorem, we have
R ? tr(R)R + tr(R)R ? I = 0 
3 2
3 3 3

Thus,
(R ? I3 )S
= R3 ? tr(R)R2 + tr(R)R + (?3 + tr(R)2 ? tr(R))I3
= det(R ? I3 )I3

Proposition A.2 If  6= 1, S is invertible and


S? = det(RR??II )
1 3

Proof. This results from proposition A.1.


Proposition A.3
S = (3 ? tr(R))rrT
1

Proof. Since tr(R) = 2 cos() + 1, we have35


S 1
= R ? 2 cos()R + I3 2

= I3 + sin(2)[r] + (1 ? cos(2))[r]2 ? 2 cos()(I3 + sin()[r] + (1 ? cos())[r]2) + I3


= 2(1 ? cos())rrT

Proposition A.4 For any 3  3-matrix X, we have


RS XST RT ?  S XST = det(R ? I )(det(R ? I )X + S X + XST )
2
3 3

5
using the algebraic equation vvT = kvk2 I3 + [v]2

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 41

Proof. Indeed, according to proposition A.1,


RS XST RT ?  S XST 2

= (det(R ? I )I + S )X(det(R ? I )I + ST ) ?  S XST


3 3 3 3
2

= det(R ? I )(det(R ? I )X + S X + XST )


3 3

Proposition A.5 For any  and  dierent from 1, we have


1 2

S S = S S 1 2 2 1

Proof. Indeed,
S1 S2 = det(R ?  I ) det(R ?  I )(R ? ( +  )R +   I )? = S2 S1
1 3 2 3
2
1 2 1 2 3
1

Proposition A.6 For any 3-vector v not proportional to r and any distinct  and 1
 dierent from 1, S v, S v and r are not coplanar.
2 1 2

Proof. Indeed, according to proposition A.5, we have then


1S1 v + 2 S2 v + r = 03
=)
1S2 v + 2S1 v + S?11S?21r = 03
? 1 ?1

=)
( det(R?1 I3 ) + det(R?2 I3 ) )Rv ? ( det(R?1 I3 ) + det(R 2?2 2 I3 ) )v + det(R ?(1?1 I31))(1
1 2 1 1 ?2 )
det(R?2 I3 )
r = 03
=)
= 1 = 2 = 0

Proposition A.7 For any  dierent from 1, we have


(1 ? 2)2kr  vk2
(r  S v)T (r  S? v) = det(R ? I3 ) det(R + I3 )

RR n2793
42 Cyril Zeller, Olivier Faugeras

Proof. Since we have3


det(R ? I3 ) det(R + I3 )S? 1S??1T = (R ? I3 )(RT + I3 )
= (1 ? 2 )I3 + (R ? RT )
= (1 ? 2 )I3 + 2 sin()[r]
we have1
(r  S v)T (r  S?v)
= (S [v](1 ? )r)T (S??1T [v](1 + )r)
?1T

= (1 ? 2 )(v  r)T S? 1S??1T v  r


2 2 krvk2
= det(R(1??I3)) det(R+I3 )

Proposition A.8 For  6= 1, if we denote by FR any frame composed of r?, r  r?


and r, where r? is any vector orthogonal to r, S is then written in FR:
" p #" #
d(1 ? )I 0 RS 0
2 2 2
0T d 2 0T 1 2

where d =  ? 2 cos() + 1 and RS is a the rotation matrix of angle S dened
2

by
cos(S ) = cos(p) ?  and sin(S ) = sin(
p )
d d
Proof. First, we note that d is always positive and that
det(R ? I3 ) = d(1 ? )
Then, in FR, R is written
" # " #
R 0 2
with R = cos( ) ? sin()
0T 1
2 sin() cos()
so that S? 1 is written
" #
S0?
 0
1
with S0? R ? I2
 = d(1 ? )
2 1
0T d
2
1

Now, we have
d2(1 ? )2 S0?1 0?1T
 S = (R ? I2 )(R ? I2 ) = ( + 1)I2 ? (R + R ) = dI2
T 2 T

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 43

p
This means that d(1 ? )S0? ?1
 is a rotation matrix of angle ?S and S is thus
1

written " T #" #


RS 0 d(1?) I2 0
2
1 p 2

0T 1
2 0T2
1
d

B Study of the self-calibration equations


In this section, we give the formal solutions of the equations that are at the basis of
the self-calibration process described in section 5. Section B.2 deals with the equa-
tions corresponding to one displacement and section B.3 deals with the equations
corresponding to two displacements, that is with systems composed of two of the
preceding equations.
The unknown of these equations or systems of equations is either X, or (x; X),
or ((x1; x2); X) where x, x1 and x2 are non-zero reals and X a non-zero symmetric
3  3-matrix.
These equations are dened using the following quantities:
H1 = ARA?1 (45)
0
e = At (46)
0
F = [e ]H1 (47)
These last three equations are equivalent to the equations (5), (6) and (9) in the case
where A = A0. When systems are considered, the corresponding indexed quantities
are used:
H1i = ARiA?1
e0i = Ati
Fi = [e0i]H1i
We consider that R, respectively Ri , is equal to I3 and that t, respectively ti, is
not equal to 03 in which cases the solutions of the equations, respectively systems,
studied are obvious.
B.1 Notations
The set of all the symmetric 3  3-matrices is a 6-dimensional vector space and X
equally refers to the matrix or its corresponding 6-dimensional vector.

RR n2793
44 Cyril Zeller, Olivier Faugeras

For a set of linearly independent vectors fv1; : : : ; vN g, V (v1; : : : ; vN ) denotes


the vector space of basis (v1; : : : ; vN ).
We denote the rotation axis of a rotation matrix R by any vector r, such that
Rr = r.
If R is a 3  3-rotation matrix and  a real dierent from 1, we dene S by
S = R + ( ? tr(R))R + ( ? tr(R) + tr(R))I
2 2
3

S is studied in section A.
B.2 The solutions corresponding to one displacement
Proposition B.1 The solution set of equation
RXRT ? x X = 0  2
3 3 (48)
is
f(x; X); x 2 f?1; 1g; X 2 VR g
where
VR = V (I ; rrT )
3

Proof. Equation (48) is a homogeneous linear system in X. Using some computer


algebra system, it can be proved formerly that the rank of this system is 6 if x2 6= 1,
or 4 otherwise.
If x2 6= 1, the solution is thus unique and equal to 033.
If x2 = 1, the solution vector space VR is thus of dimension 2. I3 is a solution
of equation (48) since RRT = I3 . rrT is another solution of equation (48) since
RrrT RT = rrT . Since, according to proposition C.5, I3 and rrT are then linearly
independent, they form a basis of VR .
Proposition B.2 The solution set of equation
H1XHT1 ? x X = 0  2
3 3 (49)
is
f(x; X); x 2 f?1; 1g; X 2 VH1 g
where
VH1 = V (AAT ; ArrT AT )

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 45

Proof. According to equation (45), equation (49) is equivalent to


RA?1XA?1T RT ? x2A?1XA?1T = 033
Thus, (x0; X0) is a solution of equation (49) if and only if (x0; A?1X0A?1T ) is a
solution of equation (48).
Proposition B.3 The solution set of equation
[v]X[v]T = 033 (50)
is
V (vv1T + v1vT ; vv2T + v2 vT ; vv3T + v3vT )
where (v1; v2; v3) is any basis of R3 .
Proof. Equation (50) is a homogeneous linear system in X. Using some computer
algebra system, it can be proved formerly that the rank of this system is 3. The
solution vector space is thus of dimension 3.
For any vector u of coordinates (x1; x2; x3) in (v1; v2; v3), on the one hand,
vuT + uvT is obviously a solution of equation (50), on the other hand, we have
i=3
X
vuT + uvT = xi(vviT + vi vT )
i=1
Thus, vvT + v1vT , vvT + v2vT
1 2 and vvT + v3vT
3 form a basis of the solution set.
Proposition B.4 The solution set of equation
[t](RXRT ? x X)[t]T = 0 2
3 3 (51)
is
f(x; X); x 2 R; X 2 VR;t;x g
where
VR;t; = V (I ; rrT ; S? ttT ST? )
1 3 1 1

VR;t;x = V (Sx ttT STx ; S?x ttT ST?x ; Sx2 trT + rtT STx2 )
if t is not proportional to r or
VR;t; = V (I ; rrT )
1 3

VR;t;x = V (rrT )
otherwise.
Furthermore, 8x 6= 1; I3 62 VR;t;x .

RR n2793
46 Cyril Zeller, Olivier Faugeras

Proof. Equation (51) is a homogeneous linear system in X. Using some computer


algebra system, it can be proved formerly that the rank of this system is 3 if t is
not proportional to r, or otherwise, 4 if x2 = 1, or 5 otherwise.
Let us rst assume that t is proportional to r.
If x2 = 1, the solution vector space VR;t;1 is thus of dimension 2. I3 and rrT ,
as solutions of equation (48), are also solutions of equation (51) and thus, according
to proposition C.5, form a basis of VR;t;1.
If x2 6= 1, the solution vector space VR;t;x is thus of dimension 1. rrT is obviously
a solution of equation (51) and thus form a basis of VR;t;x .
Let us now assume that t is not proportional to r. The solution vector space
VR;t;x is thus of dimension 3.
According to proposition A.4, we have
[t] (RSxttT STx RT ? x2Sx ttT STx )[t]T
= det(R ? xI3 )[t](det(R ? xI3)ttT + xSxttT + xttT STx )[t]T
= 033
Let us suppose that x2 = 1. In addition to I3 and rrT , that is, according to
proposition A.3, equivalently, S1ttT ST1 , a third solution is thus S?1ttT ST?1. If t
is not proportional to r, r and S?1t are not proportional either because S r is
proportional to r. According to proposition C.6, I3 , rrT and S?1ttT ST?1 are then
linearly independent, thus form a basis of VR;t;1.
Let us now suppose that x2 6= 1. Then Sx ttT STx and S?x ttT ST?x are thus solu-
tions. Sx2 trT + rtT STx2 is then also a solution: Indeed, according to proposition A.1,
we have
[t] (R(Sx2 trT + rtT STx2 )RT ? x2(Sx2 trT + rtT STx2 ))[t]T
= [t]((det(R ? x2I3)I3 + x2Sx2 )trT RT + RrtT (det(R ? x2I3 )I3 + x2STx2 )
?x2(Sx2 trT + rtT STx2 ))[t]T
= det(R ? x2I3)[t](trT + rtT )[t]T
= 033
Since, according to proposition A.6, neither Sx t, Sx2 t and r, nor S?x t, Sx2 t and r
are coplanar, Sx ttT STx , S?xttT ST?x and Sx2 trT + rtT STx2 are linearly independent,
according to proposition C.14, and thus form a basis of VR;t;x .
Now, in the case where t is proportional to r, according to proposition C.5,
8x 6= 1; I3 62 VR;t;x .
In the case where t is not proportional to r and x 6= 1, according to proposi-
tion C.17, the rank of (I3 ; SxttT STx ; S?xttT ST?x ; Sx2 trT + rtT STx2 ) is 4. Indeed, on

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 47

the one hand, according to proposition A.6, Sx t, S?xt and r are then not coplanar
and, on the other hand, according to proposition A.7, (r  Sx t)T (r  S?x t) 6= 0
so that, according to proposition D.1, cos(Sx t; S?x t) 6= cos(Sx t; r) cos(S?xt; r) and
Sx t, S?x t, r and Sx2 t do not satisfy equation (70).
Consequently, 8x 6= 1; I3 62 VR;t;x .
Proposition B.5 The solution set of equation
FXFT ? x [e0]X[e0]T = 0 
2
3 3 (52)
is
f(x; X); x 2 R ? f0g; X 2 VF;x g
where
VF; = V (AAT ; ArrT AT ; AS? ttT ST? AT )
1 1 1

VF;x = V (ASxttT STx AT ; AS?xttT ST?x AT ; A(Sx2 trT + rtT STx2 )AT )
if t is not proportional to r or
VF; = V (AAT ; ArrT AT )
1

VF;x = V (ArrT AT )
otherwise.
Furthermore, 8x 6= 1; AAT 62 VF;x .
Proof. According to equation (47), equation (52) is equivalent to
[e0](H1XHT1 ? x2X)[e0]T = 033
or using equations (45) and (46)
[At](ARA?1XA?1T RT AT ? x2X)[At]T = 033
that is 1
[t](RA?1XA?1T RT ? x2A?1XA?1T )[t]T = 033
Thus, (x0; X0) is a solution of equation (52) if and only if (x0; A?1X0A?1T ) is a
solution of equation (51).

RR n2793
48 Cyril Zeller, Olivier Faugeras

B.3 The solutions corresponding to two displacements


The systems considered in this section are composed of one equation of unknown
(x1; X) and another of same type of unknown (x2; X), so that the unknown of the
system is (x1; x2; X). If f(x1; X); x1 2 R ? f0g; X 2 Sx1 g is the solution set of the
rst equation and f(x2; X); x2 2 R ? f0g; X 2 Sx2 g, the solution set of the second,
the solution set of the system is f(x1; x2; X); x1:x2 2 R ? f0g; X 2 Sx1 \ Sx2 g.
A basis of Sx1 \ Sx2 is given by dim(Sx1 \ Sx2 ) linearly independent vectors of
Sx1 \ Sx2 and we have6
dim(Sx1 \ Sx2 ) = dim(Sx1 ) + dim(Sx2 ) ? dim(Sx1 + Sx2 )
Proposition B.6 The solution set of the system
R1 XRT1 ? x21X = 033
R2 XRT2 ? x22X = 033
is
f(x1; x2; X); x1; x2 2 f?1; 1g; X 2 VR1 \ VR2 g
where VR1 \ VR2 is V (I3 ) if r1 and r2 are not proportional, or VR1 otherwise.
Proof. According to proposition B.1, I3 , r1rT1 and r2rT2 obviously span (VR1 +
VR2 ). Now, according to proposition C.6, if r1 and r2 are not proportional, we have
dim(VR1 \ VR2 ) = 2 + 2 ? 3 = 1
and (I3) is obviously a basis of VR1 \ VR2 , otherwise
VR1 \ VR2 = VR1 = VR2

Proposition B.7 The solution set of the system


H1 XHT1 ? X = 0 
1 1 3 3

H1 XHT1 ? X = 0 
2 2 3 3

is (
VH11 \ VH12 = VVH(AA ) otherwise
T if r and r are not proportional
1 2

11
using the relation dim(E1 + E2) + dim(E1 \ E2 ) = dim(E1 ) + dim(E2 ), valid for two vector
6

spaces E1 and E2

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 49

Proof. This results from proposition B.6 and by using the same argument as in
the proof of proposition B.2.
Proposition B.8 The solution set of the system
[t ] (R XRT ? x X)[t ]T = 0 
1 1 1
2
1 1 3 3

[t ] (R XRT ? x X)[t ]T = 0 


2 2 2
2
2 2 3 3

is
f(x ; x ; X); x ; x 2 < ? f0g; X 2 VR1 ;t1 ;x1 \ VR2 ;t2 ;x2 g
1 2 1 2

VR1 ;t1 ; \ VR2;t2 ; is given in table 9 depending on the conguration of the


1 1
vectors r , S ;? t , r and S ;? t between each other.
1 1 1 1 2 2 1 2
Furthermore, we have
8x 6= 1; I 62 VR1;t1 ;x1 \ VR2 ;t2 ;x2
3

Proof. According to proposition B.4, I3 , r1rT1 , S1;?1t1 tT1 ST1;?1, r2rT2 and S2;?1t2tT2 ST2;?1
obviously span (VR1;t1 ;1 + VR2;t2 ;1). Now, according to propositions C.5, C.6, C.8
and C.10, several cases occur that are summarized in table 9.
Proposition B.9 The solution set of the system
F XFT ? x [e0 ]X[e0 ]T = 0 
1 1
2
1 1 1 3 3

F XFT ? x [e0 ]X[e0 ]T = 0 


2 2
2
2 2 2 3 3

is
f(x ; x ; X); x ; x 2 < ? f0g; X 2 VF1 ;x1 \ VF2 ;x2 g
1 2 1 2

VF1 ;1 \ VF2 ;1, depending on the conguration of the vectors r1, S1;?1t1, r2
and S2;?1t2 between each other, is deduced from table 9 the following way: A basis
of VF1 ;1 \ VF2 ;1 is obtained from the vectors of a basis of VR1;t1 ;1 \ VR2;t2 ;1by
left-multiplying by A and right-multiplying by AT each of them.
Furthermore, we have
8x 6= 1; I 62 VF1 ;x1 \ VF2 ;x2
3

Proof. This results from proposition B.8 and by using the same argument as in
the proof of proposition B.5.

RR n2793
50 Cyril Zeller, Olivier Faugeras

Conguration dim(V(R;t;1)1;2 ) a basis of V(R;t;1)1;2


r1 / u1 / r2 / u2 2+2?2 = 2 I3; r1rT1
r1 / u1 / r2 2+3?3 = 2 I3; r1rT1
r1 / u1 / u2 2+3?3 = 2 I3; r1rT1
r1 / r2 / u2 3+2?3 = 2 I3; r1rT1
u1 / r2 / u2 3+2?3 = 2 I3; u1uT1
r1 / u1; r2 / u2 2+2?3 = 1 I3
r1 / r2; u1 / u2 3+3?3 = 3 I3 ; r1rT1 ; u1uT1
r1 / u2; r2 / u1 3+3?3 = 3 I3 ; r1rT1 ; u1uT1
r1 / u1; (r1; r2; u2) o.b 2+3?3 = 2 I3; r1rT1
r1 / r2; (r1; u1; u2) o.b 3+3?3 = 3 I3 ; r1rT1 ; u1uT1
r1 / u2; (r1; u1; r2) o.b 3+3?3 = 3 I3 ; r1rT1 ; u1uT1
u1 / r2; (r1; u1; u2) o.b 3+3?3 = 3 I3 ; r1rT1 ; u1uT1
u1 / u2; (r1; u1; r2) o.b 3+3?3 = 3 I3 ; r1rT1 ; u1uT1
r2 / u2; (r1; u1; r2) o.b 3+2?3 = 2 I3; r2rT2
r1 / u1; (r1; r2; u2) n.o.b. 2 + 3 ? 4 = 1 I3
r1 / r2; (r1; u1; u2) n.o.b. 3 + 3 ? 4 = 2 I3; r1rT1
r1 / u2; (r1; u1; r2) n.o.b. 3 + 3 ? 4 = 2 I3; r1rT1
u1 / r2; (r1; u1; u2) n.o.b. 3 + 3 ? 4 = 2 I3; r1rT1
u1 / u2; (r1; u1; r2) n.o.b. 3 + 3 ? 4 = 2 I3; r1rT1
r2 / u2; (r1; u1; r2) n.o.b. 3 + 2 ? 4 = 1 I3
(r1; u1; r2; u2) harmonic c(r1 )
3 + 3 ? 4 = 2 I3; kr1 k2 r1r1 + kcu(u11k)2 u1uT1
T
(r1; u1; r2; u2) not harmonic 3 + 3 ? 5 = 1 I3
Table 9: Description of VR1 ;t1 ;1 \ VR2;t2 ;1 depending on the congurations of r1,
S1;?1t1 , r2 and S2;?1t2; we denote VR1;t1 ;1 \VR2 ;t2 ;1 by V(R;t;1)1;2 , S1;?1t1 by u1
and S2;?1t2 by u2; the congurations are listed from top to bottom, from the least
general case to the most general case; / means is proportional to; o.b. means
form an orthogonal basis; n.o.b. means do not form an orthogonal basis.

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 51

C Study of ranks
Proposition C.1 The rank of (v vT ; v vT ) is 2.
1 1 2 2

Proof. Indeed, if v ? is a vector orthogonal to v but not to v , we have


1 1 2

v vT + v vT = 0 
1 1 1 2 2 2 (53) 3 3

=)
2(vT v1?)v2 = 03
2

=)
2 = 0
and equation (53) then implies that 1 = 0.
Proposition C.2 The rank of (v vT ; v vT ; v vT ) is 3.
1 1 2 2 3 3

Proof. Indeed, if v ? is a vector orthogonal to v but not to v nor to v , we


1 1 2 3
have
1v1v1T + 2v2v2T + 3v3v3T = 033 (54)
=)
2(v2 v1?)v2 + 3(v3T v1?)v3 = 03
T
=)
2 = 3 = 0
and equation (54) then implies that 1 = 0.
Proposition C.3 If v , v , v and v are coplanar,
1 2 3 4

i
Z = kcv(vki) vi viT = 0 
X =4

3 3
i i =1
2

with, for i; j = 1; 2; i 6= j ,
c(vi) = sin(v4; v1) sin(v4; v2) sin(v3; vj )2 ? sin(v3; v1) sin(v3; v2) sin(v4; vj )2
c(v3) = ? sin(v4; v1) sin(v4; v2) sin(v1; v2)2
c(v4) = sin(v3; v1) sin(v3; v2) sin(v1; v2)2

RR n2793
52 Cyril Zeller, Olivier Faugeras

Proof. On the one hand, if vi? is the vector coplanar with v1, v2, v3 and v4,
such that kvi? k = kvi k and (vi; vi?) = ?=2, we have
vjT vi? = kvj kkvi k sin(vj ; vi)
and thus, for i; j = 1; 2; i 6= j ,
Zvi?
= kvj k sin(vj ; vi)c(vj )vj + kv3k sin(v3; vi)c(v3)v3 + kkvv4ikk sin(v4; vi)c(v4)v4
kv i k k v i k
= kkvvjikk sin(vj ; vi )(sin(v4; v1) sin(v4; v2) sin(v3; vi )2
? sin(v ; v ) sin(v ; v ) sin(v ; vi) )vj
3 1 3 2 4
2

? sin(v ; vi) sin(v ; v ) sin(v ; v ) sin(v ; v )


3 4 1 4 2 1 2

( kkvv1ikk sin(v ; v )v ? kkvv2ikk sin(v ; v )v )


3 2 1 3 1 2

+ sin(v ; vi) sin(v ; v ) sin(v ; v ) sin(v ; v )


4 3 1 3 2 1 2

( kkvv1ikk sin(v ; v )v ? kkvv2ikk sin(v ; v )v )


4 2 1 4 1 2

=0 3

On the other hand, Z(v  v ) = 0 .


1 2 3
Consequently, since v ?, v ? and v  v form a basis of R , Z = 0  .
1 2 1 2
3
3 3

Proposition C.4 The rank r of (v vT ; v vT ; v vT ; v vT ) is:


1 1 2 2 3 3 4 4

3 if v , v , v and v are coplanar,


1 2 3 4
or 4 otherwise.
Proof. We have
1v1v1T + 2v2v2T + 3v3v3T + 4v4v4T = 033 (55)
=)
3(v1; v2; v3)v3 + 4(v1; v2; v4)v4 = 03 (56)
If v1, v2, v3 and v4 are not coplanar, (v1; v2; v3) and (v1; v2; v4) cannot be both
equal to zero. So, equation (56) implies that at least 3 = 0 or 4 = 0 and, according
to proposition C.2, equation (55) then implies that 1 = 2 = 3 = 4 = 0.
If v1, v2, v3 and v4 are coplanar, according to proposition C.3, r is less than 4.
So, according to proposition C.2, r is 3.
Proposition C.5 The rank of (I ; v vT ) is 2. 3 1 1

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 53

Proof. Indeed, if v1? is a vector orthogonal to v1, we have


0I3 + 1v1v1T = 033 (57)
=)
0v1? = 03
=)
0 = 0
and equation (57) then implies that 1 = 0.
Proposition C.6 The rank of (I ; v vT ; v vT ) is 3.
3 1 1 2 2

Proof. Indeed,
0I3 + 1v1v1T + 2 v2v2T = 033 (58)
=)
0v1  v2 = 03
=)
0 = 0
and, according to proposition C.1, equation (58) then implies that 1 = 2 = 0.
Proposition C.7 If v , v and v form an orthogonal basis of R , then
1 2 3
3

i=3
X 1 v vT = 0
Z=I ? 3
kvi k2 i i 33
i=1
Proof. We have
8i = 1; : : : ; 3; Zvi = vi ? kv1k viviT vi = 0 3 (59)
i 2

and since v1 , v2 and v3 form a basis of R3 , this implies that Z = 033.


Proposition C.8 The rank r of (I ; v vT ; v vT ; v vT ) is:
3 1 1 2 2 3 3

3 if v , v and v form an orthogonal basis of R ,


1 2 3
3

or 4 otherwise.

RR n2793
54 Cyril Zeller, Olivier Faugeras

Proof. If v1, v2 and v3 form an orthogonal basis of R3 , then, according to


proposition C.7, r is less than 4. So, according to proposition C.6, r is 3.
Otherwise, there exists i such that vi is not proportional to the crossproduct of
the two others, vj and vk . We have then
0I3 + 1 v1v1T + 2v2v2T + 3v3v3T = 033 (60)
=)
0vj  vk + i (vi; vj ; vk )vi = 03
=)
0 = 0
According to proposition C.2, equation (60) then implies that 1 = 2 = 3 = 0.

Proposition C.9 If v , v , v and v are harmonic (see section D), then


1 2 3 4

i
Z = I + kcv(vki ) viviT = 0 
X =4

3 3 3
i i =1
2

where, for any distinct i; j; k; l = 1; : : : ; 4,


c(vi) = 0 if vj , vk , vl form an orthogonal basis,
or c(vi ) = ?1 if 9j; k = 1; : : : ; 4; j 6= k; i 6= j; i 6= k,
cos(vi; vj ) = 0; cos(vi; vk ) = 0,
or c(vi) = b(vi ; vj ; vk )
cos(vj ;vk )
= cos(vj ;vi) cos(vi ;vk )?cos(vj ;vk ) otherwise. (61)
Proof. Let us rst suppose that
8i; j = 1; : : : ; 4; i 6= j; cos(vi; vj ) 6= 0
Then, for any i, c(vi) is dened by equation (61), which is valid since, according to
proposition D.5, we have then
8i; j; k; l = 1; : : : ; 4; distincts;
cos(vj ; vi ) cos(vi ; vk ) 6= cos(vj ; vk )

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 55

c(vi ) really does not depend on vj and vk since, on the one hand, b(vi; vj ; vk ) =
b(vi; vk ; vj ) and, on the other hand, b(vi; vj ; vk ) = b(vi ; vj ; vl ) in virtue of equa-
tion (79). According to equation (78), for any distinct i; j; k; l = 1; : : : ; 4, there
exists (k ; l ) 2 R2 ? (0; 0) such that
vi  vj = k vk + l vl (62)
and equation (62) implies that
k kvk k cos(vj ; vk ) + l kvl k cos(vj ; vl ) = 0 (63)
Then, using equations (62) and (63), we have
8i; j; k; l = 1; : : : ; 4; distincts
Z(vi  vj )
= vi  vj + kcv(vkkk)2 (vi; vj ; vk )vk + kcv(vl kl )2 (vi; vj ; vl )vl
= ck(vvkkk) (k kvk k( c(v1k ) + 1) + l kvl k cos(vk ; vl ))vk
+ ck(vvllk) (l kvl k( c(1vl) + 1) + k kvk k cos(vl ; vk ))vl (64)
= ck(vvkkk) cos(
cos(vk ;vl )
vj ;vl ) (k kvk k cos(vj ; vk ) + l kvl k cos(vj ; vl ))vk
c (vl ) cos(vl ;vk )
+ kvlk cos(vj ;vk ) (l kvl k cos(vj ; vl ) + k kvk k cos(vj ; vk ))vl
= 03
According to propositions D.3 and D.4, vi, vj and vk are not coplanar, which implies
that vi  vj , vi  vk and vj  vk form a basis of R3 and, according to equation (64),
that Z = 033.
Let us now suppose that
9(i; j ); cos(vi; vj ) = 0
According to proposition D.4, it means that, among v1, v2, v3 and v4, three of
them, either form an orthogonal basis of R3 , or belong to a plane whose normal is
proportional to the fourth vector. If we are in the rst case, there exist i; j; k =
1; : : : ; 4 such that vi, vj , vk form an orthogonal basis, which leads to
c(vi ) = c(vj ) = c(vk ) = ?1 , c(vl ) = 0
and the result is proven by proposition C.7. Let us suppose that we are exclusively
in the second case, that is, for example, vj , vk and vl belong to a plane of normal
vi and no two of the three coplanar vectors are orthogonal. Then,
c(vi) = ?1 ,

RR n2793
56 Cyril Zeller, Olivier Faugeras

c(vj ) = b(vj ; vk ; vl ) , c(vk ) = b(vk ; vj ; vl ) , c(vl) = b(vl ; vj ; vk )


Using the same developments as those occuring in equations (59) and (64), we have
then
Zvi = 03 , Z(vi  vj ) = 03 and Z(vi  vk ) = 03
Since vi , vi  vj and vi  vk form a basis of R3 , this implies that Z = 033.
Proposition C.10 The rank r of (I3; v1v1T ; v2v2T ; v3v3T ; v4v4T ) is:
4 if v1 , v2, v3 and v4 are coplanar or harmonic (see section D),
or 5 otherwise.
Proof. If v1, v2, v3 and v4 are coplanar or harmonic, according to proposi-
tions C.3 and C.9, r is less than 5. Now, among the four vectors, v1, v2, v3 and v4,
there are necessarily three of them that do not form an orthogonal basis of R3 and
so, according to proposition C.8, r is 4.
Otherwise, according to proposition D.2, there exist i and j such that vi  vj
does not belong to the plane dened by the two other vectors, vk and vl . We have
then
0I3 + 1v1v1T + 2v2v2T + 3 v3v3T + 4v4v4T = 033 (65)
=)
0vi  vj + k (vk ; vi; vj )vk + l (vl ; vi ; vj )vl = 03
=)
0 = 0
According to proposition C.4, equation (65) then implies that 1 = 2 = 3 = 4 =
0.
Proposition C.11 The rank of (v1v1T ; v2v3T + v3v2T ) is 2.
Proof. Indeed, if v2? is a vector orthogonal to v2 but not to v1 nor to v3, we
have
1v1v1T + 23(v2v3T + v3v2T ) = 033
=)
1(v1 v2?)v1 + 23(v3T v2?)v2 = 03
T
=)
1 = 23 = 0

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 57

Proposition C.12 v vT , v vT and (v vT + v vT ) are linearly independent.


1 1 2 2 1 2 2 1

Proof. Indeed, if v ? denotes a vector orthogonal to v but not to v , we have


2 2 1

v vT + v vT + (v vT + v vT ) = 0 
1 1 1 2 2 2 12 (66)
1 2 2 1 3 3

=)
1(vT v2?)v1 + 12(vT v2?)v2 = 03
1 1

=)
1 = 12 = 0
and equation(66) then implies that 2 = 0.
Proposition C.13 If v1, v2, v3 and v4 are coplanar and such that
sin(v3; v2) sin(v4; v1) + sin(v4; v2) sin(v3; v1) = 0 (67)
then i=2
Z = kcv(vki )2 viviT + kcv(vkk
3 ; v4 )
X
v k (v3v4 + v4v3 ) = 033
T T
i=1 i 3 4

with, for i; j = 1; 2; i 6= j ,
c(vi ) = 2 sin(v3; vj ) sin(v4; vj )
c(v3; v4) = ? sin(v1; v2)2
Proof. On the one hand, if vi? is the vector coplanar with v1, v2, v3 and v4,
such that kvi? k = kvi k and (vi; vi?) = ?=2, we have
vjT vi? = kvj kkvi k sin(vj ; vi)
and thus, for i; j = 1; 2; i 6= j ,
Zvi?
= kkvvjikk sin(vj ; vi)c(vj )vj
+c(v3; v4)( kkvv3ikk sin(v4; vi )v3 + kkvv4ikk sin(v3; vi)v4)
= 2 kkvvjikk sin(vj ; vi) sin(v3; vi ) sin(v4; vi )vj
? sin(v1; v2)[sin(v4; vi)( kkvv1ikk sin(v3; v2)v1 ? kkvv2ikk sin(v3; v1)v2)
+ sin(v3; vi)( kkvv1ikk sin(v4; v2)v1 ? kkvv2ikk sin(v4; v1)v2)]
= 03
On the other hand, Z(v1  v2) = 03.
Consequently, since v1?, v2? and v1  v2 form a basis of R3 , Z = 033.

RR n2793
58 Cyril Zeller, Olivier Faugeras

Proposition C.14 The rank r of (v vT ; v vT ; v vT + v vT ) is:


1 1 2 2 3 4 4 3

2 if v , v , v and v are coplanar and such that


1 2 3 4
sin(v ; v ) sin(v ; v ) + sin(v ; v ) sin(v ; v ) = 0
3 2 4 1 4 2 3 1
or 3 otherwise.
Proof. If v1 , v2, v3 and v4 are coplanar and satisfy equation (67), according to
proposition C.13, r is less than 3. So, according to proposition C.1, r is 2.
If v1, v2, v3 and v4 are coplanar but do not satisfy equation (67), we have, for
i > 2,
vi = kkvvi kk sin(vi; v2) v ? kvi k sin(vi; v1) v
1 sin(v1; v2 ) kv2 k sin(v1; v2) 2
1

and so,
1v1v1T + 2v2v2T + 34(v3v4T + v4v3T )
= ( 1 + 2 34 kv3kkvk4vk1sin( v3 ;v2 ) sin(v4 ;v2) )v vT
k2 sin(v1 ;v2 )2 1 1

+( 2 + 2 34 kv 3 kkv4k sin(v3 ;v1 ) sin(v4 ;v1 )


)v2v2T
kv2k2 sin(v1 ;v2)2
? 34 kv1kkkvv23kkksin(v4vk1 ;v2 )2 (sin(v3; v2) sin(v4; v1) + sin(v4; v2) sin(v3; v1))(v1v2T + v2v1T )
which shows, according to proposition C.12 and since v1, v2, v3 and v4 do not
satisfy equation (67), that v1v1T , v2v2T and v3v4T + v4 v3T are linearly independent.
If v1, v2, v3 and v4 are not coplanar, we have
1 v1v1T + 2v2v2T + 34(v3v4T + v4 v3T ) = 033 (68)
=)
1(v1; v3; v4)v1 + 2(v2; v3; v4)v2 = 03
=)
1 = 0 or 2 = 0
and equation (68) then implies that 1 = 2 = 23 = 0.
Proposition C.15 The rank of (I3; v1v1T ; v2v3T + v3v2T ) is 3.
Proof. Indeed, we have
0I3 + 1v1v1T + 23(v2v3T + v3v2T ) = 033 (69)
=)
0v1  v2 + 23(v1; v2; v3)v2 = 03
=)
0 = 0

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 59

and, according to proposition C.11, equation (69) then implies that 1 = 23 = 0.

Proposition C.16 If v , v , v and v are such that


1 2 3 4

9" 2 f?1; 1g;


cos(v1; v3) = " cos(v1; v4) , cos(v2; v3) = " cos(v2; v4) (70)
cos(v1; v2) = cos(v1; v3) cos(v2; v3)
then i=2
Z=I +
X c(vi) T c(v ; v )
kvi k vi vi + kv kkv k (v v + v v ) = 0 
3
T T 3 4
3 4 3 3
2 4 3
i=1 3 4

with, for i = 1; : : : ; 2,
c(vi ) = sin(v?i1;v3 )2
c(v3; v4) = "?cos(1v3 ;v4 )
Proof. According to proposition D.1, if v1, v2, v3 and v4 satisfy equation (70),
there exists (3 ; 4) 2 R2 ? (0; 0) such that
v v =  v + v
1 2 3 3 4 4 (71)
and equation (71) implies that
"3 kv3 k + 4 kv4k = 0 (72)
Then, using equations (71) and (72), we have
Z(v  v ) 1 2
c(v3 ;v4 ) ((v
= v  v + kv3kkv4k ; v ; v )v + (v ; v ; v )v )
1 2 1 2 4 3 1 2 3 4

= c kvv3 3;vk4 ( kv k(cos(v ; v ) + c v3 ;v4 ) +  kv k)v


( )
3 3 3 4 (
1
) 4 4 3

+ c kvv3 4;vk4 ( kv k(cos(v ; v ) + c v3 ;v4 ) +  kv k)v


( )
4 4 3 4 (
1
) 3 3 4

= c vkv3 3;vk4 (" kv k +  kv k)v


( )
3 3 4 4 3

+ c kvv3 ;4vk4 (" kv k +  kv k)v


( )
4 4 3 3 4

=0 3

Similarly, there exists ( ;  ) 2 R ? (0; 0) such that


2 3
2

v v =  v + v 3 1 2 2 3 3 (73)

RR n2793
60 Cyril Zeller, Olivier Faugeras

and equation (73) implies that


"2 kv2k cos(v2; v4) + 3 kv3k = 0 (74)
Then, using equations (73) and (74), we have
Z(v3  v1)
= v3  v1 + kv2k2 (v1; v2; v3)v2 + kcv(v3kk
c (v2 ) 3 ;v4 )
v4k (v4; v3; v1)v3
c (v2 )
= kv2k (2kv2k(1 + c(v2 ) ) + 3 kv3k cos(v2; v3))v2
1

c (v3 ;v4 )
+ kv3k (3kv3k(cos(v3; v4) + c(v31;v4) ) + 2 kv2k cos(v2; v4))v3
= c(v2 ) cos(
kv2k
v2 ;v3 ) (" kv k cos(v ; v ) +  kv k)v
2 2 2 4 3 3 2
c (v3 ;v4 )
+ kv3 k ("3 kv3k + 2 kv2k cos(v2; v4))v3
= 03
Similarly, Z(v4  v2) = 03 .
According to proposition D.1, neither v1, v2 and v3, nor v1, v2 and v4 are
coplanar, which implies that v1  v2, v3  v1 and v4  v2 form a basis of R3 and,
thus, that Z = 033.
Proposition C.17 The rank r of (I3; v1v1T ; v2v2T ; v3v4T + v4v3T ) is:
3 if v1, v2, v3 and v4 are coplanar and such that
sin(v3; v2 ) sin(v4; v1) + sin(v4; v2) sin(v3; v1) = 0
or v1, v2, v3 and v4 are such that
9" 2 f?1; 1g;
cos(v1; v3) = " cos(v1; v4) , cos(v2; v3) = " cos(v2; v4)
cos(v1; v2) = cos(v1; v3) cos(v2; v3)
or 4 otherwise.
Proof. If v1, v2, v3 and v4 are coplanar and satisfy equation (67) or satisfy
equation (70), according to propositions C.13 and C.16, r is less than 4. So, according
to proposition C.6, r is 3.
Otherwise, if v1, v2, v3 and v4 are coplanar, we have
0I3 + 1v1 v1T + 2v2v2T + 34(v3v4T + v4v3T ) = 033 (75)
=)
0v1  v2 = 03
=)
0 = 0

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 61

and, according to proposition C.14, equation (75) then implies that 1 = 2 = 34 =


0.
Otherwise, if v1  v2 does not belong to the plane dened by v3 and v4 , equa-
tion (75) implies that
0v1  v2 + 34((v1; v2; v4)v3 + (v1; v2; v3)v4) = 03 (76)
=)
0 = 34 = 0
According to proposition C.1, equation (75) then implies that 1 = 2 = 0.
Otherwise, if v1  v2 belongs to the plane dened by v3 and v4, there exists
(3; 4 ) 2 R2 ? (0; 0) such that
v v =  v + v
1 2 3 3 4 4

and equation (76) implies that


( 03 + 34(v1; v2; v4))v3 + ( 04 + 34(v1; v2; v3))v4 = 03 (77)
If cos(v1; v3)2 6= cos(v1; v4)2, equation (77) implies that 0 = 34 = 0 and, accor-
ding to proposition C.1, equation (75) then implies that 1 = 2 = 0. Otherwise,
there exists i = 3; : : : ; 4 such that v1  vi does not belong to the plane dened by
v2 and vi . If we take i = 3, equation (75) implies that
0v1  v3 + 2(v1; v2; v3)v2 + 34(v1; v3; v4)v3 = 03
=)
0 = 34 = 0 or 0 = 2 = 0
and, according to propositions C.1 and C.11, equation (75) then implies that 1 =
2 = 34 = 0.

D Harmonic vectors
In this section, v1, v2, v3 and v4 are such that
8i; vi 6= 0 and 8(i; j ); i 6= j; vi and vj are not proportional
3

RR n2793
62 Cyril Zeller, Olivier Faugeras

Proposition D.1 For any i, j, k and l,


(vi  vj )T (vk  vl ) = 0
()
cos(vi; vk ) cos(vj ; vl ) = cos(vi; vl ) cos(vj ; vk )
()
(vk  vl )T (vi  vj ) = 0
Proof. Indeed, if we denote kvviik by viN and the plane dened by vi and vj by
P (vi ; vj ), for any distinct i; j; k; l = 1; : : : ; 4, we have
(vi  vj )T (vk  vl ) = 0
()
vi  vj 2 P (vk ; vl )
()
viN  vjN 2 P (vkN ; vlN )
()
9(k ; l ) 2 R ? (0; 0); viN  vjN = k vkN + l vlN
2

()
9(k ; l ) 2 R ? (0; 0);
2

T (k vkN + l vlN ) = 0 and vT (k vkN + l vlN ) = 0


viN jN
()
(viNT vkN )(vT vlN ) = (vT vlN )(vT vkN )
jN iN jN
()
cos(vi; vk ) cos(vj ; vl ) = cos(vi; vl ) cos(vj ; vk )

Proposition D.2 v , v , v and v are said to be harmonic if and only if they


1 2 3 4
satisfy one of the three following equivalent equations:
8i; j; k; l = 1; : : : ; 4; distincts; (vi  vj )T (vk  vl ) = 0 (78)

8i; j; k; l = 1; : : : ; 4; distincts; (79)


cos(vi; vk ) cos(vj ; vl ) = cos(vi; vl ) cos(vj ; vk )

cos(v1; v2) cos(v3; v4) = cos(v1; v3) cos(v2; v4) (80)


= cos(v1; v4) cos(v2; v3)

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 63

Proof. Equation (79) is clearly equivalent to equation (80) and, according to


proposition D.1, equation (78) is equivalent to equation (79).
Proposition D.3 If v , v and v belong to a plane P then
1 2 3

v , v , v and v are harmonic


1 2 3 4 (81)
()
v is proportional to the normal to P
4 (82)
Proof. If v , v and v belong to P , the normal to P , v  v and v  v are
1 2 3 1 2 1 3
all proportional. If v , v , v and v are harmonic, equation (78) then shows that
1 2 3 4
this normal is proportional to the intersection of the plane dened by v and v and 3 4
the plane dened by v and v , that is v .
2 4 4
Inversely, if v is proportional to the normal to P then cos(v ; v ) = cos(v ; v ) =
4 1 4 2 4
cos(v ; v ) = 0 and v , v , v and v are harmonic according to equation (80).
3 4 1 2 3 4

Proposition D.4
v , v , v and v are harmonic and
1 2 3 4
(83)
9(i; j ); cos(vi; vj ) = 0
()
v , v , v and v are harmonic and
1 2 3 4
(84)
9(i; j; k); distincts; cos(vj ; vi) cos(vi; vk ) = cos(vj ; vk ) = 0
()
Among the four vectors, v , v , v and v , three of them,
1 2 3 4
either form an orthogonal basis of R , (85) 3

or belong to a plane whose normal is proportional to the fourth vector.


Proof. If assertion (84) is true then assertion (83) is obviously true also.
Inversely, if assertion (83) is true then equation (79) shows that
cos(vi; vj ) = 0 =) cos(vk ; vj ) = 0 or cos(vi; vl ) = 0
so that
cos(vi; vj ) = 0 =)
cos(vi; vk ) cos(vk ; vj ) = cos(vi; vj ) = 0
or cos(vi; vl ) cos(vl ; vj ) = cos(vi; vj ) = 0
and assertion (84) is true.

RR n2793
64 Cyril Zeller, Olivier Faugeras

v2

120 120
v4 v1
v2 v3
v4 v3
v1 120
Figure 15: The umbrella from a general viewpoint on left and from above on right.
Now, if assertion (83) is true then at least one cosinus in each member of equa-
tion (80) is equal to zero and each of the sixteen possibilities leads to one of the two
congurations described in assertion (85).
Inversely, if assertion (85) is true then at least one cosinus in each member of
equation (80) is equal to zero and thus assertion (83) is also true.
Another example of four harmonic vectors is given by four vectors that form
an umbrella, that is such that three of them have same angle between each
other and belong to a cone of angle whose axis is the fourth vector (see gure 15):
indeed, each member of equation (80) is then equal to cos( ) cos( ).
Proposition D.5 If v1 , v2, v3 and v4 are harmonic,
cos(vj ; vi ) cos(vi ; vk ) = cos(vj ; vk ) (86)
()
cos(vj ; vi) cos(vi; vk ) = cos(vj ; vk ) = 0 (87)
(88)
Proof. According to equation (78), there exists (i; k ) 2 R2 ? (0; 0) such that
vj  vl = i vi + k vk (89)
which implies that
i kvi k cos(vj ; vi ) + k kvk k cos(vj ; vk ) = 0 (90)

INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 65

Using equations (89) and (90), we have


cos(vj ; vi)viT (vj  vl )
= i kvi k2 cos(vj ; vi) + k kvi kkvk k cos(vj ; vi) cos(vi; vk )
= k kvi kkvk k(cos(vj ; vi ) cos(vi; vk ) ? cos(vj ; vk ))
So equation (86) implies that cos(vj ; vi ) = 0 or viT (vj  vl ) = 0. If cos(vj ; vi ) = 0,
equation (87) is satised. viT (vj  vl ) = 0 means that vi , vj and vl belong to a
plane P and, according to proposition D.3, the normal to P is necessarily vk . Thus,
cos(vi; vk ) = 0 and assertion (87) is true again.

RR n2793
Unite de recherche INRIA Lorraine, Technopole de Nancy-Brabois, Campus scientifique,
615 rue du Jardin Botanique, BP 101, 54600 VILLERS LES NANCY
Unite de recherche INRIA Rennes, Irisa, Campus universitaire de Beaulieu, 35042 RENNES Cedex
Unite de recherche INRIA Rhone-Alpes, 46 avenue Felix Viallet, 38031 GRENOBLE Cedex 1
Unite de recherche INRIA Rocquencourt, Domaine de Voluceau, Rocquencourt, BP 105, 78153 LE CHESNAY Cedex
Unite de recherche INRIA Sophia-Antipolis, 2004 route des Lucioles, BP 93, 06902 SOPHIA-ANTIPOLIS Cedex

Editeur
INRIA, Domaine de Voluceau, Rocquencourt, BP 105, 78153 LE CHESNAY Cedex (France)
ISSN 0249-6399

Vous aimerez peut-être aussi