Coder Social home page Coder Social logo

guiyuzhao / vrhcf Goto Github PK

View Code? Open in Web Editor NEW
14.0 2.0 2.0 493.77 MB

[ICME 2024] VRHCF: Cross-Source Point Cloud Registration via Voxel Representation and Hierarchical Correspondence Filtering

License: MIT License

Python 96.66% Shell 3.34%
cross-modality cross-source lidar point-cloud-registration

vrhcf's Introduction

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.

  • Clone the repository
git clone https://github.com/GuiyuZhao/VRHCF && cd VRHCF
  • Setup conda virtual environment
conda create -n VRHCF python=3.9
source activate VRHCF
conda install pytorch==1.11.0 torchvision==0.12.0 cudatoolkit=11.3 -c pytorch
conda install -c open3d-admin open3d==0.11.1
pip install "git+git://github.com/erikwijmans/Pointnet2_PyTorch.git#egg=pointnet2_ops&subdirectory=pointnet2_ops_lib"
  • Prepare the datasets

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

  • 01/18/2024: The code is released!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.