Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

An N-Point Linear Solver for Line and Motion Estimation with Event Cameras

Ling Gao1  Daniel Gehrig211footnotemark: 1  Hang Su1  Davide Scaramuzza2  Laurent Kneip1

1 Mobile Perception Lab, ShanghaiTech University, China
2 Robotics and Perception Group, University of Zurich, Switzerland
indicates equal contribution
Abstract

Event cameras respond primarily to edges—formed by strong gradients—and are thus particularly well-suited for line-based motion estimation. Recent work has shown that events generated by a single line each satisfy a polynomial constraint which describes a manifold in the space-time volume. Multiple such constraints can be solved simultaneously to recover the partial linear velocity and line parameters. In this work, we show that, with a suitable line parametrization, this system of constraints is actually linear in the unknowns, which allows us to design a novel linear solver. Unlike existing solvers, our linear solver (i) is fast and numerically stable since it does not rely on expensive root finding, (ii) can solve both minimal and overdetermined systems with more than 5 events (i.e. N5𝑁5N\geq 5italic_N ≥ 5), and (iii) admits the characterization of all degenerate cases and multiple solutions. The found line parameters are singularity-free and have a fixed scale, which eliminates the need for auxiliary constraints typically encountered in previous work. To recover the full linear camera velocity we fuse observations from multiple lines with a novel velocity averaging scheme that relies on a geometrically-motivated residual, and thus solves the problem more efficiently than previous schemes which minimize an algebraic residual. Extensive experiments in synthetic and real-world settings demonstrate that our method surpasses the previous work in numerical stability, and operates over 600 times faster.

1 Introduction

Man-made scenes contain a multitude of straight lines, and exploiting these lines for motion estimation is an important feature of modern mobile vision systems like AR/VR devices and robotic systems [17, 25, 42, 23]. However, computer vision algorithms aimed at leveraging these line features still suffer from fundamental limitations when using standard frame-based sensing: During high-speed motion and challenging illumination conditions, these sensors suffer from motion blur and saturation effects, which have deleterious effects on line feature extraction. Event cameras [10] are biologically inspired sensors that address the limitation of frame-based sensors by instead only measuring the changes in intensity at a per-pixel level, and they do this with high dynamic range, low motion blur, high temporal resolution, and high spatial data-sparsity.

Due to their working principle, event cameras respond primarily to edges—formed by strong gradients—and are thus particularly well-suited for line-based motion estimation. A recent breakthrough [12] in event-based motion estimation introduced an incidence relation that enforces the intersection of bearing vectors emitted by events and a corresponding line that generates those events. Using this relation, a 5-point minimal solver was designed that recovers the parameters of a minimal two-point-two-plane parametrization of the line and two velocity ratios in the plane perpendicular to the line, using the Gröbner basis method and polynomial elimination theory. However, this solver suffers from several limitations: First, it relies on a non-minimal line representation using four degrees of freedom (DoF) that (i) fails to realize that, in the absence of scale, only three DoF are needed, and (ii) encounters singularities when describing lines parallel to the two planes. Secondly, to solve for the motion and line parameters, previous work employs a polynomial solver, which (i) is by definition minimal and thus incapable of incorporating more than five events, and (ii) relies on root finding algorithms that are expensive to run and suffer from instabilities that are not easily detected.

This work addresses these limitations with two important innovations: First, it introduces a new line representation based on the angle-axis representation of a rotation matrix, which is singularity-free and only depends on three DoF and thus implicitly enforces scale ambiguity. Second, in formulating the incidence relation with this new parametrization, we derive a simple algorithm for determining motion and line parameters that only relies on solving a linear system and simple vector operations and is thus orders of magnitude faster than the polynomial solver in [12]. This linear system is easily extended to N>5𝑁5N>5italic_N > 5 events, with a minimal increase in complexity, which enables solution refinement with inliers when employing random sample consensus (RANSAC) schemes.

The proposed solver sheds light on all possible cases of degenerate solutions, how they arise, and all additional solutions that arise from symmetries in the incidence relation. Finally, expressing the incidence relation in terms of our new line parametrization allows us to fully characterize and visualize the types of manifolds circumscribed by events generated by a single line. Our contributions are:

  • A minimal, three DoF representation of lines based on the angle-axis representation of a rotation matrix. This representation encodes a reference frame centered at the 3D line, and enforces a unit distance to the closest point.

  • A linear algorithm for determining line and motion parameters from a set of events triggered by a line. This algorithm is fast, and extensible to multiple events, and sheds light on degenerate and multiplicitous solutions.

  • A simpler and faster scheme for fusing partial linear velocity measurements from multiple lines, based on geometrically-motivated constraints, instead of solving algebraic equations.

We validate our method extensively in simulated and real-world settings. In particular, our solver is on average 600 times faster, taking only 3.25 µstimes3.25microsecond3.25\text{\,}\mathrm{\SIUnitSymbolMicro s}start_ARG 3.25 end_ARG start_ARG times end_ARG start_ARG roman_µ roman_s end_ARG for five events, compared to 2046 µstimes2046microsecond2046\text{\,}\mathrm{\SIUnitSymbolMicro s}start_ARG 2046 end_ARG start_ARG times end_ARG start_ARG roman_µ roman_s end_ARG for [12], while achieving a similar performance.

2 Related Work

Ego-motion estimation is crucial for intelligent mobile devices and thus has been the subject of extensive research over the past few decades. The sub-class of vision-based solutions comprises single-camera, stereo-camera, and multi-camera solutions that are potentially supported by an inertial measurement unit. A review would go beyond the scope of the present paper, and the reader is kindly referred to recent reviews such as the one by Cadena et al. [4]. This paper focuses on motion estimation with event cameras.

The latter is a challenging problem that is initially often addressed for constrained scenarios such as 2D motion [39], known depth or 3D structure [40, 5, 27, 7, 3, 6, 46], pure rotation [8], and homographic warping [9, 20, 34, 24, 31]. The community has furthermore explored the combination with other sensors such as standard cameras [20, 38, 16], inertial units [38, 45], or a second event camera [44]. In turn, the present paper considers motion in 3D with a single event camera and in arbitrary environments. Different optimization-based [32, 21, 28], filter-based [19, 45] and learning-based [26, 13] solutions have already been presented. Of particular interest to the present work are methods that rely on line features [43, 21].

In the spirit of original works on monocular visual odometry [29], the present work addresses the relatively unexplored topic of geometric incidence relationships for local relative motion calculation with an event camera. Geometric solutions remain important to date owing to their ability to find solutions with optimality guarantees, and potentially certificates, under known assumptions, unlike optimization-, filter- or learning-based solvers, which often lack these guarantees. Given that events are primarily triggered by high-gradient appearance boundaries, the dominant feature for event-based motion estimation is given by lines. Weng et al. [41] and Hartley et al. [15] have proposed closed-form solutions for frame-based cameras. Tri-focal tensor geometry inspired the first closed-form solution for event cameras [30]. An important characteristic of this solver is that it relies on a local constant velocity motion model and makes use of the first-order dynamics of the camera. This is important as it permits the inclusion of the time-stamped, asynchronous measurements produced by an event camera. Nonetheless, the method by Peng et al. [30] is not general as it still depends on approximate event-based line-feature extractors [2, 37, 36] rather than events, only.

The most related works to ours are the works by Ieng et al. [18], Seok and Lim [33], and Gao et al. [12], who propose model-based fitting of the manifold locations of the events generated by the observation of a line under motion. In particular, Gao et al. [12] introduces an exact incidence relation that all such events must obey under constant linear velocity. It depends on observable camera motion and 3D line parameters, and thus serves as a basis for joint manifold fitting and motion estimation. Based on this foundation, the present work develops the first linear N𝑁Nitalic_N-point solution to this problem, which not only unlocks unprecedented efficiency, but also a simplified understanding of degenerate geometric conditions.

3 Methodology

