where y, z, w are unknown real values. Given the ar-
bitrary scale of E, we can set w = 1. To compute y
and z, substitute equation (10) into equation (6). This
results in nine third degree polynomials in y and z:
Bv = 0, v
def
=
y
3
, y
2
z,yz
2
, z
3
, y
2
, yz,z
2
, y, z,1
T
, (11)
where the 9× 10 matrix B contains the coefficients of
the polynomials. The common root (y, z) of the nine
multivariate polynomials can be computed by various
methods. As the solution is unique, we can choose
a very simple method: compute the right nullvector
b of B via SVD and extract the root y = b
8
/b
10
, z =
b
9
/b
10
. Note, however, that this method ignores the
structure of the vector v. According to equation (10),
this finally gives E. For n > 6, the same algorithm can
be applied.
3.4 Five Point Algorithm
The first part of the five point algorithm is very similar
to the six point algorithm. For n= 5, A has rank defect
4 and we get the following linear combination for E:
E = xX + yY + zZ + wW , (12)
where x, y, z, w are unknown scalars and X, Y, Z,W are
formed from the last four columns of V according
to equation (8). Again, we set w = 1. Substituting
equation (12) into the equations (5) and (6) gives ten
third degree polynomials Mm= 0 in three unknowns,
where the 10× 20 matrix M contains the coefficients
and the vector m contains the monomials:
m =
(
x
3
,x
2
y,x
2
z,xy
2
,xyz,xz
2
,y
3
,y
2
z,yz
2
,z
3
,x
2
,xy,xz,y
2
,yz,z
2
,x,y,z,1
)
T
.
The multivariate problem can be transformed
into a univariate problem, which can then be
solved using the companion matrix or Sturm se-
quences (Nistér, 2004). A more efficient vari-
ant of the five point algorithm (Stewénius, 2005;
Stewénius et al., 2006) directly solves the multivari-
ate problem by using Gröbner bases. First, Gauss Jor-
dan elimination with partial pivotization is applied to
M. This results in a matrix M
′
= (I|B), where I is
the 10× 10 identity matrix and B is a 10 × 10 matrix.
The ten polynomials defined by M
′
are a Gröbner ba-
sis and have the same common roots as the original
system. Now, form the 10× 10 action matrix C as fol-
lows: the first six rows of C
T
equal the first six rows of
B, C
1,7
= 1, C
2,8
= 1, C
3,9
= 1, C
7,10
= 1, all remaining
elements are zero. The eigenvectors u
i
corresponding
to real eigenvalues of C
T
give the up to ten common
real roots: x
i
= u
i,7
/u
i,10
, y
i
= u
i,8
/u
i,10
, z
i
= u
i,9
/u
i,10
.
By substituting into equation (12), each root (x
i
, y
i
, z
i
)
gives a solution for E.
3.5 Normalization
According to (Hartley and Zisserman, 2003), point
correspondences should be normalized before apply-
ing the eight or seven point algorithm to improve sta-
bility. The (inhomogeneous) points are normalized
by translating such that their mean is in the origin and
scaling by the inverse of their average norm. In homo-
geneous coordinates, the third coordinate (assumed to
be 1 for all points) is simply ignored and not changed.
The normalization is applied in each image indepen-
dently. When using camera normalized coordinates,
the same normalization can be used. For the six and
five point algorithms, however, such a normalization
is not possible, as it does not preserve equation (6).
3.6 Constraint Enforcement
Note that the solution computed by the eight and
seven point algorithms does not respect all proper-
ties of an essential matrix as presented in section 2.2.
This might also be the case for the six point algo-
rithm because of the trick applied to solve the polyno-
mial equations (ignoring the structure of the vector v).
Thus, each resulting essential matrix should be cor-
rected by enforcing that its singular values are (s, s, 0)
with s > 0 (we use s = 1). This can be achieved by
SVD and subsequent matrix multiplication using the
desired singular values.
Even though the five point algorithm actually
computes valid essential matrices, we also apply the
constraint enforcement to them. This has the addi-
tional effect of normalizing the scale of the essential
matrices, which appears desireable for some of the
experiments.
3.7 Selecting the Correct Solution
The seven and five point algorithms can produce more
than one solution. If there are additional point cor-
respondences, the single correct solution can be se-
lected. For each solution, the deviation of each cor-
respondence from the epipolar constraint is measured
and summed up over all correspondences. The solu-
tion with the smallest error is selected. There are var-
ious possibilities to measure the deviation from the
epipolar constraint (Hartley and Zisserman, 2003):
1. The algebraic error:
p
T
Fp
′
.
2. The symmetric squared geometric error:
p
T
Fp
′
2
Fp
′
2
1
+
Fp
′
2
2
+
p
T
Fp
′
2
h
F
T
p
i
2
1
+
h
F
T
p
i
2
2
, (13)
where [·]
i
denotes the ith element of a vector,
EXPERIMENTAL EVALUATION OF RELATIVE POSE ESTIMATION ALGORITHMS
433