This repository cotais the code eeded to trai Mega-NeRF models ad geerate the sparse voxel octrees used by the Mega-NeRF-Dyamic viewer. The codebase for the Mega-NeRF-Dyamic viewer ca be foud here.
The codebase has bee maily tested agaist CUDA >= 11.1 ad V100/2080 Ti/3090 Ti GPUs. 1080 Ti GPUs should work as well although traiig will be much slower. We strogly recommed usig PixSFM to refie camera poses for your ow datasets. Mega-NeRF also assumes that the dataset is properly geo-refereced/aliged such that the secod value of its If creatig a custom dataset maually, the expected directory structure is: Sigle-GPU evaluatio: Multi-GPU evaluatio: Large parts of this codebase are based o existig work i the erf_pl, NeRF++, ad Pleoctree repositories. We use svox to serialize our sparse voxel octrees ad the geerated structures should be largely compatible with that codebase.当前模型的贡献者未提供更加详细的模型介绍。模型文件和权重,可浏览“模型文件”页面获取。
您可以通过如下git cloe命令,或者ModelScope SDK来下载模型
Mega-NeRF
Citatio
@IProceedigs{Turki_2022_CVPR,
author = {Turki, Haithem ad Ramaa, Deva ad Satyaarayaa, Mahadev},
title = {Mega-NERF: Scalable Costructio of Large-Scale NeRFs for Virtual Fly-Throughs},
booktitle = {Proceedigs of the IEEE/CVF Coferece o Computer Visio ad Patter Recogitio (CVPR)},
moth = {Jue},
year = {2022},
pages = {12922-12931}
}
Demo
Setup
coda ev create -f eviromet.yml
coda activate mega-erf
Pretraied Models
Traied with 8 submodules (to compare with mai paper)
Larger models (traied with 25 submodules with 512 chaels each)
Data
Mill 19
UrbaScee 3D
pytho scripts/copy_images.py --image_path $RAW_PHOTO_PATH --dataset_path $CAMERA_POSE_PATH
Quad 6k Dataset
pytho scripts/copy_images.py --image_path $RAW_PHOTO_PATH --dataset_path $CAMERA_POSE_PATH
Custom Data
ray_altitude_rage
parameter properly correspods to groud level. If usig PixSFM/COLMAP the model_aliger utility might be helpful, with Mahatta world aligmet beig a possible fallback optio if GPS aligmet is ot possible. We provide a script to covert from PixSFM/COLMAP output to the format Mega-NeRF expects.
torch.cat([camera_i_drb[:, 1:2], -camera_i_drb[:, :1], camera_i_drb[:, 2:4]], -1)
Traiig
pytho scripts/create_cluster_masks.py --cofig cofigs/mega-erf/${DATASET_NAME}.yml --dataset_path $DATASET_PATH --output $MASK_PATH --grid_dim $GRID_X $GRID_Y
pytho -m torch.distributed.ru --stadaloe --odes=1 --proc_per_ode $NUM_GPUS --max_restarts 0 scripts/create_cluster_masks.py <args>
pytho mega_erf/trai.py --cofig_file cofigs/mega-erf/${DATASET_NAME}.yml --exp_ame $EXP_PATH --dataset_path $DATASET_PATH --chuk_paths $SCRATCH_PATH --cluster_mask_path ${MASK_PATH}/${SUBMODULE_INDEX}
trai_scale_factor
optio.CONFIG_FILE=cofigs/mega-erf/${DATASET_NAME}.yaml EXP_PREFIX=$EXP_PATH DATASET_PATH=$DATASET_PATH CHUNK_PREFIX=$SCRATCH_PATH MASK_PATH=$MASK_PATH pytho -m parscript.dispatcher parscripts/ru_8.txt -g $NUM_GPUS
pytho scripts/merge_submodules.py --cofig_file cofigs/mega-erf/${DATASET_NAME}.yaml --ckpt_prefix ${EXP_PREFIX}- --cetroid_path ${MASK_PATH}/params.pt --output $MERGED_OUTPUT
Evaluatio
pytho mega_erf/eval.py --cofig_file cofigs/erf/${DATASET_NAME}.yaml --exp_ame $EXP_NAME --dataset_path $DATASET_PATH --cotaier_path $MERGED_OUTPUT
pytho -m torch.distributed.ru --stadaloe --odes=1 --proc_per_ode $NUM_GPUS mega_erf/eval.py --cofig_file cofigs/erf/${DATASET_NAME}.yaml --exp_ame $EXP_NAME --dataset_path $DATASET_PATH --cotaier_path $MERGED_OUTPUT
Octree Extractio (for use by Mega-NeRF-Dyamic viewer)
pytho scripts/create_octree.py --cofig cofigs/mega-erf/${DATASET_NAME}.yaml --dataset_path $DATASET_PATH --cotaier_path $MERGED_OUTPUT --output $OCTREE_PATH
Ackowledgemets
点击空白处退出提示
评论