Assume a calibrated event camera undergoing an arbitrary six DoF motion, while observing a set of M𝑀Mitalic_M lines {𝐋i}i=1Msuperscriptsubscriptsubscript𝐋𝑖𝑖1𝑀\{\mathbf{L}_{i}\}_{i=1}^{M}{ bold_L start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT. Each line generates a set of Nisubscript𝑁𝑖N_{i}italic_N start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT events i={eij}j=1Nisubscript𝑖superscriptsubscriptsubscript𝑒𝑖𝑗𝑗1subscript𝑁𝑖\mathcal{E}_{i}=\{e_{ij}\}_{j=1}^{N_{i}}caligraphic_E start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = { italic_e start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_j = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUPERSCRIPT where each event eij=(𝐱ij,tij,pij)subscript𝑒𝑖𝑗subscript𝐱𝑖𝑗subscript𝑡𝑖𝑗subscript𝑝𝑖𝑗e_{ij}=(\mathbf{x}_{ij},t_{ij},p_{ij})italic_e start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT = ( bold_x start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT ) is characterized by its pixel coordinate 𝐱ijsubscript𝐱𝑖𝑗\mathbf{x}_{ij}bold_x start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT in the image plane, timestamp tijsubscript𝑡𝑖𝑗t_{ij}italic_t start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT (with  µstimesabsentmicrosecond\text{\,}\mathrm{\SIUnitSymbolMicro s}start_ARG end_ARG start_ARG times end_ARG start_ARG roman_µ roman_s end_ARG resolution), and polarity pijsubscript𝑝𝑖𝑗p_{ij}italic_p start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT.

For a small time window [tsΔt,ts+Δt]subscript𝑡𝑠Δ𝑡subscript𝑡𝑠Δ𝑡[t_{s}-\Delta t,t_{s}+\Delta t][ italic_t start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT - roman_Δ italic_t , italic_t start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT + roman_Δ italic_t ], centered at reference time tssubscript𝑡𝑠t_{s}italic_t start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT, such that the camera motion can be approximated by linear dynamics, the events generated by a single line circumscribe a manifold termed eventail [12]. In Sec. 3.1, we describe the geometric incidence relation [12] which needs to be satisfied by events on this manifold and depends on the observable components of the velocity 𝐯𝐯\mathbf{v}bold_v and the line 𝐋isubscript𝐋𝑖\mathbf{L}_{i}bold_L start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT for which we introduce a minimal parametrization. Then, in Sec. 3.2 we will introduce a solver that recovers the line parameters, and observable linear velocity parameters from a set of Ni5subscript𝑁𝑖5N_{i}\geq 5italic_N start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ≥ 5 events that lie on the manifold. Finally, in Sec. 3.6, we will explore how to recover the full linear velocity from a set of M2𝑀2M\geq 2italic_M ≥ 2 partial velocity observations.

3.1 Incidence Relationship

We reiterate here briefly the incidence relation introduced in [12] and use Fig. 1 for illustration purposes. For simplicity, we will first consider the case of one line, and thus drop the index i𝑖iitalic_i from the variables. We furthermore express all quantities in the camera frame centered at time tssubscript𝑡𝑠t_{s}italic_t start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT. The incidence relation enforces that events are triggered by points on the line, such that the line 𝐋j=[𝐝j𝐦j]subscript𝐋𝑗superscriptdelimited-[]superscriptsubscript𝐝𝑗superscriptsubscript𝐦𝑗\mathbf{L}_{j}=[\mathbf{d}_{j}^{\intercal}\,\mathbf{m}_{j}^{\intercal}]^{\intercal}bold_L start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = [ bold_d start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_m start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT (in Plücker coordinates) emanating from an individual event ejsubscript𝑒𝑗e_{j}italic_e start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT triggered at time tjsubscript𝑡𝑗t_{j}italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT (orange line in Fig. 1) intersects the line 𝐋=[𝐝𝐦]𝐋superscriptdelimited-[]superscript𝐝superscript𝐦\mathbf{L}=[\mathbf{d}^{\intercal}\,\mathbf{m}^{\intercal}]^{\intercal}bold_L = [ bold_d start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_m start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT (blue line in Fig. 1). The condition for intersection of two non-parallel lines is

𝐝𝐦j+𝐦𝐝j=0.superscript𝐝subscript𝐦𝑗superscript𝐦subscript𝐝𝑗0\mathbf{d}^{\intercal}\mathbf{m}_{j}+\mathbf{m}^{\intercal}\mathbf{d}_{j}=0\,.bold_d start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_m start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT + bold_m start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_d start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = 0 . (1)

Plücker line coordinates comprise the line direction 𝐝3𝐝superscript3\mathbf{d}\in\mathbb{R}^{3}bold_d ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT and moment 𝐦=𝐏×𝐝𝐦𝐏𝐝\mathbf{m}=\mathbf{P}\times\mathbf{d}bold_m = bold_P × bold_d, with 𝐏3𝐏superscript3\mathbf{P}\in\mathbb{R}^{3}bold_P ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT being an arbitrary point on the line. As [12] for the event ray j𝑗jitalic_j we use the camera position 𝐂[tj]=𝐏j𝐂delimited-[]subscript𝑡𝑗subscript𝐏𝑗\mathbf{C}[t_{j}]=\mathbf{P}_{j}bold_C [ italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ] = bold_P start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT at time tjsubscript𝑡𝑗t_{j}italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT, and the event bearing vector 𝐟j=𝐝jsuperscriptsubscript𝐟𝑗subscript𝐝𝑗\mathbf{f}_{j}^{\prime}=\mathbf{d}_{j}bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = bold_d start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT rotated into the reference frame at time tssubscript𝑡𝑠t_{s}italic_t start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT. Under first order dynamics, these are 𝐂[tj]=tj𝐯𝐂delimited-[]subscript𝑡𝑗superscriptsubscript𝑡𝑗𝐯\mathbf{C}[t_{j}]=t_{j}^{\prime}\mathbf{v}bold_C [ italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ] = italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_v and 𝐟j=𝐑[tj]𝐟jsuperscriptsubscript𝐟𝑗𝐑delimited-[]subscript𝑡𝑗subscript𝐟𝑗\mathbf{f}_{j}^{\prime}=\mathbf{R}[t_{j}]\mathbf{f}_{j}bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = bold_R [ italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ] bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT with tj=tjtssuperscriptsubscript𝑡𝑗subscript𝑡𝑗subscript𝑡𝑠t_{j}^{\prime}=t_{j}-t_{s}italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT. As [12], we assume 𝐑[tj]𝐑delimited-[]subscript𝑡𝑗\mathbf{R}[t_{j}]bold_R [ italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ] given and computed by integrating angular rate measurements 𝝎𝝎\bm{\omega}bold_italic_ω from an available inertial measurement unit (IMU) with 𝐑[tj]=exp([𝝎]×tj)𝐑delimited-[]subscript𝑡𝑗expsubscriptdelimited-[]𝝎superscriptsubscript𝑡𝑗\mathbf{R}[t_{j}]=\text{exp}([\bm{\omega}]_{\times}t_{j}^{\prime})bold_R [ italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ] = exp ( [ bold_italic_ω ] start_POSTSUBSCRIPT × end_POSTSUBSCRIPT italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ). Here exp()exp\text{exp}(\cdot)exp ( ⋅ ) denotes the matrix exponential and [𝝎]×subscriptdelimited-[]𝝎[\bm{\omega}]_{\times}[ bold_italic_ω ] start_POSTSUBSCRIPT × end_POSTSUBSCRIPT denotes the skew-symmetric matrix associated with the angular rate 𝝎3𝝎superscript3\bm{\omega}\in\mathbb{R}^{3}bold_italic_ω ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT. The Plücker coordinates are thus 𝐋j=[𝐟j(𝐂[tj]×𝐟j)]subscript𝐋𝑗superscriptsuperscriptsubscript𝐟𝑗superscript𝐂delimited-[]subscript𝑡𝑗superscriptsubscript𝐟𝑗\mathbf{L}_{j}=[\mathbf{f}_{j}^{\prime\intercal}\quad(\mathbf{C}[t_{j}]\times% \mathbf{f}_{j}^{\prime})^{\intercal}]^{\intercal}bold_L start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = [ bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ⊺ end_POSTSUPERSCRIPT ( bold_C [ italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ] × bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT and the incidence relation becomes

𝐝(𝐂[tj]×𝐟j)+𝐦𝐟j=0.superscript𝐝𝐂delimited-[]subscript𝑡𝑗subscriptsuperscript𝐟𝑗superscript𝐦subscriptsuperscript𝐟𝑗0\mathbf{d}^{\intercal}\left(\mathbf{C}\left[t_{j}\right]\times\mathbf{f}^{% \prime}_{j}\right)+\mathbf{m}^{\intercal}\mathbf{f}^{\prime}_{j}=0.bold_d start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( bold_C [ italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ] × bold_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) + bold_m start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = 0 . (2)

The above equation relates measurements 𝐟jsubscript𝐟𝑗\mathbf{f}_{j}bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT and tjsubscript𝑡𝑗t_{j}italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT to our unknowns 𝐝,𝐦𝐝𝐦\mathbf{d},\mathbf{m}bold_d , bold_m and 𝐯𝐯\mathbf{v}bold_v, but is still not in a minimal form. This is because, firstly Plücker coordinates are not minimal, and indeed true minimal line representations only have four DoF. Second, in a monocular setup, there is scale ambiguity, and this dictates that the absolute scale of 𝐯𝐯\mathbf{v}bold_v and 𝐋𝐋\mathbf{L}bold_L is unobservable. Finally, the velocity component along the line direction is unobservable due to the aperture problem. To encapsulate these constraints, in the next part, we will introduce a line representation based on the angle-axis representation of rotation matrices. This rotation matrix simultaneously spans a coordinate frame in which we will express our camera velocity, and the aperture problem can be enforced succinctly.

Refer to caption
Figure 1: Incidence relationship between the line 𝐋𝐋\mathbf{L}bold_L, and the bearing vector 𝐟jsuperscriptsubscript𝐟𝑗\mathbf{f}_{j}^{\prime}bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT of event. We parameterize the line with the rotation matrix 𝐑=[𝐞1𝐞2𝐞3]subscript𝐑delimited-[]subscriptsuperscript𝐞1subscriptsuperscript𝐞2subscriptsuperscript𝐞3\mathbf{R}_{\ell}=[\mathbf{e}^{\ell}_{1}\,\mathbf{e}^{\ell}_{2}\,\mathbf{e}^{% \ell}_{3}]bold_R start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT = [ bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ]. Since scale is unobservable, we select the point 𝐞3subscriptsuperscript𝐞3-\mathbf{e}^{\ell}_{3}- bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT at unit depth to lie on the line, and 𝐞1subscriptsuperscript𝐞1\mathbf{e}^{\ell}_{1}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT to indicate its direction. Due to the aperture problem, we can only observe the projected camera velocity 𝐯^^𝐯\hat{\mathbf{v}}over^ start_ARG bold_v end_ARG with components uysubscriptsuperscript𝑢𝑦u^{\ell}_{y}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT and uzsubscriptsuperscript𝑢𝑧u^{\ell}_{z}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT in the 𝐞2subscriptsuperscript𝐞2\mathbf{e}^{\ell}_{2}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT and 𝐞3subscriptsuperscript𝐞3\mathbf{e}^{\ell}_{3}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT direction respectively.

3.2 Transition into a Minimal Form

The transition into minimal form consists of two steps. We first derive the angle-axis-based line representation by successively eliminating internal constraints in the Plücker line coordinate representation, and then proceed with finding the minimal camera velocity representation. We start by observing that scaling both 𝐝𝐝\mathbf{d}bold_d and 𝐦𝐦\mathbf{m}bold_m yields the same line, and thus we may choose to fix the scale of 𝐝𝐝\mathbf{d}bold_d to be unity. Next, we observe that 𝐦=𝐏×𝐝𝐦𝐏𝐝\mathbf{m}=\mathbf{P}\times\mathbf{d}bold_m = bold_P × bold_d is by definition perpendicular to 𝐝𝐝\mathbf{d}bold_d. Moreover, we see that any 𝐏𝐏\mathbf{P}bold_P on the same line results in the same moment, and thus we may choose to select it closest to the origin, such that it is perpendicular to 𝐝𝐝\mathbf{d}bold_d. Since the scale is unobservable, we may furthermore fix the distance from 𝐏𝐏\mathbf{P}bold_P to the origin to be unity. Summarizing these observations, we conclude that we may select 𝐏𝐏\mathbf{P}bold_P and 𝐝𝐝\mathbf{d}bold_d to be perpendicular unit vectors, and in particular we will select 𝐏=𝐞3𝐏subscriptsuperscript𝐞3\mathbf{P}=-\mathbf{e}^{\ell}_{3}bold_P = - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT and 𝐝=𝐞1𝐝subscriptsuperscript𝐞1\mathbf{d}=\mathbf{e}^{\ell}_{1}bold_d = bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, such that the resulting moment is 𝐦=𝐞2𝐦subscriptsuperscript𝐞2\mathbf{m}=-\mathbf{e}^{\ell}_{2}bold_m = - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT. We visualize the three unit vectors in Fig. 1, and observe that they span a line-dependent coordinate frame via the rotation matrix 𝐑=[𝐞1𝐞2𝐞3]subscript𝐑delimited-[]subscriptsuperscript𝐞1subscriptsuperscript𝐞2subscriptsuperscript𝐞3\mathbf{R}_{\ell}=[\mathbf{e}^{\ell}_{1}\,\mathbf{e}^{\ell}_{2}\,\mathbf{e}^{% \ell}_{3}]bold_R start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT = [ bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ]. Rotation matrices belong to 𝑆𝑂(3)𝑆𝑂3\mathit{SO}(3)italic_SO ( 3 ), and thus it becomes apparent that this line representation can be further compressed via the matrix logarithm 𝜽=(log(𝐑))=[θxθyθz]subscript𝜽superscriptlogsubscript𝐑delimited-[]subscriptsuperscript𝜃𝑥subscriptsuperscript𝜃𝑦subscriptsuperscript𝜃𝑧\bm{\theta}_{\ell}=(\text{log}\left(\mathbf{R}_{\ell}\right))^{\vee}=[\theta^{% \ell}_{x}\,\theta^{\ell}_{y}\,\theta^{\ell}_{z}]bold_italic_θ start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT = ( log ( bold_R start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ) ) start_POSTSUPERSCRIPT ∨ end_POSTSUPERSCRIPT = [ italic_θ start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_θ start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT italic_θ start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ], to yield only three DoF, which is a minimal line representation in the absence of scale. Here ()superscript(\cdot)^{\vee}( ⋅ ) start_POSTSUPERSCRIPT ∨ end_POSTSUPERSCRIPT maps the skew-symmetric matrix in the argument to the associated vector.

Note that compared to the two-point-two-plane parametrization [14] in [12], this representation is (i) minimal, relying on three instead of four DoF, and (ii) more flexible, since it does need a reparametrization step for lines that are almost parallel to the yz𝑦𝑧yzitalic_y italic_z-plane.

We now address the camera velocity parametrization, which we express in the line-dependent coordinate frame.

𝐯=𝐑𝐮,𝐯subscript𝐑subscript𝐮\mathbf{v}=\mathbf{R}_{\ell}\mathbf{u}_{\ell}\,,bold_v = bold_R start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT bold_u start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT , (3)

introduces the camera velocity 𝐮=[uxuyuz]subscript𝐮delimited-[]superscriptsubscript𝑢𝑥superscriptsubscript𝑢𝑦superscriptsubscript𝑢𝑧\mathbf{u}_{\ell}=[u_{x}^{\ell}\,u_{y}^{\ell}\,u_{z}^{\ell}]bold_u start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT = [ italic_u start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT italic_u start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT italic_u start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT ] expressed in the line coordinate frame. Using these new parametrizations, the incidence relation Eq. 2 becomes

tj𝐞1((𝐑𝐮)×𝐟j)𝐟j𝐞2=0.superscriptsubscript𝑡𝑗superscriptsubscriptsuperscript𝐞1subscript𝐑subscript𝐮superscriptsubscript𝐟𝑗superscriptsuperscriptsubscript𝐟𝑗subscriptsuperscript𝐞20t_{j}^{\prime}{\mathbf{e}^{\ell}_{1}}^{\intercal}((\mathbf{R}_{\ell}\mathbf{u}% _{\ell})\times\mathbf{f}_{j}^{\prime})-{\mathbf{f}_{j}^{\prime}}^{\intercal}% \mathbf{e}^{\ell}_{2}=0\,.italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( ( bold_R start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT bold_u start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ) × bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) - bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = 0 . (4)

Cycling through the triple product in the first summand, i.e. 𝐚(𝐛×𝐜)=𝐜(𝐚×𝐛)superscript𝐚𝐛𝐜superscript𝐜𝐚𝐛\mathbf{a}^{\intercal}(\mathbf{b}\times\mathbf{c})=\mathbf{c}^{\intercal}(% \mathbf{a}\times\mathbf{b})bold_a start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( bold_b × bold_c ) = bold_c start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( bold_a × bold_b ), we arrive at

tj𝐟j(𝐞1×(𝐑𝐮))𝐟j𝐞2=0,superscriptsubscript𝑡𝑗superscriptsuperscriptsubscript𝐟𝑗subscriptsuperscript𝐞1subscript𝐑subscript𝐮superscriptsuperscriptsubscript𝐟𝑗subscriptsuperscript𝐞20t_{j}^{\prime}{\mathbf{f}_{j}^{\prime}}^{\intercal}(\mathbf{e}^{\ell}_{1}% \times(\mathbf{R}_{\ell}\mathbf{u}_{\ell}))-{\mathbf{f}_{j}^{\prime}}^{% \intercal}\mathbf{e}^{\ell}_{2}=0\,,italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT × ( bold_R start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT bold_u start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ) ) - bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = 0 , (5)

which can be expanded and further simplified to

tj𝐟j(uz𝐞2uy𝐞3)+𝐟j𝐞2=0.superscriptsubscript𝑡𝑗superscriptsuperscriptsubscript𝐟𝑗subscriptsuperscript𝑢𝑧subscriptsuperscript𝐞2superscriptsubscript𝑢𝑦subscriptsuperscript𝐞3superscriptsuperscriptsubscript𝐟𝑗subscriptsuperscript𝐞20t_{j}^{\prime}{\mathbf{f}_{j}^{\prime}}^{\intercal}(u^{\ell}_{z}\mathbf{e}^{% \ell}_{2}-u_{y}^{\ell}\mathbf{e}^{\ell}_{3})+{\mathbf{f}_{j}^{\prime}}^{% \intercal}\mathbf{e}^{\ell}_{2}=0\,.italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_u start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) + bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = 0 . (6)

Note that due to the cross product with 𝐞1subscriptsuperscript𝐞1\mathbf{e}^{\ell}_{1}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, the camera velocity uxsubscriptsuperscript𝑢𝑥u^{\ell}_{x}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT becomes unobservable within this incidence relation, i.e. changing it does not affect the residual. This confirms our intuition that the aperture problem should make velocities along the line direction unobservable. As a result, we focus on only solving for uysubscriptsuperscript𝑢𝑦u^{\ell}_{y}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT and uzsubscriptsuperscript𝑢𝑧u^{\ell}_{z}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT. Furthermore, observe that these equations are in terms of 𝐞2subscriptsuperscript𝐞2\mathbf{e}^{\ell}_{2}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT and 𝐞3subscriptsuperscript𝐞3\mathbf{e}^{\ell}_{3}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT instead of the minimal parameters 𝜽subscript𝜽\bm{\theta}_{\ell}bold_italic_θ start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT. In what follows we design the solver around recovering 𝐞2subscriptsuperscript𝐞2\mathbf{e}^{\ell}_{2}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT and 𝐞3subscriptsuperscript𝐞3\mathbf{e}^{\ell}_{3}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT since it yields a simpler algorithm, yet it should be remembered that the minimal representation can always be recovered using the matrix logarithm of 𝐑subscript𝐑\mathbf{R}_{\ell}bold_R start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT. We now discuss how to recover the unknowns from a set of incidence relations from multiple events, which is summarized in Alg. 1.

3.3 Five-point Minimal Solver

The incidence relationship in Eq. 6 has five unknowns, three from 𝜽=[θxθyθz]subscript𝜽delimited-[]subscriptsuperscript𝜃𝑥subscriptsuperscript𝜃𝑦subscriptsuperscript𝜃𝑧\bm{\theta}_{\ell}=[\theta^{\ell}_{x}\,\theta^{\ell}_{y}\,\theta^{\ell}_{z}]bold_italic_θ start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT = [ italic_θ start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_θ start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT italic_θ start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ] and two from 𝐮=[0uyuz]subscript𝐮delimited-[]0subscriptsuperscript𝑢𝑦subscriptsuperscript𝑢𝑧\mathbf{u}_{\ell}=[0\,u^{\ell}_{y}\,u^{\ell}_{z}]bold_u start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT = [ 0 italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ], and thus can be solved by stacking a minimum of five such constraints. Since each such constraint originates from a single event, this means that five events are the minimum number to solve this system. This stack of equations is

t1𝐟1(uz𝐞2uy𝐞3)+𝐟1𝐞2superscriptsubscript𝑡1superscriptsuperscriptsubscript𝐟1subscriptsuperscript𝑢𝑧subscriptsuperscript𝐞2subscriptsuperscript𝑢𝑦subscriptsuperscript𝐞3superscriptsuperscriptsubscript𝐟1subscriptsuperscript𝐞2\displaystyle t_{1}^{\prime}{\mathbf{f}_{1}^{\prime}}^{\intercal}(u^{\ell}_{z}% \mathbf{e}^{\ell}_{2}-u^{\ell}_{y}\mathbf{e}^{\ell}_{3})+{\mathbf{f}_{1}^{% \prime}}^{\intercal}\mathbf{e}^{\ell}_{2}italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_f start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) + bold_f start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT =0absent0\displaystyle=0= 0
t2𝐟2(uz𝐞2uy𝐞3)+𝐟2𝐞2superscriptsubscript𝑡2superscriptsuperscriptsubscript𝐟2subscriptsuperscript𝑢𝑧subscriptsuperscript𝐞2subscriptsuperscript𝑢𝑦subscriptsuperscript𝐞3superscriptsuperscriptsubscript𝐟2subscriptsuperscript𝐞2\displaystyle t_{2}^{\prime}{\mathbf{f}_{2}^{\prime}}^{\intercal}(u^{\ell}_{z}% \mathbf{e}^{\ell}_{2}-u^{\ell}_{y}\mathbf{e}^{\ell}_{3})+{\mathbf{f}_{2}^{% \prime}}^{\intercal}\mathbf{e}^{\ell}_{2}italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_f start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) + bold_f start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT =0absent0\displaystyle=0= 0
\displaystyle\vdots
t5𝐟5(uz𝐞2uy𝐞3)+𝐟5𝐞2superscriptsubscript𝑡5superscriptsuperscriptsubscript𝐟5subscriptsuperscript𝑢𝑧subscriptsuperscript𝐞2subscriptsuperscript𝑢𝑦subscriptsuperscript𝐞3superscriptsuperscriptsubscript𝐟5subscriptsuperscript𝐞2\displaystyle t_{5}^{\prime}{\mathbf{f}_{5}^{\prime}}^{\intercal}(u^{\ell}_{z}% \mathbf{e}^{\ell}_{2}-u^{\ell}_{y}\mathbf{e}^{\ell}_{3})+{\mathbf{f}_{5}^{% \prime}}^{\intercal}\mathbf{e}^{\ell}_{2}italic_t start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_f start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) + bold_f start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT =0.absent0\displaystyle=0\,.= 0 .

This system of equations is linear in the unknowns and can be rewritten as a single matrix equation

[t1𝐟1𝐟1t5𝐟5𝐟5]𝐀5×6[uz𝐞2uy𝐞3𝐞2]𝐱6×1=𝟎.subscriptmatrixsuperscriptsubscript𝑡1superscriptsuperscriptsubscript𝐟1superscriptsuperscriptsubscript𝐟1superscriptsubscript𝑡5superscriptsuperscriptsubscript𝐟5superscriptsuperscriptsubscript𝐟5approaches-limitabsent𝐀absentsuperscript56subscriptmatrixsubscriptsuperscript𝑢𝑧subscriptsuperscript𝐞2subscriptsuperscript𝑢𝑦subscriptsuperscript𝐞3subscriptsuperscript𝐞2approaches-limitabsent𝐱absentsuperscript610\displaystyle\underbrace{\begin{bmatrix}t_{1}^{\prime}{\mathbf{f}_{1}^{\prime}% }^{\intercal}&{\mathbf{f}_{1}^{\prime}}^{\intercal}\\ \vdots&\vdots\\ t_{5}^{\prime}{\mathbf{f}_{5}^{\prime}}^{\intercal}&{\mathbf{f}_{5}^{\prime}}^% {\intercal}\\ \end{bmatrix}}_{\doteq\mathbf{A}\in\mathbb{R}^{5\times 6}}\underbrace{\begin{% bmatrix}u^{\ell}_{z}\mathbf{e}^{\ell}_{2}-u^{\ell}_{y}\mathbf{e}^{\ell}_{3}\\ \mathbf{e}^{\ell}_{2}\end{bmatrix}}_{\doteq\mathbf{x}\in\mathbb{R}^{6\times 1}% }=\mathbf{0}\,.under⏟ start_ARG [ start_ARG start_ROW start_CELL italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_f start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_CELL start_CELL bold_f start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL italic_t start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_f start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_CELL start_CELL bold_f start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] end_ARG start_POSTSUBSCRIPT ≐ bold_A ∈ blackboard_R start_POSTSUPERSCRIPT 5 × 6 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT under⏟ start_ARG [ start_ARG start_ROW start_CELL italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] end_ARG start_POSTSUBSCRIPT ≐ bold_x ∈ blackboard_R start_POSTSUPERSCRIPT 6 × 1 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT = bold_0 . (7)

Note that this formulation successfully groups the terms from the events in 𝐀𝐀\mathbf{A}bold_A and unknowns in 𝐱𝐱\mathbf{x}bold_x. We can thus solve for 𝐱𝐱\mathbf{x}bold_x, and then reconstruct the unknowns from the found solution. Solving Eq. 7 can be done with a singular value decomposition of A and then selecting the last column of 𝐕𝐕\mathbf{V}bold_V corresponding to the smallest singular value of 𝐀𝐀\mathbf{A}bold_A. Let us denote this solution with 𝐱^^𝐱\hat{\mathbf{x}}over^ start_ARG bold_x end_ARG. Note that 𝐱^^𝐱\hat{\mathbf{x}}over^ start_ARG bold_x end_ARG is normalized, and, due to the homogeneous nature of Eq. 7, only known up to parity, i.e. both ±𝐱^plus-or-minus^𝐱\pm\hat{\mathbf{x}}± over^ start_ARG bold_x end_ARG are solutions. Note also that this procedure is not limited to using only five events, but can be applied to N5𝑁5N\geq 5italic_N ≥ 5, however in this case the solution will no longer be exact, and instead approximate but with a globally minimal squared residual equal to the smallest singular value of 𝐀𝐀\mathbf{A}bold_A. The ability to process more than five events sets this method apart from the solver in [12] which uses a fixed elimination template tailored to only five events. Next, we discuss how to recover the unknowns from a solution 𝐱^^𝐱\mathbf{\hat{x}}over^ start_ARG bold_x end_ARG.

3.4 Recovering the Unknowns from 𝐱^^𝐱\hat{\mathbf{x}}over^ start_ARG bold_x end_ARG

For simplicity, we will only treat the case with +𝐱^^𝐱+\hat{\mathbf{x}}+ over^ start_ARG bold_x end_ARG, but will state that the ambiguity in the parity of the solution to Eq. 7 gives rise to the solution pairs S0,S1subscript𝑆0subscript𝑆1S_{0},S_{1}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, and S2,S3subscript𝑆2subscript𝑆3S_{2},S_{3}italic_S start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT. Remembering the definition of 𝐱𝐱\mathbf{x}bold_x we write that

𝐱^=[λ𝐱^1:3λ𝐱^4:6]=[uz𝐞2uy𝐞3𝐞2].^𝐱matrix𝜆subscript^𝐱:13𝜆subscript^𝐱:46matrixsubscriptsuperscript𝑢𝑧subscriptsuperscript𝐞2subscriptsuperscript𝑢𝑦subscriptsuperscript𝐞3subscriptsuperscript𝐞2\hat{\mathbf{x}}=\begin{bmatrix}\lambda\hat{\mathbf{x}}_{1:3}\\ \lambda\hat{\mathbf{x}}_{4:6}\end{bmatrix}=\begin{bmatrix}u^{\ell}_{z}\mathbf{% e}^{\ell}_{2}-u^{\ell}_{y}\mathbf{e}^{\ell}_{3}\\ \mathbf{e}^{\ell}_{2}\end{bmatrix}\,.over^ start_ARG bold_x end_ARG = [ start_ARG start_ROW start_CELL italic_λ over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_λ over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 4 : 6 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] = [ start_ARG start_ROW start_CELL italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] . (8)

Here λ𝜆\lambdaitalic_λ is an unknown scaling factor. However, since the last three entries of 𝐱^^𝐱\hat{\mathbf{x}}over^ start_ARG bold_x end_ARG correspond to the unit vector 𝐞2subscriptsuperscript𝐞2\mathbf{e}^{\ell}_{2}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT, we can simply normalize 𝐱^^𝐱\hat{\mathbf{x}}over^ start_ARG bold_x end_ARG by the length of 𝐱^4:6subscript^𝐱:46\hat{\mathbf{x}}_{4:6}over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 4 : 6 end_POSTSUBSCRIPT. In what follows we assume that this normalization is done beforehand, and thus ignore this scaling factor by setting λ=1𝜆1\lambda=1italic_λ = 1. Straightforward manipulation yields

𝐞2subscriptsuperscript𝐞2\displaystyle\mathbf{e}^{\ell}_{2}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT =𝐱^4:6absentsubscript^𝐱:46\displaystyle=\hat{\mathbf{x}}_{4:6}= over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 4 : 6 end_POSTSUBSCRIPT (9a)
uzsubscriptsuperscript𝑢𝑧\displaystyle u^{\ell}_{z}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT =𝐱^1:3𝐱^4:6absentsuperscriptsubscript^𝐱:13subscript^𝐱:46\displaystyle=\hat{\mathbf{x}}_{1:3}^{\intercal}\hat{\mathbf{x}}_{4:6}= over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 4 : 6 end_POSTSUBSCRIPT (9b)
uy𝐞1subscriptsuperscript𝑢𝑦subscriptsuperscript𝐞1\displaystyle u^{\ell}_{y}\mathbf{e}^{\ell}_{1}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT =𝐱^1:3×𝐱^4:6.absentsubscript^𝐱:13subscript^𝐱:46\displaystyle=\hat{\mathbf{x}}_{1:3}\times\hat{\mathbf{x}}_{4:6}\,.= over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT × over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 4 : 6 end_POSTSUBSCRIPT . (9c)

From the last equation we can recover uysubscriptsuperscript𝑢𝑦u^{\ell}_{y}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT and 𝐞1subscriptsuperscript𝐞1\mathbf{e}^{\ell}_{1}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT by taking the norm, and normalized vector

uy=𝐱^1:3×𝐱^4:6 and 𝐞1=𝐱^1:3×𝐱^4:6𝐱^1:3×𝐱^4:6.subscriptsuperscript𝑢𝑦normsubscript^𝐱:13subscript^𝐱:46 and subscriptsuperscript𝐞1subscript^𝐱:13subscript^𝐱:46normsubscript^𝐱:13subscript^𝐱:46\displaystyle u^{\ell}_{y}=\|\hat{\mathbf{x}}_{1:3}\times\hat{\mathbf{x}}_{4:6% }\|\text{ and }\mathbf{e}^{\ell}_{1}=\frac{\hat{\mathbf{x}}_{1:3}\times\hat{% \mathbf{x}}_{4:6}}{\|\hat{\mathbf{x}}_{1:3}\times\hat{\mathbf{x}}_{4:6}\|}\,.italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT = ∥ over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT × over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 4 : 6 end_POSTSUBSCRIPT ∥ and bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = divide start_ARG over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT × over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 4 : 6 end_POSTSUBSCRIPT end_ARG start_ARG ∥ over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT × over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 4 : 6 end_POSTSUBSCRIPT ∥ end_ARG . (10)

Note that this decomposition is not unique, as we may simultaneously flip the signs of 𝐞1subscriptsuperscript𝐞1\mathbf{e}^{\ell}_{1}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and uysubscriptsuperscript𝑢𝑦u^{\ell}_{y}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT, resulting in the same product. Finally, we can recover 𝐞3=𝐞1×𝐞2subscriptsuperscript𝐞3subscriptsuperscript𝐞1subscriptsuperscript𝐞2\mathbf{e}^{\ell}_{3}=\mathbf{e}^{\ell}_{1}\times\mathbf{e}^{\ell}_{2}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT × bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT. While 𝐱^^𝐱\hat{\mathbf{x}}over^ start_ARG bold_x end_ARG is the globally optimal solution to the incidence relation constraints in Eq. 7, it is not immediately clear that the recovered 𝐑l,𝐮lsubscript𝐑𝑙subscript𝐮𝑙\mathbf{R}_{l},\mathbf{u}_{l}bold_R start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT , bold_u start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT are also globally optimal with respect to this constraint. As proved in the supplementary material it turns out that 𝐑l,𝐮lsubscript𝐑𝑙subscript𝐮𝑙\mathbf{R}_{l},\mathbf{u}_{l}bold_R start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT , bold_u start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT are globally optimal. Next, we will comment on verifying the correctness of the solution.

3.5 Degenerate Solutions and Solution Multiplicity

First, we state a theorem that the only degenerate cases arise when the matrix 𝐀𝐀\mathbf{A}bold_A in Eq. 7 is rank-deficient. This means that, if rank(𝐀)5rank𝐀5\text{rank}(\mathbf{A})\geq 5rank ( bold_A ) ≥ 5, the previously discussed decomposition always succeeds and yields four solutions.

Theorem 1: If rank(𝐀)5rank𝐀5\text{rank}(\mathbf{A})\geq 5rank ( bold_A ) ≥ 5, with 𝐀𝐀\mathbf{A}bold_A defined in Eq. 7, the decomposition of 𝐱^^𝐱\hat{\mathbf{x}}over^ start_ARG bold_x end_ARG into 𝐮subscript𝐮\mathbf{u}_{\ell}bold_u start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT and 𝐑subscript𝐑\mathbf{R}_{\ell}bold_R start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT always succeeds and yields four distinct solutions. If rank(𝐀)<5rank𝐀5\text{rank}(\mathbf{A})<5rank ( bold_A ) < 5 the solver returns infinitely many solutions.

Note that this theorem also handles cases in which the line passes through the origin. Both the proof of the above theorem and the handling of this case are described in the supplementary material. Rank deficiency of 𝐀𝐀\mathbf{A}bold_A occurs when events share the same timestamp tjsubscript𝑡𝑗t_{j}italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT or motion-corrected bearing vector 𝐟jsuperscriptsubscript𝐟𝑗\mathbf{f}_{j}^{\prime}bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT. To identify this scenario, checking the matrix rank before solving for 𝐱^^𝐱\hat{\mathbf{x}}over^ start_ARG bold_x end_ARG can be done. After SVD, the second smallest singular value should be checked for being large, since small values indicate near-rank deficiency.

Next, we discuss the multiplicity of solutions. As previously stated, the designed solver returns four distinct solutions if the rank of 𝐀𝐀\mathbf{A}bold_A is at least 5. Here we enumerate these solutions (visualized in Fig. 2), stated as a theorem:

Theorem 2: Given a solution S0={𝐞1,𝐞2,𝐞3,uy,uz}subscript𝑆0subscriptsuperscript𝐞1subscriptsuperscript𝐞2subscriptsuperscript𝐞3subscriptsuperscript𝑢𝑦subscriptsuperscript𝑢𝑧S_{0}=\{\mathbf{e}^{\ell}_{1},\mathbf{e}^{\ell}_{2},\mathbf{e}^{\ell}_{3},u^{% \ell}_{y},u^{\ell}_{z}\}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = { bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT } to the incidence relation in Eq. 6, then

S1subscript𝑆1\displaystyle S_{1}italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ={𝐞1,𝐞2,𝐞3,uy,uz},absentsubscriptsuperscript𝐞1subscriptsuperscript𝐞2subscriptsuperscript𝐞3subscriptsuperscript𝑢𝑦subscriptsuperscript𝑢𝑧\displaystyle=\{\mathbf{e}^{\ell}_{1},-\mathbf{e}^{\ell}_{2},-\mathbf{e}^{\ell% }_{3},u^{\ell}_{y},u^{\ell}_{z}\}\,,= { bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT } ,
S2subscript𝑆2\displaystyle S_{2}italic_S start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ={𝐞1,𝐞2,𝐞3,uy,uz},absentsubscriptsuperscript𝐞1subscriptsuperscript𝐞2subscriptsuperscript𝐞3subscriptsuperscript𝑢𝑦subscriptsuperscript𝑢𝑧\displaystyle=\{-\mathbf{e}^{\ell}_{1},\mathbf{e}^{\ell}_{2},-\mathbf{e}^{\ell% }_{3},-u^{\ell}_{y},u^{\ell}_{z}\}\,,= { - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT } ,
S3subscript𝑆3\displaystyle S_{3}italic_S start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ={𝐞1,𝐞2,𝐞3,uy,uz}absentsubscriptsuperscript𝐞1subscriptsuperscript𝐞2subscriptsuperscript𝐞3subscriptsuperscript𝑢𝑦subscriptsuperscript𝑢𝑧\displaystyle=\{-\mathbf{e}^{\ell}_{1},-\mathbf{e}^{\ell}_{2},\mathbf{e}^{\ell% }_{3},-u^{\ell}_{y},u^{\ell}_{z}\}= { - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT }

are also solutions. For solutions S1subscript𝑆1S_{1}italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and S2subscript𝑆2S_{2}italic_S start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT the closest point 𝐞3superscriptsubscript𝐞3-\mathbf{e}_{3}^{\ell}- bold_e start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT on the line is behind the camera, while for solutions S2subscript𝑆2S_{2}italic_S start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT and S3subscript𝑆3S_{3}italic_S start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT the line direction 𝐞1subscriptsuperscript𝐞1\mathbf{e}^{\ell}_{1}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT is flipped, which represents an ambiguity in the definition of direction of 𝐋𝐋\mathbf{L}bold_L.

We state the proof in the supplementary material. Note that two configurations correspond to flipping across the xy-plane. We eliminate these solutions by enforcing that the intersection point 𝐏jsubscript𝐏𝑗\mathbf{P}_{j}bold_P start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT (see Fig. 1) between the line and event ray is in front of the camera. In the supplementary material, we use this geometric interpretation to characterize manifolds spanned by events in more detail.

Refer to caption Refer to caption Refer to caption Refer to caption
(a) Solution S0subscript𝑆0S_{0}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT (b) Solution S1subscript𝑆1S_{1}italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT (c) Solution S2subscript𝑆2S_{2}italic_S start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT (d) Solution S3subscript𝑆3S_{3}italic_S start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT
Figure 2: Multiplicity of solutions to the incidence relation in Eq. 6. While S0subscript𝑆0S_{0}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT and S3subscript𝑆3S_{3}italic_S start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT have the line in front of the camera, S1subscript𝑆1S_{1}italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and S2subscript𝑆2S_{2}italic_S start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT have the line behind the camera. The solution pairs S0,S3subscript𝑆0subscript𝑆3S_{0},S_{3}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT and S1,S2subscript𝑆1subscript𝑆2S_{1},S_{2}italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT differ in the orientation of 𝐞1subscriptsuperscript𝐞1\mathbf{e}^{\ell}_{1}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, which comes from the ambiguity of defining the line direction. In solutions with the line behind the camera, the measured projected camera velocity, 𝐑𝐮subscript𝐑subscript𝐮\mathbf{R}_{\ell}\mathbf{u}_{\ell}bold_R start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT bold_u start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT returned by the solver is the negative of the true projected velocity 𝐯^^𝐯\hat{\mathbf{v}}over^ start_ARG bold_v end_ARG. However, these solutions can be discarded by enforcing the condition in Eq. 14.
Algorithm 1 Linear Solver for Line and Partial Motion Parameters

Input: A set of events \mathcal{E}caligraphic_E with rotated bearing vectors.
Output: Line parameters 𝜽subscript𝜽\bm{\theta}_{\ell}bold_italic_θ start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT and projected velocities 𝐮subscript𝐮\mathbf{u}_{\ell}bold_u start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT.

  • Form matrix 𝐀𝐀\mathbf{A}bold_A from the set of events \mathcal{E}caligraphic_E by Eq. 7 and make sure that rank(𝐀)5rank𝐀5\text{rank}(\mathbf{A})\geq 5rank ( bold_A ) ≥ 5.

  • Apply SVD on 𝐀𝐀\mathbf{A}bold_A and select the last column of 𝐕𝐕\mathbf{V}bold_V, denoted with 𝐱^^𝐱\hat{\mathbf{x}}over^ start_ARG bold_x end_ARG. Both ±𝐱^plus-or-minus^𝐱\pm\hat{\mathbf{x}}± over^ start_ARG bold_x end_ARG can be selected.

  • Normalize 𝐱^^𝐱\hat{\mathbf{x}}over^ start_ARG bold_x end_ARG by 𝐱^4:6subscript^𝐱:46\hat{\mathbf{x}}_{4:6}over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 4 : 6 end_POSTSUBSCRIPT, the last three elements.

  • Recover 𝐞2,uzsubscriptsuperscript𝐞2subscriptsuperscript𝑢𝑧\mathbf{e}^{\ell}_{2},u^{\ell}_{z}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT from Eq. 9.

  • Recover 𝐞1,uysubscriptsuperscript𝐞1subscriptsuperscript𝑢𝑦\mathbf{e}^{\ell}_{1},u^{\ell}_{y}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT from Eq. 10. Both {𝐞1,uy}subscriptsuperscript𝐞1subscriptsuperscript𝑢𝑦\{\mathbf{e}^{\ell}_{1},u^{\ell}_{y}\}{ bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT } and {𝐞1,uy}subscriptsuperscript𝐞1subscriptsuperscript𝑢𝑦\{-\mathbf{e}^{\ell}_{1},-u^{\ell}_{y}\}{ - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT } can be selected.

  • Compile 𝐮=[0uyuz]subscript𝐮delimited-[]0subscriptsuperscript𝑢𝑦subscriptsuperscript𝑢𝑧\mathbf{u}_{\ell}=[0\,u^{\ell}_{y}\,u^{\ell}_{z}]bold_u start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT = [ 0 italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ].

  • Compute 𝐞3=𝐞1×𝐞2subscriptsuperscript𝐞3subscriptsuperscript𝐞1subscriptsuperscript𝐞2\mathbf{e}^{\ell}_{3}=\mathbf{e}^{\ell}_{1}\times\mathbf{e}^{\ell}_{2}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT × bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT.

  • Construct the rotation 𝐑=[𝐞1𝐞2𝐞3]subscript𝐑delimited-[]subscriptsuperscript𝐞1subscriptsuperscript𝐞2subscriptsuperscript𝐞3\mathbf{R}_{\ell}=[\mathbf{e}^{\ell}_{1}\,\mathbf{e}^{\ell}_{2}\,\mathbf{e}^{% \ell}_{3}]bold_R start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT = [ bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ].

  • Recover minimal line parameters 𝜽=(log(𝐑))subscript𝜽superscriptlogsubscript𝐑\bm{\theta}_{\ell}=(\text{log}\left(\mathbf{R}_{\ell}\right))^{\vee}bold_italic_θ start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT = ( log ( bold_R start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ) ) start_POSTSUPERSCRIPT ∨ end_POSTSUPERSCRIPT.

3.6 Velocity Averaging from Multiple Manifolds

As previously discussed, the linear solver can only recover partial velocities perpendicular to the line generating the events in a single cluster. We now describe how to recover the full velocity from a set of partial observations from multiple lines 𝐋isubscript𝐋𝑖\mathbf{L}_{i}bold_L start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT. Each partial observation of the velocity 𝐯𝐯\mathbf{v}bold_v is the projection 𝐯^i=𝐇i𝐯subscript^𝐯𝑖subscript𝐇𝑖𝐯\hat{\mathbf{v}}_{i}=\mathbf{H}_{i}\mathbf{v}over^ start_ARG bold_v end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = bold_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_v into the 𝐞2i𝐞3isubscriptsuperscript𝐞2𝑖subscriptsuperscript𝐞3𝑖\mathbf{e}^{\ell}_{2i}\mathbf{e}^{\ell}_{3i}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT-plane where 𝐇i=𝐈𝐞1i𝐞1isubscript𝐇𝑖𝐈subscriptsuperscript𝐞1𝑖superscriptsubscriptsuperscript𝐞1𝑖\mathbf{H}_{i}=\mathbf{I}-\mathbf{e}^{\ell}_{1i}{\mathbf{e}^{\ell}_{1i}}^{\intercal}bold_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = bold_I - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 italic_i end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT, which is visualized in Fig. 3(i). The observation is given by the two projections uyisubscriptsuperscript𝑢𝑦𝑖u^{\ell}_{yi}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y italic_i end_POSTSUBSCRIPT and uzisubscriptsuperscript𝑢𝑧𝑖u^{\ell}_{zi}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z italic_i end_POSTSUBSCRIPT scaling the second and third basis vectors of 𝐑isubscript𝐑𝑖\mathbf{R}_{{\ell}i}bold_R start_POSTSUBSCRIPT roman_ℓ italic_i end_POSTSUBSCRIPT, respectively. Thus, the correct velocity estimate must satisfy

𝐯^i=𝐇i𝐯=𝐞2iuyi+𝐞3iuzi=𝐑i𝐮i.subscript^𝐯𝑖subscript𝐇𝑖𝐯subscriptsuperscript𝐞2𝑖subscriptsuperscript𝑢𝑦𝑖subscriptsuperscript𝐞3𝑖subscriptsuperscript𝑢𝑧𝑖subscript𝐑𝑖subscript𝐮𝑖\hat{\mathbf{v}}_{i}=\mathbf{H}_{i}\mathbf{v}=\mathbf{e}^{\ell}_{2i}u^{\ell}_{% yi}+\mathbf{e}^{\ell}_{3i}u^{\ell}_{zi}=\mathbf{R}_{{\ell}i}\mathbf{u}_{{\ell}% i}\,.over^ start_ARG bold_v end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = bold_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_v = bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y italic_i end_POSTSUBSCRIPT + bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z italic_i end_POSTSUBSCRIPT = bold_R start_POSTSUBSCRIPT roman_ℓ italic_i end_POSTSUBSCRIPT bold_u start_POSTSUBSCRIPT roman_ℓ italic_i end_POSTSUBSCRIPT . (11)

Unlike the velocity averaging scheme in [12] we adopt the following geometrically motivated, but equivalent formalism to solve multiple such equations: Each such constraint (one for each line) can be converted into a homogeneous linear constraint following the steps in Fig. 3(i). We see that the 90 rotated velocity 𝐑i𝐑π2𝐮isubscript𝐑𝑖subscript𝐑𝜋2subscript𝐮𝑖\mathbf{R}_{{\ell}i}\mathbf{R}_{\frac{\pi}{2}}\mathbf{u}_{{\ell}i}bold_R start_POSTSUBSCRIPT roman_ℓ italic_i end_POSTSUBSCRIPT bold_R start_POSTSUBSCRIPT divide start_ARG italic_π end_ARG start_ARG 2 end_ARG end_POSTSUBSCRIPT bold_u start_POSTSUBSCRIPT roman_ℓ italic_i end_POSTSUBSCRIPT must be perpendicular to the projected camera velocity 𝐯^isubscript^𝐯𝑖\hat{\mathbf{v}}_{i}over^ start_ARG bold_v end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT. Forming the dot product with this vector yields:

𝐯^i𝐑i𝐑π2𝐮isuperscriptsubscript^𝐯𝑖subscript𝐑𝑖subscript𝐑𝜋2subscript𝐮𝑖\displaystyle\hat{\mathbf{v}}_{i}^{\intercal}\mathbf{R}_{{\ell}i}\mathbf{R}_{% \frac{\pi}{2}}\mathbf{u}_{{\ell}i}over^ start_ARG bold_v end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_R start_POSTSUBSCRIPT roman_ℓ italic_i end_POSTSUBSCRIPT bold_R start_POSTSUBSCRIPT divide start_ARG italic_π end_ARG start_ARG 2 end_ARG end_POSTSUBSCRIPT bold_u start_POSTSUBSCRIPT roman_ℓ italic_i end_POSTSUBSCRIPT =𝐯(uyi𝐞3iuzi𝐞2i)=0absentsuperscript𝐯subscriptsuperscript𝑢𝑦𝑖subscriptsuperscript𝐞3𝑖subscriptsuperscript𝑢𝑧𝑖subscriptsuperscript𝐞2𝑖0\displaystyle=\mathbf{v}^{\intercal}\left(u^{\ell}_{yi}\mathbf{e}^{\ell}_{3i}-% u^{\ell}_{zi}\mathbf{e}^{\ell}_{2i}\right)=0= bold_v start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y italic_i end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z italic_i end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT ) = 0 (12)
with 𝐑π2with subscript𝐑𝜋2\displaystyle\text{ with }\mathbf{R}_{\frac{\pi}{2}}with bold_R start_POSTSUBSCRIPT divide start_ARG italic_π end_ARG start_ARG 2 end_ARG end_POSTSUBSCRIPT =[100001010].absentmatrix100001010\displaystyle=\begin{bmatrix}1&0&0\\ 0&0&-1\\ 0&1&0\end{bmatrix}\,.= [ start_ARG start_ROW start_CELL 1 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 1 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 1 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] .

