We introduce to learn neural implicit representations with quantized coordinates, which reduces the uncertainty and ambiguity in the field during optimization.
This is the official repo for the implementation of CQ-NIR: Coordinate Quantized Neural Implicit Representations for Multi-view 3D Reconstructionn.accepted at ICCV 2023.
Cite as below if you find this repository is helpful to your project:
@inproceedings{sijia2023quantized,
title={Coordinate Quantized Neural Implicit Representations for Multi-view 3D Reconstruction},
author={Sijia Jiang and Jing Hua and Zhizhong Han},
booktitle={{IEEE} International Conference on Computer Vision},
year={2023}
}
We provide CQ-NIR on two baselines, UNISURF and NeuS.
Make sure that you have all dependencies in place.
You can create an anaconda environment called unisurf
, you can find out the instruction here.
Make sure that you have all dependencies in place.
You can create an anaconda environment called neus
, you can find out the instruction here.
Download the sequences of Dataset generated by the authors of UNISURF, you can find out the data here.
Download the sequences of Dataset generated by the authors of NeuS, you can find out the data here.
For training a UNISURF model from scratch run
cd unisurf_cq
python train.py configs/DTU/scan_0$id.yaml
For training a NeuS model from scratch
- Training without mask
cd neus_cq
python exp_runner.py --mode train --conf ./confs/womask.conf --case <case_name>
- Training with mask
cd neus_cq
python exp_runner.py --mode train --conf ./confs/wmask.conf --case <case_name>
If you just want to quickly extract a mesh from a pre-trained model, you can run our demo with
cd unisurf_cq
python extract.py configs/DTU/scan_0$id.yaml
You can find predicted meshes in unisurf_cq/out/scan_0$id/
.
Extract surface from trained model
cd neus_cq
python exp_runner.py --mode validate_mesh --conf <config_file> --case <case_name> --is_continue # use latest checkpoint
The corresponding mesh can be found in neus_cq/exp/<case_name>/<exp_name>/meshes/<iter_steps>.ply
.
Some code snippets are borrowed from UNISURF and NeuS. Thanks for these great projects.