Skip to content
merlresearchPublic

About

[ICCV 2025] SAC-GNC: SAmple Consensus for adaptive Graduated Non-Convexity

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

SAC-GNC: SAmple Consensus for adaptive Graduated Non-Convexity

IEEE/CVF International Conference on Computer Vision (ICCV), 2025

Valter Piedade, Chitturi Sidhartha, José Gaspar, Venu Madhav Govindu, Pedro Miraldo

Project Page · Paper · Video

SAC-GNC is a novel adaptive annealing strategy for Graduated Non-Convexity (GNC) that integrates sample consensus into the classical GNC framework. It updates the cost-function convexity scale adaptively by testing a range of candidate values and selecting the scale with the strongest inlier consensus, improving robustness and reducing dependence on predefined parameters.

Applications: Point Cloud Registration (PCR) and Pose Graph Optimization (PGO).

teaser

Citation

If you use the software, please cite the following:

@inproceedings{piedade2025sacgnc,
  title={SAC-GNC: SAmple Consensus for adaptive Graduated Non-Convexity},
  author={Piedade, Valter and Sidhartha, Chitturi and Gaspar, Jos{\'e} and Govindu, Venu Madhav and Miraldo, Pedro},
  booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
  pages={5780--5790},
  year={2025}
}

Contact

Pedro Miraldo
Senior Principal Research Scientist
Mitsubishi Electric Research Laboratories (MERL)
E-Mail: miraldo@merl.com

Installation

Clone the repository and initialize submodules:

git clone <repository_url>
cd sac-gnc
git submodule update --init --recursive

We use mise.toml to build the project and pyproject.toml to create and sync the local Python environment .venv.

# If mise is not installed
sudo apt update -y && sudo apt install -y mise

# Install the project tools and sync the local Python environment
mise trust
mise install
uv sync

Compile SAC-GNC and the C++ submodules:

mise build

For the Python examples, build SAC-GNC with Python bindings. This also builds the GTSAM Python bindings:

mise build_examples

Submodules can still be compiled one at a time when needed:

mise build_fgr
mise build_gtsam
mise build_gtsam_python

Available Baselines

Examples

See examples/README.md for usage examples in Python.

Contributing

See CONTRIBUTING.md for our policy on contributions.

License

  • This code is released under the AGPL-3.0-or-later license, as found in the LICENSE.md file.
Copyright (C) 2026 Mitsubishi Electric Research Laboratories (MERL).

SPDX-License-Identifier: AGPL-3.0-or-later
  • The Eigen library for linear algebra is primarily licensed under the Mozilla Public License v. 2.0 (MPL2). Additionally, some parts of Eigen may be subject to other permissive licenses, such as BSD or LGPL, for specific modules or files. Please refer to the Eigen documentation and source files for detailed licensing information.
  • Fast Global Registration, used as a baseline for point cloud registration, is software released under the MIT license.
  • The GTSAM framework, used as a baseline for pose graph optimization, is a BSD-licensed C++ library.

About

[ICCV 2025] SAC-GNC: SAmple Consensus for adaptive Graduated Non-Convexity

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages