Python 示例依赖 Anaconda,并需单独安装 open3d=0.9.0.0;安装后需执行 sudo ldconfig 才能找到库;Python 示例指定 python=3.6 环境
TEASER-plusplus
MIT-SPARKMIT更新放缓快速且鲁棒的点云配准 C++ 库,支持 3D 重建、SLAM 和机器人场景下的点云对齐,能在大量外点下稳定求解配准。
A fast and robust point cloud registration library
sudo apt install cmake libeigen3-dev libboost-all-dev
git clone https://github.com/MIT-SPARK/TEASER-plusplus.git
cd TEASER-plusplus && mkdir build && cd build
cmake .. && make
sudo make install
sudo ldconfigREADME 未说明 GPU 或显存要求,示例均在 CPU 上编译运行
MIT 开源的三维点云配准库,能在海量外点下稳健求解刚体变换
快速且鲁棒的点云配准 C++ 库,支持 3D 重建、SLAM 和机器人场景下的点云对齐,能在大量外点下稳定求解配准。
核心能力
- 用最大团内点筛选剔除极端外点
- 求解三维刚体变换并给出可认证的全局最优性
- 提供 C++ 核心库及 Python、MATLAB 绑定
- 支持 ROS 项目集成
- 示例中 1889 对对应含 1700 个外点仍能配准
容易踩的坑
- v2.0Release v2.0最新正式版2020-08-12 · 2020-08-12 15:24 UTC
This release adds the following:
- Certification in C++
- Adds readthedocs documentation
- Various bug fixes
- v1.0Release v1.02020-04-07 · 2020-04-07 03:09 UTC
查看更新说明
Releasing TEASER-plusplus with documentation and examples
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
TEASER++: fast & certifiable 3D registration

