Occupancy Networks
This repo contains a TensorFlow implementation of the paper Occupancy Networks - Learning 3D Reconstruction in Function Space. The codes are based on the original implementation.
Dependencies
pip install -r requirement.txt
Installation
Compile the extension modules. You can do this via
python setup.py build_ext --inplace
Usage
Training
To train a new network from scratch, run
python train.py CONFIG.yaml
where you replace CONFIG.yaml with the name of the configuration file you want to use.
Generation
To generate meshes using a trained model, use
python generate.py CONFIG.yaml
where you replace CONFIG.yaml
with the correct config file.
Evaluation
For evaluation of the models, we provide two scripts: eval.py
and eval_meshes.py
.
The main evaluation script is eval_meshes.py
.
You can run it using
python eval_meshes.py CONFIG.yaml
The script takes the meshes generated in the previous step and evaluates them using a standardized protocol.
The output will be written to .pkl
/.csv
files in the corresponding generation folder which can be processed using pandas.
For a quick evaluation, you can also run
python eval.py CONFIG.yaml
This script will run a fast method specific evaluation to obtain some basic quantities that can be easily computed without extracting the meshes. This evaluation will also be conducted automatically on the validation set during training.
Citation
@inproceedings{Occupancy Networks,
title = {Occupancy Networks: Learning 3D Reconstruction in Function Space},
author = {Mescheder, Lars and Oechsle, Michael and Niemeyer, Michael and Nowozin, Sebastian and Geiger, Andreas},
booktitle = {Proceedings IEEE Conf. on Computer Vision and Pattern Recognition (CVPR)},
year = {2019}
}