How many mismatched feature observations can bundle adjustment survive, and does a robust loss help?
research/sensing-baoutlier
With 12 views and wrong camera poses, 2% of observations replaced by random pixels already raise bundle-adjustment surface error from 0.0014 to 0.079 object radii, and Huber or Cauchy loss from the usual all-view start only halve that; a per-point RANSAC start fixes 5% (0.0319) but only 24 views get back to the clean floor at 10% (0.0012). Synthetic only
What it found
Follows sensing-ba, whose next step was matching with outliers and a robust loss. On the same synthetic rig (12 views, 0.5 px noise, every pose wrong) a fraction of the observations is replaced by a uniform random pixel. Plain bundle adjustment started from all-view DLT triangulation degrades from 0.0014 (clean) to 0.079 object radii at 2% mismatches and 0.52 at 10%; Huber and Cauchy loss (SciPy least_squares) help only partly (0.027 and 0.043 at 2%, 0.37 and 0.38 at 10%), and trim-and-refit does nothing, because the contaminated all-view triangulation is already a bad start. A per-point RANSAC pair triangulation (20 px gate, wide because the poses are wrong) as the start brings 5% mismatches to 0.032 and, with Cauchy loss, only with 24 views reaches the clean floor at 10% (0.0012 against 0.0010); with 8 to 12 views, where a point is seen in about three, it cannot vote and fails. A robust loss with 40 function evaluations stalled before converging (300 were used). Limits: synthetic, uniform random-pixel mismatches only, known intrinsics, 6 seeds per cell, one gate and loss scale each, not tuned.
A figure from its own output
Paper, code and results
More in Sensing, imaging and 3D
- What does an unmodelled principal-point offset cost a self-calibrating bundle adjustment, and does a wide field of view help or hurt?A 10 px principal-point offset held at the image centre raises the surface error from 0.0019 to 0.0043 object radii on the wide rig (focal 3.5% off) against 0.0019 to 0.0015 fitted on the narrow one; fitting the point recovers it and removes the cost. Synthetic only
- How big a sensor can a K-frame burst of a small sensor stand in for?Inverting the burst break-even formula: the largest sensor-area ratio a K-frame burst matches runs from √K in the dark to K in bright light, so 8 frames at 3 e⁻ read noise match a 4×-area frame from 4.5 e⁻ per pixel per frame, a 6× frame from 21 e⁻ and never an 8× frame; Monte Carlo agrees to 1% in variance at 18 settings. Model only, swept ranges not sourced to a device
- How many checkerboard photos does OpenCV camera calibration need before the focal length stops moving?On OpenCV's 13 real checkerboard photos, random subsets of 3 views put the focal length within 2% of the 13-view value in 99% of draws (5–95% band 2.3% wide), 12 views give 0.5%; noise-only re-renders predict the band, and a one-term lens model doubles held-out error. One camera, one board
- Does a fundamental-matrix gate on the matches, fitted from the matches alone, let bundle adjustment survive mismatches?An epipolar gate removes 93% of 10% random-pixel mismatches (5% of good observations lost) and takes 5% contamination from 0.168 to 0.0061 object radii, but a RANSAC start does as well at 10% and better at 20%; near-miss mismatches are mild for a robust loss already. Synthetic only
- Does the epipolar gate survive mismatches that repeat across views?When a bad feature is wrong by the same offset in more consecutive views, the gate's recall falls from 0.81 to 0.59 at a 10% wrong rate and its lead over a RANSAC start shrinks from 1.7x to a tie within seed noise, though typical errors stay at 2 to 3.5 times the clean floor; a single failed seed in 12 can dominate a mean
- Does the epipolar gate still help when mismatches have the mix and rate a real SIFT matcher produces?With the mismatch rates and mixes measured from SIFT on a real stereo pair, a ratio test of 0.8 to 0.6 (10% to 5% wrong) leaves gate + Cauchy adjustment at 0.008 to 0.003 object radii against 0.013 to 0.004 for the RANSAC start, and the all-random-pixel assumption overstated plain Cauchy's error 1.3 to 59 times; with no ratio test (56% wrong) every method fails
All 31 Sensing, imaging and 3D projects →
Other research topics
Proper scoring & elicitation28Effort & peer prediction9Verification games & slashing19Detection & tolerances14Markets as routers13Prediction-market design9Paying contributors8Decentralised training systems23Digital twins & sim-to-real164LLM chip design loops40Robot manufacturing loops53Ambient AI assistant46Self-replicating manufacturing34Simulation-first design64Engineered clothing45Task-specific AI accelerators40Algorithmic chip-design loops42Open-source purpose-built robots44The software-engineering loop43Adversarial human imitation41Open-source residential construction41Autonomous multi-angle capture34Sensing, imaging and 3D31Energy supply and dense energy storage39Robot societies among people31Agentic co-design of low-cost robots27Laundry-hanging robots25Machine learning on qualitative data23Robots on the building site27Civilizations & group psychology1History & human sciences1
Produced with AI assistance (Claude). Results are from the code in this repository and are simulated or stylised unless the abstract says otherwise; nothing here implies affiliation with or endorsement by any lab, researcher or company cited. MIT licensed.