Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wzh99/DCP-TF
SJTU CS473 Project: Implementation of Deep Closest Point in TensorFlow, and its comparison with other registration methods.
https://github.com/wzh99/DCP-TF
deep-learning point-cloud-registration tensorflow tensorflow-graphics
Last synced: about 1 month ago
JSON representation
SJTU CS473 Project: Implementation of Deep Closest Point in TensorFlow, and its comparison with other registration methods.
- Host: GitHub
- URL: https://github.com/wzh99/DCP-TF
- Owner: wzh99
- Created: 2020-06-01T10:37:57.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-06-14T08:20:40.000Z (over 4 years ago)
- Last Synced: 2024-08-01T19:46:49.977Z (4 months ago)
- Topics: deep-learning, point-cloud-registration, tensorflow, tensorflow-graphics
- Language: C++
- Homepage:
- Size: 8.34 MB
- Stars: 12
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-cs - @wzh99, 2020 Spring
README
# Deep Closest Point in TensorFlow
## Introduction
This project implements [Deep Closest Point](https://arxiv.org/abs/1905.03304) model in TensorFlow. It also includes C++ code that compare its performance with other registration methods (ICP, 4-PCS, Go-ICP).
## Dependencies
To run DCP model, you may have to install these Python packages:
* tensorflow>=2.0.0
* tensorflow-graphics (none of its dependencies is required)
* numpy
* h5pyTo run comparison program, you may have to install these libraries:
* PCL 1.9 (and its dependencies)
* HDF5
* TBB## Usage
Basic usage is encapsulated into procedures. You can directly call them in the program. Hyperparameters are directly defined in source code, and command line arguments is not supported.
### Dataset
Download [ModelNet40](https://shapenet.cs.stanford.edu/media/modelnet40_ply_hdf5_2048.zip) and unzip files into directory `modelnet40`. Run `util.pack_to_one()` to pack all dataset files into single `train.h5` and `test.h5` files.
### Training and evaluation
Trained weights `dcp_v2.h5` can be unzipped from [`weights/dcp_v2.zip`](weights/dcp_v2.zip). Place it in `weights` directory so that evaluation and testing procedure can find it. If you want to train by yourself, run `train.train()` to train, or your owning training procedure. Run `train.evaluate()` to evaluate the trained model with test dataset.
### Comparison
The comparison program tests registration methods on the first 100 models of the test dataset. It is divided into Python and C++ code. Run `compare.test_dcp()` to test DCP. Compile and run the C++ program to test ICP, 4-PCS and Go-ICP. ICP and 4-PCS implementation is from PCL. Go-ICP is from my previous project [OptICP](https://github.com/wzh99/OptICP).
## Documentation
The project [proposal](doc/proposal.md) and [report](doc/dcp_report.md) are provided (both in Chinese). Refer to them for better understanding of this project.