This is a preprint for the supplementary document of the paper accepted for publication in CVPR 2017.

Toroidal Constraints for Two-Point Localization under High Outlier Ratios
Supplementary Material Document
Federico Camposeco1

Torsten Sattler1 Andrea Cohen1 Andreas Geiger1,2 Marc Pollefeys1
1Computer Vision and Geometry Group, ETH Zürich
2
Autonomous Vision Group, MPI for Intelligent Systems Tübingen{federico.camposeco,torsten.sattler,andreas.geiger,marc.pollefeys}@inf.ethz.chAbstract
This paper provides supplementary material for our submission. Herein, we offer additional derivation details for thegeometric solver described in the main paper. First, we show that the original cost can be parameterized to yield a minimumof 24 solutions. Then, we detail the steps to find the factors of the final approximate solution.

A. Solutions to the Full Cost
In this section we give more details on the derivation of a solver that can find the position of the camera on T2 . As opposedto the approximate solver (which is detailed in Section B), the solver described in this section aims to get the location on T2
globally and exactly by minimizing an energy function. E(u, v) in Eq. 21 is the energy we seek to minimize, i.e.
22E(u, v) = ] (P0 (u, v), q0 ) + ] (P1 (u, v), q1 ) ,(A.1)

where u and v are the toroidal coordinates (i.e. they are angles that parameterize a point on the surface of the torus), andwhere q0 and q1 are the triangulation rays. Furthermore, we define Pi as the vector from the i-th 3D point to the camera
center C ∈ T2 , i.e.
Pi (u, v) = C(u, v) − pi ,(A.2)
where pi is the position of the i-th 3D point matched. Note that p0 = −p1 and that r2 = R2 + kpi k2 , where R and r are themajor and minor radii of the torus (c.f . Section 3.2 - Toroidal Constraints).
By minimizing E, we ensure that the position on T2 is optimal w.r.t. our assumptions (c.f . Section 3.3 - Triangulation-RayConstraints). These imply that we are to minimize the sum of the squares of the angular distances. We define thusX2] (Pi (u, v), qi ) =i=0,1X
i=0,1arcsinkPi (u, v) × qi kkPi (u, v)k2.

(A.3)

Here we use the notation C(u, v) since the camera position C can be parameterized as in Eq. 1. However, in order to findu and v that minimize Eq. A.3 we choose, for simplicity, to instead minimize the square of the sine of the angles between
vectors, i.e.
XX  kPi (u, v) × qi k 22(u∗ , v ∗ ) = arg min= arg minfi (C(u, v)) .
(A.4)
kP(u,v)ku,vu,v
ii=0,1i=0,1
Since we need to find all meaningful minima of Eq. A.4 (c.f . Section 3.4 - A Geometric Solver), we seek a closed for for
all its stationary points. We explored two different parameterizations of the problem for this: trigonometric and Lagrangian.
1 All numeric references refer to the main paper.

1A.1. Lagrangian Formulation
In the Lagrangian formulation, we let the 3D position of the camera C = (x, y, z)T ∈ R3 be our unknown and thenenforce that it lies on T2 using Lagrangian multipliers. Implicitly, the surface of a torus isg(x, y, z) = (x2 + y 2 + z 2 + R2 − r2 )2 − 4R2 (x2 + y 2 )= (kCk2 − kp0 k2 )2 − 4R2 (kCk2 − z 2 ) .

(A.5)

Using this we can express the Lagrangian as
L(x, y, z, λ) =X

2fi (x, y, z) − λg(x, y, z) .

(A.6)

i=0,1

The stationary points are when ∇L(x, y, z, λ) = 0. Immediately, one might see that this gradient will result in a system offour equations in (x, y, z, λ). Here we detail the derivation of these four equations:∇xyz fi2 =1∂fi (x, y, z)2=kPi × qi k2 Pi − kPi k2 qi × (Pi × qi )42∂(x, y, z)
kPi k kqi k∇xyz g = 2(kCk2 − kp0 k2 )C − 4R2 (x, y, 0)>P∇xyz fi2 + λ∇xyz gi=0,1∇L(x, y, z, λ) == 04×1
g(x, y, z)
4×1(A.7a)(A.7b)(A.7c)To analyze the number of solutions for the system of equations, we chose to employ a Gröbner basis technique. To this end,
we need to have only polynomial equations in our system. After some algebraic manipulation, we arrive at three polynomialsof total degree 12 and one polynomial of total degree 4. Using Macaulay2 [1] we find that, under this formulation, there are
up to 47 real solutions. Detailed in the next subsection, we note that we can reduce this to 24 solution by using a different
parameterization.

A.2. Trigonometric Formulation
A simpler solution can be obtained if we use toroidal coordinates, i.e. if we use the angles u and v to express C (c.f . Eq. 1,but repeated here):(R + r cos v) cos uC(u, v) =  (R + r cos v) sin u  ∈ T2 .
(A.8)
r sin vUsing this parameterization we can avoid the use of Lagrangian multipliers, which introduce an auxiliary variable (i.e. λ) andan extra equation. This lets us write the objective function as simplyX2E(u, v) =fi (u, v) .
(A.9)
i=0,1

However, we need to modify ∇xyz fi2 (c.f . Eq. A.7a) to operate in this coordinates. This requires the Jacobian of C(u, v)
w.r.t. u and v,
− sin u(R + r cos v) −r cos u sin v
Juv =  cos u(R + r cos v) −r sin u sin v  .
(A.10)
0r cos v
And thus, the gradient parametric in u and v is∇uv fi2 = ∇xyz fi2 · Juv .
Once more, getting the final gradient parametric in u and v and setting it to zero gives us our system of equations:X∇uv fi2 = 02×1 ,i=0,1(A.11)(A.12)

