/GNC-and-ADAPT

Graduated Non-Convexity (GNC) and Adaptive Trimming (ADAPT) algorithms for outlier robust estimation

Primary LanguageMATLABBSD 2-Clause "Simplified" LicenseBSD-2-Clause

sparklab

Outlier robust estimation

This repository contains the MATLAB implementation of GNC (Graduated Non-Convexity) and ADAPT (Adaptive Trimming) described in the following papers:

  • Antonante, P., Tzoumas, V., Yang, H., & Carlone, L. (2020). "Outlier-Robust Estimation: Hardness, General-Purpose Algorithms, Experiments, and Guarantees."
@techreport{Antonante20tr-outlierRobustEstimation,
  title = {Outlier-Robust Estimation:
  	Hardness, General-Purpose Algorithms, Experiments, and Guarantees},
  author = {Antonante, P. and Tzoumas, V. and Yang, H. and Carlone, L.},
  hidenote = {in preparation},
  year = {2020}
}
  • Yang, H., Antonante, P., Tzoumas, V., & Carlone, L. (2020). "Graduated Non-Convexity for Robust Spatial Perception: From Non-Minimal Solvers to Global Outlier Rejection". IEEE Robotics and Automation Letters (RA-L), 5(2), 1127–1134.
@article{Yang20ral-GNC,
  author = {Yang, H. and Antonante, P. and Tzoumas, V. and Carlone, L.},
  fullauthor = {Heng Yang, Pasquale Antonante, Vasileios Tzoumas, Luca Carlone},
  title = {Graduated Non-Convexity for Robust Spatial Perception: From Non-Minimal Solvers to Global Outlier Rejection},
  volume = {5},
  number = {2},
  pages = {1127--1134},
  pdf = {https://arxiv.org/pdf/1909.08605.pdf},
  journal = {{IEEE} Robotics and Automation Letters ({RA-L})},
  year = {2020}
}
  • Tzoumas, V., Antonante, P., & Carlone, L. (2019). Outlier-Robust Spatial Perception: Hardness, General-Purpose Algorithms, and Guarantees. IEEE/RSJ Intl. Conf. on Intelligent Robots and Systems (IROS).
@inproceedings{Tzoumas19iros-outliers,
  author = {Tzoumas, V. and Antonante, P. and Carlone, L.},
  title = {Outlier-Robust Spatial Perception: Hardness, General-Purpose Algorithms, and Guarantees},
  hidenote = {Extended arxiv version: 1903.11683, \linkToPdf{https://arxiv.org/pdf/1903.11683.pdf}},
  pdf = {https://arxiv.org/pdf/1903.11683.pdf},
  booktitle = {IEEE/RSJ Intl. Conf. on Intelligent Robots and Systems (IROS)},
  year = {2019}
}

Quick-start

Open matlab and run

setup

This will add all the folders to the path. I suggest to run the script every time you open MATLAB (to prevent path pollution) but you can run savepath to save the changes.

Now explore and run the example.m.

GNC (Graduated Non-Convexity) Example

All algorithms provide similar interfaces, let's use GNC as example to solve a linear regression problem. First let's generate a random problem with 100 measurements, 80% of them being outliers:

problem = linearRegressionProblem(100, 0.8);

Suppose suppose our inlier threshold (epsilon) is set using the chi2 distribution

epsilon = chi2inv(0.99, problem.dof)*problem.MeasurementNoiseStd^2

We can run GNC simply running

[inliers, info] = gnc(problem, @leastSquareNorm2, 'NoiseBound', epsilon);

where @leastSquareNorm2 is the function handle of the non-minimal solver. The GNC function will return the estimated set of inliers together with other diagnostic information.

Acknowledgments

This work was partially funded by:

  • ARL DCIST CRA W911NF-17-2-0181
  • ONR RAIDER N00014-18-1-2828
  • Lincoln Laboratory’s “Resilient Perception in Degraded Environments” program.
  • Mathworks

License

BSD License

mit