Note that the above constraint remains, even when inserting the alternative solutions S0,S3subscript𝑆0subscript𝑆3S_{0},S_{3}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT or S1,S2subscript𝑆1subscript𝑆2S_{1},S_{2}italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT, since these only lead to a change in the sign. Stacking M𝑀Mitalic_M such equations, one for each line, can be summarized as:

[uy1𝐞31uz1𝐞21uyM𝐞3MuzM𝐞2M]𝐃M×3𝐯=𝟎.subscriptmatrixsubscriptsuperscript𝑢𝑦1superscriptsuperscriptsubscript𝐞31subscriptsuperscript𝑢𝑧1superscriptsuperscriptsubscript𝐞21subscriptsuperscript𝑢𝑦𝑀superscriptsuperscriptsubscript𝐞3𝑀subscriptsuperscript𝑢𝑧𝑀superscriptsuperscriptsubscript𝐞2𝑀approaches-limitabsent𝐃absentsuperscript𝑀3𝐯0\underbrace{\begin{bmatrix}u^{\ell}_{y1}{\mathbf{e}_{31}^{\ell}}^{\intercal}-u% ^{\ell}_{z1}{\mathbf{e}_{21}^{\ell}}^{\intercal}\\ \vdots\\ u^{\ell}_{yM}{\mathbf{e}_{3M}^{\ell}}^{\intercal}-u^{\ell}_{zM}{\mathbf{e}_{2M% }^{\ell}}^{\intercal}\\ \end{bmatrix}}_{\doteq\mathbf{D}\in\mathbb{R}^{M\times 3}}\mathbf{v}=\mathbf{0% }\,.under⏟ start_ARG [ start_ARG start_ROW start_CELL italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y 1 end_POSTSUBSCRIPT bold_e start_POSTSUBSCRIPT 31 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z 1 end_POSTSUBSCRIPT bold_e start_POSTSUBSCRIPT 21 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y italic_M end_POSTSUBSCRIPT bold_e start_POSTSUBSCRIPT 3 italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z italic_M end_POSTSUBSCRIPT bold_e start_POSTSUBSCRIPT 2 italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] end_ARG start_POSTSUBSCRIPT ≐ bold_D ∈ blackboard_R start_POSTSUPERSCRIPT italic_M × 3 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT bold_v = bold_0 . (13)