which are two equations in u and v. This time, however, we cannot convert Eq. A.12 into a polynomial system since it is afunction of sines and cosines of u and v. To do this we have two choices. The first choice is the tangent half-angle substitution(also known as the Weierstrass substitution) wheresin α =

1 − t22tandcosα=,
1 + t2
1 + t2(A.13)

where t = tan α2 . This adds no new equations but raises the degree of the equation significantly, since for each trigonometric term we introduce a rational quadratic polynomial. The second choice is using the more straightforward “circular”’
substitution
sin α = a and cos α = b ,(A.14)
which does not raise the degree of the equations. However, this substitution duplicates the number of variables and adds anew equation per angle substituted, i.e. a2 + b2 = 1. Once again we can use Macaulay2 to get the number of solutions thatsuch parameterizations would yield. In the case of the tangent half-angle, we get up to 32 real solutions, whereas the circular
substitution will generate up to 24 real solutions.

B. Derivation Details of the Approximate Solver
Our aim is to find a closed-form solution to Eq. 6. For this we want to find all stationary points of Ê. In Section 3.4 (A Geometric Solver) we claim that there are 12 such stationary points. To arrive at this number, we again follow a Gröbner
basis method. Expanding Eq. 7 and discarding the common denominator we get∂ Ê
= (µ0 ρ0 φ0 ) ξ1 + (µ1 ρ1 φ1 ) ξ0 = 0 , where∂vµi = rs2i cos v + r cos v + Rs2i + R
ρi = (piz sin v + r + R cos v)
φi = (rsi cos v − r sin v + Rsi − piz )(B.1)

ξi = (si piz + rsi sin v + r cos v + R) 3 ,6Êfrom which we can more easily see that the maximum degree of ∂∂v
is cos (v) . Since we are already dealing with an equationof quite high total degree (i.e. trigonometric monomials of total degree 6), we opt to make the substitution in Eq. A.14 tocontinue our analysis:cos v = cv sin v = sv .
(B.2)

Furthermore, if we were to use the half-tangent angle substitution we would end up with up to 24 solutions. As we will see,by using this substitution we can get a solution with only 12 roots. Using Eq. B.2 in Eq. B.1 we get
k0 c6v + k1 c5v sv + k2 c5v + k3 c4v s2v + k4 c4v sv + k5 c4v + k6 c3v s3v + k7 c3v s2v + k8 c3v sv + k9 c3v +k1 0c2v s4v + k1 1c2v s3v + k1 2c2v sv + k1 3c2v + k1 4cv s5v + k1 5cv s4v + k1 6cv s3v + k1 7cv s2v + k1 8cv sv +k1 9cv + k2 0s5v + k2 1s4v + k2 2s3v + k2 3s2v + k2 4sv + k2 5 = 0(B.3)

c2v + s2v = 1 ,where ki = ki (R, r, p0z , p1z , s0 , s1 ) for all i = 0..25 are constants that depend on the torus parameters and the triangulation
ray directions. After inspecting Eq. B.3 with Macaulay2, we find that we can have up to 12 real solutions. As mentioned
in Section 3.4 (A Geometric Solver), we observe that 6 of the 12 solutions are repeated and invalid for our geometricrequirements. Indeed, the terms ρ0 and ξ1 vanish simultaneously if r cos v = −R, i.e. if we plug in an invalid solution then
Eq. B.1 will be zero. This solution corresponds to having the camera position along the circle coincident with either p0 or p1 .
At this point the angle between q0 or q1 is undefined.
Thus, we must find a way to solve Eq. B.3 without resorting to a method that will necessarily solve for all 12 solutions,such as a Gröbner basis approach. If we expand using the tangent half-angle substitution, the equations can more easily besimplified. Indeed, we can obtain a univariate polynomial in t for which we can efficiently find all real roots using a Sturmbracketing plus polishing method [2]. However, we can instead manipulate this polynomial in order to factor out unwantedterms symbolically. This would result in a much simpler method and we can easily identify and discard the roots that weknow in advance will produce spurious solutions. Namely, under this substitution the invalid roots come from the factor(r + R + t2 (R − r)), where t = tan (v/2).

Either manually or using a Computer Algebra Program, one can show that one may factor Eq. B.1 to Eq. 8a, i.e.:
0 =(r + R + t2 (R − r))3 · (λ1 + λ2 t + λ3 t2 )·((s1 + s0 + t(4s0 s1 − 2) − t2 (s0 + s1)) · (fc (t))
where(B.4a)

λ1 = κ − τ
λ2 = 2r(s0 + s1 )(p1z (s1 − s0 ) + Rs0 s1 + R)

(B.4b)

λ3 = κ + τandκ = R2 s20 s21 − 1 + 4s0 s1 − s21 + 1 +
r2 s20 2s21 + 1 + 2s0 s1 + s21 + 2 −
2Rp1z s20 s1 − s0 s21 + s0 − s1(B.4c)

τ = r(s0 s1 − 1)(p1z (s1 − s0 ) + Rs0 s1 + R) .
Finally, in Eq. B.4a the factor
fc = (r + R + t2 (R + r))(B.5)

has only complex rootsp−(R + r)
,
t=± √
R+r

(B.6)

since r > 0 and R > 0.

References[1] D. R. Grayson and M. E. Stillman. Macaulay 2, a software system for research in algebraic geometry, 2002. 2[2] D. Hook and P. McAree. Using sturm sequences to bracket real roots of polynomial equations. In Graphics gems, pages 416–422.
Academic Press Professional, Inc., 1990. 3