This repository provides an easy install for Neuralangelo, NVIDIA’s neural surface reconstruction framework. It updates dependencies for a seamless setup; Built for smooth deployment, ensuring high-fidelity 3D reconstruction with minimal hassle. I hope this can help make everyone's life who wants to use Neuralangelo a little bit easier! I had fun diving into NeRf and Neuralangelo this quarter for an independent study and had to rework Neuralangelo slightly to get it to function. I noticed quite a number of individuals who were just as confused as me. Bless up!
Zhaoshuo Li, Thomas Müller, Alex Evans, Russell H. Taylor, Mathias Unberath, Ming-Yu Liu, Chen-Hsuan Lin
Link to the original Neuralangelo
The code is built upon the Imaginaire library from the Deep Imagination Research Group at NVIDIA. For business inquiries, please submit the NVIDIA research licensing form.
prior to reading or attempting to use Neuralangelo ensure you have an Nvidia Graphics Card & Use of Cuda based technology.
- Install Nvidia's 11.7 Cuda Drivers on the machine and reformat your image & system.
- Install WSL and set up a Debian based environment.
- Install Miniconda and activate the dependencies on your WSL.
- Install VSC
- Update all your dependencies in WSL & Install git
- Clone the following repository: Neuralangelo or Download the ZIP file in this repository along with the other completed assets. DONT FORGET TO RENAME THEM
Read the following Install Guide
If you are confused by the below; please read the above setup guide.
The conda environment for Neuralangelo. Read the above guide and activate the environment neuralangelo with the below commands.
IMPORTANT (ensure you edit standard neuralangelo.yaml file with updated file) before running the below command
{
conda env create --file neuralangelo.yaml
conda activate neuralangelo
}
sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa -y
sudo apt install g++-11 gcc-11
ls /usr/bin/gcc*
ls /usr/bin/g++*
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
pip install torch==2.0.0+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
pip install torchvision==0.15.0+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
4.After installing these dependencies you should be able to install the requirements.txt
After your installation of all dependencies and following the above instructions you can now start training and creating custom datasets by following these instructions.
After Iteration is complete continue to ISO surface extraction
Some useful notes:
Add --textured to extract meshes with textures. (will take longer) Add --keep_lcc to remove noises. May also remove thin structures. Lower BLOCK_RES to reduce GPU memory usage. Lower RESOLUTION to reduce mesh size.
replace the names notated by xxx & input each command one by one
CHECKPOINT=logs/${GROUP}/${NAME}/xxx.pt OUTPUT_MESH=logs/${GROUP}/${NAME}/xxx.ply CONFIG=logs/${GROUP}/${NAME}/config.yaml RESOLUTION=2048 BLOCK_RES=128 GPUS=1 # use >1 for multi-GPU mesh extraction
enter command below all at once:
torchrun --nproc_per_node=${GPUS} projects/neuralangelo/scripts/extract_mesh.py
--config=${CONFIG}
--checkpoint=${CHECKPOINT}
--output_file=${OUTPUT_MESH}
--resolution=${RESOLUTION}
--block_res=${BLOCK_RES}
check the checkpoint file; you will find the datasetname.ply file which is a 3d file exported to that location.
The video capture sequence may contain significant motion blur or out-of-focus frames. Higher shutter speed (reducing motion blur) and smaller aperture (increasing focus range) are very helpful.
If you want the entire object you need to record from multiple angles without interuption, also try and control your lighting environment; it does not like bright white reflections and will attempt to render them as solid objects.