Authors: Magdalena Proszewska, Marcin Mazur, Tomasz Trzcinski, Przemysław Spurek
Recently introduced implicit field representations offer an effective way of generating 3D object shapes. They leverage implicit decoder trained to take a 3D point coordinate concatenated with a shape encoding and to output a value which indicates whether the point is outside the shape or not. Although this approach enables efficient rendering of visually plausible objects, it has two significant limitations. First, it is based on a single neural network dedicated for all objects from a training set which results in a cumbersome training procedure and its application in real life. More importantly, the implicit decoder takes only points sampled within voxels (and not the entire voxels) which yields problems at the classification boundaries and results in empty spaces within the rendered mesh.
Code is based on 3d-point-clouds-HyperCloud, IM-NET-pytorch and IM-NET.
- dependencies stored in
requirements.txt
. - Python 3.6+
- cuda
If you are using Conda
:
- run
bash install_requirements.sh
otherwise:
- install
cudatoolkit
and runpip install -r requirements.txt
Add project root directory to PYTHONPATH
export PYTHONPATH=project_path:$PYTHONPATH
Download dataset from here and set the dataset location in the hyperparams files in the data_dir key.
Classes can be specified in the hyperparams files in the classes key and the test_classes key
airplane, car, chair, rifle, table
python experiments/train.py --config settings/hyperparams.json
python experiments/train.py --config settings/hyperparams_interval.json
python latent_GAN/train.py --input latents.pt --output outdir -c airplane
input
is a tensor with latent vectors for class airplane obtained from a trained hypernetwork. c
is one of [airplane, car, chair, rifle, table]
.