Académique Documents
Professionnel Documents
Culture Documents
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)
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
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
INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 5
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
INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 9
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).
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
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
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
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
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.
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
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
INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 23
4000
3000
av
2000
1000
RR n2793
24 Cyril Zeller, Olivier Faugeras
5000
4000
3000
av
2000
1000
INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 25
RR n2793
26 Cyril Zeller, Olivier Faugeras
1
3 2
INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 27
RR n2793
28 Cyril Zeller, Olivier Faugeras
Initialisation
5000
4000
3000
beta
2000
1000
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
RR n2793
30 Cyril Zeller, Olivier Faugeras
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
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.
INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 35
RR n2793
36 Cyril Zeller, Olivier Faugeras
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
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
5
using the algebraic equation vvT = kvk2 I3 + [v]2
INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 41
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
=)
( det(R?1 I3 ) + det(R?2 I3 ) )Rv ? ( det(R?1 I3 ) + det(R2?2 2 I3 ) )v + det(R?(1?1 I31))(1
1 2 1 1 ?2 )
det(R?2 I3 )
r = 03
=)
= 1 = 2 = 0
RR n2793
42 Cyril Zeller, Olivier Faugeras
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
0T 1
2 0T2
1
d
RR n2793
44 Cyril Zeller, Olivier Faugeras
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
INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 45
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
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
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
is
f(x ; x ; X); x ; x 2 < ? f0g; X 2 VR1 ;t1 ;x1 \ VR2 ;t2 ;x2 g
1 2 1 2
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
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
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
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
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
=0 3
INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 53
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
or 4 otherwise.
RR n2793
54 Cyril Zeller, Olivier Faugeras
i
Z = I + kcv(vki ) viviT = 0
X =4
3 3 3
i i =1
2
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
INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 57
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
and so,
1v1v1T + 2v2v2T + 34(v3v4T + v4v3T )
= (1 + 234 kv3kkvk4vk1sin( v3 ;v2 ) sin(v4 ;v2) )v vT
k2 sin(v1 ;v2 )2 1 1
INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 59
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
=0 3
v v = v + v 3 1 2 2 3 3 (73)
RR n2793
60 Cyril Zeller, Olivier Faugeras
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
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
()
9(k ; l ) 2 R ? (0; 0);
2
INRIA
Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited 63
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
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
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