A GLOBAL APPROACH FOR IMAGE ORIENTATION USING LIE ALGEBRAIC ROTATION AVERAGING AND CONVEX L∞ MINIMISATION

In this paper we present a new global image orientation approach for a set of multiple overlapping images with given homologous point tuples which is based on a two-step procedure. The approach is independent on initial values, robust with respect to outliers and yields the global minimum solution under relatively mild constraints. The first step of the approach consists of the estimation of global rotation parameters by averaging relative rotation estimates for image pairs (these are determined from the homologous points via the essential matrix in a pre-processing step). For the averaging we make use of algebraic group theory in which rotations, as part of the special orthogonal group SO(3), form a Lie group with a Riemannian manifold structure. This allows for a mapping to the local Euclidean tangent space of SO(3), the Lie algebra. In this space the redundancy of relative orientations is used to compute an average of the absolute rotation for each image and furthermore to detect and eliminate outliers. In the second step translation parameters and the object coordinates of the homologous points are estimated within a convex L∞ optimisation, in which the rotation parameters are kept fixed. As an optional third step the results can be used as initial values for a final bundle adjustment that does not suffer from bad initialisation and quickly converges to a globally optimal solution. We investigate our approach for global image orientation based on synthetic data. The results are compared to a robust least squares bundle adjustment. In this way we show that our approach is independent of initial values and more robust against outliers than a conventional bundle adjustment.


INTRODUCTION
One basic task in photogrammetry is to derive three-dimensional object information and orientation parameters from a set of twodimensional overlapping images.Most approaches in image orientation are based on a simultaneous estimation of object information and the orientation parameters of the imagery (e. g. bundle adjustment, simultaneous localization and mapping (SLAM) or structure from motion (SfM)).Though in postprocessing all the imagery is available at once, in particular for applications involving image sequences, it is rather common to proceed in a sequential manner: In this case the estimation starts with a certain minimum number of images (often only two or three) and additional images are added iteratively to determine initial values for an overall bundle adjustment.In this process errors are accumulated and hence the final result may suffer from only locally optimised parameters and vary by changing that initial configuration.
An alternative to the sequential procedure is a global two-fold approach: In the first step absolute rotation parameters of each image are estimated from relative rotation estimates.For a set of n overlapping images there are at least n − 1 and at most n(n−1) 2 different image pairs.In most cases the actual number lies somewhere in between these bounds providing redundant observations for the relative rotations and therefore allowing for an adequate averaging scheme.The second step consists of the estimation of the unknown translation parameters and the object coordinates of homologous points while the rotation parameters are kept constant.Each of the two steps can be simultaneously performed for the whole set of images.
In this paper, we present a new two-step approach for the orientation of a set of overlapping images.Our approach is robust with * Corresponding author.respect to outliers and independent of initial values for the unknowns, only the datum has to be fixed.In the first step, absolute rotations Rj are computed using estimates for the relative orientations between two images Rij that have been derived from tie points (homologous points) via the essential matrices.To take advantage of the redundancy we use all relative estimates available in an iterative block type averaging algorithm in which only one absolute rotation is computed at a time.
In the second step the remaining unknowns, namely the translation parameters of the images and the object coordinates of the homologous points are estimated within a global and convex optimisation.This optimisation is performed by means of an L∞ minimisation in a second order cone program.
The remainder of this paper is organised as follows: In section 2 some related work is presented primarily in the field of rotation averaging and global orientation.Section 3, after giving a short introduction into the mathematical field of groups and manifolds, describes single rotation averaging and our algorithm for multiple rotation averaging.The estimation of translation parameters and object coordinates is discussed in section 4. In section 5 we present some results.We summarise and conclude this paper in section 6.