We solve this equation again with SVD, by selecting the column of 𝐕𝐕\mathbf{V}bold_V corresponding with the minimal singular value. From this system, we also conclude that we need a minimum of two lines to recover 𝐯𝐯\mathbf{v}bold_v. Again, SVD only recovers 𝐯𝐯\mathbf{v}bold_v up to an unknown parity, i.e. both ±𝐯plus-or-minus𝐯\pm\mathbf{v}± bold_v satisfy the equation. To disambiguate the solution, we enforce that the projected velocity must point in the same direction as 𝐑i𝐮isubscript𝐑𝑖subscript𝐮𝑖\mathbf{R}_{{\ell}i}\mathbf{u}_{{\ell}i}bold_R start_POSTSUBSCRIPT roman_ℓ italic_i end_POSTSUBSCRIPT bold_u start_POSTSUBSCRIPT roman_ℓ italic_i end_POSTSUBSCRIPT for each line. This can be written concisely as

𝐯^i𝐑i𝐮i=𝐯(uyi𝐞2i+uzi𝐞3i)>0,superscriptsubscript^𝐯𝑖subscript𝐑𝑖subscript𝐮𝑖superscript𝐯subscriptsuperscript𝑢𝑦𝑖subscriptsuperscript𝐞2𝑖subscriptsuperscript𝑢𝑧𝑖subscriptsuperscript𝐞3𝑖0\hat{\mathbf{v}}_{i}^{\intercal}\mathbf{R}_{{\ell}i}\mathbf{u}_{{\ell}i}=% \mathbf{v}^{\intercal}\left(u^{\ell}_{yi}\mathbf{e}^{\ell}_{2i}+u^{\ell}_{zi}% \mathbf{e}^{\ell}_{3i}\right)>0\,,over^ start_ARG bold_v end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_R start_POSTSUBSCRIPT roman_ℓ italic_i end_POSTSUBSCRIPT bold_u start_POSTSUBSCRIPT roman_ℓ italic_i end_POSTSUBSCRIPT = bold_v start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y italic_i end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT + italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z italic_i end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT ) > 0 , (14)

If at least one line does not satisfy this condition, the sign of 𝐯𝐯\mathbf{v}bold_v should be flipped. Compared to [12], which uses a more expensive Shur-Complement step to eliminate unknown scale factors, our algorithm only requires a single step of SVD, but yields the same results. This is because our algorithm is actually equivalent to that of [12], as will be shown in the supplementary material.

Note that the above line averaging scheme may run into issues, if two lines are parallel. Making, the common 𝐞1superscriptsubscript𝐞1\mathbf{e}_{1}^{\ell}bold_e start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT component of 𝐯𝐯\mathbf{v}bold_v unobservable. However, this case actually induces a rank deficiency on 𝐃𝐃\mathbf{D}bold_D, as proved in the supplementary material, and can thus easily be discarded.

Refer to caption Refer to caption
(i) single line constraint (ii) multiple line constraints
Figure 3: (i) The line constraint in Eq. 11 dictates that the 90-degree rotated measured velocity 𝐑i𝐑π2𝐮isubscript𝐑𝑖subscript𝐑𝜋2subscript𝐮𝑖\mathbf{R}_{{\ell}i}\mathbf{R}_{\frac{\pi}{2}}\mathbf{u}_{{\ell}i}bold_R start_POSTSUBSCRIPT roman_ℓ italic_i end_POSTSUBSCRIPT bold_R start_POSTSUBSCRIPT divide start_ARG italic_π end_ARG start_ARG 2 end_ARG end_POSTSUBSCRIPT bold_u start_POSTSUBSCRIPT roman_ℓ italic_i end_POSTSUBSCRIPT should be perpendicular to 𝐯^isubscript^𝐯𝑖\hat{\mathbf{v}}_{i}over^ start_ARG bold_v end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, or 𝐯𝐇i𝐑i𝐑π2𝐮i=0superscript𝐯superscriptsubscript𝐇𝑖subscript𝐑𝑖subscript𝐑𝜋2subscript𝐮𝑖0\mathbf{v}^{\intercal}\mathbf{H}_{i}^{\intercal}\mathbf{R}_{{\ell}i}\mathbf{R}% _{\frac{\pi}{2}}\mathbf{u}_{{\ell}i}=0bold_v start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_R start_POSTSUBSCRIPT roman_ℓ italic_i end_POSTSUBSCRIPT bold_R start_POSTSUBSCRIPT divide start_ARG italic_π end_ARG start_ARG 2 end_ARG end_POSTSUBSCRIPT bold_u start_POSTSUBSCRIPT roman_ℓ italic_i end_POSTSUBSCRIPT = 0. (ii) Each such constraint spans a two-dimensional subspace, in which 𝐯𝐯\mathbf{v}bold_v must reside. With a minimum of two such subspaces, the velocity can be found.

4 Implementation

We integrate the aforementioned linear solver into a RANSAC framework for parameter determination of each manifold, followed by fitting over all inliers. Diverging from the approach of [12], our implementation adopts the GC-RANSAC framework [1] for robust geometric model estimation. GC-RANSAC enhances the original RANSAC by introducing a few versatile functionalities tailored for early termination, thereby expediting the overall process. Essentially, GC-RANSAC first iteratively selects a minimal, spatially coherent subset of events (N=5𝑁5N=5italic_N = 5) from the incoming event stream, applies the proposed linear solver described in Alg. 1, and evaluates the quality of the resulting hypothesis. Each occurrence of a so-far-the-best hypothesis will trigger a local refinement within a subset of its inliers. This procedure is repeated M𝑀Mitalic_M times to separately identify M𝑀Mitalic_M manifolds. We will now delve into the critical aspects influencing this process.

Spatially Coherent Sampler: The manifold’s continuous structure allows for the examination of the data’s spatial coherency. We utilize NAPSAC [35] to sample from the incoming event stream. This approach starts by randomly selecting one event in the space-time volume followed by identifying four additional events within a hyper-sphere centered on the initial event, based on a predetermined radius r𝑟ritalic_r. In practice, these four points, located within the hyper-sphere, are likely to be inliers111Note that this method does not conflict with the findings about ensuring spatial distribution among samples [12]. However, we adhere to a general rule of maintaining this spatial distribution within our defined hyper-sphere..

Angular Reprojection Residual: We employ the angular reprojection residual [22] for inliers selection. The objective is to minimally correct the two lines, the bearing vector emanating from an event and the 3D line, so they could converge at a single point (i.e. 𝐏jsubscript𝐏𝑗\mathbf{P}_{j}bold_P start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT in Fig. 1). Unlike the typical image reprojection residual, this measurement is invariant to both rotation and scale.

Local Refinement: RANSAC often results in numerous ineffective iterations. Therefore, when a promising hypothesis emerges, it is recommended to perform local refinement using the inlier sets, which can enhance the inlier ratio and decrease the total number of required iterations. In our work, we introduce two distinct methods for local refinement. The first method leverages the over-determined nature of our proposed linear solver, while the second employs non-linear optimization with Levenberg–Marquardt over an algebraic error (i.e. Eq. 6). As suggested in [1], we randomly select a subset from the inlier set (N=10𝑁10N=10italic_N = 10) and repeat this procedure Q𝑄Qitalic_Q times.

5 Experiments

We perform evaluations both on synthetic and real data. We first confirm the runtime improvement and numerical stability of our linear solver. Next, we discuss the impact of the number of used events or lines, over different noise setups. We conclude with experiments on a few public real-world sequences, demonstrating the advantage over existing methods. We quantify the accuracy of our results with the same criterion as [12], the direction error ϕitalic-ϕ\phiitalic_ϕ between the estimated and the ground truth velocities, given that the scale is not observable. All experiments are conducted on a 32GB RAM desktop with an Intel Core i9-10900F Processor.

5.1 Simulation

We first evaluate the performance of the proposed linear solver under different setups over synthetic data. Readings from individual manifolds are generated as follows. We first sample randomly directed linear and angular velocities of 0.5 m/stimes0.5ms0.5\text{\,}\mathrm{m}\mathrm{/}\mathrm{s}start_ARG 0.5 end_ARG start_ARG times end_ARG start_ARG roman_m / roman_s end_ARG and 15 °/stimes15arcdegrees15\text{\,}\mathrm{\SIUnitSymbolDegree}\mathrm{/}\mathrm{s}start_ARG 15 end_ARG start_ARG times end_ARG start_ARG ° / roman_s end_ARG magnitude, respectively. The time window length is set to 0.5 stimes0.5second0.5\text{\,}\mathrm{s}start_ARG 0.5 end_ARG start_ARG times end_ARG start_ARG roman_s end_ARG, and the virtual event camera has a resolution of 640×\times×480 and a focal length of 320 pixels. Next, we sample a random line in 3D with a finite length and sample random events according to the spatiotemporal strategy in [12]. We study three types of noise with different magnitudes: pixel noise (0.5 pxtimes0.5pixel0.5\text{\,}\mathrm{px}start_ARG 0.5 end_ARG start_ARG times end_ARG start_ARG roman_px end_ARG), timestamp jitter (0.5 mstimes0.5millisecond0.5\text{\,}\mathrm{ms}start_ARG 0.5 end_ARG start_ARG times end_ARG start_ARG roman_ms end_ARG), and gyroscope noise (5.0 °/stimes5.0arcdegrees5.0\text{\,}\mathrm{\SIUnitSymbolDegree}\mathrm{/}\mathrm{s}start_ARG 5.0 end_ARG start_ARG times end_ARG start_ARG ° / roman_s end_ARG), which is assumed to be given by an IMU. The magnitude of the pixel noise and the noise on camera angular velocities are consistent within the same noise level but vary in direction. Timestamp noise follows a zero-mean Gaussian. For a more detailed sensitivity study for different noise sources and levels see the supplementary material. We generate one million random line, velocity, and event configurations, and report the mean and median angle error, as well as the minimum and mean runtime in milliseconds of our method and the one in [12].

Table 1: General comparison between the two solvers.
Method Runtime ( µstimesabsentmicrosecond\text{\,}\mathrm{\SIUnitSymbolMicro s}start_ARG end_ARG start_ARG times end_ARG start_ARG roman_µ roman_s end_ARG) Error Rate (%)
min. avg. 0.1°absent0.1°\geq$$≥ 0.1 ⁢ ° 1.0°absent1.0°\geq$$≥ 1.0 ⁢ °
Gröbner  [12] 1893 2046 1.00 0.28
Linear (ours) 3.00 3.25 0.00 0.00

Runtime Analysis: In each run we record the runtime of both solvers. As reflected in Tab. 1, our solver runs over 600 times faster than the Gröbner basis solver in [12].

Numerical Stability: We further analyze the numerical stability of both methods under the noise-free setup. We report the likelihood of the solver to converge to within a low (1.0°1.0°1.0 ⁢ °, or 0.1°0.1°0.1 ⁢ °) error. Our solver consistently reaches a zero error, unlike the polynomial solver, which, due to numerical instabilities of the elimination template, fails to converge within a 0.1°0.1°0.1 ⁢ ° error range 1 %times1percent1\text{\,}\mathrm{\char 37\relax}start_ARG 1 end_ARG start_ARG times end_ARG start_ARG % end_ARG of times.

Table 2: Noise resilience of our linear solver and the solver in [12]. Left corresponds to the mean, right to the median error in degrees.
Method num. Pixel Noise Time. Jitter Gyro. Noise
events (0.5 pxtimes0.5pixel0.5\text{\,}\mathrm{px}start_ARG 0.5 end_ARG start_ARG times end_ARG start_ARG roman_px end_ARG) (0.5 mstimes0.5millisecond0.5\text{\,}\mathrm{ms}start_ARG 0.5 end_ARG start_ARG times end_ARG start_ARG roman_ms end_ARG) (5.0 °/stimes5.0arcdegrees5.0\text{\,}\mathrm{\SIUnitSymbolDegree}\mathrm{/}\mathrm{s}start_ARG 5.0 end_ARG start_ARG times end_ARG start_ARG ° / roman_s end_ARG)
Gröbner  [12] 5 7.80/1.67 3.61/0.83 7.48/3.09
Linear (ours) 5 5.53/1.24 2.87/0.73 6.53/2.47
Linear (ours) 10 0.46/0.15 0.17/0.12 1.50/1.17
Table 3: Real-world experiment results. Left corresponds to the mean, right to the median error in degrees.
Seq. Name CELC+opt [30] Gröbner  [12] Linear only Linear w/ non-min. solver Linear w/ non-linear opt.
mountain-normal 27.7/29.3 33.5/33.6 25.2/21.4 17.0/17.2 16.5/14.6
desk-normal 26.6/26.6 26.4/26.7 22.7/23.4 19.8/19.2 22.1/20.7
sofa-normal 24.0/26.1 31.5/29.5 21.9/17.6 20.6/16.1 19.9/15.0
Refer to caption
Refer to caption
Figure 4: Condensed analysis of the number of used events (left) and used lines (right) over three types of representative noise.

Analysis of the Number of Used Events: In each simulation, we sample 1,000 signal events and introduce a type of representative noise to the measurements. From these, we use the first 5K1,000formulae-sequence5𝐾10005\leq K\leq 1,0005 ≤ italic_K ≤ 1 , 000 events as input for our linear solver for a fair comparison and document the resulting error. We repeat this simulation a million times, varying K𝐾Kitalic_K, and report the results in Fig. 4. We observe a clear trend that as the number of used events increases, the error decreases markedly, except when noise is introduced to the camera’s angular velocity. This exception occurs because the solver cannot average out the noise on the angular velocity, regardless of the number of events processed. The other two errors approach near zero when 1,000 events are used. A full analysis of the solver’s performance under each noise type can be found in the supplementary material.

Analysis of the Number of Used Lines: Finally, we validate our velocity averaging scheme. We extend our simulation to multiple manifolds. For each run, we sampled ten lines and, within each line, we selected ten signal events with known line associations as input to our solver. The first 2K102𝐾102\leq K\leq 102 ≤ italic_K ≤ 10 solutions (line and partial motion parameters) from each manifold were taken into the linear averaging scheme, and the error was recorded. This simulation was executed 10,000 times. Fig. 4 shows that as the number of used lines increases, the error drops significantly. A comprehensive analysis of the solver’s performance against various noise types is available in the supplementary material. Additionally, we show quantitative results in Tab. 2. Both the Gröbner Solver and our linear solver use five lines with either five or ten events each. Our approach demonstrates a lower error with noisy measurements, and this margin grows further in overdetermined systems (i.e. N=10𝑁10N=10italic_N = 10).

5.2 Real-world Experiment

