QUASAR
Yang 2019 · Paper
One-line summary — First polynomial-time certifiably optimal solver for the Wahba problem (rotation search) with outliers: a Truncated Least Squares cost, rewritten via unit quaternions and “binary cloning” as a QCQP, then solved by a tight SDP relaxation.
Problem
The Wahba problem — find the rotation that best aligns two sets of vector observations given putative correspondences — is a fundamental routine in point cloud registration, image stitching, motion estimation, and satellite attitude determination. The outlier-free version, , has closed-form solutions, but real correspondences from feature matching can be 95% outliers (e.g., FPFH matches). RANSAC’s runtime grows exponentially with the outlier ratio and degrades with noise, robust local optimization (e.g., FGR) can stall in local minima, and Branch-and-Bound is globally optimal but worst-case exponential. Before QUASAR there was no polynomial-time certifiably optimal approach to rotation search with many outliers.
Method & architecture
TLS formulation. Each measurement contributes a least-squares term only while its residual is small; beyond a threshold it saturates and stops influencing the estimate:
where is the inlier noise standard deviation and is chosen as the quantile at probability (e.g., ), so is the largest squared residual tolerated for an inlier.
Quaternion rewriting. Representing by a unit quaternion replaces the constraint set by the unit sphere, with expressed through quaternion products .
Binary cloning to a QCQP. Using , the TLS cost becomes a mixed-integer program where declares measurement an inlier and an outlier — so outlier classification lives inside the optimization. Defining clone quaternions removes the integers, and stacking yields an exactly equivalent Quadratically Constrained Quadratic Program:
with known symmetric matrices built from .
Tight SDP relaxation. Lifting to and dropping the rank-1 constraint gives a convex SDP over . The naive relaxation (only the block-diagonal constraints) is provably tight with no noise and no outliers (Theorem 7) but breaks in practice with outliers. QUASAR adds redundant symmetry constraints on the off-diagonal blocks, and , which make the relaxation empirically tight under large noise and extreme outlier rates. When the solution has rank 1 (zero relaxation gap), the recovered rotation is certified globally optimal for the original non-convex TLS problem.
Results
- Naive vs. tight relaxation (synthetic, , noiseless): the naive SDP starts going loose at 10–40% outliers and completely breaks above 40%, while QUASAR returns a certifiably optimal rank-1 solution even with 90% outliers.
- Synthetic benchmark (): closed-form Wahba only works outlier-free; FGR is robust to 70% but breaks by 90%; RANSAC, GORE, and QUASAR are robust to 90% outliers with QUASAR slightly more accurate. At extreme 91–96% outliers (), Wahba/FGR/RANSAC break, GORE fails once at 96%, QUASAR is highly accurate in all tests. With high noise (), QUASAR still tolerates 80% outliers where all other methods fail.
- Point cloud registration (Bunny, , rotation subproblem via invariant measurements): QUASAR dominates all compared techniques in both noise regimes.
- Image stitching (PASSTA Lunch Room): 46 of 70 SURF correspondences (66%) are outliers; QUASAR (with ) stitches correctly where Matlab’s MSAC fails.
- Tightness metrics: relaxation gap and rank/stable-rank confirm exactness across the synthetic and Bunny tests. Main limitation: general-purpose SDP solvers scale poorly — about 1200 s with MOSEK (500 s with SDPNAL+) for correspondences.
Why it matters for SLAM
Rotation estimation sits inside many SLAM subproblems: point cloud registration, map merging, rotation averaging, and extrinsic calibration. QUASAR is part of the “certifiable perception” line of work (with SE-Sync and TEASER++, largely from the same group) showing that key geometric problems in robotics can be solved to provable global optimality even with heavy outlier contamination. Its ingredients — the TLS cost, binary cloning, and the redundant-constraint SDP — became the rotation subsolver machinery inside TEASER/TEASER++.