Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Totoro97/NeuS
Code release for NeuS
https://github.com/Totoro97/NeuS
Last synced: about 22 hours ago
JSON representation
Code release for NeuS
- Host: GitHub
- URL: https://github.com/Totoro97/NeuS
- Owner: Totoro97
- License: mit
- Created: 2021-08-22T13:17:06.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-02-28T08:17:37.000Z (8 months ago)
- Last Synced: 2024-10-29T17:49:38.337Z (9 days ago)
- Language: Python
- Size: 40.1 MB
- Stars: 1,578
- Watchers: 25
- Forks: 210
- Open Issues: 95
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-NeRF - Torch - view Reconstruction](https://arxiv.org/pdf/2106.10689.pdf)|[Project Page](https://lingjie0206.github.io/papers/NeuS/)| (Papers / NeRF Related Tasks)
- awesome-NeRF - Torch - view Reconstruction](https://arxiv.org/pdf/2106.10689.pdf)|[Project Page](https://lingjie0206.github.io/papers/NeuS/)| (Papers / NeRF Related Tasks)
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.