Similarly to [12], we validate our method on the same data sequence from VECtor Benchmark [11]. Unlike the previous work, we first segmented the event data into non-overlapping intervals of 0.1 stimes0.1second0.1\text{\,}\mathrm{s}start_ARG 0.1 end_ARG start_ARG times end_ARG start_ARG roman_s end_ARG each and reduced the overall size of the data to approximately 5,000 events per interval for efficiency. Motion-corrected bearing vectors are then calculated by fusing gyroscope readings from the attached IMU. Next, to construct the chosen sampler used in GC-RANSAC, we multiply the timestamp by a scale factor of 1,000 and established a radius of 50 to compose the spatially coherent graph in the space-time volume. We apply an angular reprojection threshold of 0.2°0.2°0.2 ⁢ ° for inlier selection, consistent across both the primary iterations and the local refinement stages. The number of iterations for each manifold fitting is capped at 100 and evaluated manifolds is capped at 10. In Tab. 3, we summarized the performance, including both mean and median errors, across two baseline approaches and three variants of our proposed method. Importantly, as [12] reports, CELC+opt [30] is limited to certain sub-sequences, where spatial-temporal plane clustering is feasible, while, [12] does not suffer from this limitation. We test three configurations of our method: linear only, linear with non-minimal refinement, and linear with non-linear optimization. Each configuration uses GC-RANSAC with the spatially coherent sampler. The latter two configurations perform different operations when a new best hypothesis is found by the sampler: “Linear w/ non-min. solver” samples 10 events from the found inliers and feeds them to the linear solver, resulting in a refined solution. “Linear w/ non-linear opt.” runs on-manifold Levenberg-Marquardt optimization steps (with line parameters 𝐑SO(3)subscript𝐑𝑆𝑂3\mathbf{R}_{\ell}\in SO(3)bold_R start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ∈ italic_S italic_O ( 3 )) over the 10 selected events and minimizes the algebraic error in Eq. 6. We use a subset of 10 inliers to enhance efficiency and reduce errors, as seen in simulated experiments.

Results: In each configuration, our method achieves a lower error than the two baseline approaches. Additionally, local refinement enhances accuracy significantly. Without refinement it already has a 10 %times10percent10\text{\,}\mathrm{\char 37\relax}start_ARG 10 end_ARG start_ARG times end_ARG start_ARG % end_ARG lower mean error than [30], and 24 %times24percent24\text{\,}\mathrm{\char 37\relax}start_ARG 24 end_ARG start_ARG times end_ARG start_ARG % end_ARG lower mean error than [12]. Introducing non-minimal solver refinement reduces the mean error by another 18 %times18percent18\text{\,}\mathrm{\char 37\relax}start_ARG 18 end_ARG start_ARG times end_ARG start_ARG % end_ARG over the “Linear only” baseline and non-linear optimization reduces it by 16 %times16percent16\text{\,}\mathrm{\char 37\relax}start_ARG 16 end_ARG start_ARG times end_ARG start_ARG % end_ARG.

6 Conclusion and Future Work

This work introduced a novel, efficient, and linear N-point solver for line-based relative motion estimation of an event camera. Compared to existing works that rely on polynomial system solvers, our method is more numerically stable, over 600 times faster, and allows the identification of degenerate cases explicitly. Moreover, we introduce a novel velocity averaging scheme that is simpler and faster than previous approaches. When combined with GC-RANSAC we show improved normalized velocity estimation compared to existing approaches, at a fraction of the runtime. Finally, the solutions found by our solver deliver new insights into event manifolds generated by lines and thus pave the way for line-based motion estimation with events. Moreover, despite focusing on event cameras in this work, our formulation is fully compatible with line detections from standard cameras. Thus the tools developed in this work can benefit both frame- and event-based computer vision. Our next steps consist of adding uncertainties to the partial velocity readings and applying the fusion strategy asynchronously over time as well as in conjunction with IMU measurements.

Acknowledgments

This research has been supported by projects 22DZ1201900 and 22ZR1441300 funded by the Natural Science Foundation of Shanghai as well as project 62250610225 by the National Science Foundation of China (NSFC). This work was also supported by the European Research Council (ERC) under grant agreement No. 864042 (AGILEFLIGHT).

\thetitle

Supplementary Material

7 Appendix

Here we report additional results of our algorithm for varying noise sources in Sec. 7.1, before discussing the proofs of Theorem 1 and Theorem 2 in Sec. 7.2 and Sec. 7.3, as well as the connection of our proposed line averaging scheme with that of [12] in Sec. 7.6. Finally, we provide additional visual insights into the manifolds spanned by events generated by a line. We show that these manifolds can be canonicalized, i.e. reduced to a small family of manifolds which are highly interpretable (see Sec. 7.7).

7.1 Noise Sensitivity Analysis

In Fig. 5, we provide additional results of our method in simulation, as we vary the number of events used by our solver, and the magnitude of the various noise sources, e.g. pixel noise, timestamp jitter, gyroscope noise. As expected, we see that all errors decrease as more events are used, and errors increase as more noise is injected. Again, the only noise source that cannot be completely eliminated through addition of events is the gyroscope noise, which introduces systematic errors. Experimentally, we found that N=10𝑁10N=10italic_N = 10 events gives a good tradeoff between the speed of the algorithm, and observed errors for all noise levels and sources.

We also present additional results for differing noise sources and magnitudes of our line averaging scheme in Fig. 6, and analyse the resulting errors as the number of used lines increases. Again we see that all errors tend to zero as more lines are used, except for the gyroscope noise.

7.2 Proof of Theorem 1 on Degeneracies

For clarity, we restate Theorem 1 here:

Theorem 1: If rank(𝐀)5rank𝐀5\text{rank}(\mathbf{A})\geq 5rank ( bold_A ) ≥ 5, with 𝐀𝐀\mathbf{A}bold_A defined in Eq. 7, the decomposition in Eqs. (8910) always succeeds and yields four distinct solutions. If rank(𝐀)<5rank𝐀5\text{rank}(\mathbf{A})<5rank ( bold_A ) < 5 the solver returns infinitely many solutions.

Proof: First assume rank(𝐀)5rank𝐀5\text{rank}(\mathbf{A})\geq 5rank ( bold_A ) ≥ 5. Then SVD returns two distinct principle directions ±𝐱^plus-or-minus^𝐱\pm\hat{\mathbf{x}}± over^ start_ARG bold_x end_ARG. After decomposition, Eq. 10 yields two more solutions, resulting in a total of four distinct solutions. Now assume that the decomposition fails, and this can happen for three reasons:

Failure to normalize in Eq. 8: Normalization may fail if 𝐱^4:6subscript^𝐱:46\hat{\mathbf{x}}_{4:6}over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 4 : 6 end_POSTSUBSCRIPT has zero norm. However, this case is impossible for a matrix 𝐀𝐀\mathbf{A}bold_A with rank 5absent5\geq 5≥ 5 for the following reason: Let 𝐁,𝐂𝐁𝐂\mathbf{B},\mathbf{C}bold_B , bold_C be the three left and right columns of 𝐀𝐀\mathbf{A}bold_A (see Eq. 7). Moreover, note that 𝐂=𝐓𝐁𝐂𝐓𝐁\mathbf{C}=\mathbf{T}\mathbf{B}bold_C = bold_TB, where 𝐓=diag(t1,t2,,tN)𝐓diagsubscriptsuperscript𝑡1subscriptsuperscript𝑡2subscriptsuperscript𝑡𝑁\mathbf{T}=\text{diag}(t^{\prime}_{1},t^{\prime}_{2},...,t^{\prime}_{N})bold_T = diag ( italic_t start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_t start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , … , italic_t start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ) is a diagonal matrix, i.e. each row of 𝐁𝐁\mathbf{B}bold_B is a multiple of the corresponding row in 𝐂𝐂\mathbf{C}bold_C.

If 𝐱^4:6subscript^𝐱:46\hat{\mathbf{x}}_{4:6}over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 4 : 6 end_POSTSUBSCRIPT has zero norm, 𝐱^4:6=0subscript^𝐱:460\hat{\mathbf{x}}_{4:6}=0over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 4 : 6 end_POSTSUBSCRIPT = 0. Next, let σ𝜎\sigmaitalic_σ be the smallest singular value of 𝐀𝐀\mathbf{A}bold_A corresponding to the solution 𝐱^^𝐱\hat{\mathbf{x}}over^ start_ARG bold_x end_ARG. Then

𝐀𝐀𝐱^superscript𝐀𝐀^𝐱\displaystyle\mathbf{A}^{\intercal}\mathbf{A}\hat{\mathbf{x}}bold_A start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_A over^ start_ARG bold_x end_ARG =σ𝐱^absent𝜎^𝐱\displaystyle=\sigma\hat{\mathbf{x}}= italic_σ over^ start_ARG bold_x end_ARG (15)
[𝐁𝐁𝐓][𝐁𝐓𝐁][𝐱^1:30]matrixsuperscript𝐁superscript𝐁𝐓matrix𝐁𝐓𝐁matrixsubscript^𝐱:130\displaystyle\begin{bmatrix}\mathbf{B}^{\intercal}\\ \mathbf{B}^{\intercal}\mathbf{T}\end{bmatrix}\begin{bmatrix}\mathbf{B}&\mathbf% {T}\mathbf{B}\end{bmatrix}\begin{bmatrix}\hat{\mathbf{x}}_{1:3}\\ 0\end{bmatrix}[ start_ARG start_ROW start_CELL bold_B start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL bold_B start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T end_CELL end_ROW end_ARG ] [ start_ARG start_ROW start_CELL bold_B end_CELL start_CELL bold_TB end_CELL end_ROW end_ARG ] [ start_ARG start_ROW start_CELL over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL 0 end_CELL end_ROW end_ARG ] =[σ𝐱^1:30]absentmatrix𝜎subscript^𝐱:130\displaystyle=\begin{bmatrix}\sigma\hat{\mathbf{x}}_{1:3}\\ 0\end{bmatrix}= [ start_ARG start_ROW start_CELL italic_σ over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL 0 end_CELL end_ROW end_ARG ] (16)
[𝐁𝐁𝐱^1:3𝐁𝐓𝐁𝐱^1:3]matrixsuperscript𝐁𝐁subscript^𝐱:13superscript𝐁𝐓𝐁subscript^𝐱:13\displaystyle\begin{bmatrix}\mathbf{B}^{\intercal}\mathbf{B}\hat{\mathbf{x}}_{% 1:3}\\ \mathbf{B}^{\intercal}\mathbf{T}\mathbf{B}\hat{\mathbf{x}}_{1:3}\end{bmatrix}[ start_ARG start_ROW start_CELL bold_B start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_B over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL bold_B start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_TB over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] =[σ𝐱^1:30]absentmatrix𝜎subscript^𝐱:130\displaystyle=\begin{bmatrix}\sigma\hat{\mathbf{x}}_{1:3}\\ 0\end{bmatrix}= [ start_ARG start_ROW start_CELL italic_σ over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL 0 end_CELL end_ROW end_ARG ] (17)

The last three rows of the last equation are

𝐁𝐓𝐁𝐱^1:3=0,superscript𝐁𝐓𝐁subscript^𝐱:130\displaystyle\mathbf{B}^{\intercal}\mathbf{T}\mathbf{B}\hat{\mathbf{x}}_{1:3}=% 0\,,bold_B start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_TB over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT = 0 , (18)

and imply either that 𝐁(𝐓𝐁𝐱^1:3)=0superscript𝐁𝐓𝐁subscript^𝐱:130\mathbf{B}^{\intercal}(\mathbf{T}\mathbf{B}\hat{\mathbf{x}}_{1:3})=0bold_B start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( bold_TB over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT ) = 0, i.e. 𝐓𝐁𝐱^1:3𝐓𝐁subscript^𝐱:13\mathbf{T}\mathbf{B}\hat{\mathbf{x}}_{1:3}bold_TB over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT is in the left null-space of 𝐁𝐁\mathbf{B}bold_B, or 𝐁𝐱^1:3=0𝐁subscript^𝐱:130\mathbf{B}\hat{\mathbf{x}}_{1:3}=0bold_B over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT = 0, i.e. 𝐱^1:3subscript^𝐱:13\hat{\mathbf{x}}_{1:3}over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT is in the right null-space of 𝐁𝐁\mathbf{B}bold_B. Both imply that rank(𝐁)<3rank𝐁3\text{rank}(\mathbf{B})<3rank ( bold_B ) < 3. This can only be the case if rank(𝐀)=5rank𝐀5\text{rank}(\mathbf{A})=5rank ( bold_A ) = 5, following the assumption. This implies that the smallest singular value is σ=0𝜎0\sigma=0italic_σ = 0. From the first three equations above, this implies that 𝐁𝐱^1:3=0𝐁subscript^𝐱:130\mathbf{B}\hat{\mathbf{x}}_{1:3}=0bold_B over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT = 0. But then

𝐀[0𝐱1:3]=𝐓𝐁𝐱1:3=0,𝐀matrix0subscript𝐱:13subscript𝐓𝐁𝐱:130\displaystyle\mathbf{A}\begin{bmatrix}0\\ \mathbf{x}_{1:3}\end{bmatrix}=\mathbf{T}\mathbf{B}\mathbf{x}_{1:3}=0\,,bold_A [ start_ARG start_ROW start_CELL 0 end_CELL end_ROW start_ROW start_CELL bold_x start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] = bold_TBx start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT = 0 , (19)

which implies that 𝐱^=[0𝐱1:3]^𝐱delimited-[]superscript0superscriptsubscript𝐱:13\hat{\mathbf{x}}=[0^{\intercal}\,\mathbf{x}_{1:3}^{\intercal}]over^ start_ARG bold_x end_ARG = [ 0 start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_x start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ] is also in the null space of 𝐀𝐀\mathbf{A}bold_A. We now find that both 𝐱^1=[0𝐱1:3]subscript^𝐱1delimited-[]superscript0superscriptsubscript𝐱:13\hat{\mathbf{x}}_{1}=[0^{\intercal}\,\mathbf{x}_{1:3}^{\intercal}]over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = [ 0 start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_x start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ] and 𝐱^2=[𝐱1:3 0]subscript^𝐱2delimited-[]superscriptsubscript𝐱:13superscript 0\hat{\mathbf{x}}_{2}=[\mathbf{x}_{1:3}^{\intercal}\,0^{\intercal}]over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = [ bold_x start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT 0 start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ] are in the null-space of 𝐀𝐀\mathbf{A}bold_A. These vectors are independent, and render the rank of 𝐀<5𝐀5\mathbf{A}<5bold_A < 5. This is a contradiction.

Failure to recover 𝐞1subscriptsuperscript𝐞1\mathbf{e}^{\ell}_{1}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT: Recovering 𝐞1subscriptsuperscript𝐞1\mathbf{e}^{\ell}_{1}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT fails if the norm of the cross product in Eq. 10 is 00. This implies that 𝐱^4:6=λ𝐱^1:3subscript^𝐱:46𝜆subscript^𝐱:13\hat{\mathbf{x}}_{4:6}=\lambda\hat{\mathbf{x}}_{1:3}over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 4 : 6 end_POSTSUBSCRIPT = italic_λ over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT. For similar reasons as above, this implies that 𝐱^1:3subscript^𝐱:13\hat{\mathbf{x}}_{1:3}over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT solves both 𝐁𝐱=0𝐁𝐱0\mathbf{B}\mathbf{x}=0bold_Bx = 0 and 𝐂𝐱=0𝐂𝐱0\mathbf{C}\mathbf{x}=0bold_Cx = 0. This implies that λ𝜆\lambdaitalic_λ can be freely varied, which would imply a two-dimensional null space of 𝐀𝐀\mathbf{A}bold_A and a rank 4absent4\leq 4≤ 4 which is again a contradiction.

Line passing through the origin at t=0superscript𝑡0t^{\prime}=0italic_t start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = 0: Note that in such a case, 𝐞3superscriptsubscript𝐞3\mathbf{e}_{3}^{\ell}bold_e start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT would not be defined, and could cause issues in solving. However, we can then use a different definition of the line, with the direction 𝐝=𝐞1𝐝superscriptsubscript𝐞1\mathbf{d}=\mathbf{e}_{1}^{\ell}bold_d = bold_e start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT, and point on the line 𝐏=𝐞1𝐏superscriptsubscript𝐞1\mathbf{P}=\mathbf{e}_{1}^{\ell}bold_P = bold_e start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT. The line moment then becomes 𝐦=𝐏×𝐝=0𝐦𝐏𝐝0\mathbf{m}=\mathbf{P}\times\mathbf{d}=0bold_m = bold_P × bold_d = 0. Inserting this into Eq. 2, transforms Eq. 6 into

𝐟j(𝐞3uy𝐞2uz)=0.superscriptsuperscriptsubscript𝐟𝑗superscriptsubscript𝐞3superscriptsubscript𝑢𝑦superscriptsubscript𝐞2superscriptsubscript𝑢𝑧0{\mathbf{f}_{j}^{\prime}}^{\intercal}(\mathbf{e}_{3}^{\ell}u_{y}^{\ell}-% \mathbf{e}_{2}^{\ell}u_{z}^{\ell})=0\,.bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( bold_e start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT italic_u start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT - bold_e start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT italic_u start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT ) = 0 . (20)

