# NeuS **Repository Path**: hamasm/NeuS ## Basic Information - **Project Name**: NeuS - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-07 - **Last Updated**: 2026-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NeuS We present a novel neural surface reconstruction method, called NeuS (pronunciation: /nuːz/, same as "news"), for reconstructing objects and scenes with high fidelity from 2D image inputs. ![](./static/intro_1_compressed.gif) ![](./static/intro_2_compressed.gif) ## [Project page](https://lingjie0206.github.io/papers/NeuS/) | [Paper](https://arxiv.org/abs/2106.10689) | [Data](https://www.dropbox.com/sh/w0y8bbdmxzik3uk/AAAaZffBiJevxQzRskoOYcyja?dl=0) This is the official repo for the implementation of **NeuS: Learning Neural Implicit Surfaces by Volume Rendering for Multi-view Reconstruction**. ## Usage #### Data Convention The data is organized as follows: ``` |-- cameras_xxx.npz # camera parameters |-- image |-- 000.png # target image for each view |-- 001.png ... |-- mask |-- 000.png # target mask each view (For unmasked setting, set all pixels as 255) |-- 001.png ... ``` Here the `cameras_xxx.npz` follows the data format in [IDR](https://github.com/lioryariv/idr/blob/main/DATA_CONVENTION.md), where `world_mat_xx` denotes the world to image projection matrix, and `scale_mat_xx` denotes the normalization matrix. ### Setup Clone this repository ```shell git clone https://github.com/Totoro97/NeuS.git cd NeuS pip install -r requirements.txt ```
Dependencies (click to expand) - torch==1.8.0 - opencv_python==4.5.2.52 - trimesh==3.9.8 - numpy==1.19.2 - pyhocon==0.3.57 - icecream==2.1.0 - tqdm==4.50.2 - scipy==1.7.0 - PyMCubes==0.1.2
### Running - **Training without masks** ```shell python exp_runner.py --mode train --conf ./confs/womask.conf --case ``` - **Training with masks** ```shell python exp_runner.py --mode train --conf ./confs/wmask.conf --case ``` - **Extract surface from trained model** ```shell python exp_runner.py --mode validate_mesh --conf --case --is_continue # use latest checkpoint ``` The corresponding mesh can be found in `exp///meshes/.ply`. - **View interpolation** ```shell python exp_runner.py --mode interpolate__ --conf --case --is_continue # use latest checkpoint ``` The corresponding image set of view interpolation can be found in `exp///render/`. ### Train NeuS with your custom data More information can be found in [preprocess_custom_data](https://github.com/Totoro97/NeuS/tree/main/preprocess_custom_data). ## Citation Cite as below if you find this repository is helpful to your project: ``` @article{wang2021neus, title={NeuS: Learning Neural Implicit Surfaces by Volume Rendering for Multi-view Reconstruction}, author={Wang, Peng and Liu, Lingjie and Liu, Yuan and Theobalt, Christian and Komura, Taku and Wang, Wenping}, journal={arXiv preprint arXiv:2106.10689}, year={2021} } ``` ## Acknowledgement Some code snippets are borrowed from [IDR](https://github.com/lioryariv/idr) and [NeRF-pytorch](https://github.com/yenchenlin/nerf-pytorch). Thanks for these great projects.