RELATED WORK
Rotation matrices obey some specific properties, they have a determinant of one and orthogonal columns with unit length.Hence, taking an element-wise average of two rotation matrices most likely will not lead to a valid rotation matrix.Valid averaging of rotations requires some knowledge in mathematical group theory and calculation on manifolds.Rotations as part of the special orthogonal group SO(3) form a Lie group with a Riemannian manifold structure.This implies that there exists a local Euclidean tangent space, the Lie algebra so(3), a direct mapping between SO(3) and so(3) and a certain metric to perform a proper averaging.
One of the first works exploring the idea of averaging rotations for image orientation is given by Govindu (2001).This paper describes rotation averaging as a least squares estimation using quaternions for representing rotations with residuals being modelled as rotations about an arbitrary axis.The fact that only unit quaternions (quaternions of length one) represent valid rotations is neglected.In a later work the author extends his approach to include Lie group theory (Govindu, 2004).Both, global rotations and translations, derived from essential matrices, are estimated in a single algorithm using a first-order approximation.The structure of the scene is omitted.Fredriksson and Olsson (2013) show how to check whether the estimation of Govindu (2001) reaches the global minimum by analysing the duality gap derived from the Lagrangian dual function.
A fundamental algorithm for our work is the Weiszfeld algorithm, which finds the L1 mean of a set of points in R n and was published more than 70 years ago (Weiszfeld, 1937) (an English translation is given by Weiszfeld and Plastria (2009)).Hartley et al. (2011) transfer this algorithm to the field of rotation averaging in the Lie algebra.In case of single rotation averaging, meaning the estimation of one absolute rotation from several relative ones, this algorithm is proven to converge to the global optimum.A detailed proof, a broad collection of related work and a mathematical review about rotation averaging and convexity on manifolds is given in Hartley et al. (2013).For multiple rotation averaging they propose a block type algorithm, that estimates only one absolute rotation at the same time and then iterates in the manner of a distributed consensus until convergence.Although the convexity of this optimisation was not proven the authors state that the results demonstrate good performance.
The work of Martinec and Pajdla (2007) proposes to determine rotation averaging by solving a linear system in R 3×3 which will not result in a valid rotation matrix, meaning that the solution is not part of SO(3).This is resolved by taking the closest member of SO(3) with respect to the Frobenius norm.The unknown translation parameters are estimated by means of an L∞ minimisation.Hartley et al. (2013) mention that the rotation solution, in general, is not the optimal one.Finally, Chatterjee and Govindu (2013) present a two-fold algorithm.First, a robust initial guess for the global rotations is derived using L1 optimisation.The result is then improved in a robust least squares estimation with a Huber loss function 1 .
Convex optimisation techniques for geometric imaging problems have become quite popular in recent years.One of the first works is given by Hartley and Schaffalitzky (2004) who analyse L∞ optimisation for geometric reconstruction problems.Several works picked up the idea and extended the scope for more geometric problems (Kahl, 2005), several types of convexity (Olsson and Kahl, 2010) and different minimisation algorithms (Ke and Kanade, 2007).A good introduction and an extensive overview to convex optimisation in general can be found in (Boyd and Vandenberghe, 2004).

ROTATION AVERAGING
In this section we first give an introductory overview about group theory and manifolds.More information on this topic and its relation to image orientation can be found in (Kanatani, 1990).Afterwards we present the single rotation averaging problem and our algorithm for multiple rotation averaging.
1 the authors call it iterative reweighted least squares

