Correspondence-Free Nonrigid Point Set Registration Using Unsupervised Clustering Analysis (CVPR 2024)
Mingyang Zhao · Jingen Jiang · Lei Ma · Shiqing Xin · Gaofeng Meng · Dong-Ming Yan
Project Page | Paper | Poster
This repository contains the official implementation of our CVPR 2024 paper "Correspondence-Free Nonrigid Point Set Registration Using Unsupervised Clustering Analysis".
Please give a star and cite if you find this repo useful.
Non-rigid point set registration is to optimize a non-linear displacement field that accurately aligns one geometric shape with another. However, given two point sets, one acting as the source and the other as the target, non-rigid registration presents a highly ill-posed and much more complex challenge compared to the rigid counterpart. This increased complexity is primarily attributed to the additional freedom of deformations allowed in non-rigid registration, especially when dealing with shapes that exhibit large deformations. Previous approaches typically perform shape matching first and then estimate the alignment transformation based on the established correspondences via off-the-shelf registration techniques. Nevertheless, shape matching itself has many outliers that may deteriorate registration. To address this problem, we explore a direct registration method for handling large deformations, without relying on shape matching.
- For convenience, the repository provides both MATLAB and C++ implementations.
- The MATLAB implementation is extremely simple, while C++ implementation is much faster.
- Step 1: Download the directory **"matlab_code"**, which contains data normalization, registration, and denormalization implementations.
- Step 2: Start MATLAB and run **"test_demo.m"**. This will give you an immediate registration result for the test point cloud data in the directory **"data"**.
- Windows 11
- CLion2024.1.2
- Intel(R) Core i9-13900K
- NVIDIA RTX 4090
The dependent libraries of our code includes:
- Eigen3 (3.4.0 or later)
- cli11 (2.4.0 or later), command line.
- Intel-MKL (version 2024.1.0 or later), matrix operation acceleration
Except for Intel-MKL, we recommend using vcpkg to install dependent libraries.
# Eigen3
vcpkg install Eigen3:x64-windwos
# cli11
vcpkg install cli11:x64-windows
For Intel-MKL, we recommend using the official installer for installation.
# Set ${MKL_DIR} in your system/user environment variable
MKL_DIR = ${YOUR_MKL_INSTALL_PATH}/oneAPI/mkl/latest/lib/cmake
# Add following path to your system/user ${Path} environment variable
${YOUR_MKL_INSTALL_PATH}/oneAPI/mkl/latest/bin
${YOUR_MKL_INSTALL_PATH}/oneAPI/compiler/latest/bin
Building our code in CLion:
# File -> Setting -> Build, Execution, Deployment -> CMake -> CMake Option :
-DCMAKE_TOOLCHAIN_FILE=${YOUR_VCPKG_INSTALL_PATH}/scripts/buildsystems/vcpkg.cmake
Making sure that your following settings are correct:
- Toolchains :
Visual Stdio
- Architecture :
amd64
- Build Type :
release
The program is run with four input parameters:
.CluReg.exe -s <src_path> -t <tar_path> -o <out_path>
-
<src_path>
: an input file storing the source point cloud; -
<tar_file>
: an input file storing the target point cloud; -
<out_path>
: an output file storing the path of registered point cloud;
If you have any problem, please contact us via migyangz@gmail.com or xiaowuga@gmail.com. We greatly appreciate everyone's feedback and insights. Please do not hesitate to get in touch!
A GPU accelerated C++ code version is coming soon !
Please consider citing our work if you find it useful:
@inproceedings{zhao2024clustereg,
title={Correspondence-Free Nonrigid Point Set Registration Using Unsupervised Clustering Analysis},
author={Mingyang Zhao, Jingen Jiang, Lei Ma, Shiqing Xin, Gaofeng Meng, Dong-Ming Yan},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
year={2024}
}
CluReg is under AGPL-3.0, so any downstream solution and products (including cloud services) that include CluReg code inside it should be open-sourced to comply with the AGPL conditions. For learning purposes only and not for commercial use. If you want to use it for commercial purposes, please contact us first.
This work is partially funded by the Strategic Priority Research Program of the Chinese Academy of Sciences (XDB0640000), National Science and Technology Major Project (2022ZD0116305), National Natural Science Foundation of China (62172415,62272277,62376267), and the innoHK project.