However, this would imply that the system in Eq. 7 has a solution of the form 𝐱^=[𝐱^1:3 0]^𝐱superscriptdelimited-[]superscriptsubscript^𝐱:13superscript 0\hat{\mathbf{x}}=[\hat{\mathbf{x}}_{1:3}^{\intercal}\,\mathbf{0}^{\intercal}]^% {\intercal}over^ start_ARG bold_x end_ARG = [ over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_0 start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT, with 𝐱^1:3=𝐞3uy𝐞2uzsubscript^𝐱:13superscriptsubscript𝐞3superscriptsubscript𝑢𝑦superscriptsubscript𝐞2superscriptsubscript𝑢𝑧\hat{\mathbf{x}}_{1:3}=\mathbf{e}_{3}^{\ell}u_{y}^{\ell}-\mathbf{e}_{2}^{\ell}% u_{z}^{\ell}over^ start_ARG bold_x end_ARG start_POSTSUBSCRIPT 1 : 3 end_POSTSUBSCRIPT = bold_e start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT italic_u start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT - bold_e start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT italic_u start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT. However, we proved in the last two cases that such a solution form implies that the rank of 𝐀𝐀\mathbf{A}bold_A is smaller than 5. Thus ensuring rank(𝐀)5rank𝐀5\text{rank}(\mathbf{A})\geq 5rank ( bold_A ) ≥ 5 is sufficient for discarding the case where the line passes through the origin.

Refer to caption
Refer to caption
Refer to caption
Figure 5: Analysis of the number of used events over three types of representative noise, i.e. pixel noise, timestamp jitter, and gyroscope noise.
Refer to caption
Refer to caption
Refer to caption
Figure 6: Analysis of the number of used lines over three types of representative noise, i.e. pixel noise, timestamp jitter, and gyroscope noise.

We conclude that if rank(𝐀)5rank𝐀5\text{rank}(\mathbf{A})\geq 5rank ( bold_A ) ≥ 5, the decomposition cannot fail, and always returns four distinct solutions. Moreover, we conclude that a rank(𝐀)<5rank𝐀5\text{rank}(\mathbf{A})<5rank ( bold_A ) < 5 yields solutions 𝐱^^𝐱\hat{\mathbf{x}}over^ start_ARG bold_x end_ARG from a two dimensional nullspace, which yields infinitely many decompositions. \blacksquare

7.3 Proof of Theorem 2 on Solution Multiplicity

For clarity, we restate Theorem 2 here:

Theorem 2: Given a solution S0={𝐞1,𝐞2,𝐞3,uy,uz}subscript𝑆0subscriptsuperscript𝐞1subscriptsuperscript𝐞2subscriptsuperscript𝐞3subscriptsuperscript𝑢𝑦subscriptsuperscript𝑢𝑧S_{0}=\{\mathbf{e}^{\ell}_{1},\mathbf{e}^{\ell}_{2},\mathbf{e}^{\ell}_{3},u^{% \ell}_{y},u^{\ell}_{z}\}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = { bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT } to the incidence relation in Eq. 6, then

S1subscript𝑆1\displaystyle S_{1}italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ={𝐞1,𝐞2,𝐞3,uy,uz},absentsubscriptsuperscript𝐞1subscriptsuperscript𝐞2subscriptsuperscript𝐞3subscriptsuperscript𝑢𝑦subscriptsuperscript𝑢𝑧\displaystyle=\{\mathbf{e}^{\ell}_{1},-\mathbf{e}^{\ell}_{2},-\mathbf{e}^{\ell% }_{3},u^{\ell}_{y},u^{\ell}_{z}\}\,,= { bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT } ,
S2subscript𝑆2\displaystyle S_{2}italic_S start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ={𝐞1,𝐞2,𝐞3,uy,uz},absentsubscriptsuperscript𝐞1subscriptsuperscript𝐞2subscriptsuperscript𝐞3subscriptsuperscript𝑢𝑦subscriptsuperscript𝑢𝑧\displaystyle=\{-\mathbf{e}^{\ell}_{1},\mathbf{e}^{\ell}_{2},-\mathbf{e}^{\ell% }_{3},-u^{\ell}_{y},u^{\ell}_{z}\}\,,= { - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT } ,
S3subscript𝑆3\displaystyle S_{3}italic_S start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ={𝐞1,𝐞2,𝐞3,uy,uz}absentsubscriptsuperscript𝐞1subscriptsuperscript𝐞2subscriptsuperscript𝐞3subscriptsuperscript𝑢𝑦subscriptsuperscript𝑢𝑧\displaystyle=\{-\mathbf{e}^{\ell}_{1},-\mathbf{e}^{\ell}_{2},\mathbf{e}^{\ell% }_{3},-u^{\ell}_{y},u^{\ell}_{z}\}= { - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT }

are also solutions. These four solutions are visualized in  Fig. 2. For solutions S1subscript𝑆1S_{1}italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and S2subscript𝑆2S_{2}italic_S start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT the closest point 𝐞3superscriptsubscript𝐞3-\mathbf{e}_{3}^{\ell}- bold_e start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT on the line is behind the camera, while for solutions S2subscript𝑆2S_{2}italic_S start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT and S3subscript𝑆3S_{3}italic_S start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT the line direction 𝐞1subscriptsuperscript𝐞1\mathbf{e}^{\ell}_{1}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT is flipped, which represents an ambiguity in the definition of direction of 𝐋𝐋\mathbf{L}bold_L.

Proof: We will only prove solutions S1subscript𝑆1S_{1}italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and S2subscript𝑆2S_{2}italic_S start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT since S3subscript𝑆3S_{3}italic_S start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT can be derived from a composition of S1subscript𝑆1S_{1}italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and S2subscript𝑆2S_{2}italic_S start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT. Inserting S1={𝐞1,𝐞2,𝐞3,uy,uz}={𝐞1,𝐞2,𝐞3,uy,uz}subscript𝑆1superscriptsubscriptsuperscript𝐞1superscriptsubscriptsuperscript𝐞2superscriptsubscriptsuperscript𝐞3superscriptsubscriptsuperscript𝑢𝑦superscriptsubscriptsuperscript𝑢𝑧subscriptsuperscript𝐞1subscriptsuperscript𝐞2subscriptsuperscript𝐞3subscriptsuperscript𝑢𝑦subscriptsuperscript𝑢𝑧S_{1}=\{{\mathbf{e}^{\ell}_{1}}^{\prime},{\mathbf{e}^{\ell}_{2}}^{\prime},{% \mathbf{e}^{\ell}_{3}}^{\prime},{u^{\ell}_{y}}^{\prime},{u^{\ell}_{z}}^{\prime% }\}=\{\mathbf{e}^{\ell}_{1},-\mathbf{e}^{\ell}_{2},-\mathbf{e}^{\ell}_{3},u^{% \ell}_{y},u^{\ell}_{z}\}italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = { bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT , bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT , bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT } = { bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT } into Eq. 6, we have

tj𝐟j(uz𝐞2uy𝐞3)+𝐟j𝐞2superscriptsubscript𝑡𝑗superscriptsuperscriptsubscript𝐟𝑗superscriptsubscriptsuperscript𝑢𝑧superscriptsubscriptsuperscript𝐞2superscriptsubscriptsuperscript𝑢𝑦superscriptsubscriptsuperscript𝐞3superscriptsuperscriptsubscript𝐟𝑗superscriptsubscriptsuperscript𝐞2\displaystyle\ \ \ t_{j}^{\prime}{\mathbf{f}_{j}^{\prime}}^{\intercal}({u^{% \ell}_{z}}^{\prime}{\mathbf{e}^{\ell}_{2}}^{\prime}-{u^{\ell}_{y}}^{\prime}{% \mathbf{e}^{\ell}_{3}}^{\prime})+{\mathbf{f}_{j}^{\prime}}^{\intercal}{\mathbf% {e}^{\ell}_{2}}^{\prime}italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) + bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT
=\displaystyle== tj𝐟j(uz(𝐞2)uy(𝐞3))+𝐟j(𝐞2)superscriptsubscript𝑡𝑗superscriptsuperscriptsubscript𝐟𝑗subscriptsuperscript𝑢𝑧subscriptsuperscript𝐞2subscriptsuperscript𝑢𝑦subscriptsuperscript𝐞3superscriptsuperscriptsubscript𝐟𝑗subscriptsuperscript𝐞2\displaystyle\ \ \ t_{j}^{\prime}{\mathbf{f}_{j}^{\prime}}^{\intercal}(u^{\ell% }_{z}(-\mathbf{e}^{\ell}_{2})-u^{\ell}_{y}(-\mathbf{e}^{\ell}_{3}))+{\mathbf{f% }_{j}^{\prime}}^{\intercal}(-\mathbf{e}^{\ell}_{2})italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) ) + bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT )
=\displaystyle== (tj𝐟j(uz𝐞2uy𝐞3)+𝐟j𝐞2)superscriptsubscript𝑡𝑗superscriptsuperscriptsubscript𝐟𝑗subscriptsuperscript𝑢𝑧subscriptsuperscript𝐞2subscriptsuperscript𝑢𝑦subscriptsuperscript𝐞3superscriptsuperscriptsubscript𝐟𝑗subscriptsuperscript𝐞2\displaystyle\ \ \ -(t_{j}^{\prime}{\mathbf{f}_{j}^{\prime}}^{\intercal}(u^{% \ell}_{z}\mathbf{e}^{\ell}_{2}-u^{\ell}_{y}\mathbf{e}^{\ell}_{3})+{\mathbf{f}_% {j}^{\prime}}^{\intercal}\mathbf{e}^{\ell}_{2})- ( italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) + bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT )
=\displaystyle== 00\displaystyle\ \ \ 0\hskip 210.55022pt

and S2={𝐞1′′,𝐞2′′,𝐞3′′,uy′′,uz′′}={𝐞1,𝐞2,𝐞3,uy,uz}subscript𝑆2superscriptsubscriptsuperscript𝐞1′′superscriptsubscriptsuperscript𝐞2′′superscriptsubscriptsuperscript𝐞3′′superscriptsubscriptsuperscript𝑢𝑦′′superscriptsubscriptsuperscript𝑢𝑧′′subscriptsuperscript𝐞1subscriptsuperscript𝐞2subscriptsuperscript𝐞3subscriptsuperscript𝑢𝑦subscriptsuperscript𝑢𝑧S_{2}=\{{\mathbf{e}^{\ell}_{1}}^{\prime\prime},{\mathbf{e}^{\ell}_{2}}^{\prime% \prime},{\mathbf{e}^{\ell}_{3}}^{\prime\prime},{u^{\ell}_{y}}^{\prime\prime},{% u^{\ell}_{z}}^{\prime\prime}\}=\{-\mathbf{e}^{\ell}_{1},\mathbf{e}^{\ell}_{2},% -\mathbf{e}^{\ell}_{3},-u^{\ell}_{y},u^{\ell}_{z}\}italic_S start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = { bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT , bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT , bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT } = { - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT , italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT } yields

tj𝐟j(uz′′𝐞2′′uy′′𝐞3′′)+𝐟j𝐞2′′superscriptsubscript𝑡𝑗superscriptsuperscriptsubscript𝐟𝑗superscriptsubscriptsuperscript𝑢𝑧′′superscriptsubscriptsuperscript𝐞2′′superscriptsubscriptsuperscript𝑢𝑦′′superscriptsubscriptsuperscript𝐞3′′superscriptsuperscriptsubscript𝐟𝑗superscriptsubscriptsuperscript𝐞2′′\displaystyle\ \ \ t_{j}^{\prime}{\mathbf{f}_{j}^{\prime}}^{\intercal}({u^{% \ell}_{z}}^{\prime\prime}{\mathbf{e}^{\ell}_{2}}^{\prime\prime}-{u^{\ell}_{y}}% ^{\prime\prime}{\mathbf{e}^{\ell}_{3}}^{\prime\prime})+{\mathbf{f}_{j}^{\prime% }}^{\intercal}{\mathbf{e}^{\ell}_{2}}^{\prime\prime}italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT ) + bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT
=\displaystyle== tj𝐟j(uz𝐞2(uy)(𝐞3))+𝐟j𝐞2superscriptsubscript𝑡𝑗superscriptsuperscriptsubscript𝐟𝑗subscriptsuperscript𝑢𝑧subscriptsuperscript𝐞2subscriptsuperscript𝑢𝑦subscriptsuperscript𝐞3superscriptsuperscriptsubscript𝐟𝑗subscriptsuperscript𝐞2\displaystyle\ \ \ t_{j}^{\prime}{\mathbf{f}_{j}^{\prime}}^{\intercal}(u^{\ell% }_{z}\mathbf{e}^{\ell}_{2}-(-u^{\ell}_{y})(-\mathbf{e}^{\ell}_{3}))+{\mathbf{f% }_{j}^{\prime}}^{\intercal}\mathbf{e}^{\ell}_{2}italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - ( - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) ( - bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) ) + bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT
=\displaystyle== tj𝐟j(uz𝐞2uy𝐞3)+𝐟j𝐞2superscriptsubscript𝑡𝑗superscriptsuperscriptsubscript𝐟𝑗subscriptsuperscript𝑢𝑧subscriptsuperscript𝐞2subscriptsuperscript𝑢𝑦subscriptsuperscript𝐞3superscriptsuperscriptsubscript𝐟𝑗subscriptsuperscript𝐞2\displaystyle\ \ \ t_{j}^{\prime}{\mathbf{f}_{j}^{\prime}}^{\intercal}(u^{\ell% }_{z}\mathbf{e}^{\ell}_{2}-u^{\ell}_{y}\mathbf{e}^{\ell}_{3})+{\mathbf{f}_{j}^% {\prime}}^{\intercal}\mathbf{e}^{\ell}_{2}italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) + bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT
=\displaystyle== 00\displaystyle\ \ \ 0\hskip 210.55022pt

\blacksquare

7.4 Handling of Parallel Lines

As mentioned in the main text, parallel lines may cause difficulties in identifying the 𝐞1superscriptsubscript𝐞1\mathbf{e}_{1}^{\ell}bold_e start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT direction of the camera velocity. However, we can identify this case easily by checking the rank of 𝐃𝐃\mathbf{D}bold_D. If it is lower than 2, we can discard the sample, and select a new one, or even use another RANSAC loop to select pairs of lines until the rank of 𝐃𝐃\mathbf{D}bold_D is at least 2. Let us now prove that parallel lines cause a rank deficiency in 𝐃𝐃\mathbf{D}bold_D.

Proof: We will proceed in showing that if two lines are parallel, the two corresponding rows 𝐫1=uy1𝐞31uz1𝐞21subscript𝐫1superscriptsubscript𝑢𝑦1superscriptsubscript𝐞31superscriptsubscript𝑢𝑧1superscriptsubscript𝐞21\mathbf{r}_{1}=u_{y1}^{\ell}\mathbf{e}_{31}^{\ell}-u_{z1}^{\ell}\mathbf{e}_{21% }^{\ell}bold_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_u start_POSTSUBSCRIPT italic_y 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 31 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT - italic_u start_POSTSUBSCRIPT italic_z 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 21 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT and 𝐫2=uy2𝐞32uz2𝐞22subscript𝐫2superscriptsubscript𝑢𝑦2superscriptsubscript𝐞32superscriptsubscript𝑢𝑧2superscriptsubscript𝐞22\mathbf{r}_{2}=u_{y2}^{\ell}\mathbf{e}_{32}^{\ell}-u_{z2}^{\ell}\mathbf{e}_{22% }^{\ell}bold_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_u start_POSTSUBSCRIPT italic_y 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 32 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT - italic_u start_POSTSUBSCRIPT italic_z 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 22 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT in 𝐃𝐃\mathbf{D}bold_D are parallel and will thus result in rank deficiency (see Eq. 13). Expanding 𝐯𝐯\mathbf{v}bold_v in the two line coordinate frames yields

λ1𝐯=ux1𝐞11+uy1𝐞21+uz1𝐞31subscript𝜆1𝐯superscriptsubscript𝑢𝑥1superscriptsubscript𝐞11superscriptsubscript𝑢𝑦1superscriptsubscript𝐞21superscriptsubscript𝑢𝑧1superscriptsubscript𝐞31\displaystyle\lambda_{1}\mathbf{v}=u_{x1}^{\ell}\mathbf{e}_{11}^{\ell}+u_{y1}^% {\ell}\mathbf{e}_{21}^{\ell}+u_{z1}^{\ell}\mathbf{e}_{31}^{\ell}italic_λ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT bold_v = italic_u start_POSTSUBSCRIPT italic_x 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 11 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT + italic_u start_POSTSUBSCRIPT italic_y 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 21 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT + italic_u start_POSTSUBSCRIPT italic_z 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 31 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT (21)
λ2𝐯=ux2𝐞12+uy2𝐞22+uz2𝐞32subscript𝜆2𝐯superscriptsubscript𝑢𝑥2superscriptsubscript𝐞12superscriptsubscript𝑢𝑦2superscriptsubscript𝐞22superscriptsubscript𝑢𝑧2superscriptsubscript𝐞32\displaystyle\lambda_{2}\mathbf{v}=u_{x2}^{\ell}\mathbf{e}_{12}^{\ell}+u_{y2}^% {\ell}\mathbf{e}_{22}^{\ell}+u_{z2}^{\ell}\mathbf{e}_{32}^{\ell}italic_λ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT bold_v = italic_u start_POSTSUBSCRIPT italic_x 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 12 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT + italic_u start_POSTSUBSCRIPT italic_y 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 22 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT + italic_u start_POSTSUBSCRIPT italic_z 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 32 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT (22)

with unknown scale factors λ1,λ2subscript𝜆1subscript𝜆2\lambda_{1},\lambda_{2}italic_λ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_λ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT. For parallel lines 𝐞11=𝐞12𝐞1subscriptsuperscript𝐞11subscriptsuperscript𝐞12approaches-limitsubscriptsuperscript𝐞1\mathbf{e}^{\ell}_{11}=\mathbf{e}^{\ell}_{12}\doteq\mathbf{e}^{\ell}_{1}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 11 end_POSTSUBSCRIPT = bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 12 end_POSTSUBSCRIPT ≐ bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT. Computing 𝐞1×𝐯subscriptsuperscript𝐞1𝐯\mathbf{e}^{\ell}_{1}\times\mathbf{v}bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT × bold_v in two ways (with two expansions of 𝐯)\mathbf{v})bold_v ), we recover exactly the rows of 𝐃𝐃\mathbf{D}bold_D by

λ1(𝐞1×𝐯)=uy1𝐞31uz1𝐞21=𝐫1subscript𝜆1subscriptsuperscript𝐞1𝐯superscriptsubscript𝑢𝑦1superscriptsubscript𝐞31superscriptsubscript𝑢𝑧1superscriptsubscript𝐞21subscript𝐫1\displaystyle\lambda_{1}(\mathbf{e}^{\ell}_{1}\times\mathbf{v})=u_{y1}^{\ell}% \mathbf{e}_{31}^{\ell}-u_{z1}^{\ell}\mathbf{e}_{21}^{\ell}=\mathbf{r}_{1}italic_λ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT × bold_v ) = italic_u start_POSTSUBSCRIPT italic_y 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 31 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT - italic_u start_POSTSUBSCRIPT italic_z 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 21 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT = bold_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT (23)
λ2(𝐞1×𝐯)=uy2𝐞32uz2𝐞22=𝐫2subscript𝜆2subscriptsuperscript𝐞1𝐯superscriptsubscript𝑢𝑦2superscriptsubscript𝐞32superscriptsubscript𝑢𝑧2superscriptsubscript𝐞22subscript𝐫2\displaystyle\lambda_{2}(\mathbf{e}^{\ell}_{1}\times\mathbf{v})=u_{y2}^{\ell}% \mathbf{e}_{32}^{\ell}-u_{z2}^{\ell}\mathbf{e}_{22}^{\ell}=\mathbf{r}_{2}italic_λ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT × bold_v ) = italic_u start_POSTSUBSCRIPT italic_y 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 32 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT - italic_u start_POSTSUBSCRIPT italic_z 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 22 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT = bold_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT (24)

It follows that 𝐫1=λ1λ2𝐫2subscript𝐫1subscript𝜆1subscript𝜆2subscript𝐫2\mathbf{r}_{1}=\frac{\lambda_{1}}{\lambda_{2}}\mathbf{r}_{2}bold_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = divide start_ARG italic_λ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_λ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG bold_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT, i.e. they are parallel. \blacksquare

7.5 Global Optimality of 𝐑lsubscript𝐑𝑙\mathbf{R}_{l}bold_R start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT and 𝐮lsubscript𝐮𝑙\mathbf{u}_{l}bold_u start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT

