RANSAC Revisited: An Improved Algorithm for Robust Subspace Recovery under Adversarial and Noisy Corruptions

Guixian Chen, Jianhao Ma, Salar Fattahi
4/13/2025
cs.LGcs.CVstat.CO

No official code found. Best implementation: rsasaki0109/RANSAC-plus (30 stars, MIT, last commit 2026-04-16).

Abstract

In this paper, we study the problem of robust subspace recovery (RSR) in the presence of both strong adversarial corruptions and Gaussian noise. Specifically, given a limited number of noisy samples -- some of which are tampered by an adaptive and strong adversary -- we aim to recover a low-dimensional subspace that approximately contains a significant fraction of the uncorrupted samples, up to an error that scales with the Gaussian noise. Existing approaches to this problem often suffer from high computational costs or rely on restrictive distributional assumptions, limiting their applicability in truly adversarial settings. To address these challenges, we revisit the classical random sample consensus (RANSAC) algorithm, which offers strong robustness to adversarial outliers, but sacrifices efficiency and robustness against Gaussian noise and model misspecification in the process. We propose a two-stage algorithm, RANSAC+, that precisely pinpoints and remedies the failure modes of standard RANSAC. Our method is provably robust to both Gaussian and adversarial corruptions, achieves near-optimal sample complexity without requiring prior knowledge of the subspace dimension, and is more efficient than existing RANSAC-type methods.

View on arXivView PDF

Code Implementations(1)

MIT

(unofficial)(2025)RANSAC Revisited: An Improved Algorithm for Robust Subspace Recovery under Adversarial and Noisy Corruptions

300PythonAug 12, 20256 months agoMIT

Similar Papers

Cite this paper

@article{chen2025ransac,
  title  = {RANSAC Revisited: An Improved Algorithm for Robust Subspace Recovery under Adversarial and Noisy Corruptions},
  author = {Guixian Chen and Jianhao Ma and Salar Fattahi},
  year   = {2025},
  eprint = {2504.09648},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2504.09648v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2504.09648.svg)](https://codeofpaper.com/paper/2504.09648)

Discussion