https://github.com/pranavkdm/R-PointHop
R-PointHop: A Green, Accurate and Unsupervised Point Cloud Registration Method
https://github.com/pranavkdm/R-PointHop
3d-geometry 3d-registration point-clouds unsupervised-learning
Last synced: over 1 year ago
JSON representation
R-PointHop: A Green, Accurate and Unsupervised Point Cloud Registration Method
- Host: GitHub
- URL: https://github.com/pranavkdm/R-PointHop
- Owner: pranavkdm
- Created: 2021-02-25T06:54:16.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-03-22T04:08:20.000Z (over 5 years ago)
- Last Synced: 2024-10-28T05:59:20.865Z (over 1 year ago)
- Topics: 3d-geometry, 3d-registration, point-clouds, unsupervised-learning
- Language: Python
- Homepage:
- Size: 591 KB
- Stars: 38
- Watchers: 3
- Forks: 4
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# R-PointHop: A Green, Accurate and Unsupervised Point Cloud Registration Method
R-PointHop is an unsupervised learning based method for registration of 3D point cloud objcets. This is an official implementation of R-PointHop by [Pranav Kadam](https://github.com/pranavkdm), [Min Zhang](https://github.com/minzhang-1), Shan Liu and C.-C. Jay Kuo. This work was carried out at Media Communications Lab (MCL), University of Southern California, USA.
[[arXiv](https://arxiv.org/abs/2103.08129)]
## Introduction
R-PointHop is an unsupervised learning method for registration of two point cloud objects. It derives point features from training data statistics in a hierarchical feedforward manner without end-to-end optimization. The features are used to find point correspondences which in turn lead to estimating the 3D transformation. More technical details can be found in our paper.
In this repository, we release the code for training R-PointHop method and evaluating on a given pair of point cloud objects.
## Packages
The code has been developed and tested in Python 3.6. The following packages need to be installed.
```
h5py
numpy
scipy
sklearn
open3d
```
## Training
Train the model on all 40 classes of ModelNet40 dataset
```
python train.py --first_20 False
```
Train the model on first 20 classes of ModelNet40 dataset
```
python train.py --first_20 True
```
User can specify other parameters like number of points in each hop, neighborhood size and energy threshold, else default parameters will be used.
## Registration
```
python test.py --source ./data/source_0.ply --target ./data/target_0.ply
```
A set of sample source and target point cloud objects are present in the [data](https://github.com/pranavkdm/R-PointHop/tree/main/data) folder which can be used for testing. Replace source_0 and target_0 with your choice of souce and target.
## Citation
If you find our work useful in your research, please consider citing:
```
@article{kadam2021r,
title={R-PointHop: A Green, Accurate and Unsupervised Point Cloud Registration Method},
author={Kadam, Pranav and Zhang, Min and Liu, Shan and Kuo, C-C Jay},
journal={arXiv preprint arXiv:2103.08129},
year={2021}
}
```