As noted in the main text, while the SVD-based solver which recovers 𝐱^^𝐱\hat{\mathbf{x}}over^ start_ARG bold_x end_ARG from a set of incidence relations (Eq. 7) finds a globally optimal solution 𝐱^^𝐱\hat{\mathbf{x}}over^ start_ARG bold_x end_ARG, it is not clear if the decomposed solution 𝐑l,𝐮lsubscript𝐑𝑙subscript𝐮𝑙\mathbf{R}_{l},\mathbf{u}_{l}bold_R start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT , bold_u start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT is also optimal with respect to the same objective. We prove this here.

Proof: We will prove this by way of contradiction. Assume given the SVD-based solution

𝐱^=argmin𝐱𝐀𝐱2such that𝐱2=1.formulae-sequence^𝐱subscript𝐱superscriptnorm𝐀𝐱2such thatsuperscriptnorm𝐱21\displaystyle\hat{\mathbf{x}}=\arg\min_{\mathbf{x}}\|\mathbf{A}\mathbf{x}\|^{2% }\quad\text{such that}\quad\|\mathbf{x}\|^{2}=1.over^ start_ARG bold_x end_ARG = roman_arg roman_min start_POSTSUBSCRIPT bold_x end_POSTSUBSCRIPT ∥ bold_Ax ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT such that ∥ bold_x ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT = 1 .

which is globally optimal, and decomposition 𝐑l,𝐮lsubscript𝐑𝑙subscript𝐮𝑙\mathbf{R}_{l},\mathbf{u}_{l}bold_R start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT , bold_u start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT with 𝐱^=𝐱(𝐑l,𝐮l)^𝐱𝐱subscript𝐑𝑙subscript𝐮𝑙\hat{\mathbf{x}}=\mathbf{x}(\mathbf{R}_{l},\mathbf{u}_{l})over^ start_ARG bold_x end_ARG = bold_x ( bold_R start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT , bold_u start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ). Assume that there exists a different, more optimal 𝐑l,𝐮lsubscriptsuperscript𝐑𝑙subscriptsuperscript𝐮𝑙\mathbf{R}^{\prime}_{l},\mathbf{u}^{\prime}_{l}bold_R start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT , bold_u start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT with 𝐱^=𝐱(𝐑l,𝐮l)superscript^𝐱𝐱subscriptsuperscript𝐑𝑙subscriptsuperscript𝐮𝑙\hat{\mathbf{x}}^{\prime}=\mathbf{x}(\mathbf{R}^{\prime}_{l},\mathbf{u}^{% \prime}_{l})over^ start_ARG bold_x end_ARG start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = bold_x ( bold_R start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT , bold_u start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ). Then 𝐀𝐱^2<𝐀𝐱^2superscriptnorm𝐀superscript^𝐱2superscriptnorm𝐀^𝐱2\|\mathbf{A}\hat{\mathbf{x}}^{\prime}\|^{2}<\|\mathbf{A}\hat{\mathbf{x}}\|^{2}∥ bold_A over^ start_ARG bold_x end_ARG start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT < ∥ bold_A over^ start_ARG bold_x end_ARG ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT but this is impossible since it would imply that 𝐱^superscript^𝐱\hat{\mathbf{x}}^{\prime}over^ start_ARG bold_x end_ARG start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT is more optimal than 𝐱^^𝐱\hat{\mathbf{x}}over^ start_ARG bold_x end_ARG, but 𝐱^^𝐱\hat{\mathbf{x}}over^ start_ARG bold_x end_ARG is already optimal. This implies that the objective is already optimal in 𝐑l,𝐮lsubscript𝐑𝑙subscript𝐮𝑙\mathbf{R}_{l},\mathbf{u}_{l}bold_R start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT , bold_u start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT which concludes the proof. \blacksquare

7.6 Connection between the Proposed Line Averaging Scheme and [12]

The presented velocity averaging scheme is conceptually simpler, and lends itself to geometric interpretation, unlike the scheme in [12]. However, surprisingly these schemes are actually equivalent, as will be demonstrated next. In [12], Eq. 11 is used to set up a number of constraints

𝐞2i𝐯λiuyi=0superscriptsuperscriptsubscript𝐞2𝑖𝐯subscript𝜆𝑖superscriptsubscript𝑢𝑦𝑖0\displaystyle{\mathbf{e}_{2i}^{\ell}}^{\intercal}\mathbf{v}-\lambda_{i}u_{yi}^% {\ell}=0bold_e start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_v - italic_λ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_u start_POSTSUBSCRIPT italic_y italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT = 0 (25)
𝐞3i𝐯λiuzi=0superscriptsuperscriptsubscript𝐞3𝑖𝐯subscript𝜆𝑖superscriptsubscript𝑢𝑧𝑖0\displaystyle{\mathbf{e}_{3i}^{\ell}}^{\intercal}\mathbf{v}-\lambda_{i}u_{zi}^% {\ell}=0bold_e start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_v - italic_λ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_u start_POSTSUBSCRIPT italic_z italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT = 0 (26)

Introducing unknowns 𝐯𝐯\mathbf{v}bold_v and {λi}subscript𝜆𝑖\{\lambda_{i}\}{ italic_λ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT }, one for each line. Stacking multiple of these equations results in a system

[𝐞21uy10𝐞31uz10𝐞2M0uyM𝐞3M0uzM]𝐄[𝐯λ1λM]=𝟎.subscriptmatrixsuperscriptsuperscriptsubscript𝐞21superscriptsubscript𝑢𝑦10superscriptsuperscriptsubscript𝐞31superscriptsubscript𝑢𝑧10superscriptsuperscriptsubscript𝐞2𝑀0superscriptsubscript𝑢𝑦𝑀superscriptsuperscriptsubscript𝐞3𝑀0superscriptsubscript𝑢𝑧𝑀𝐄matrix𝐯subscript𝜆1subscript𝜆𝑀0\underbrace{\begin{bmatrix}{\mathbf{e}_{21}^{\ell}}^{\intercal}&-u_{y1}^{\ell}% &\cdots&0\\ {\mathbf{e}_{31}^{\ell}}^{\intercal}&-u_{z1}^{\ell}&\cdots&0\\ \vdots&\ddots&\ddots&\vdots\\ {\mathbf{e}_{2M}^{\ell}}^{\intercal}&0&\cdots&-u_{yM}^{\ell}\\ {\mathbf{e}_{3M}^{\ell}}^{\intercal}&0&\cdots&-u_{zM}^{\ell}\\ \end{bmatrix}}_{\mathbf{E}}\begin{bmatrix}\mathbf{v}\\ \lambda_{1}\\ \vdots\\ \lambda_{M}\end{bmatrix}=\mathbf{0}\,.under⏟ start_ARG [ start_ARG start_ROW start_CELL bold_e start_POSTSUBSCRIPT 21 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_CELL start_CELL - italic_u start_POSTSUBSCRIPT italic_y 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT end_CELL start_CELL ⋯ end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL bold_e start_POSTSUBSCRIPT 31 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_CELL start_CELL - italic_u start_POSTSUBSCRIPT italic_z 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT end_CELL start_CELL ⋯ end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL bold_e start_POSTSUBSCRIPT 2 italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_CELL start_CELL 0 end_CELL start_CELL ⋯ end_CELL start_CELL - italic_u start_POSTSUBSCRIPT italic_y italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL bold_e start_POSTSUBSCRIPT 3 italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_CELL start_CELL 0 end_CELL start_CELL ⋯ end_CELL start_CELL - italic_u start_POSTSUBSCRIPT italic_z italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] end_ARG start_POSTSUBSCRIPT bold_E end_POSTSUBSCRIPT [ start_ARG start_ROW start_CELL bold_v end_CELL end_ROW start_ROW start_CELL italic_λ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL italic_λ start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] = bold_0 . (27)

This system is then multiplied from the left with 𝐄superscript𝐄\mathbf{E}^{\intercal}bold_E start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT, and the Shur complement trick is employed to eliminate the extraneous variables λisubscript𝜆𝑖\lambda_{i}italic_λ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, resulting in the equation 𝐅𝐯=𝟎𝐅𝐯0\mathbf{F}\mathbf{v}=\mathbf{0}bold_Fv = bold_0, where we use the following definitions:

𝐅𝐅\displaystyle\mathbf{F}bold_F =𝐔𝐖𝐕1𝐖absent𝐔superscript𝐖𝐕1superscript𝐖\displaystyle=\mathbf{U}-\mathbf{W}\mathbf{V}^{-1}\mathbf{W}^{\intercal}= bold_U - bold_WV start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT bold_W start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT (28)
𝐔𝐔\displaystyle\mathbf{U}bold_U =i=1M(𝐞2i𝐞2i+𝐞3i𝐞3i)absentsuperscriptsubscript𝑖1𝑀subscriptsuperscript𝐞2𝑖superscriptsubscriptsuperscript𝐞2𝑖subscriptsuperscript𝐞3𝑖superscriptsubscriptsuperscript𝐞3𝑖\displaystyle=\sum_{i=1}^{M}(\mathbf{e}^{\ell}_{2i}{\mathbf{e}^{\ell}_{2i}}^{% \intercal}+\mathbf{e}^{\ell}_{3i}{\mathbf{e}^{\ell}_{3i}}^{\intercal})= ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT ( bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT + bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ) (29)
𝐕𝐕\displaystyle\mathbf{V}bold_V =diag(uy12+uz12,,uyM2+uzM2)absentdiagsuperscriptsuperscriptsubscript𝑢𝑦12superscriptsuperscriptsubscript𝑢𝑧12superscriptsuperscriptsubscript𝑢𝑦𝑀2superscriptsuperscriptsubscript𝑢𝑧𝑀2\displaystyle=\text{diag}\left({u_{y1}^{\ell}}^{2}+{u_{z1}^{\ell}}^{2},\cdots,% {u_{yM}^{\ell}}^{2}+{u_{zM}^{\ell}}^{2}\right)= diag ( italic_u start_POSTSUBSCRIPT italic_y 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_u start_POSTSUBSCRIPT italic_z 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , ⋯ , italic_u start_POSTSUBSCRIPT italic_y italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_u start_POSTSUBSCRIPT italic_z italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) (30)
𝐖superscript𝐖\displaystyle\mathbf{W}^{\intercal}bold_W start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT =[uy1𝐞21uz1𝐞31uyM𝐞2MuzM𝐞3M]absentmatrixsuperscriptsubscript𝑢𝑦1superscriptsuperscriptsubscript𝐞21superscriptsubscript𝑢𝑧1superscriptsuperscriptsubscript𝐞31superscriptsubscript𝑢𝑦𝑀superscriptsuperscriptsubscript𝐞2𝑀superscriptsubscript𝑢𝑧𝑀superscriptsuperscriptsubscript𝐞3𝑀\displaystyle=\begin{bmatrix}-u_{y1}^{\ell}{\mathbf{e}_{21}^{\ell}}^{\intercal% }-u_{z1}^{\ell}{\mathbf{e}_{31}^{\ell}}^{\intercal}\\ \vdots\\ -u_{yM}^{\ell}{\mathbf{e}_{2M}^{\ell}}^{\intercal}-u_{zM}^{\ell}{\mathbf{e}_{3% M}^{\ell}}^{\intercal}\\ \end{bmatrix}= [ start_ARG start_ROW start_CELL - italic_u start_POSTSUBSCRIPT italic_y 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 21 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT - italic_u start_POSTSUBSCRIPT italic_z 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 31 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL - italic_u start_POSTSUBSCRIPT italic_y italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 2 italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT - italic_u start_POSTSUBSCRIPT italic_z italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 3 italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] (31)

Inserting the equations, and simplifying we get

𝐅=𝐅absent\displaystyle\mathbf{F}=bold_F = i=1M(𝐞2i𝐞2i+𝐞3i𝐞3i)superscriptsubscript𝑖1𝑀subscriptsuperscript𝐞2𝑖superscriptsubscriptsuperscript𝐞2𝑖subscriptsuperscript𝐞3𝑖superscriptsubscriptsuperscript𝐞3𝑖\displaystyle\sum_{i=1}^{M}(\mathbf{e}^{\ell}_{2i}{\mathbf{e}^{\ell}_{2i}}^{% \intercal}+\mathbf{e}^{\ell}_{3i}{\mathbf{e}^{\ell}_{3i}}^{\intercal})∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT ( bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT + bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT )
(uyi𝐞2iuzi𝐞3i)(uyi𝐞2iuzi𝐞3i)uyi2+uzi2superscriptsubscript𝑢𝑦𝑖superscriptsubscript𝐞2𝑖superscriptsubscript𝑢𝑧𝑖superscriptsubscript𝐞3𝑖superscriptsubscript𝑢𝑦𝑖superscriptsuperscriptsubscript𝐞2𝑖superscriptsubscript𝑢𝑧𝑖superscriptsuperscriptsubscript𝐞3𝑖superscriptsuperscriptsubscript𝑢𝑦𝑖2superscriptsuperscriptsubscript𝑢𝑧𝑖2\displaystyle-\frac{\left(-u_{yi}^{\ell}\mathbf{e}_{2i}^{\ell}-u_{zi}^{\ell}% \mathbf{e}_{3i}^{\ell}\right)\left(-u_{yi}^{\ell}{\mathbf{e}_{2i}^{\ell}}^{% \intercal}-u_{zi}^{\ell}{\mathbf{e}_{3i}^{\ell}}^{\intercal}\right)}{{u_{yi}^{% \ell}}^{2}+{u_{zi}^{\ell}}^{2}}- divide start_ARG ( - italic_u start_POSTSUBSCRIPT italic_y italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT - italic_u start_POSTSUBSCRIPT italic_z italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT ) ( - italic_u start_POSTSUBSCRIPT italic_y italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT - italic_u start_POSTSUBSCRIPT italic_z italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ) end_ARG start_ARG italic_u start_POSTSUBSCRIPT italic_y italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_u start_POSTSUBSCRIPT italic_z italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG (32)
=\displaystyle== i=1M1uyi2+uzi2(uzi2𝐞2i𝐞2i+uyi2𝐞3i𝐞3i\displaystyle\sum_{i=1}^{M}\frac{1}{{u_{yi}^{\ell}}^{2}+{u_{zi}^{\ell}}^{2}}% \left({u_{zi}^{\ell}}^{2}\mathbf{e}_{2i}^{\ell}{\mathbf{e}_{2i}^{\ell}}^{% \intercal}+{u_{yi}^{\ell}}^{2}\mathbf{e}_{3i}^{\ell}{\mathbf{e}_{3i}^{\ell}}^{% \intercal}\right.∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT divide start_ARG 1 end_ARG start_ARG italic_u start_POSTSUBSCRIPT italic_y italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_u start_POSTSUBSCRIPT italic_z italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG ( italic_u start_POSTSUBSCRIPT italic_z italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT + italic_u start_POSTSUBSCRIPT italic_y italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
uyiuzi𝐞3i𝐞2iuyiuzi𝐞2i𝐞3i)\displaystyle-\left.u_{yi}^{\ell}u_{zi}^{\ell}\mathbf{e}^{\ell}_{3i}{\mathbf{e% }^{\ell}_{2i}}^{\intercal}-u_{yi}^{\ell}u_{zi}^{\ell}\mathbf{e}^{\ell}_{2i}{% \mathbf{e}^{\ell}_{3i}}^{\intercal}\right)- italic_u start_POSTSUBSCRIPT italic_y italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT italic_u start_POSTSUBSCRIPT italic_z italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT - italic_u start_POSTSUBSCRIPT italic_y italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT italic_u start_POSTSUBSCRIPT italic_z italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT bold_e start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ) (33)
=\displaystyle== i=1M(uyi𝐞3iuzi𝐞2i)(uyi𝐞3iuzi𝐞2i)uzi2+uzi2superscriptsubscript𝑖1𝑀superscriptsubscript𝑢𝑦𝑖superscriptsubscript𝐞3𝑖superscriptsubscript𝑢𝑧𝑖superscriptsubscript𝐞2𝑖superscriptsuperscriptsubscript𝑢𝑦𝑖superscriptsubscript𝐞3𝑖superscriptsubscript𝑢𝑧𝑖superscriptsubscript𝐞2𝑖superscriptsuperscriptsubscript𝑢𝑧𝑖2superscriptsuperscriptsubscript𝑢𝑧𝑖2\displaystyle\sum_{i=1}^{M}\frac{\left(u_{yi}^{\ell}\mathbf{e}_{3i}^{\ell}-u_{% zi}^{\ell}\mathbf{e}_{2i}^{\ell}\right)\left(u_{yi}^{\ell}\mathbf{e}_{3i}^{% \ell}-u_{zi}^{\ell}\mathbf{e}_{2i}^{\ell}\right)^{\intercal}}{{u_{zi}^{\ell}}^% {2}+{u_{zi}^{\ell}}^{2}}∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT divide start_ARG ( italic_u start_POSTSUBSCRIPT italic_y italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT - italic_u start_POSTSUBSCRIPT italic_z italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT ) ( italic_u start_POSTSUBSCRIPT italic_y italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 3 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT - italic_u start_POSTSUBSCRIPT italic_z italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 2 italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_ARG start_ARG italic_u start_POSTSUBSCRIPT italic_z italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_u start_POSTSUBSCRIPT italic_z italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG (34)
=\displaystyle== 𝐃^𝐃^superscript^𝐃^𝐃\displaystyle\hat{\mathbf{D}}^{\intercal}\hat{\mathbf{D}}over^ start_ARG bold_D end_ARG start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT over^ start_ARG bold_D end_ARG (35)

with

𝐃^=[1uy12+uz12(uy1𝐞31uz1𝐞21)1uyM2+uzM2(uyM𝐞3MuzM𝐞2M)]^𝐃matrix1superscriptsuperscriptsubscript𝑢𝑦12superscriptsuperscriptsubscript𝑢𝑧12superscriptsubscript𝑢𝑦1superscriptsubscript𝐞31superscriptsubscript𝑢𝑧1superscriptsubscript𝐞211superscriptsuperscriptsubscript𝑢𝑦𝑀2superscriptsuperscriptsubscript𝑢𝑧𝑀2superscriptsubscript𝑢𝑦𝑀superscriptsubscript𝐞3𝑀superscriptsubscript𝑢𝑧𝑀superscriptsubscript𝐞2𝑀\displaystyle\hat{\mathbf{D}}=\begin{bmatrix}\frac{1}{\sqrt{{u_{y1}^{\ell}}^{2% }+{u_{z1}^{\ell}}^{2}}}\left(u_{y1}^{\ell}\mathbf{e}_{31}^{\ell}-u_{z1}^{\ell}% \mathbf{e}_{21}^{\ell}\right)\\ \vdots\\ \frac{1}{\sqrt{{u_{yM}^{\ell}}^{2}+{u_{zM}^{\ell}}^{2}}}\left(u_{yM}^{\ell}% \mathbf{e}_{3M}^{\ell}-u_{zM}^{\ell}\mathbf{e}_{2M}^{\ell}\right)\\ \end{bmatrix}over^ start_ARG bold_D end_ARG = [ start_ARG start_ROW start_CELL divide start_ARG 1 end_ARG start_ARG square-root start_ARG italic_u start_POSTSUBSCRIPT italic_y 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_u start_POSTSUBSCRIPT italic_z 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG end_ARG ( italic_u start_POSTSUBSCRIPT italic_y 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 31 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT - italic_u start_POSTSUBSCRIPT italic_z 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 21 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT ) end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL divide start_ARG 1 end_ARG start_ARG square-root start_ARG italic_u start_POSTSUBSCRIPT italic_y italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_u start_POSTSUBSCRIPT italic_z italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG end_ARG ( italic_u start_POSTSUBSCRIPT italic_y italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 3 italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT - italic_u start_POSTSUBSCRIPT italic_z italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT 2 italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT ) end_CELL end_ROW end_ARG ] (36)

The linear system thus becomes

𝐅𝐯𝐅𝐯\displaystyle\mathbf{F}\mathbf{v}bold_Fv =𝟎absent0\displaystyle=\mathbf{0}= bold_0 (37)
𝐃^𝐃^𝐯superscript^𝐃^𝐃𝐯\displaystyle\hat{\mathbf{D}}^{\intercal}\hat{\mathbf{D}}\mathbf{v}over^ start_ARG bold_D end_ARG start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT over^ start_ARG bold_D end_ARG bold_v =𝟎absent0\displaystyle=\mathbf{0}= bold_0 (38)
𝐃^(𝐃^𝐯)superscript^𝐃^𝐃𝐯\displaystyle\hat{\mathbf{D}}^{\intercal}(\hat{\mathbf{D}}\mathbf{v})over^ start_ARG bold_D end_ARG start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( over^ start_ARG bold_D end_ARG bold_v ) =𝟎absent0\displaystyle=\mathbf{0}= bold_0 (39)

if 𝐃^superscript^𝐃\hat{\mathbf{D}}^{\intercal}over^ start_ARG bold_D end_ARG start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT has full rank this implies that

𝐃^𝐯^𝐃𝐯\displaystyle\hat{\mathbf{D}}\mathbf{v}over^ start_ARG bold_D end_ARG bold_v =𝟎absent0\displaystyle=\mathbf{0}= bold_0 (40)

Note that 𝐃^^𝐃\hat{\mathbf{D}}over^ start_ARG bold_D end_ARG is identical to 𝐃𝐃\mathbf{D}bold_D in Eq. 13 up to normalization of each velocity 𝐮isuperscriptsubscript𝐮𝑖\mathbf{u}_{i}^{\ell}bold_u start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT separately. This normalization strategy can be seamlessly integrated into the computation of 𝐃𝐃\mathbf{D}bold_D. Moreover, computing 𝐃𝐃\mathbf{D}bold_D is much simpler than computing 𝐅𝐅\mathbf{F}bold_F.

7.7 Canonicalization of the Manifold

Refer to caption
(i) event transformations
Refer to caption
(ii) eventail in 2D
Figure 7: Events triggered by a line observed by an event camera span a non-linear manifold called éventail (A). We show that this manifold imposes a linear constraint on the partial camera velocity and line parameters. With this insight, we can design a linear solver for these quantities that is both fast and highly interpretable, and characterize all manifolds (A) by transforming them into canonical form via rotation compensation (B), and transformation into the line coordinate frame (C). In the y^tsuperscript^𝑦𝑡\hat{y}^{\ell}tover^ start_ARG italic_y end_ARG start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT italic_t-plane, these manifolds trace a family of curves (ii), depending on the configuration of uzsubscriptsuperscript𝑢𝑧u^{\ell}_{z}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT and uysubscriptsuperscript𝑢𝑦u^{\ell}_{y}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT.

The incidence relation in Eq. 6 yields a simple way to visualize the manifold in its canonical form, and also shows the dependence on the line velocity parameters uysubscriptsuperscript𝑢𝑦u^{\ell}_{y}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT and uzsubscriptsuperscript𝑢𝑧u^{\ell}_{z}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT. To reach this canonical form, we simply rotate the bearing vectors of all events into the line-dependent coordinate frame by replacing 𝐟=𝐑𝐟^superscript𝐟subscript𝐑superscript^𝐟\mathbf{f}^{\prime}=\mathbf{R}_{\ell}\hat{\mathbf{f}}^{\prime}bold_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = bold_R start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT over^ start_ARG bold_f end_ARG start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT. We visualize this transformation in Fig. 7, where we transition from raw events in normalized coordinates (A), derotated events (B), and then events in the line reference frame (C). This coordinate frame corresponds with that of a line that is parallel to the camera’s x𝑥xitalic_x-axis. Doing this replacement yields

t𝐟j^(uz𝐞yuy𝐞z)+𝐟j^𝐞y=0,superscript𝑡superscript^superscriptsubscript𝐟𝑗subscriptsuperscript𝑢𝑧subscript𝐞𝑦subscriptsuperscript𝑢𝑦subscript𝐞𝑧superscript^superscriptsubscript𝐟𝑗subscript𝐞𝑦0\displaystyle t^{\prime}\hat{\mathbf{f}_{j}^{\prime}}^{\intercal}(u^{\ell}_{z}% \mathbf{e}_{y}-u^{\ell}_{y}\mathbf{e}_{z})+{\hat{\mathbf{f}_{j}^{\prime}}}^{% \intercal}\mathbf{e}_{y}=0\,,italic_t start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT over^ start_ARG bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT ( italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT bold_e start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT bold_e start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ) + over^ start_ARG bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_e start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT = 0 , (41)

where 𝐞x/y/zsubscript𝐞𝑥𝑦𝑧\mathbf{e}_{x/y/z}bold_e start_POSTSUBSCRIPT italic_x / italic_y / italic_z end_POSTSUBSCRIPT corresponds to the unit vectors in the camera coordinate frame. Distributing and diving out the third component of 𝐟j^^superscriptsubscript𝐟𝑗\hat{\mathbf{f}_{j}^{\prime}}over^ start_ARG bold_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG, i.e. transitioning to normalized coordinates in the new line reference frame, we reach

00\displaystyle 0 =t(uzy^uy)+y^absentsuperscript𝑡subscriptsuperscript𝑢𝑧superscript^𝑦subscriptsuperscript𝑢𝑦superscript^𝑦absent\displaystyle=t^{\prime}(u^{\ell}_{z}\hat{y}^{\ell}-u^{\ell}_{y})+\hat{y}^{% \ell}\implies= italic_t start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT over^ start_ARG italic_y end_ARG start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT - italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) + over^ start_ARG italic_y end_ARG start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT ⟹ y^=uyt1+uztsuperscript^𝑦subscriptsuperscript𝑢𝑦superscript𝑡1subscriptsuperscript𝑢𝑧superscript𝑡\displaystyle\hat{y}^{\ell}=\frac{u^{\ell}_{y}t^{\prime}}{1+u^{\ell}_{z}t^{% \prime}}over^ start_ARG italic_y end_ARG start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT = divide start_ARG italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT italic_t start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG 1 + italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT italic_t start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG (42)