TEASER++ is a fast and certifiably-robust point cloud registration library written in C++, with Python and MATLAB bindings.
About
Left: correspondences generated by 3DSmoothNet (green and red lines represent the inlier and outlier correspondences according to the ground truth respectively). Right: alignment estimated by TEASER++ (green dots represent inliers found by TEASER++).
TEASER++ can solve the rigid body transformation problem between two point clouds in 3D. It performs well even if the input correspondences have an extremely large number of outliers. For a short conceptual introduction, check out our video. For more information, please refer to our papers:
- H. Yang, J. Shi, and L. Carlone, "TEASER: Fast and Certifiable Point Cloud Registration,". arXiv:2001.07715 [cs, math], Jan. 2020. (pdf)
- H. Yang and L. Carlone, “A Polynomial-time Solution for Robust Registration with Extreme Outlier Rates,” in Robotics: Science and Systems (RSS), 2019. (pdf)
If you find this library helpful or use it in your projects, please cite:
@article{Yang20tro-teaser,
title={{TEASER: Fast and Certifiable Point Cloud Registration}},
author={H. Yang and J. Shi and L. Carlone},
journal={{IEEE} Trans. Robotics},
pdf={https://arxiv.org/pdf/2001.07715.pdf},
Year = {2020}
}
If you are interested in more works from us, please visit our lab page here.
TL;DR
Minimal C++ example
Run the following script to show a minimal C++ example:
sudo apt install cmake libeigen3-dev libboost-all-dev
git clone https://github.com/MIT-SPARK/TEASER-plusplus.git
cd TEASER-plusplus && mkdir build && cd build
cmake .. && make
sudo make install
sudo ldconfig
cd .. && cd examples/teaser_cpp_ply && mkdir build && cd build
cmake .. && make
./teaser_cpp_ply
You should see terminal output like this:
Read 1889 total vertices
*** [pmc heuristic: thread 1] current max clique = 577, time = 0.00163579 sec
...
*** [pmc: thread 2] current max clique = 602, time = 0.44515 sec
-----------------------------------------------------------------------
=====================================
TEASER++ Results
=====================================
Expected rotation:
0.996927 0.0668736 -0.0406664
-0.066129 0.997618 0.0194009
0.0418676 -0.0166518 0.998978
Estimated rotation:
0.996658 0.0729647 0.0367288
-0.0740469 0.996832 0.0290182
-0.0344951 -0.0316408 0.998904
Error (deg): 0.0783556
Expected translation:
-0.115577
-0.0387705
0.114875
Estimated translation:
-0.116132
-0.0390858
0.11729
Error (m): 0.00249818
Number of correspondences: 1889
Number of outliers: 1700
Time taken (s): 0.786677
Minimal C++ example for MacOS with brew:
Run the following script to show a minimal C++ example:
brew install cmake
brew install boost
brew install eigen
git clone https://github.com/MIT-SPARK/TEASER-plusplus.git
cd TEASER-plusplus && mkdir build && cd build
cmake .. && make
sudo make install
cd .. && cd examples/teaser_cpp_ply && mkdir build && cd build
cmake .. && make
./teaser_cpp_ply
Minimal Python 3 example
Run the following script to show a minimal Python 3 example (needs Anaconda installed):
sudo apt install cmake libeigen3-dev libboost-all-dev
conda create -n teaser_test python=3.6 numpy
conda activate teaser_test
conda install -c open3d-admin open3d=0.9.0.0
git clone https://github.com/MIT-SPARK/TEASER-plusplus.git
cd TEASER-plusplus
pip install .
cd examples/teaser_python_ply
python teaser_python_ply.py
You should see output similar to this:
==================================================
TEASER++ Python registration example
==================================================
*** [pmc heuristic: thread 1] current max clique = 563, time = 0.00185895 sec
...
*** [pmc: thread 2] current max clique = 605, time = 0.618481 sec
-----------------------------------------------------------------------
=====================================
TEASER++ Results
=====================================
Expected rotation:
[[ 0.99692656 0.06687358 -0.04066644]
[-0.06612899 0.99761788 0.01940087]
[ 0.04186755 -0.01665178 0.99897777]]
Estimated rotation:
[[ 9.96883589e-01 7.88648224e-02 -1.85738207e-03]
[-7.88858464e-02 9.96487579e-01 -2.80985536e-02]
[-3.65129272e-04 2.81575081e-02 9.99603432e-01]]
Error (deg):
0.06284342361637997
Expected translation:
[-0.11557694 -0.03877054 0.11487489]
Estimated translation:
[-0.11652176 -0.0373522 0.111885 ]
Error (m):
0.0034414811018018978
Number of correspondences: 1889
Number of outliers: 1700
Time taken (s): 0.9492652416229248
Reproduce the GIF Above
Run the following script:
sudo apt install cmake libeigen3-dev libboost-all-dev
conda create -n teaser_3dsmooth python=3.6 numpy
conda activate teaser_3dsmooth
conda install -c open3d-admin open3d=0.9.0.0
conda install scikit-learn
git clone https://github.com/MIT-SPARK/TEASER-plusplus.git
cd TEASER-plusplus
pip install .
cd examples/teaser_python_3dsmooth
python teaser_python_3dsmooth.py
You should be able to see Open3D windows showing registration results:

Getting Started
- Installation
- Usage
- API Documentation
Other Publications
Other publications related to TEASER include:
- H. Yang and L. Carlone, “A quaternion-based certifiably optimal solution to the Wahba problem with outliers,” in Proceedings of the IEEE International Conference on Computer Vision (ICCV), 2019, pp. 1665–1674. (pdf)
- H. Yang, P. Antonante, V. Tzoumas, and L. Carlone, “Graduated Non-Convexity for Robust Spatial Perception: From Non-Minimal Solvers to Global Outlier Rejection,” IEEE Robotics and Automation Letters (RA-L), 2020. (pdf)
Acknowledgements
This work was partially funded by ARL DCIST CRA W911NF-17-2-0181, ONR RAIDER N00014-18-1-2828, Lincoln Laboratory “Resilient Perception in Degraded Environments”, and the Google Daydream Research Program.