zhangxy0517 / 3D-Registration-with-Maximal-Cliques

Source code of CVPR 2023 paper
MIT License
463 stars 55 forks source link

3D Registration with Maximal Cliques (CVPR23 best student paper award)

Source code of 3D Registration with Maximal Cliques.

News

Introduction

In this paper, we present a 3D registration method with maximal cliques (MAC). The key insight is to loosen the previous maximum clique constraint, and mine more local consensus information in a graph for accurate pose hypotheses generation: 1) A compatibility graph is constructed to render the affinity relationship between initial correspondences. 2) We search for maximal cliques in the graph, each of which represents a consensus set. We perform node-guided clique selection then, where each node corresponds to the maximal clique with the greatest graph weight. 3) Transformation hypotheses are computed for the selected cliques by the SVD algorithm and the best hypothesis is used to perform registration. Extensive experiments on U3M, 3DMatch, 3DLoMatch and KITTI demonstrate that MAC effectively increases registration accuracy, outperforms various state-of-the-art methods and boosts the performance of deep-learned methods. MAC combined with deep-learned methods achieves stateof-the-art registration recall of 95.7% / 78.9% on 3DMatch / 3DLoMatch.

Repository layout

The repository contains a set of subfolders:

Build

MAC depends on PCL (>= 1.10.1, version 1.10.1 is recommended) and igraph(=0.9.9, 0.10.6). Please install these libraries first.

To build MAC, you need CMake (>= 3.23) and, of course, a compiler that supports >= C++11. The code in this repository has been tested on Windows (MSVC =2022 x64), and Linux (GCC =10.4.0). Machines nowadays typically provide higher support, so you should be able to build MAC on almost all platforms.

Windows version

Please refer to Compiling on Windows for details.

Linux version

Please refer to Compiling on Linux for details.

Python implementation

We provide a simple demo in python, please refer to Python_implement for details.

Usage:

Datasets

All tested datasets can be found at this link, password:1234.

Results

U3M

3DMatch & 3DLoMatch

Benchmark RR(%) RE(°) TE(cm)
3DMatch+FPFH+MAC 84.10 1.96 6.18
3DMatch+FCGF+MAC 93.72 1.89 6.03
3DLoMatch+FPFH+MAC 40.88 3.66 9.45
3DLoMatch+FCGF+MAC 59.85 3.50 9.75

KITTI

Benchmark RR(%) RE(°) TE(cm)
FPFH+MAC 99.46 0.40 8.46
FCGF+MAC 97.84 0.34 19.34

Performance boosting

Projects using MAC

Citation

If you find this code useful for your work or use it in your project, please consider citing:

@inproceedings{zhang20233d,
  title={3D Registration with Maximal Cliques},
  author={Zhang, Xiyu and Yang, Jiaqi and Zhang, Shikun and Zhang, Yanning},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={17745--17754},
  year={2023}
}
@article{yang2024mac,
  title={MAC: Maximal Cliques for 3D Registration},
  author={Yang, Jiaqi and Zhang, Xiyu and Wang, Peng and Guo, Yulan and Sun, Kun and Wu, Qiao and Zhang, Shikun and Zhang, Yanning},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
  year={2024},
  publisher={IEEE}
}