This repository is code release for OctField: Hierarchical Implicit Functions for 3D Modeling (arXiv pdf here).
OctField utilizes an octree structure to achieve a hierarchical implicit representation, where part geometry enclosed by an octant is reperesented by a local implicit function. In this repository, we provide OctField model implementation (with Jittor) as well as data preparation, training and testing scripts on ShapeNet.
The code is tested with Ubuntu 18.04, Python 3.7, Jittor 1.3.1.22, CUDA 10.1 and cuDNN v7.5.
Install the following Python dependencies (with pip install
):
h5py
trimesh
scipy
scikit-learn
scikit-image
pybind11
tensorboardX
For the jittor installation, please refer to this link.
1. Compile imp_sampling according to the steps in the imp_sampling/ReadMe.txt and copy the .so file into preproces/
2. Using normal_tool.py, sample_tool.py, and voxelize_tool.py to compute the voxels and sampled points.
3. Using pkg_part.py to get the input .h5 file
Run train.sh to train the model.
Run eval_recon.py to achieve the reconstruction result.
If you find our work useful in your research, please consider citing:
@inproceedings{tang2021octfield,
author = {Jia-Heng Tang and Weikai Chen and Jie Yang and Bo Wang and Songrun Liu and Bo Yang and Lin Gao},
title = {OctField: Hierarchical Implicit Functions for 3D Modeling},
booktitle = {The Thirty-Fifth Annual Conference on Neural Information Processing Systems (NeurIPS)},
year = {2021}
}