All Projects → mabaorui → NeuralPull

mabaorui / NeuralPull

Licence: MIT license
Implementation of ICML'2021:Neural-Pull: Learning Signed Distance Functions from Point Clouds by Learning to Pull Space onto Surfaces

Programming Languages

python
139335 projects - #7 most used programming language
C++
36643 projects - #6 most used programming language
Cuda
1817 projects
c
50402 projects - #5 most used programming language
cython
566 projects
Mako
254 projects

Projects that are alternatives of or similar to NeuralPull

softpool
SoftPoolNet: Shape Descriptor for Point Cloud Completion and Classification - ECCV 2020 oral
Stars: ✭ 62 (-58.39%)
Mutual labels:  point-cloud, 3d-reconstruction
Silhouette-Guided-3D
PyTorch Code of our WACV2020 paper: Silhouette Guided Point Cloud Reconstruction beyond Occlusion
Stars: ✭ 36 (-75.84%)
Mutual labels:  point-cloud, 3d-reconstruction
Point2Mesh
Meshing Point Clouds with Predicted Intrinsic-Extrinsic Ratio Guidance (ECCV2020)
Stars: ✭ 61 (-59.06%)
Mutual labels:  point-cloud, 3d-reconstruction
3PU pytorch
pytorch implementation of >>Patch-base progressive 3D Point Set Upsampling<<
Stars: ✭ 61 (-59.06%)
Mutual labels:  point-cloud, 3d-reconstruction
Openmvs
open Multi-View Stereo reconstruction library
Stars: ✭ 1,842 (+1136.24%)
Mutual labels:  point-cloud, 3d-reconstruction
Msn Point Cloud Completion
Morphing and Sampling Network for Dense Point Cloud Completion (AAAI2020)
Stars: ✭ 196 (+31.54%)
Mutual labels:  point-cloud, 3d-reconstruction
pyRANSAC-3D
A python tool for fitting primitives 3D shapes in point clouds using RANSAC algorithm
Stars: ✭ 253 (+69.8%)
Mutual labels:  point-cloud, 3d-reconstruction
3d Machine Learning
A resource repository for 3D machine learning
Stars: ✭ 7,405 (+4869.8%)
Mutual labels:  point-cloud, 3d-reconstruction
Awsome deep geometry learning
A list of resources about deep learning solutions on 3D shape processing
Stars: ✭ 105 (-29.53%)
Mutual labels:  point-cloud, 3d-reconstruction
Meshlab
The open source mesh processing system
Stars: ✭ 2,619 (+1657.72%)
Mutual labels:  point-cloud, 3d-reconstruction
Pcn
Code for PCN: Point Completion Network in 3DV'18 (Oral)
Stars: ✭ 238 (+59.73%)
Mutual labels:  point-cloud, 3d-reconstruction
mvsnerf
[ICCV 2021] Our work presents a novel neural rendering approach that can efficiently reconstruct geometric and neural radiance fields for view synthesis.
Stars: ✭ 533 (+257.72%)
Mutual labels:  3d-reconstruction
superpose3d
register 3D point clouds using rotation, translation, and scale transformations.
Stars: ✭ 34 (-77.18%)
Mutual labels:  point-cloud
attMPTI
[CVPR 2021] Few-shot 3D Point Cloud Semantic Segmentation
Stars: ✭ 118 (-20.81%)
Mutual labels:  point-cloud
PointCloudRegistrationTool
Automatically registers (aligns) and visualizes point clouds, or processes a whole bunch at once
Stars: ✭ 82 (-44.97%)
Mutual labels:  3d-reconstruction
EgoCNN
Code for "Distributed, Egocentric Representations of Graphs for Detecting Critical Structures" (ICML 2019)
Stars: ✭ 16 (-89.26%)
Mutual labels:  icml
Depth-Guided-Inpainting
Code for ECCV 2020 "DVI: Depth Guided Video Inpainting for Autonomous Driving"
Stars: ✭ 50 (-66.44%)
Mutual labels:  point-cloud
AIPaperCompleteDownload
Complete download for papers in various top conferences
Stars: ✭ 64 (-57.05%)
Mutual labels:  icml
SpareNet
Style-based Point Generator with Adversarial Rendering for Point Cloud Completion (CVPR 2021)
Stars: ✭ 118 (-20.81%)
Mutual labels:  point-cloud
FedScale
FedScale is a scalable and extensible open-source federated learning (FL) platform.
Stars: ✭ 274 (+83.89%)
Mutual labels:  icml

Neural-Pull: Learning Signed Distance Functions from Point Clouds by Learning to Pull Space onto Surfaces (ICML 2021)

Personal Web Pages | Pytorch-Version

This repository contains the code to reproduce the results from the paper.

Neural-Pull: Learning Signed Distance Functions from Point Clouds by Learning to Pull Space onto Surfaces.

You can find detailed usage instructions for training your own models and using pretrained models below.

