We have tested the code on pytorch 1.8.1, while a newer version of pytorch should also work.
conda create -n object_nerf python=3.8
conda activate object_nerf
conda install pytorch==1.8.1 torchvision cudatoolkit=11.1 -c pytorch -c conda-forge
pip install -r requirements.txt
Please go to the data preparation.
You can run train.py
to train the model, and here are two examples.
# train on ScanNet 0113
python train.py dataset_config=config/scannet_base_0113_multi.yml "img_wh=[640,480]" exp_name=my_expr_scannet_0113
# train on ToyDesk 2
python train.py dataset_config=config/toy_desk_2.yml "img_wh=[640,480]" exp_name=my_expr_toydesk_2
Here we provide two examples of scene editing with pre-trained models (download link).
python test/demo_editable_render.py \
config=test/config/edit_scannet_0113.yaml \
ckpt_path=../object_nerf_edit_demo_models/scannet_0113/last.ckpt \
prefix=scannet_0113_duplicating_moving
python test/demo_editable_render.py \
config=test/config/edit_toy_desk_2.yaml \
ckpt_path=../object_nerf_edit_demo_models/toydesk_2/last.ckpt \
prefix=toy_desk2_rotating
Remember to change the ckpt_path
to the uncompressed model checkpoint file.
You can find the rendered image in debug/rendered_view/render_xxxxxx_scannet_0113_duplicating_moving
or debug/rendered_view/render_xxxxxx_toy_desk2_rotating
which should look as follows:
In this project we use (parts of) the implementations of the following works:
We thank the respective authors for open sourcing their methods.