About
Official implementation of my master thesis "Algorithms for Geman-McClure Robust Estimation and Applications for Spatial Perceptions". This library is written in C++ and we support Python interface.
Table of Contents
The following setup is tested in Ubuntu 22.04.
sudo apt update
sudo apt install -y g++ build-essential cmake
sudo apt install -y libeigen3-dev libomp-dev
# python (optional)
sudo apt install -y python3 python3-dev python3-venv
git clone --recurse-submodules -j8 https://github.com/doggydoggy0101/master-thesis.git
cd master-thesis
# If you did not clone the repository with --recurse-submodules option,
# you may need to run the following command.
git submodule update --init
mkdir build
cd build
cmake ..
make
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install numpy
mkdir build
cd build
cmake .. -DBUILD_PYTHON=ON
make
cd python && pip install .
We provide the following robust point cloud registration solvers:
Solver | Robust | Description |
---|---|---|
IrlsSolver | TLS & GM | IRLS-based registration solver with linear relaxation approach. |
GncSolver | TLS & GM | GNC-based registration solver with linear relaxation approach. |
FracgmSolver | GM | FracGM-based registration solver with linear relaxation approach. |
Note that QGM is IrlsSolver with the Geman-McClure robust function.
Implementation of other solvers used in the synthetic dataset experiments can be found here.
We benchmark the solvers against RANSAC, FGR, and TEASER++ on the 3DMatch dataset. All experiments are conducted over 40 Monte Carlo runs.
TEASER++ has two runtime patterns, some runs complete with (~0.0005s), while others take (~0.2-0.4s) for the same scene. Despite these runtime differences, the final rotation and translation errors remain consistent across runs, which suggests that TEASER++ is completing the registration successfully in all cases. I am still looking for the reason why this happens.
- Bang-Shien Chen, Yu-Kai Lin, Jian-Yu Chen, Chih-Wei Huang, Jann-Long Chern, Ching-Cherng Sun, FracGM: A Fast Fractional Programming Technique for Geman-McClure Robust Estimator. IEEE Robotics and Automation Letters (RA-L), vol. 9, no. 12, pp. 11666-11673, Dec. 2024. (paper) (preprint) (code)