GuiyuZhao / VRHCF

[ICME 2024] VRHCF: Cross-Source Point Cloud Registration via Voxel Representation and Hierarchical Correspondence Filtering
MIT License
18 stars 3 forks source link
cross-modality cross-source lidar point-cloud-registration

VRHCF: Cross-Source Point Cloud Registration via Voxel Representation and Hierarchical Correspondence Filtering

VRHCF: Cross-Source Point Cloud Registration via Voxel Representation and Hierarchical Correspondence Filtering (ArXiv version, accepted by ICME).

Guiyu Zhao, Zewen Du, Zhentao Guo, Hongbin Ma.

1. Teaser: cross-source point cloud registration

2. Method overview

2. Getting started

(1) Setup

This code has been tested with Python 3.9, Pytorch 1.11.0, CUDA 11.1 on Ubuntu 20.04.

You can download the 3DCSR dataset from 3DCSR benchmark, and download processed 3DMatch dataset from Baidu Yun (Verification code:6nkf).

Then, the data is organised as follows:

--data--3DMatch--fragments
              |--intermediate-files-real
              |--keypoints
              |--patches

--data--3DCSR--kinect_lidar
            |--kinect_sfm

The pretrained models and features can be downloaded from releases

(2) 3DMatch

Follow the SpinNet/SphereNet to download and place the 3DMatch dataset.

Train

Train SphereNet on the 3DMatch dataset:

cd ./ThreeDMatch/Train
python train.py

Test

Extract the descriptors by using our pre-trained model:

cd ./ThreeDMatch/Test
python preparation.py

The learned descriptors will be saved in ThreeDMatch/Test/SphereNet_{timestr}/ folder.

Evaluate

The extracted feature descriptors are used for feature matching and correspondence filtering to complete point cloud registration. Evaluate our method by running:

python eval_3DMatch.py [timestr] [samplings]

samplings is the number of keypoints. You can estimate the pose in any sampling numbers.

(3) 3DLoMatch

Test

Extract the descriptors by using our pre-trained model:

cd ./ThreeDMatch/Test
python preparation.py

The learned descriptors will be saved in ThreeDMatch/Test/SphereNet_{timestr}/ folder.

Evaluate

The extracted feature descriptors are used for feature matching and correspondence filtering to complete point cloud registration. Evaluate our method by running:

python eval_3DMatch.py [timestr] [samplings]

samplings is the number of keypoints. You can estimate the pose in any sampling numbers.

(4) 3DCSR

kinect-lidar

Evaluate on kinect-lidar by using our pre-trained model:

python eval_3DCSR_lidar.py [samplings]

kinect-lidar

Evaluate on kinect-lidar by using our pre-trained model:

python eval_3DCSR_sfm.py [samplings]

Results

(1) 3DMatch

Method RR(%) RE(°) TE(cm) FMR(%) IR(%)
GeoTransformer 92.00 1.62 5.30 97.90 71.90
VRHCF 96.21 1.81 6.02 97.35 87.76

(2) 3DCSR

Benchmark RR(%) RE(°) TE(cm) FMR(%) IR(%)
Kinect-sfm 93.8 90.3 96.8 2.06 0.06
Kinect-lidar 10.3 6.4 13.6 3.41 0.13

Acknowledgement

In this project, we use parts of the implementations of the following works:

Updates