• Stars
    star
    153
  • Rank 243,321 (Top 5 %)
  • Language
    Python
  • License
    MIT License
  • Created over 1 year ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The code for "NeUDF: Leaning Neural Unsigned Distance Fields with Volume Rendering (CVPR 2023)"

NeUDF

We present an open surface reconstruction method using UDF, called NeUDF, for reconstructing objects with high-fidelity open surfaces from 2D image inputs.

Project page | Paper

This is the official repo for the implementation of NeUDF: Leaning Neural Unsigned Distance Fields with Volume Rendering (CVPR 2023).

Usage

Setup environment

Installing the requirements using:

pip install -r requirements.txt

To compile MeshUDF to extract open mesh from the learned UDF field, please run:

cd custom_mc
python setup.py build_ext --inplace
cd ..

To use PyMeshLab and a customized Screened poisson to extract open mesh from the learned UDF field, please run:

pip install pymeshlab

To build PyMeshLab from source, please refer to PyMeshLab.

Running

  • Train without mask
python exp_runner.py --mode train --conf ./confs/womask_open.conf --case <case_name>
  • Train with mask
python exp_runner.py --mode train --conf ./confs/wmask_open.conf --case <case_name>
  • Extract surface using MeshUDF
python exp_runner.py --mode validate_mesh_udf --conf <config_file> --case <case_name> --is_continue

The corresponding mesh can be found in exp/<case_name>/<exp_name>/meshes/mu<iter_steps>.ply.

  • Extract surface using Screened Poisson
python exp_runner.py --mode validate_mesh_spsr --conf <config_file> --case <case_name> --is_continue

The corresponding mesh can be found in exp/<case_name>/<exp_name>/meshes/spsr<iter_steps>.ply.

  • Extract surface using MarchingCubes
python exp_runner.py --mode validate_mesh --conf <config_file> --case <case_name> --is_continue

The corresponding mesh can be found in exp/<case_name>/<exp_name>/meshes/<iter_steps>.ply.

Evaluation using pretrained models

  • Without mask setting
python exp_runner.py --mode validate_mesh_udf --conf ./confs/womask_open.conf --case my_rack_test --is_continue --resolution 512
  • With mask setting
python exp_runner.py --mode validate_mesh_udf --conf ./confs/wmask_open.conf --case my_whale_test --is_continue --resolution 512

Datasets and results

You can download the full datasets and results here and put them in ./public_data/ and ./exp/, respectively.

The data is organized as follows:

public_data
|-- <case_name>
    |-- cameras_xxx.npz
    |-- image
        |-- 000.png
        |-- 001.png
        ...
    |-- mask
        |-- 000.png
        |-- 001.png
        ...
exp
|-- <case_name>
    |-- <conf_name>
        |-- checkpoints
            |-- ckpt_400000.pth

Train NeUDF with custom data

Please refer to the Data Conversion in NeuS.

Citation

Cite as below if you find this repository is helpful to your project:

@inproceedings{Liu23NeUDF,
    author = {Liu, Yu-Tao and Wang, Li and Yang, Jie and Chen, Weikai and Meng, Xiaoxu and Yang, Bo and Gao, Lin},
    title = {NeUDF: Leaning Neural Unsigned Distance Fields with Volume Rendering},
    booktitle={Computer Vision and Pattern Recognition (CVPR)},
    year = {2023},
}

Acknowledgement

Some code snippets are borrowed from NeuS, NDF and MeshUDF. Thanks for these great projects.

More Repositories

1

DeepFaceDrawing-Jittor

Python
756
star
2

DeepFaceEditing-Jittor

Python
282
star
3

NeRF-Editing

[CVPR 2022] Code for "NeRF-Editing: Geometry Editing of Neural Radiance Fields"
C++
186
star
4

StylizedNeRF

[CVPR 2022] Code for StylizedNeRF: Consistent 3D Scene Stylization as Stylized NeRF via 2D-3D mutual learning
Python
142
star
5

DeepFaceVideoEditing

Python
110
star
6

SketchFaceNeRF

Python
102
star
7

DSG-Net

Code for 'DSG-Net: Learning Disentangled Structure and Geometry for 3D Shape Generation'
Python
84
star
8

NeRFFaceLighting

[TOG'23] NeRFFaceLighting: Implicit and Disentangled Face Lighting Representation Leveraging Generative Prior in Neural Radiance Fields
Jupyter Notebook
76
star
9

OctField

Code for "OctField: Hierarchical Implicit Functions for 3D Modeling (NeurIPS 2021)"
Python
61
star
10

IBSR_jittor

Code for 'Single Image 3D Shape Retrieval via Cross-Modal Instance and Category Contrastive Learning', ICCV 2021
Python
52
star
11

SketchDream

Python
43
star
12

RisaNET

Code for "RISA-Net: Rotation-Invariant and Structure-Aware Network for Fine-grained 3D Shape Retrieval"
Python
40
star
13

PRS-Net

Python
34
star
14

TM-NET

Python
33
star
15

MeshPooling

Code for 'Mesh Variational Autoencoders with Edge Contraction Pooling'
Python
33
star
16

RGBDNeRF

Code for "Neural Radiance Fields from Sparse RGB-D Images for High-Quality View Synthesis"
Python
27
star
17

NeRFFaceEditing

[SIGGRAPH Asia'22] NeRFFaceEditing: Disentangled Face Editing in Neural Radiance Fields
Jupyter Notebook
25
star
18

MeshVAE_neural_editing

Python
24
star
19

NEURALSLICE

The code of "NEURALSLICE: Neural 3D Triangle Mesh Reconstruction via Slicing 4D Tetrahedral Meshes (ICML 2023)"
Roff
23
star
20

TM-NET-Jittor

Python
20
star
21

PRS-NET-Jittor

Python
20
star
22

Stylemotion

Python
19
star
23

Farthestsampling

Furthest sampling and Voronoi sampling on 3D mesh
C++
19
star
24

DynamicHumanGeneration_Jittor

Python
17
star
25

intrinsicSym-Jittor

C++
17
star
26

HSDF-Net

The code for "HSDF: Hybrid Sign and Distance Field for Modeling Surfaces with Arbitrary Topologies (NeurIPS 2022)"
Python
15
star
27

MT_DE-Jittor

Python
13
star
28

PRS-Net_stamp

Python
12
star
29

GLIM-Net

Python
2
star
30

Fungal_Keratitis_Classification

Python
1
star