where y^superscript^𝑦\hat{y}^{\ell}over^ start_ARG italic_y end_ARG start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT is the event y𝑦yitalic_y-coordinate in normalized, line coordinates. This form describes the shape of the manifold in two dimensions and is visualized in Fig. 7(ii) for varying uysubscriptsuperscript𝑢𝑦u^{\ell}_{y}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT and uzsubscriptsuperscript𝑢𝑧u^{\ell}_{z}italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT.

From these visualization we make a number of observations: First, configurations with uz=0subscriptsuperscript𝑢𝑧0u^{\ell}_{z}=0italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT = 0 trace straight lines, corresponding to planar manifolds in the line coordinate frame. Note, however, that in the derotated frame (B) these may still be non-planar. Second, we see that uz<0subscriptsuperscript𝑢𝑧0u^{\ell}_{z}<0italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT < 0 induces a curvature in the manifold which increases as time progresses. This configuration corresponds to a camera approaching the line, and thus the reduced distance increases the apparent motion, which results in a larger slope. Finally, uz>0subscriptsuperscript𝑢𝑧0u^{\ell}_{z}>0italic_u start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT > 0 results in flattened curves. This corresponds to cameras retracting from the line, which reduces the apparent motion, and thus reduces the slope in the manifold.

References

  • Barath and Matas [2021] Daniel Barath and Jiri Matas. Graph-cut ransac: Local optimization on spatially coherent structures. IEEE TPAMI, 44(9):4961–4974, 2021.
  • Brändli et al. [2016] Christian Brändli, Jonas Strubel, Susanne Keller, Davide Scaramuzza, and Tobi Delbruck. ELiSeD — an event-based line segment detector. In EBCCSP, pages 1–7, 2016.
  • Bryner et al. [2019] Samuel Bryner, Guillermo Gallego, Henri Rebecq, and Davide Scaramuzza. Event-based, direct camera tracking from a photometric 3d map using nonlinear optimization. In ICRA, pages 325–331, 2019.
  • Cadena et al. [2016] Cesar Cadena, Luca Carlone, Henry Carrillo, Yasir Latif, Davide Scaramuzza, José Neira, Ian Reid, and John J. Leonard. Past, present, and future of simultaneous localization and mapping: Toward the robust-perception age. IEEE T-RO, 32(6):1309–1332, 2016.
  • Censi and Scaramuzza [2014] Andrea Censi and Davide Scaramuzza. Low-latency event-based visual odometry. In ICRA, pages 703–710, 2014.
  • Chamorro Hernández et al. [2020] William Oswaldo Chamorro Hernández, Juan Andrade-Cetto, and Joan Solà Ortega. High-speed event camera tracking. In BMVC, 2020.
  • Gallego et al. [2016] Guillermo Gallego, Jon E.A. Lund, Elias Mueggler, Henri Rebecq, Tobi Delbruck, and Davide Scaramuzza. Event-based, 6-dof camera tracking from photometric depth maps. IEEE TPAMI, 40(2):2402–2412, 2016.
  • Gallego et al. [2018] Guillermo Gallego, Henri Rebecq, and Davide Scaramuzza. A unifying contrast maximization framework for event cameras, with applications to motion, depth and optical flow estimation. In CVPR, pages 3867–3876, 2018.
  • Gallego et al. [2019] Guillermo Gallego, Mathias Gehrig, and Davide Scaramuzza. Focus is all you need: Loss functions for event-based vision. In CVPR, pages 12272–12281, 2019.
  • Gallego et al. [2020] Guillermo Gallego, Tobi Delbrück, Garrick Orchard, Chiara Bartolozzi, Brian Taba, Andrea Censi, Stefan Leutenegger, Andrew J. Davison, Jörg Conradt, Kostas Daniilidis, and Davide Scaramuzza. Event-based vision: A survey. IEEE TPAMI, 44(1):154–180, 2020.
  • Gao et al. [2022] Ling Gao, Yuxuan Liang, Jiaqi Yang, Shaoxun Wu, Chenyu Wang, Jiaben Chen, and Laurent Kneip. VECtor: A versatile event-centric benchmark for multi-sensor slam. IEEE RA-L, 7(3):8217–8224, 2022.
  • Gao et al. [2023] Ling Gao, Hang Su, Daniel Gehrig, Marco Cannici, Davide Scaramuzza, and Laurent Kneip. A 5-point minimal solver for event camera relative motion estimation. In ICCV, pages 8015–8025, 2023.
  • Gehrig et al. [2020] Mathias Gehrig, Sumit Bam Shrestha, Daniel Mouritzen, and Davide Scaramuzza. Event-based angular velocity regression with spiking networks. In ICRA, pages 4195–4202, 2020.
  • Hartley and Zisserman [2003] Richard Hartley and Andrew Zisserman. Multiple View Geometry in Computer Vision. Cambridge University Press, 2003.
  • Hartley [1997] Richard I. Hartley. Lines and points in three views and the trifocal tensor. IJCV, 22(2):125–140, 1997.
  • Hidalgo-Carrió et al. [2022] Javier Hidalgo-Carrió, Guillermo Gallego, and Davide Scaramuzza. Event-aided direct sparse odometry. In CVPR, pages 5771–5780, 2022.
  • Huang et al. [2020] Shi-Sheng Huang, Ze-Yu Ma, Tai-Jiang Mu, Hongbo Fu, and Shi-Min Hu. Lidar-monocular visual odometry using point and line features. In ICRA, pages 1091–1097, 2020.
  • Ieng et al. [2017] Sio-Hoi Ieng, João Carneiro, and Ryad B. Benosman. Event-based 3d motion flow estimation using 4d spatio temporal subspaces properties. Frontiers in Neuroscience, 10:596, 2017.
  • Kim et al. [2016] Hanme Kim, Stefan Leutenegger, and Andrew J. Davison. Real-time 3d reconstruction and 6-dof tracking with an event camera. In ECCV, pages 349–364, 2016.
  • Kueng et al. [2016] Beat Kueng, Elias Mueggler, Guillermo Gallego, and Davide Scaramuzza. Low-latency visual odometry using event-based feature tracks. In IROS, pages 16–23, 2016.
  • Le Gentil et al. [2020] Cedric Le Gentil, Florian Tschopp, Ignacio Alzugaray, Teresa Vidal-Calleja, Roland Siegwart, and Juan Nieto. IDOL: A framework for imu-dvs odometry using lines. In IROS, pages 5863–5870, 2020.
  • Lee and Civera [2019] Seong Hun Lee and Javier Civera. Closed-form optimal two-view triangulation based on angular errors. In ICCV, pages 2681–2689, 2019.
  • Lim et al. [2022] Hyunjun Lim, Jinwoo Jeon, and Hyun Myung. UV-SLAM: Unconstrained line-based slam using vanishing points for structural mapping. IEEE RA-L, 7(2):1518–1525, 2022.
  • Liu et al. [2020] Daqi Liu, Alvaro Parra, and Tat-Jun Chin. Globally optimal contrast maximisation for event-based motion estimation. In CVPR, pages 6348–6357, 2020.
  • Lu et al. [2021] Junxin Lu, Zhijun Fang, Yongbin Gao, and Jieyu Chen. Line-based visual odometry using local gradient fitting. Journal of Visual Communication and Image Representation, 77:103071, 2021.
  • Maqueda et al. [2018] Ana I. Maqueda, Antonio Loquercio, Guillermo Gallego, Narciso García, and Davide Scaramuzza. Event-based vision meets deep learning on steering prediction for self-driving cars. In CVPR, pages 5419–5427, 2018.
  • Mueggler et al. [2014] Elias Mueggler, Basil Huber, and Davide Scaramuzza. Event-based, 6-dof pose tracking for high-speed maneuvers. In IROS, pages 2761–2768, 2014.
  • Mueggler et al. [2018] Elias Mueggler, Guillermo Gallego, Henri Rebecq, and Davide Scaramuzza. Continuous-time visual-inertial odometry for event cameras. IEEE T-RO, 34(6):1425–1440, 2018.
  • Nister et al. [2004] David Nister, Oleg Naroditsky, and James Bergen. Visual odometry. In CVPR, pages I–I, 2004.
  • Peng et al. [2021] Xin Peng, Wanting Xu, Jiaqi Yang, and Laurent Kneip. Continuous event-line constraint for closed-form velocity initialization. In BMVC, 2021.
  • Peng et al. [2022] Xin Peng, Ling Gao, Yifu Wang, and Laurent Kneip. Globally-optimal contrast maximisation for event cameras. IEEE TPAMI, 44(7):3479–3495, 2022.
  • Rebecq et al. [2016] Henri Rebecq, Timo Horstschäfer, Guillermo Gallego, and Davide Scaramuzza. EVO: A geometric approach to event-based 6-dof parallel tracking and mapping in real-time. IEEE RA-L, 2(2):593–600, 2016.
  • Seok and Lim [2020] Hochang Seok and Jongwoo Lim. Robust feature tracking in dvs event stream using bézier mapping. In WACV, pages 1658–1667, 2020.
  • Stoffregen and Kleeman [2019] Timo Stoffregen and Lindsay Kleeman. Event cameras, contrast maximization and reward functions: An analysis. In CVPR, pages 12292–12300, 2019.
  • Torr et al. [2002] Philip Hilaire Torr, Slawomir J. Nasuto, and John Mark Bishop. NAPSAC: High noise, high dimensional robust estimation - it’s in the bag. In BMVC, page 3, 2002.
  • Vakhitov and Lempitsky [2019] Alexander Vakhitov and Victor Lempitsky. Learnable line segment descriptor for visual slam. IEEE Access, 7:39923–39934, 2019.
  • Valeiras et al. [2019] David Reverter Valeiras, Xavier Clady, Sio-Hoi Ieng, and Ryad Benosman. Event-based line fitting and segment detection using a neuromorphic visual sensor. IEEE TNNLS, 30(4):1218–1230, 2019.
  • Vidal et al. [2018] Antoni Rosinol Vidal, Henri Rebecq, Timo Horstschaefer, and Davide Scaramuzza. Ultimate slam? combining events, images, and imu for robust visual slam in hdr and high-speed scenarios. IEEE RA-L, 3(2):994–1001, 2018.
  • Weikersdorfer et al. [2013] David Weikersdorfer, Raoul Hoffmann, and Jörg Conradt. Simultaneous localization and mapping for event-based vision systems. In ICVS, pages 133–142, 2013.
  • Weikersdorfer et al. [2014] David Weikersdorfer, David B. Adrian, Daniel Cremers, and Jörg Conradt. Event-based 3d slam with a depth-augmented dynamic vision sensor. In ICRA, pages 359–364, 2014.
  • Weng et al. [1992] Juyang Weng, Thomas S. Huang, and Narendra Ahuja. Motion and structure from line correspondences; closed-form solution, uniqueness, and optimization. IEEE TPAMI, 14(3):318–336, 1992.
  • Yousif et al. [2015] Khalid Yousif, Alireza Bab-Hadiashar, and Reza Hoseinnezhad. An overview to visual odometry and visual slam: Applications to mobile robotics. Intelligent Industrial Systems, 1(4):289–311, 2015.
  • Yuan and Ramalingam [2016] Wenzhen Yuan and Srikumar Ramalingam. Fast localization and tracking using event sensors. In ICRA, pages 4564–4571, 2016.
  • Zhou et al. [2021] Yi Zhou, Guillermo Gallego, and Shaojie Shen. Event-based stereo visual odometry. IEEE T-RO, 37(5):1433–1450, 2021.
  • Zhu et al. [2017] Alex Zihao Zhu, Nikolay Atanasov, and Kostas Daniilidis. Event-based visual inertial odometry. In CVPR, pages 5816–5824, 2017.
  • Zuo et al. [2022] Yi-Fan Zuo, Jiaqi Yang, Jiaben Chen, Xia Wang, Yifu Wang, and Laurent Kneip. DEVO: Depth-event camera visual odometry in challenging conditions. In ICRA, pages 2179–2185, 2022.