Riccardo Marin · Enric Corona . Gerard Pons-Moll
This repository contains the inference code for NSR registration pipeline. The code has been tested on Linux Ubuntu 20.04.6 LTS, using python 3.8.13, and a GPU GeForce RTX 3080 Ti.
- Clone the repo
git clone https://github.com/riccardomarin/NICP.git NICP
cd NICP
- Create the environment
conda create -n nsr python=3.8.13
conda activate nsr
- Run the installation script (it also contains checkpoint download)
./install.sh
- You need to download the smplh model and place it in the
support_data
folder. The correct file structure is:
support_data
|__ body_models
|__smplh
|__neutral
|__model.npz
- Set the home directory path in
./src/lvd_templ/paths.py
home_dir = #e.g., '/home/ubuntu/Documents/NICP/'
You are ready to start!
To use NSR and fit all the scans into the demo
folder, you can run the following command:
PYTHONPATH=. python ./src/lvd_templ/evaluation/evaluation_benchmark.py
We also provide a streamlit demo to run INLoVD on single shapes using a GUI.
PYTHONPATH=. streamlit run ./src/lvd_templ/evaluation/stream_demo.py
Depending on your use case, you may specify different paremeters for the INLoVD pipeline. This can be easily done my command line. For example:
PYTHONPATH=. python ./src/lvd_templ/evaluation/evaluation_benchmark.py core.cham_bidir=-1
will run a unidirectional chamfer distance refinement (-1: input with oultiers; 1: Partial input).
If you want to characterize a run (and avoid overwrite), you can specify a tag:
PYTHONPATH=. python ./src/lvd_templ/evaluation/evaluation_benchmark.py core.tag='greedy' core.lr_ss=0.01
A complete list of available parameters can be found in conf_test/default.yaml
.
- Inference code for the checkpoint trained on AMASS
- Training code
- Code to replicate quantitative evaluations
- Checkpoints for LoVD and LVD trained on CAPE