This project implements Deep Closest Point model in TensorFlow. It also includes C++ code that compare its performance with other registration methods (ICP, 4-PCS, Go-ICP).
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
- h5py
To run comparison program, you may have to install these libraries:
- PCL 1.9 (and its dependencies)
- HDF5
- TBB
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.
Download ModelNet40 and unzip files into directory modelnet40
. Run util.pack_to_one()
to pack all dataset files into single train.h5
and test.h5
files.
Trained weights dcp_v2.h5
can be unzipped from 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.
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.
The project proposal and report are provided (both in Chinese). Refer to them for better understanding of this project.