This repository contains the official pytorch version code for the paper. Implicit Filtering for Learning Neural Signed Distance Functions from 3D Point Clouds.
You can find detailed usage instructions for training your own models or running our provided demo below.
If you find our code or paper useful, please consider citing
@inproceedings{ImplicitFilter,
title={Implicit Filtering for Learning Neural Signed Distance Functions from 3D Point Clouds},
author={Li, Shengtao and Gao, Ge and Liu, Yudong and Gu, Ming and Liu, Yu-Shen},
booktitle={European Conference on Computer Vision},
year={2024}
}
Overview of filtering the zero level set. (a) We assume all input points lying on
the surface and compute gradients as normals. (b) Calculating bidirectional projection
distances
Overview of sampling points. (a) Sampling query points near the surface. (b)
Pulling the query point to the zero level set and input points to the level set where the
query point is located. (c) Applying the filter on each level set. The gradient
Our code is implemented in Python 3.8, PyTorch 1.11.0 and CUDA 11.3.
- Install python Dependencies
conda create -n implicitfiltering python=3.8
conda activate implicitfiltering
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
pip install tqdm pyhocon==0.3.57 trimesh PyMCubes scipy point_cloud_utils==0.29.7
- Compile C++ extensions
cd extensions/chamfer_dist
python setup.py install
Surface Reconstruction from Point Cloud.
We provide the demo data in data/3DBenchy.xyz
. If you want to reconstruct your own data, please:
- Put your point cloud data on
./data
. - Note that we support the point cloud data format of
.ply
and.xyz
.
python run.py --gpu 0 --conf confs/shape.conf --dataname 3DBenchy --dir 3DBenchy
You can find the generated mesh and the log in ./outs
.
This project is open sourced under MIT license.