Group theory and manifolds
In the following we will give a brief introduction and a basic definition for the mathematical terms group and manifold.In algebra a group is defined by a set of elements and an operation that allows to combine elements of the set.Suppose A, B and C are elements of a set G. In order for this set to form a group (G, •), with operation •, four group axioms must be valid: 1. Closure under operation; every combination of two elements of the group with the associated operation has to result in an element of the group: 3. Identity element; there exist an element E in G that does not change other elements of the group when both are combined: 4. Inverse element; for each element in G there exist an element I in G so that the combination of the two results in the identity element: Rotations R can amongst others be represented as matrices with orthogonal columns of unit length and determinant det(R) = 1 (orthonormal matrix).They form a group when considering multiplication as operation and E and I being the three dimensional identity matrix and the transposed R T , respectively.The name of the group is related to the main characteristics of rotations: special orthogonal group, SO(3).Orthogonal is related to the matrix being orthogonal, special stands for the determinant equal to one, 3 specifies the matrix dimension.
A manifold is a topological space, hence a set with a topological structure that allows the formulation of a metric.Manifolds obey Euclidean geometry only locally, but not necessarily also globally.A manifold is a Riemannian manifold if it is differentiable (allows the computation of a tangent space) and induces a metric tensor2 (allows the definition of lengths and angles in the tangent space).Basically, the latter follows from the former.Each point of a Riemannian manifold has a certain neighbourhood in which the Euclidean geometry is approximately valid.
An intuitive example is the surface of a 2-sphere (one can think of the earth's surface).Globally the surface is not Euclidean, for instance the sum of the three angles of a spherical triangle exceeds 180 • and the shortest path between two points is not a straight line but a geodesic.The surface can be mapped to Euclidean R 2 but the larger the mapped region, the larger the distortion.
Both mathematical concepts, group and Riemannian manifold, are connected in a Lie group.A group is a Lie group if its operation and the computation of the inverse element are compatible with the structure of the manifold, hence both lead to continuous and differentiable functions.Consequently, we can state that SO(3) is a Lie group, since the multiplication of rotation matrices is continuous and differentiable.Every Lie group is connected to a Lie algebra, the tangent space at the identity element (we will write so(3) for the Lie algebra of SO(3)).The Lie algebra obeys the Euclidean geometry and hence allows for an adequate averaging.The matrix logarithm3 log : SO(3) → so(3) connects the Lie group and the Lie Algebra.An inverse mapping is given by the exponential map exp : so(3) → SO(3).

Single rotation averaging
The single rotation averaging problem comprises computing a valid rotation given several estimates which are assumed to be affected by noise.We have seen that rotations form an SO(3), a Lie group with a Riemannian manifold structure.Normally, when we speak about averaging, this is meant to be done in Euclidean geometry.Hence, in the following we make use of the fact, that rotations can be mapped to their local Euclidean tangent space and vice versa.Hartley et al. (2011) and Hartley et al. (2013) name three different metrics for defining distances between elements of SO(3): The geodesic, the chordal and the quaternion metric which basically differ in scale.In our approach we make use of the geodesic metric, which is also called angular metric since it defines the angle between two rotations R1 and R2 and appears to be the most intuitive one: (1) Note that the matrix logarithm in (1) maps the combined rotation from SO(3) to so(3) and that the norm is the standard Euclidean norm in R 3 .With the distance measure defined in (1) we are interested in finding a rotation R with a minimum distance to every estimate Ri with respect to some norm.The Lp cost function for a set of n rotations reads as In our work we analyse both, the L1 and the L2 optimisation.
For the L1 optimisation we use the adapted Weiszfeld algorithm presented in Hartley et al. (2011).Both the L1 and the L2 algorithms are gradient descent algorithms.The L2 optimisation can start with an arbitrary rotation, for instance one of the initial estimates to be averaged, whereas the gradient of the L1 cost function is not defined at any of the estimates.Therefore, we use the L2 solution after only one iteration providing a rotation different from any of the estimates as initial value for the Weiszfeld algorithm.
The L1 minimisation, also known as the geometric median, has a breakdown point of 0.5 and offers a higher robustness than the L2 optimisation.In L2 high residuals lead to a much higher cost and hence to a stronger influence of outliers.On the other hand L2 optimisation leads to the best unbiased estimation in Euclidean space.In order to achieve a high robustness in an L2 optimisation we use a reweighted averaging algorithm based on the weighting function which is the inverse Huber loss function (Huber et al., 1964) with tuning constant k 4 and R being the current rotation average.Thus, while good estimates have a quadratic influence on the results, bad estimates only have a linear one.
4 k is selected by means of a proper quantile of the normal distribution.

Multiple rotation averaging
In the last section we have seen how one rotation can be averaged from several estimates using different cost functions.In this section we want to extend this problem to a network of m estimated relative rotations that is to be solved for n ≤ m absolute rotations.According to (Chatterjee and Govindu, 2013) one can imagine this network as a graph with nodes being absolute rotations connected by edges depicting relative estimates.Rotation matrices are composed by multiplication and they can be chained.
Hence our functional model reads as: In general this equation does not hold, since every estimate most likely is affected by noise.Hence, we formulate the Lp cost function for the multiple rotation averaging problem in the manner of equation ( 2) and according to Hartley et al. (2011), Chatterjee and Govindu (2013): Again, d(Ri,jRi, Rj) p stands for the geodesic metric defined in (1).Equation ( 4) implies the need of one fixed absolute rotation.
Without loss of generality we set the rotation of the first image to the identity matrix to fix the datum.
In the following we will describe our procedure, which is similar in style to the one outlined in Hartley et al. (2011) but in addition contains a scheme for outlier detection.Basically, the algorithm can be divided into two stages: 1. initialisation and outlier detection 2. iterative averaging.
The first stage deals with all n absolute rotations, for which an average has to be computed, separately.This step serves the initialisation of the graph, thus one can think of assigning a rotation to each node of the graph.The principle is outlined in figure 1. Starting from the first image i1 we select each edge corresponding to a relative rotation from or to another absolute rotation and propagate the rotation of all the involved nodes i2, i3 and i4 according to (4).In the beginning this is quite intuitive since only for the first node a rotation has been assigned.Propagation becomes more challenging when a node already exhibits an assigned rotation (figure 1b).Before these two estimates are averaged (e. g.R3 and R23R2), we check them for similarity using the distance measure defined in (1).Based on this measure we decide whether or not one of the estimates is an outlier.If so, of course, we cannot yet decide which of the two is the bad one.Therefore, we defer our decision, keeping both estimates for the specific node and proceed with the following relative rotation estimate, if available.Since relative rotations are estimated independently, we argue that, if another relative rotation from this particular node (i2) leads to a high discrepancy in the estimates (e. g.R4 and R24R2), the rotation of this node, R2, can be considered an outlier.In this case the current solution for this node is discarded and, redundancy provided, computed with another relative estimate at a later stage.This also means, that propagation from this node is no longer possible since it exhibits no valid rotation.Propagation from this node is only repeated after it has been assigned another rotation.All the involved nodes (in this case i3 and i4) keep their assigned rotation without taking the relative estimates from the discarded node (i2) into account.If there is no further evidence for R2 being an outlier (e. g. d(R4, R24R2) is small) we keep the estimates for the rotation that could not yet be averaged and decide when a third estimate comes from another node.
(a) (b) Figure 1: Graph structure during multiple rotation averaging depicted for two phases of the first stage.(1a) shows propagation from image i1 (black) in which all other nodes receive a rotation (orange).In (1b) propagation starts from image i2.i1 does not receive a rotation since it is fixed (grey).i3 and i4 exhibit an assigned value and underlie outlier detection and averaging (turquoise).
If we do not qualify one estimate as an outlier the two estimates are averaged using the cost function described in (2).This procedure is repeated for every node of the graph.With each repetition our outlier detection becomes more stable because more and more estimates are involved in propagation supporting the rotation of each node.
In the first stage for all n rotations to be averaged initial values are determined.The second stage is carried out for a certain number of iterations steadily improving the overall solution.For each node every connected neighbour is consulted to propagate a rotation.Again, these estimates are averaged using (2).Within the iteration the overall solution is found in a manner similar to relaxation labelling (Kittler and Illingworth, 1985).This algorithm is not convex and may lead to local minima (Hartley et al., 2011).Nevertheless, the authors state that it gives excellent results even on large datasets.

TRANSLATION AND STRUCTURE ESTIMATION
In section 3 we examined how to compute global rotations using the redundancy provided by m ≥ n relative rotations.In this section we show the convex estimation of translation parameters and the 3D coordinates of the tie points.The convex formulation of the multiview reconstruction problem with known rotations has been studied in many publications in recent years (Hartley and Schaffalitzky, 2004), (Ke and Kanade, 2007), (Olsson and Kahl, 2010), (Kahl, 2005).All these works examine the quasiconvexity of an L∞ cost function for several multivision problems like spatial intersection (sometimes also called triangulation), spatial resection and homography estimation in addition to our problem.A quasiconvex function has only one global minimum but, contrary to a convex function, may have negative curvature and more than one stationary point (Boyd and Vandenberghe, 2004).Hence a gradient f (x) = 0 does not necessarily stand for a global minimum.Therefore, a quasiconvex problem cannot be solved by a gradient descent method.However, there exist methods to solve quasiconvex problems, for instance bisection algorithms (Ke and Kanade, 2007) that subdivide the quasiconvex problem into several convex problems.Hartley and Schaffalitzky (2004) show that the reprojection error in image space is a quasiconvex function with respect to the point movement in object space.Generally in image orientation one is interested in simultaneously minimising all reprojection errors of the involved tie points, but quasiconvexity is not preserved under summation.Instead using the L∞ norm f (x) ∞ = max f (x), thus minimising the maximum residual, preserves quasiconvexity allowing for a convex estimation of the unknowns.It should be noted that since L∞ optimisation is sensitive to outliers using this norm assumes outlier-free data.
We can write the Euclidean reprojection error as: with Xj and X0,i being the unknown object coordinate of the jth tie point and the projection centre of the ith image.[xi,j; yi,j] are the observed image coordinates of point j in image i.The interior orientation elements (c, x0, y0) and the columns of the rotation matrix of image i, Ri = [ri,1, ri,2, ri,3] are constant.We can extend (6) to ri,j(Xj, stacking the two unknown vectors and with Ai,j (8) is a quasiconvex function on the convex set c T Xj X0,i 0 requiring the points to lie in front of the cameras (cheirality constraint).The resulting L∞ cost function then reads as: In minimising ( 9) we follow Ke and Kanade (2007) and formulate the following convex minimisation problem: The parameter µ is the reprojection error ri,j(Xj, X0,i) that is kept fixed and set to a reasonable value.For each image i and each point j the first constraint defines a second order cone, which is why ( 10) is called a second order cone program (Boyd and Vandenberghe, 2004).µ can geometrically be thought of as defining the diameter in image space of each convex cone of feasible solutions.The objective function is an affine function with respect to the reprojection error and ≤ 0 holds if a solution inside the feasible set defined by all cones is found.The datum has to be fixed, which means that three translational parameters and the scale have to be defined.An intuitive way is to locate the origin of the coordinate system in the projection centre of the first image and to fix the X-coordinate of the second projection centre.Hence, (10) extends to Note that in (11) X 0,2,(1) is set equal to 1 but in general can be set to an arbitrary value.

EXPERIMENTAL RESULTS
In this section we present some of our experimental results based on synthetic data.First we analyse our robust L2 single rotation averaging algorithm.Whereas in an outlier free dataset L2 optimisation generally performs best, this is not the case in the presence of gross errors.Out of one rotation matrix we generated five estimates by adding random noise to the Euler angles.In a Monte-Carlo simulation we computed 1000 solutions averaging the five rotation estimates using (2) for L1 and robust L2 optimisation based on (3).We successively increased the noise level and assumed every tenth rotation estimate to be an outlier with noise being 5 times higher than the current noise level.The results are shown in figure 2. As one can see the L2 solution is affected by the outliers more significantly and thus produces worse results than both, L1 and robust L2 optimisation which perform equally well.
Because the L1 optimisation has to be initialised and is computationally is more expensive in the following experiments we make use of our robust L2 algorithm.
The second experiment serves as an illustration of the quality of our combined approach using multiple rotation averaging and convex estimation of translations and structure5 .We created a setting with a circular arrangement of images.Twelve images located in the XZ-plane are rotated through n • π 6 about the Y -axis (n = 0 . . .11); 100 object points are uniformly distributed within a cuboid in the centre.Each point is observed in all images and we assume error-free matches.We argue that gross errors within matching most likely are detected during the subsequent estimation of the relative orientation parameters via essential matrices for instance by means of a robust RANSAC algorithm.All the observations are affected by random noise, normally distributed with σ = 5 pixels.The graph that depicts the distribution of relative estimates for multiple rotation averaging (see section 3.3) is fully connected.
Figure 3 shows the configuration of images (green image planes) and object points (green squares).The coloured dots and the red image planes depict the results using different algorithms.We derived initial values by computing the essential matrix of the first image pair (the topmost image and the one to its right at (4, 0, 2)), spatial intersection of the tie points and the computation and decomposition of projection matrices for the rest of the images.In figure 3a, that shows the initial configuration, one can see, that the first image pair is approximated quite accurately whereas the images at the opposite side of the circle differ significantly from the ground truth.The reason is that the projection matrices are computed using the initial object coordinates intersected from the first image pair.Due to the small base length the points exhibit a comparatively large uncertainty in depth.The results of our algorithm can be seen in figure 3c.Note that no initial values are needed.In comparison with figure 3b which shows results achieved without multiple rotation averaging using only the first initial guess Figure 3: Circular arrangement of images and randomly distributed object points.The green images and the green squares depict the ground truth.The red images and the coloured points show the results of the following stages: initial values from projective geometry (3a), solution of convex estimation of translations and object points without rotation averaging (3b), solution after multiple rotation averaging and convex estimation of translations and object points (3c) and solution of a robust bundle adjustment (3d) using the initial values depicted in (3a).The points are coloured with respect to their distance to the ground truth.Note that the color scale is different in every stage.
for absolute rotations and hence neglecting the redundancy of the relative estimates, one can see a large improvement.Because the rotations are kept fixed during the estimation of the translations and object coordinates, there exist one globally optimal solution for each set of rotations.In figure 3d one can see the results of the bundle adjustment.Clearly, since an L2 minimisation is performed, this method achieves the best results with respect to the Euclidean distance to the ground truth.
Numerical results for the RMS-values of the unknowns are given in table 1. Performing rotation averaging leads to a significant improvement of nearly 300% of the RMS of the projection centres and the object coordinates with respect to the ground truth.The improvement of the rotational parameters amounts to a factor of 2. Still, the accuracy of our algorithm is far away from the accuracy of the robust bundle adjustment.However, the result of our approach can serve as a good initialisation for a final bundle adjustment.
In another experiment we demonstrate the robustness of our method.We generated initial values for the orientation parameters and object coordinates by adding several combinations of random noise to the ground truth.In a Monte-Carlo simulation we ran the robust bundle adjustment 20 times for each combination of initial value accuracy.We then took the median from the 20 RMS-values of the object coordinates, the translation and the rotation parameters, respectively.Exemplary results for the RMS of the translation parameters are depicted in figure 4. We draw samples with an accuracy from 0.025 to 0.125 base lengths [BL] for initial translations and object coordinates and from 0.5 to 5 [grad] 6 for initial rotations.One can see clearly that the worse the accuracy of the initial values the worse the result of the bundle adjustment.Note that we did not change the noise of the observations nor the observations during the simulation.This fact also manifests itself in the constant standard deviation of our approach (green and orange planes).Thus, due to poor initialisation the bundle adjustment may converge into only locally optimal solutions.

CONCLUSION
In this paper we have described a new robust two-step approach for image orientation that is independent of initial values for the unknown parameters and most likely converges to a global optimum with respect to the L∞ norm.In the first step we make use of the redundant overlap of the images and compute absolute rotations from relative estimates.Our robust algorithm for multiple rotation averaging is able to detect outliers in terms of gross  1: RMS-values of the translation parameters X0, the rotations R (using (1)) and the object coordinates X for the three methods with respect to the ground truth.Figure 4: Median of the RMS of the translation parameters after a Monte-Carlo simulation of an incremental robust bundle adjustment using different combinations of initial value accuracies (dots, coloured with respect to the distance to the ground truth).The planes depict the standard deviation of the translation parameters of our approach (orange) and our approach plus a final bundle adjustment (green).errors in the relative rotation estimates, given that redundant information exist.Translation parameters and object coordinates are estimated using a convex L∞ minimisation providing a globally optimal solution for a certain set of constant rotations.A subsequent and quickly converging bundle adjustment, that does not suffer from poor initialisation, is then able to compute a globally optimal L2 solution.In our rather simple experiments we could show that poor initialisation may lead to only locally optimal results in bundle adjustment.This stresses the need for a highly robust method such as the one we presented in this paper.
There are some aspects that are not dealt with in this work and need further examination.First, we only experimented with synthetic data, thus we need to evaluate our approach based on real data and more complex image configurations.Second, we could not yet define a proper stopping criterion for our multiple rotation averaging algorithm, thus we used a fixed number of iterations.This comes along with a rather slow convergence rate, so in future work we will investigate improvements.Furthermore, we want to find a better way to detect relative rotation outliers, for instance based on the overall standard deviation of the relative estimates which depends on image overlap and the distribution of homologous points in the images.In order to provide good relative estimates, a more robust way for generating the relative rotations by means of the trifocal tensor instead of essential matrices can be analysed.We also want to further evaluate the level of redundancy needed for rotation averaging to provide results not affected by outliers for the subsequent convex L∞ optimisation.
What we did not mention so far, because it is not the focus of this paper, is the high computational effort of the L∞ minimisation.This can be a problem especially for large image blocks.A solution might be to reformulate the minimisation problem as a linear program as proposed by Ke and Kanade (2007) which can be solved faster.A difference in the quality of the results also has to be analysed in future work.

Figure 2 :
Figure 2: Distance according to (1) between the true rotation and an averaged solution (L1, L2 and weighted L2) out of five independent rotation estimates with 10% outlier rate.