If you find our code or paper useful, please consider citing

@inproceedings{NeuralPull,
    title = {Neural-Pull: Learning Signed Distance Functions from Point Clouds by Learning to Pull Space onto Surfaces},
    author = {Baorui, Ma and Zhizhong, Han and Yu-Shen, Liu and Matthias, Zwicker},
    booktitle = {International Conference on Machine Learning (ICML)},
    year = {2021}
}

Pytorch Version

This work was originally implemented by tensorflow, we have implemented a pytroch version of Neural-Pull that is easier to use. The pytorch version of Neural-Pull provide references to researchers who are interested in Pytorch, if you are more accessible to the pytorch code, please use pytorch repository and star it, thanks.

This pytorch version is the original version provided by Baorui Ma, refactored by JunSheng Zhou to make it easier to understand.

Surface Reconstruction Demo

Single Image Reconstruction Demo

Installation

First you have to make sure that you have all dependencies in place. The simplest way to do so, is to use anaconda.

You can create an anaconda environment called tensorflow1 using

conda env create -f NeuralPull.yaml
conda activate tensorflow1

Next, for evaluation of the models,compile the extension modules, which are provided by Occupancy Networks. You can do this via

python setup.py build_ext --inplace

To compile the dmc extension, you have to have a cuda enabled device set up. If you experience any errors, you can simply comment out the dmc_* dependencies in setup.py. You should then also comment out the dmc imports in im2mesh/config.py.

Dataset and pretrained model

  1. You can download our preprocessed data and pretrained model.Included in the link:

    --Our pre-train model on ABC and FAMOUS dataset.

    --Preprocessing data of ABC and FAMOUS(sample points and ground truth points).

    --Our reconstruction results.

  2. To make it easier for you to test the code, we have prepared exmaple data in the exmaple_data folder.

Building the dataset

Alternatively, you can also preprocess the dataset yourself. To this end, you have to follow the following steps:

  • Put your own pointcloud files in 'input_dir' folder, each pointcloud file in a separate .xyz.npy file.
  • Set an empty folder 'out_dir' to place the processed data, note, the folder need to be empty, because this folder will be deleted before the program runs.

You are now ready to build the dataset:

python sample_query_point --out_dir /data1/mabaorui/AtlasNetOwn/data/plane_precompute_2/ --CUDA 0 --dataset other --input_dir ./data/abc_noisefree/04_pts/ 

Training

You can train a new network from scratch, run

  1. Surface Reconstruction
python NeuralPull.py --data_dir /data1/mabaorui/AtlasNetOwn/data/plane_precompute_2/ --out_dir /data1/mabaorui/AtlasNetOwn/plane_cd_sur/ --class_idx 02691156 --train --dataset shapenet
  1. Single Image Reconstruction
python NeuralPull_SVG.py --data_dir /data1/mabaorui/AtlasNetOwn/data/plane_precompute_2/ --out_dir /data1/mabaorui/AtlasNetOwn/plane_cd_sur/ --class_idx 02691156 --train --class_name plane
  1. Train the dataset yourself
python NeuralPull.py --data_dir /data1/mabaorui/AtlasNetOwn/data/plane_precompute_2/ --out_dir /data1/mabaorui/AtlasNetOwn/plane_cd_sur/ --class_idx 02691156 --train --dataset other

Evaluation

For evaluation of the models and generation meshes using a trained model, use

  1. Surface Reconstruction
python NeuralPull.py --data_dir /data1/mabaorui/AtlasNetOwn/data/plane_precompute_2/ --out_dir /data1/mabaorui/AtlasNetOwn/plane_cd_sur/ --class_idx 02691156 --dataset shapenet
  1. Single Image Reconstruction
python NeuralPull_SVG.py --data_dir /data1/mabaorui/AtlasNetOwn/data/plane_precompute_2/ --out_dir /data1/mabaorui/AtlasNetOwn/plane_cd_sur/ --class_idx 02691156 --class_name plane
  1. Evaluation the dataset yourself
python NeuralPull.py --data_dir /data1/mabaorui/AtlasNetOwn/data/plane_precompute_2/ --out_dir /data1/mabaorui/AtlasNetOwn/plane_cd_sur/ --class_idx 02691156 --dataset other

Script Parameters Explanation

Parameters Description
train train or test a network.
data_dir preprocessed data.
out_dir store network parameters when training or to load pretrained network parameters when testing.
class_idx the class to train or test when using shapenet dataset, other dataset, default.
class_name the class to train or test when using shapenet dataset, other dataset, default.
dataset shapenet,famous,ABC or other(your dataset)

Pytorch Implementation of Neural-Pull

Notably, the code in Pytorch implementation is not released by the official lab, it is achieved by @wzxshgz123's diligent work. His intention is only to provide references to researchers who are interested in Pytorch implementation of Neural-Pull. There is no doubt that his unconditional dedication should be appreciated.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].