From bd5f3351aae65f1edce6a31ba59ec22b3a8afd89 Mon Sep 17 00:00:00 2001 From: xuzhen Date: Sun, 7 Apr 2024 01:27:45 +0800 Subject: [PATCH] evc: wip websocket doc & enerfi demo --- .../datasets/enerf_outdoor/enerf_outdoor.yaml | 15 +++- configs/specs/server.yaml | 4 - docs/design/main.md | 2 +- docs/design/websocket.md | 1 + docs/misc/custom_dataset.md | 10 +-- docs/misc/static.md | 20 ++--- docs/misc/tricks.md | 18 ++--- docs/projects/enerf.md | 42 +++++----- .../regressors/image_based_regressor.py | 2 + easyvolcap/runners/websocket_server.py | 3 +- easyvolcap/scripts/client.py | 4 +- easyvolcap/scripts/wrap.py | 7 ++ readme.md | 39 +++++++--- scripts/actorshq/convert_all_sequences.sh | 60 +++++++------- scripts/enerf_outdoor/optimize_camera.sh | 14 ++-- scripts/mobile_stage/optimize_camera.sh | 12 +-- scripts/renbody/optimize_camera.sh | 44 +++++------ scripts/renbody/space_carving.sh | 26 +++---- .../legacy/stableenerf_enerf_baseline.sh | 78 +++++++++---------- scripts/zjumocap/optimize_camera.sh | 12 +-- 20 files changed, 226 insertions(+), 187 deletions(-) create mode 100644 docs/design/websocket.md diff --git a/configs/datasets/enerf_outdoor/enerf_outdoor.yaml b/configs/datasets/enerf_outdoor/enerf_outdoor.yaml index ebe29a6..3a0f889 100644 --- a/configs/datasets/enerf_outdoor/enerf_outdoor.yaml +++ b/configs/datasets/enerf_outdoor/enerf_outdoor.yaml @@ -32,4 +32,17 @@ runner_cfg: video_fps: 60 # this dataset id built differently viewer_cfg: - use_window_focal: True + camera_cfg: + # prettier-ignore + K: [[1639.199951171875,0.0,683.0],[0.0,1639.199951171875,384.0],[0.0,0.0,1.0]] + # prettier-ignore + R: [[0.8829049468040466,-0.46955186128616333,0.0],[-0.005646302364766598,-0.010616821236908436,-0.9999276995658875],[0.46951788663864136,0.8828410506248474,-0.012024874798953533]] + # prettier-ignore + T: [[-0.14367961883544922],[0.0021661361679434776],[5.292649269104004]] + n: 4.0 + f: 9.0 + H: 768 + W: 1366 + bounds: [[-4.0,-4.0,-2.0],[4.0,4.0,2.0]] +# {"H":768,"W":1366,"K":[[1639.199951171875,0.0,683.0],[0.0,1639.199951171875,384.0],[0.0,0.0,1.0]],"R":[[0.8829049468040466,-0.46955186128616333,0.0],[-0.005646302364766598,-0.010616821236908436,-0.9999276995658875],[0.46951788663864136,0.8828410506248474,-0.012024874798953533]],"T":[[-0.14367961883544922],[0.0021661361679434776],[5.292649269104004]],"n":4.0,"f":9.0,"t":0.0,"v":0.0,"bounds":[[-4.0,-4.0,-2.0],[4.0,4.0,2.0]],"mass":0.10000000149011612,"moment_of_inertia":0.10000000149011612,"movement_force":1.0,"movement_torque":1.0,"movement_speed":1.0,"origin":[0.0,0.0,0.0],"world_up":[0.0,0.0,1.0]} +# {"H":768,"W":1366,"K":[[4373.33447265625,0.0,1822.22265625],[0.0,4373.33447265625,1024.5],[0.0,0.0,1.0]],"R":[[0.8829049468040466,-0.46955186128616333,0.0],[-0.005646302364766598,-0.010616821236908436,-0.9999276995658875],[0.46951788663864136,0.8828410506248474,-0.012024874798953533]],"T":[[-0.14367961883544922],[0.0021661361679434776],[5.292649269104004]],"n":4.0,"f":9.0,"t":0.0,"v":0.0,"bounds":[[-1.0,-1.0,-1.0],[1.0,1.0,1.0]],"mass":0.10000000149011612,"moment_of_inertia":0.10000000149011612,"movement_force":1.0,"movement_torque":1.0,"movement_speed":1.0,"origin":[0.0,0.0,0.0],"world_up":[0.0,0.0,1.0]} diff --git a/configs/specs/server.yaml b/configs/specs/server.yaml index 1f6415e..91a2a0f 100644 --- a/configs/specs/server.yaml +++ b/configs/specs/server.yaml @@ -1,6 +1,2 @@ viewer_cfg: type: WebSocketServer - -val_dataloader_cfg: - dataset_cfg: - type: NoopDataset \ No newline at end of file diff --git a/docs/design/main.md b/docs/design/main.md index ef0abc2..5decce1 100644 --- a/docs/design/main.md +++ b/docs/design/main.md @@ -57,7 +57,7 @@ easyvolcap │ ├── volumetric_video_viewer.py # high-performance viewer │ └── ... ├── scripts # entry points for EasyVolcap, all command-line should start from here -│ ├── main.py # evc -t test ... +│ ├── main.py # evc-test ... │ └── wrap.py # evc-gui, evc-dist ... └── utils # store utility functions here, should not import from other modules ├── shaders # we place the shaders here for easier loading from gl_utils diff --git a/docs/design/websocket.md b/docs/design/websocket.md new file mode 100644 index 0000000..fc1db02 --- /dev/null +++ b/docs/design/websocket.md @@ -0,0 +1 @@ +# WebSocket Client Viewer \ No newline at end of file diff --git a/docs/misc/custom_dataset.md b/docs/misc/custom_dataset.md index 3a03dcf..0fca96a 100644 --- a/docs/misc/custom_dataset.md +++ b/docs/misc/custom_dataset.md @@ -165,7 +165,7 @@ Run the ***L3MHET*** model with camera parameter optimization: ```shell # Train l3mhet on static frame -evc -c configs/exps/l3mhet/l3mhet_${expname}_static.yaml +evc-train -c configs/exps/l3mhet/l3mhet_${expname}_static.yaml # Extract camera parameters python scripts/tools/extract_optimized_cameras.py -- -c configs/exps/l3mhet/l3mhet_${expname}_static.yaml @@ -260,16 +260,16 @@ Space carving scripts: rm -r ${data_root}/vhulls # Extract visual hulls -evc -t test -c configs/base.yaml,configs/models/point_planes.yaml,configs/datasets/renbody/0013_01.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 +evc-test -c configs/base.yaml,configs/models/point_planes.yaml,configs/datasets/renbody/0013_01.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # Preprocess visual hulls -evc -t test -c configs/base.yaml,configs/models/point_planes.yaml,configs/datasets/renbody/0013_01.yaml,configs/specs/surfs.yaml +evc-test -c configs/base.yaml,configs/models/point_planes.yaml,configs/datasets/renbody/0013_01.yaml,configs/specs/surfs.yaml # Extract on optimized cameras # Extract visual hulls -evc -t test -c configs/base.yaml,configs/models/point_planes.yaml,configs/datasets/renbody/0013_01.yaml,configs/specs/optimized.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 +evc-test -c configs/base.yaml,configs/models/point_planes.yaml,configs/datasets/renbody/0013_01.yaml,configs/specs/optimized.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # Preprocess visual hulls -evc -t test -c configs/base.yaml,configs/models/point_planes.yaml,configs/datasets/renbody/0013_01.yaml,configs/specs/optimized.yaml,configs/specs/surfs.yaml +evc-test -c configs/base.yaml,configs/models/point_planes.yaml,configs/datasets/renbody/0013_01.yaml,configs/specs/optimized.yaml,configs/specs/surfs.yaml ``` \ No newline at end of file diff --git a/docs/misc/static.md b/docs/misc/static.md index dc3e198..2a46a44 100644 --- a/docs/misc/static.md +++ b/docs/misc/static.md @@ -114,10 +114,10 @@ The training should convert to a meaningful stage after 10-20 mins on a 3090 (ac ```shell # With your config files ready, you can run the following command to train the model -evc -c configs/exps/l3mhet/l3mhet_${expname}.yaml +evc-train -c configs/exps/l3mhet/l3mhet_${expname}.yaml # Now run the following command to render some output -evc -t test -c configs/exps/l3mhet/l3mhet_${expname}.yaml,configs/specs/spiral.yaml +evc-test -c configs/exps/l3mhet/l3mhet_${expname}.yaml,configs/specs/spiral.yaml ``` [`configs/specs/spiral.yaml`](configs/specs/spiral.yaml): please check this file for more details, it's a collection of configurations to tell the dataloader and visualizer to generate a spiral path by interpolating the given cameras @@ -164,13 +164,13 @@ The [`colmap.yaml`](configs/specs/colmap.yaml) provides some heuristics for larg ```shell # Train a 3DGS model on the ${expname} dataset -evc -c configs/exps/gaussiant/gaussiant_${expname}.yaml +evc-train -c configs/exps/gaussiant/gaussiant_${expname}.yaml # Perform rendering on the trained ${expname} dataset -evc -t test -c configs/exps/gaussiant/gaussiant_${expname}.yaml,configs/specs/superm.yaml,configs/specs/spiral.yaml +evc-test -c configs/exps/gaussiant/gaussiant_${expname}.yaml,configs/specs/superm.yaml,configs/specs/spiral.yaml # Perform rendering with GUI, do this on a machine with monitor, tested on Windows and Ubuntu -evc -t gui -c configs/exps/gaussiant/gaussiant_${expname}.yaml,configs/specs/superm.yaml +evc-gui -c configs/exps/gaussiant/gaussiant_${expname}.yaml,configs/specs/superm.yaml ``` The [`superm.yaml`](configs/specs/superm.yaml) skips the loading of input images and other initializations for network-only rendering since all the information we need is contained inside the trained model. @@ -185,15 +185,15 @@ Pre-trained model for ENeRFi on the DTU dataset can be downloaded from [this Goo ```shell # Render ENeRF with GUI on zju3dv dataset -evc -t gui -c configs/base.yaml,configs/models/enerfi.yaml,configs/datasets/zju/zju3dv.yaml,configs/specs/optimized.yaml exp_name=enerfi_dtu val_dataloader_cfg.dataset_cfg.cache_raw=False val_dataloader_cfg.dataset_cfg.ratio=1.0 val_dataloader_cfg.dataset_cfg.view_sample=0,None,5 val_dataloader_cfg.dataset_cfg.force_sparse_view=True val_dataloader_cfg.dataset_cfg.n_srcs_list=3, val_dataloader_cfg.dataset_cfg.use_vhulls=True +evc-gui -c configs/base.yaml,configs/models/enerfi.yaml,configs/datasets/zju/zju3dv.yaml,configs/specs/optimized.yaml exp_name=enerfi_dtu val_dataloader_cfg.dataset_cfg.cache_raw=False val_dataloader_cfg.dataset_cfg.ratio=1.0 val_dataloader_cfg.dataset_cfg.view_sample=0,None,5 val_dataloader_cfg.dataset_cfg.force_sparse_view=True val_dataloader_cfg.dataset_cfg.n_srcs_list=3, val_dataloader_cfg.dataset_cfg.use_vhulls=True # Render ENeRF with GUI on zju3dv dataset using fp16, higher performance, worse results on some views -evc -t gui -c configs/base.yaml,configs/models/enerfi.yaml,configs/datasets/zju/zju3dv.yaml,configs/specs/optimized.yaml,configs/specs/fp16.yaml exp_name=enerfi_dtu val_dataloader_cfg.dataset_cfg.cache_raw=False val_dataloader_cfg.dataset_cfg.ratio=1.0 val_dataloader_cfg.dataset_cfg.view_sample=0,None,5 val_dataloader_cfg.dataset_cfg.force_sparse_view=True val_dataloader_cfg.dataset_cfg.n_srcs_list=3, val_dataloader_cfg.dataset_cfg.use_vhulls=True # only cache ten images +evc-gui -c configs/base.yaml,configs/models/enerfi.yaml,configs/datasets/zju/zju3dv.yaml,configs/specs/optimized.yaml,configs/specs/fp16.yaml exp_name=enerfi_dtu val_dataloader_cfg.dataset_cfg.cache_raw=False val_dataloader_cfg.dataset_cfg.ratio=1.0 val_dataloader_cfg.dataset_cfg.view_sample=0,None,5 val_dataloader_cfg.dataset_cfg.force_sparse_view=True val_dataloader_cfg.dataset_cfg.n_srcs_list=3, val_dataloader_cfg.dataset_cfg.use_vhulls=True # only cache ten images # Render ENeRF on zju3dv dataset with spiral paths -evc -t test -c configs/base.yaml,configs/models/enerfi.yaml,configs/datasets/zju/zju3dv.yaml,configs/specs/optimized.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml exp_name=enerfi_dtu val_dataloader_cfg.dataset_cfg.cache_raw=False val_dataloader_cfg.dataset_cfg.ratio=1.0 val_dataloader_cfg.dataset_cfg.view_sample=0,None,5 val_dataloader_cfg.dataset_cfg.force_sparse_view=True val_dataloader_cfg.dataset_cfg.n_srcs_list=3, val_dataloader_cfg.dataset_cfg.use_vhulls=True val_dataloader_cfg.dataset_cfg.render_size=768,1366 runner_cfg.visualizer_cfg.save_tag=zju3dv +evc-test -c configs/base.yaml,configs/models/enerfi.yaml,configs/datasets/zju/zju3dv.yaml,configs/specs/optimized.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml exp_name=enerfi_dtu val_dataloader_cfg.dataset_cfg.cache_raw=False val_dataloader_cfg.dataset_cfg.ratio=1.0 val_dataloader_cfg.dataset_cfg.view_sample=0,None,5 val_dataloader_cfg.dataset_cfg.force_sparse_view=True val_dataloader_cfg.dataset_cfg.n_srcs_list=3, val_dataloader_cfg.dataset_cfg.use_vhulls=True val_dataloader_cfg.dataset_cfg.render_size=768,1366 runner_cfg.visualizer_cfg.save_tag=zju3dv # Render ENeRF with GUI on RenBody dataset -evc -t gui -c configs/base.yaml,configs/models/enerfi.yaml,configs/datasets/renbody/0013_01_obj.yaml,configs/specs/optimized.yaml,configs/specs/mask.yaml,configs/specs/vf0.yaml exp_name=enerfi_dtu val_dataloader_cfg.dataset_cfg.n_srcs_list=4, val_dataloader_cfg.dataset_cfg.use_vhulls=True val_dataloader_cfg.dataset_cfg.ratio=1.0 -evc -t gui -c configs/base.yaml,configs/models/enerfi.yaml,configs/datasets/renbody/0008_01_obj.yaml,configs/specs/optimized.yaml,configs/specs/mask.yaml,configs/specs/vf0.yaml exp_name=enerfi_dtu val_dataloader_cfg.dataset_cfg.n_srcs_list=4, val_dataloader_cfg.dataset_cfg.use_vhulls=True val_dataloader_cfg.dataset_cfg.ratio=1.0 +evc-gui -c configs/base.yaml,configs/models/enerfi.yaml,configs/datasets/renbody/0013_01_obj.yaml,configs/specs/optimized.yaml,configs/specs/mask.yaml,configs/specs/vf0.yaml exp_name=enerfi_dtu val_dataloader_cfg.dataset_cfg.n_srcs_list=4, val_dataloader_cfg.dataset_cfg.use_vhulls=True val_dataloader_cfg.dataset_cfg.ratio=1.0 +evc-gui -c configs/base.yaml,configs/models/enerfi.yaml,configs/datasets/renbody/0008_01_obj.yaml,configs/specs/optimized.yaml,configs/specs/mask.yaml,configs/specs/vf0.yaml exp_name=enerfi_dtu val_dataloader_cfg.dataset_cfg.n_srcs_list=4, val_dataloader_cfg.dataset_cfg.use_vhulls=True val_dataloader_cfg.dataset_cfg.ratio=1.0 ``` diff --git a/docs/misc/tricks.md b/docs/misc/tricks.md index bfeb8a3..bb8a139 100644 --- a/docs/misc/tricks.md +++ b/docs/misc/tricks.md @@ -1,15 +1,15 @@ ### Tricks ```shell -evc -t test -c configs/exps/l3mhet/l3mhet_ipstage.yaml configs=configs/specs/geometry.yaml val_dataloader_cfg.dataset_cfg.voxel_size=0.05 val_dataloader_cfg.dataset_cfg.frame_sample=0,1,1 -evc -t test -c configs/exps/enerf/enerf_seq3.yaml exp_name=enerf_dtu configs=configs/specs/fp16.yaml,configs/specs/cubic.yaml,configs/specs/ibr.yaml val_dataloader_cfg.dataset_cfg.render_size=1080,1920 val_dataloader_cfg.dataset_cfg.smoothing_term=15.0 val_dataloader_cfg.dataset_cfg.n_render_views=300 runner_cfg.visualizer_cfg.save_tag=seq3 -evc -t test -c configs/exps/enerf/enerf_seq3.yaml exp_name=enerf_dtu configs=configs/specs/fp16.yaml,configs/specs/cubic.yaml,configs/specs/ibr.yaml runner_cfg.visualizer_cfg.save_tag=seq3 val_dataloader_cfg.dataset_cfg.render_size=1080,1920 val_dataloader_cfg.dataset_cfg.smoothing_term=15.0 val_dataloader_cfg.dataset_cfg.n_render_views=300 val_dataloader_cfg.batch_sampler_cfg.n_srcs_list=2, +evc-test -c configs/exps/l3mhet/l3mhet_ipstage.yaml configs=configs/specs/geometry.yaml val_dataloader_cfg.dataset_cfg.voxel_size=0.05 val_dataloader_cfg.dataset_cfg.frame_sample=0,1,1 +evc-test -c configs/exps/enerf/enerf_seq3.yaml exp_name=enerf_dtu configs=configs/specs/fp16.yaml,configs/specs/cubic.yaml,configs/specs/ibr.yaml val_dataloader_cfg.dataset_cfg.render_size=1080,1920 val_dataloader_cfg.dataset_cfg.smoothing_term=15.0 val_dataloader_cfg.dataset_cfg.n_render_views=300 runner_cfg.visualizer_cfg.save_tag=seq3 +evc-test -c configs/exps/enerf/enerf_seq3.yaml exp_name=enerf_dtu configs=configs/specs/fp16.yaml,configs/specs/cubic.yaml,configs/specs/ibr.yaml runner_cfg.visualizer_cfg.save_tag=seq3 val_dataloader_cfg.dataset_cfg.render_size=1080,1920 val_dataloader_cfg.dataset_cfg.smoothing_term=15.0 val_dataloader_cfg.dataset_cfg.n_render_views=300 val_dataloader_cfg.batch_sampler_cfg.n_srcs_list=2, python scripts/fusion/volume_fusion.py -- -c configs/exps/l3mhet/l3mhet_zju3dv.yaml configs=configs/specs/fp16.yaml,configs/specs/vis.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 val_dataloader_cfg.dataset_cfg.frame_sample=0,None,25 python scripts/fusion/volume_fusion.py -- -c configs/exps/l3mhet/l3mhet_dance3_static.yaml configs=configs/specs/fp16.yaml,configs/specs/vis.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 val_dataloader_cfg.view_sample=0,None,3 -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_313_se.yaml runner_cfg.visualizer_cfg.save_tag=dtu_pretrain val_dataloader_cfg.dataset_cfg.immask_crop=False val_dataloader_cfg.dataset_cfg.imbound_crop=False val_dataloader_cfg.dataset_cfg.immask_fill=True -evc -t test -c configs/exps/l3mhet/l3mhet_seq3.yaml exp_name=l3mhet_seq3 configs=configs/specs/fp16.yaml,configs/specs/interp.yaml val_dataloader_cfg.dataset_cfg.render_size=1080,1920 val_dataloader_cfg.dataset_cfg.smoothing_term=15.0 val_dataloader_cfg.dataset_cfg.n_render_views=300 +evc-test -c configs/projects/stableenerf/enerf/enerf_my_313_se.yaml runner_cfg.visualizer_cfg.save_tag=dtu_pretrain val_dataloader_cfg.dataset_cfg.immask_crop=False val_dataloader_cfg.dataset_cfg.imbound_crop=False val_dataloader_cfg.dataset_cfg.immask_fill=True +evc-test -c configs/exps/l3mhet/l3mhet_seq3.yaml exp_name=l3mhet_seq3 configs=configs/specs/fp16.yaml,configs/specs/interp.yaml val_dataloader_cfg.dataset_cfg.render_size=1080,1920 val_dataloader_cfg.dataset_cfg.smoothing_term=15.0 val_dataloader_cfg.dataset_cfg.n_render_views=300 python scripts/fusion/volume_fusion.py -- -c configs/exps/l3mhet/l3mhet_xuzhen_static.yaml configs=configs/specs/fp16.yaml,configs/specs/vis.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 val_dataloader_cfg.dataset_cfg.view_sample=0,None,6 python scripts/tools/extract_mesh.py --occ_thresh 0.3 -- -c configs/exps/l3mhet/l3mhet_0008_05_static.yaml @@ -20,14 +20,14 @@ python scripts/realtime4dv/charger.py SuperChargedR4DV scr4dv_my_390_optcam -- - # Start a long running profling job to debug training time issues evc-prof -c configs/exps/r4dv/r4dv_${name}_optcam.yaml profiler_cfg.skip_first=0 profiler_cfg.wait=2490 profiler_cfg.warmup=5 profiler_cfg.active=5 profiler_cfg.repeat=0 # long running profiling job -evc -c configs/exps/r4dv/r4dv_${name}_optcam.yaml profiler_cfg.enabled=True profiler_cfg.skip_first=0 profiler_cfg.wait=2490 profiler_cfg.warmup=5 profiler_cfg.active=5 profiler_cfg.repeat=0 profiler_cfg.clear_previous=False runner_cfg.epochs=250 runner_cfg.decay_epochs=1600 # long running profiling job -evc -t gui -c configs/exps/r4dv/r4dv_${name}_optcam.yaml exp_name=scr4dv_${name}_optcam configs=configs/specs/superf.yaml val_dataloader_cfg.dataset_cfg.frame_sample=0,1,1 +evc-train -c configs/exps/r4dv/r4dv_${name}_optcam.yaml profiler_cfg.enabled=True profiler_cfg.skip_first=0 profiler_cfg.wait=2490 profiler_cfg.warmup=5 profiler_cfg.active=5 profiler_cfg.repeat=0 profiler_cfg.clear_previous=False runner_cfg.epochs=250 runner_cfg.decay_epochs=1600 # long running profiling job +evc-gui -c configs/exps/r4dv/r4dv_${name}_optcam.yaml exp_name=scr4dv_${name}_optcam configs=configs/specs/superf.yaml val_dataloader_cfg.dataset_cfg.frame_sample=0,1,1 # Profiling the l3mhet job -evc -c configs/exps/l3mhet/l3mhet_seq3.yaml exp_name=l3mhet_seq3_prof runner_cfg.ep_iter=50 runner_cfg.epochs=1 profiler_cfg.enabled=True profiler_cfg.skip_first=0 profiler_cfg.wait=40 profiler_cfg.warmup=5 profiler_cfg.active=5 profiler_cfg.repeat=1 profiler_cfg.clear_previous=False runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_seq3.yaml exp_name=l3mhet_seq3_prof runner_cfg.ep_iter=50 runner_cfg.epochs=1 profiler_cfg.enabled=True profiler_cfg.skip_first=0 profiler_cfg.wait=40 profiler_cfg.warmup=5 profiler_cfg.active=5 profiler_cfg.repeat=1 profiler_cfg.clear_previous=False runner_cfg.resume=False # Export video for easyvolcap technical communications -evc -t test -c configs/exps/r4dv/r4dv_0013_01_optcam.yaml exp_name=scr4dv_0013_01_optcam configs=configs/specs/superf.yaml val_dataloader_cfg.dataset_cfg.frame_sample=0,150,1 val_dataloader_cfg.dataset_cfg.camera_path_intri=data/paths/0013_01/intri.yml val_dataloader_cfg.dataset_cfg.camera_path_extri=data/paths/0013_01/extri.yml configs=configs/specs/superf.yaml,configs/specs/cubic.yaml,configs/specs/ibr.yaml val_dataloader_cfg.dataset_cfg.smoothing_term=10.0 model_cfg.sampler_cfg.should_release_memory=False val_dataloader_cfg.dataset_cfg.ratio=1.0 val_dataloader_cfg.dataset_cfg.render_size=2160,3840 val_dataloader_cfg.dataset_cfg.n_render_views=600 runner_cfg.visualizer_cfg.vis_ext=.png runner_cfg.visualizer_cfg.video_fps=60 runner_cfg.visualizer_cfg.dpt_cm=virdis +evc-test -c configs/exps/r4dv/r4dv_0013_01_optcam.yaml exp_name=scr4dv_0013_01_optcam configs=configs/specs/superf.yaml val_dataloader_cfg.dataset_cfg.frame_sample=0,150,1 val_dataloader_cfg.dataset_cfg.camera_path_intri=data/paths/0013_01/intri.yml val_dataloader_cfg.dataset_cfg.camera_path_extri=data/paths/0013_01/extri.yml configs=configs/specs/superf.yaml,configs/specs/cubic.yaml,configs/specs/ibr.yaml val_dataloader_cfg.dataset_cfg.smoothing_term=10.0 model_cfg.sampler_cfg.should_release_memory=False val_dataloader_cfg.dataset_cfg.ratio=1.0 val_dataloader_cfg.dataset_cfg.render_size=2160,3840 val_dataloader_cfg.dataset_cfg.n_render_views=600 runner_cfg.visualizer_cfg.vis_ext=.png runner_cfg.visualizer_cfg.video_fps=60 runner_cfg.visualizer_cfg.dpt_cm=virdis # Prepare my server configuration zip -r zsh_vim_tmux.zip .zshrc .oh-my-zsh .tmux .tmux.conf .tmux.conf.local .p10k.zsh .gitconfig .ssh .config/nvim software/exa software/nvim-linux64 software/vmtouch software/viu software/v2ray-sagernet software/aliyunpan -x .ssh/id_rsa diff --git a/docs/projects/enerf.md b/docs/projects/enerf.md index 2ca98c2..17832fc 100644 --- a/docs/projects/enerf.md +++ b/docs/projects/enerf.md @@ -90,16 +90,16 @@ For example, to render the *my_313* sequence of the *ZJU-Mocap* dataset, you can ```shell # GUI Rendering -evc -t gui -c configs/exps/enerf/enerf_my_313_static.yaml exp_name=enerf_dtu # Render the first frame of the sequence -evc -t gui -c configs/exps/enerf/enerf_my_313.yaml exp_name=enerf_dtu # Render the whole sequence +evc-gui -c configs/exps/enerf/enerf_my_313_static.yaml exp_name=enerf_dtu # Render the first frame of the sequence +evc-gui -c configs/exps/enerf/enerf_my_313.yaml exp_name=enerf_dtu # Render the whole sequence # Testing with input views -evc -t test -c configs/exps/enerf/enerf_my_313_static.yaml,configs/specs/eval.yaml exp_name=enerf_dtu runner_cfg.visualizer_cfg.save_tag=enerf_my_313_static # Only render some of the view of the first frame -evc -t test -c configs/exps/enerf/enerf_my_313.yaml,configs/specs/eval.yaml exp_name=enerf_dtu runner_cfg.visualizer_cfg.save_tag=enerf_my_313 # Render some selected testing views and frames +evc-test -c configs/exps/enerf/enerf_my_313_static.yaml,configs/specs/eval.yaml exp_name=enerf_dtu runner_cfg.visualizer_cfg.save_tag=enerf_my_313_static # Only render some of the view of the first frame +evc-test -c configs/exps/enerf/enerf_my_313.yaml,configs/specs/eval.yaml exp_name=enerf_dtu runner_cfg.visualizer_cfg.save_tag=enerf_my_313 # Render some selected testing views and frames # Rendering rotating novel views -evc -t test -c configs/exps/enerf/enerf_my_313_static.yaml,configs/specs/eval.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml exp_name=enerf_dtu runner_cfg.visualizer_cfg.save_tag=enerf_my_313_static # Render a static rotating novel view -evc -t test -c configs/exps/enerf/enerf_my_313.yaml,configs/specs/eval.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml val_dataloader_cfg.dataset_cfg.frame_sample=0,200,1 exp_name=enerf_dtu runner_cfg.visualizer_cfg.save_tag=enerf_my_313 # Render a dynamic rotating novel view of 200 frames sequence +evc-test -c configs/exps/enerf/enerf_my_313_static.yaml,configs/specs/eval.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml exp_name=enerf_dtu runner_cfg.visualizer_cfg.save_tag=enerf_my_313_static # Render a static rotating novel view +evc-test -c configs/exps/enerf/enerf_my_313.yaml,configs/specs/eval.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml val_dataloader_cfg.dataset_cfg.frame_sample=0,200,1 exp_name=enerf_dtu runner_cfg.visualizer_cfg.save_tag=enerf_my_313 # Render a dynamic rotating novel view of 200 frames sequence ``` #### Useful CLI Configurable Arguments @@ -108,19 +108,19 @@ There are many CLI arguments you can use to customize the rendering process (bot ```shell # Render ENeRF with GUI on 1/4 resolution of dna-rendering dataset using only 1/2 of the views and 3 source views for each target view, choice 1 -evc -t gui -c configs/exps/enerf/enerf_0013_01.yaml exp_name=enerf_dtu val_dataloader_cfg.dataset_cfg.cache_raw=False val_dataloader_cfg.dataset_cfg.ratio=0.25 val_dataloader_cfg.dataset_cfg.src_view_sample=0,None,2 val_dataloader_cfg.dataset_cfg.n_srcs_list=3, val_dataloader_cfg.dataset_cfg.use_vhulls=True model_cfg.sampler_cfg.cache_size=10 # only cache ten images +evc-gui -c configs/exps/enerf/enerf_0013_01.yaml exp_name=enerf_dtu val_dataloader_cfg.dataset_cfg.cache_raw=False val_dataloader_cfg.dataset_cfg.ratio=0.25 val_dataloader_cfg.dataset_cfg.src_view_sample=0,None,2 val_dataloader_cfg.dataset_cfg.n_srcs_list=3, val_dataloader_cfg.dataset_cfg.use_vhulls=True model_cfg.sampler_cfg.cache_size=10 # only cache ten images # Render ENeRF with GUI on 1/4 resolution of dna-rendering dataset using only 1/2 of the views and 3 source views for each target view, choice 2 -evc -t gui -c configs/exps/enerf/enerf_0013_01.yaml exp_name=enerf_dtu val_dataloader_cfg.dataset_cfg.cache_raw=False val_dataloader_cfg.dataset_cfg.ratio=0.25 val_dataloader_cfg.dataset_cfg.view_sample=0,None,2 val_dataloader_cfg.dataset_cfg.force_sparse_view=True val_dataloader_cfg.dataset_cfg.n_srcs_list=3, val_dataloader_cfg.dataset_cfg.use_vhulls=True model_cfg.sampler_cfg.cache_size=10 # only cache ten images +evc-gui -c configs/exps/enerf/enerf_0013_01.yaml exp_name=enerf_dtu val_dataloader_cfg.dataset_cfg.cache_raw=False val_dataloader_cfg.dataset_cfg.ratio=0.25 val_dataloader_cfg.dataset_cfg.view_sample=0,None,2 val_dataloader_cfg.dataset_cfg.force_sparse_view=True val_dataloader_cfg.dataset_cfg.n_srcs_list=3, val_dataloader_cfg.dataset_cfg.use_vhulls=True model_cfg.sampler_cfg.cache_size=10 # only cache ten images # Render ENeRF with GUI on full resolution of dna-rendering dataset using only all views as source views and 3 source views for each target view, using fp16, higher performance, worse results on some views -evc -t gui -c configs/exps/enerf/enerf_0013_01.yaml,configs/specs/fp16.yaml exp_name=enerf_dtu val_dataloader_cfg.dataset_cfg.cache_raw=False val_dataloader_cfg.dataset_cfg.ratio=1.0 val_dataloader_cfg.dataset_cfg.n_srcs_list=3, val_dataloader_cfg.dataset_cfg.use_vhulls=True model_cfg.sampler_cfg.cache_size=10 # only cache ten images +evc-gui -c configs/exps/enerf/enerf_0013_01.yaml,configs/specs/fp16.yaml exp_name=enerf_dtu val_dataloader_cfg.dataset_cfg.cache_raw=False val_dataloader_cfg.dataset_cfg.ratio=1.0 val_dataloader_cfg.dataset_cfg.n_srcs_list=3, val_dataloader_cfg.dataset_cfg.use_vhulls=True model_cfg.sampler_cfg.cache_size=10 # only cache ten images # Render ENeRF on resolution 768,1336 of dna-rendering dataset with rotating paths -evc -t test -c configs/exps/enerf/enerf_0013_01.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml exp_name=enerf_dtu val_dataloader_cfg.dataset_cfg.cache_raw=False val_dataloader_cfg.dataset_cfg.ratio=1.0 val_dataloader_cfg.dataset_cfg.n_srcs_list=3, val_dataloader_cfg.dataset_cfg.use_vhulls=True model_cfg.sampler_cfg.cache_size=10 val_dataloader_cfg.dataset_cfg.render_size=768,1366 val_dataloader_cfg.dataset_cfg.frame_sample=0,150,1 val_dataloader_cfg.dataset_cfg.n_render_views=150 runner_cfg.visualizer_cfg.save_tag=spiral +evc-test -c configs/exps/enerf/enerf_0013_01.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml exp_name=enerf_dtu val_dataloader_cfg.dataset_cfg.cache_raw=False val_dataloader_cfg.dataset_cfg.ratio=1.0 val_dataloader_cfg.dataset_cfg.n_srcs_list=3, val_dataloader_cfg.dataset_cfg.use_vhulls=True model_cfg.sampler_cfg.cache_size=10 val_dataloader_cfg.dataset_cfg.render_size=768,1366 val_dataloader_cfg.dataset_cfg.frame_sample=0,150,1 val_dataloader_cfg.dataset_cfg.n_render_views=150 runner_cfg.visualizer_cfg.save_tag=spiral # Render ENeRF on dna-rendering dataset with a pre-generated path (stored in data/paths/0013_01/*.yml) -evc -t test -c configs/exps/enerf/enerf_0013_01.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml exp_name=enerf_dtu val_dataloader_cfg.dataset_cfg.render_size=-1,-1 val_dataloader_cfg.dataset_cfg.save_interp_path=False val_dataloader_cfg.dataset_cfg.camera_path_intri=data/paths/0013_01/intri.yml val_dataloader_cfg.dataset_cfg.camera_path_extri=data/paths/0013_01/extri.yml val_dataloader_cfg.dataset_cfg.frame_sample=0,16,1 val_dataloader_cfg.dataset_cfg.n_render_views=16 val_dataloader_cfg.dataset_cfg.interp_type=NONE val_dataloader_cfg.dataset_cfg.interp_cfg.smoothing_term=-1.0 val_dataloader_cfg.dataset_cfg.use_vhulls=True model_cfg.sampler_cfg.cache_size=10 runner_cfg.visualizer_cfg.save_tag=path +evc-test -c configs/exps/enerf/enerf_0013_01.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml exp_name=enerf_dtu val_dataloader_cfg.dataset_cfg.render_size=-1,-1 val_dataloader_cfg.dataset_cfg.save_interp_path=False val_dataloader_cfg.dataset_cfg.camera_path_intri=data/paths/0013_01/intri.yml val_dataloader_cfg.dataset_cfg.camera_path_extri=data/paths/0013_01/extri.yml val_dataloader_cfg.dataset_cfg.frame_sample=0,16,1 val_dataloader_cfg.dataset_cfg.n_render_views=16 val_dataloader_cfg.dataset_cfg.interp_type=NONE val_dataloader_cfg.dataset_cfg.interp_cfg.smoothing_term=-1.0 val_dataloader_cfg.dataset_cfg.use_vhulls=True model_cfg.sampler_cfg.cache_size=10 runner_cfg.visualizer_cfg.save_tag=path ``` - `val_dataloader_cfg.dataset_cfg.cache_raw`: whether to cache the raw images in memory as bytes object or just as `UnstructuredTensors`, you can change it to `True` to cache the raw images in memory as bytes object if you have enough memory; @@ -152,17 +152,17 @@ The difference between the commands listed in the [Rendering of DTU Pretrained M For example, to render the *actor1* sequence of the *ENeRF-Outdoor* dataset, you can run: ```shell # GUI Rendering -evc -t gui -c configs/exps/enerf/enerf_actor1.yaml,configs/specs/static.yaml # Render the first frame of the sequence -evc -t gui -c configs/exps/enerf/enerf_actor1.yaml # Render the whole sequence +evc-gui -c configs/exps/enerf/enerf_actor1.yaml,configs/specs/static.yaml # Render the first frame of the sequence +evc-gui -c configs/exps/enerf/enerf_actor1.yaml # Render the whole sequence # Testing with input views -evc -t test -c configs/exps/enerf/enerf_actor1.yaml,configs/specs/static.yaml,configs/specs/eval.yaml # Only render some of the view of the first frame -evc -t test -c configs/exps/enerf/enerf_actor1.yaml,configs/specs/eval.yaml # Render some selected testing views and frames +evc-test -c configs/exps/enerf/enerf_actor1.yaml,configs/specs/static.yaml,configs/specs/eval.yaml # Only render some of the view of the first frame +evc-test -c configs/exps/enerf/enerf_actor1.yaml,configs/specs/eval.yaml # Render some selected testing views and frames # Rendering rotating novel views -evc -t test -c configs/exps/enerf/enerf_actor1.yaml,configs/specs/eval.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml # Render a dynamic rotating novel view +evc-test -c configs/exps/enerf/enerf_actor1.yaml,configs/specs/eval.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml # Render a dynamic rotating novel view # Rendering cubic interpolating novel views -evc -t test -c configs/exps/enerf/enerf_actor1.yaml,configs/specs/eval.yaml,configs/specs/cubic.yaml,configs/specs/ibr.yaml # Render a dynamic cubic interpolating novel view +evc-test -c configs/exps/enerf/enerf_actor1.yaml,configs/specs/eval.yaml,configs/specs/cubic.yaml,configs/specs/ibr.yaml # Render a dynamic cubic interpolating novel view ``` @@ -177,7 +177,7 @@ You can use this script to test the installation and training process of *ENeRF* However, the same as [training guide of *4K4D*](./realtime4dv.md#training-on-dna-rendering-zju-mocap-and-nhr), it's recommended to spend like 5 minutes to train a single-frame version of *ENeRF* to identify potential issues before running on the full sequence (24 hours). ```shell -evc -c configs/exps/enerf/enerf_actor1.yaml,configs/specs/static.yaml exp_name=check +evc-train -c configs/exps/enerf/enerf_actor1.yaml,configs/specs/static.yaml exp_name=check ``` During the first 100-200 iterations, you should see that the training PSNR increase to 23-24 dB. Otherwise there might be bugs during your dataset preparation or installation process. @@ -185,7 +185,7 @@ During the first 100-200 iterations, you should see that the training PSNR incre The actual training of the full model is more straight forward: ```shell -evc -c configs/exps/enerf/enerf_actor1.yaml +evc-train -c configs/exps/enerf/enerf_actor1.yaml ``` For training on other sequences or dataset, change this line `configs/exps/enerf/enerf_actor1.yaml` to something else like `configs/exps/enerf/enerf_my_394.yaml` and save the modified config file separatedly under the `configs/exps/enerf` directory. @@ -199,7 +199,7 @@ To train *ENeRF* from a pretrained model, eg. our provided [DTU pretrained model For example, if you want to train *ENeRF* on *actor1* of *ENeRF-Outdoor* dataset from the provided DTU pretrained model, you should download the model and place it in `data/trained_model/enerf_dtu_actor1` (here we set `$exp_name=enerf_dtu_actor1`), then, you can run the following command to train *ENeRF* from the pretrained model: ```shell -evc -c configs/exps/enerf/enerf_actor1.yaml exp_name=enerf_dtu_actor1 runner_cfg.resume=True runner_cfg.epochs=2000 # 2000 = 1600(pretrained epochs) + 400(finetuned epochs) +evc-train -c configs/exps/enerf/enerf_actor1.yaml exp_name=enerf_dtu_actor1 runner_cfg.resume=True runner_cfg.epochs=2000 # 2000 = 1600(pretrained epochs) + 400(finetuned epochs) ``` The finetuned model will be saved in `data/trained_model/enerf_dtu_actor1/latest.pt` after training, and you can follow the [Rendering](#rendering-of-pretrained-model) section to render the finetuned model, remember to change the `exp_name` to `enerf_dtu_actor1`. @@ -216,7 +216,7 @@ You can follow the instructions we provide in the [4K4D Custom Datasets](./realt python scripts/tools/visualize_cameras.py --data_root ${data_root} # Composable experiments -evc -t gui -c configs/base.yaml,configs/models/enerfi.yaml,configs/datasets/volcano/skateboard.yaml,configs/specs/mask.yaml exp_name=enerfi_dtu val_dataloader_cfg.dataset_cfg.frame_sample=0,1,1 +evc-gui -c configs/base.yaml,configs/models/enerfi.yaml,configs/datasets/volcano/skateboard.yaml,configs/specs/mask.yaml exp_name=enerfi_dtu val_dataloader_cfg.dataset_cfg.frame_sample=0,1,1 ``` diff --git a/easyvolcap/models/networks/regressors/image_based_regressor.py b/easyvolcap/models/networks/regressors/image_based_regressor.py index 2380399..16148ab 100644 --- a/easyvolcap/models/networks/regressors/image_based_regressor.py +++ b/easyvolcap/models/networks/regressors/image_based_regressor.py @@ -22,6 +22,8 @@ def __init__(self, chunk_size: int = 1e20, out_actvn: nn.Module = nn.Identity(), + + **kwargs, ) -> None: super().__init__() self.in_dim = in_dim diff --git a/easyvolcap/runners/websocket_server.py b/easyvolcap/runners/websocket_server.py index 3874af8..df616bf 100644 --- a/easyvolcap/runners/websocket_server.py +++ b/easyvolcap/runners/websocket_server.py @@ -151,7 +151,8 @@ async def server_loop(self, websocket: websockets.WebSocket, path: str): log('Server image sum:', self.image.sum()) def render(self, batch: dotdict): - batch = to_cuda(add_iter(add_batch(batch), 0, 1)) # int -> tensor -> add batch -> cuda, smalle operations are much faster on cpu + batch = self.dataset.get_viewer_batch(batch) + batch = to_cuda(add_batch(add_iter(batch, 0, 1))) # Forward pass self.runner.maybe_jit_model(batch) diff --git a/easyvolcap/scripts/client.py b/easyvolcap/scripts/client.py index 6b33459..49c6807 100644 --- a/easyvolcap/scripts/client.py +++ b/easyvolcap/scripts/client.py @@ -110,7 +110,6 @@ def __init__(self, self.discrete_t = False self.use_vsync = False - self.camera_cfg = camera_cfg self.init_camera(camera_cfg) # prepare for the actual rendering now, needs dataset -> needs runner self.init_glfw() # ?: this will open up the window and let the user wait, should we move this up? self.init_imgui() @@ -143,7 +142,7 @@ def __init__(self, def init_camera(self, camera_cfg: dotdict): self.camera = Camera(**camera_cfg) - self.camera.front = self.camera.front # perform alignment correction + self.camera.front = self.camera.front def reset(self): self.init_camera(self.camera_cfg) @@ -173,7 +172,6 @@ def draw_rendering_gui(self, batch: dotdict = dotdict(), output: dotdict = dotdi if imgui.collapsing_header('Rendering'): self.visualize_axes = imgui_toggle.toggle('Visualize axes', self.visualize_axes, config=self.static.toggle_ios_style)[1] self.visualize_bounds = imgui_toggle.toggle('Visualize bounds', self.visualize_bounds, config=self.static.toggle_ios_style)[1] - self.visualize_cameras = imgui_toggle.toggle('Visualize cameras', self.visualize_cameras, config=self.static.toggle_ios_style)[1] def draw_model_gui(self, batch: dotdict = dotdict(), output: dotdict = dotdict()): pass diff --git a/easyvolcap/scripts/wrap.py b/easyvolcap/scripts/wrap.py index 47ff371..f532731 100644 --- a/easyvolcap/scripts/wrap.py +++ b/easyvolcap/scripts/wrap.py @@ -62,6 +62,10 @@ def gui_entrypoint(): if '-c' not in sys.argv: sys.argv.insert(1, '-c') sys.argv.insert(2, 'configs/specs/gui.yaml') + else: + cfg_idx = sys.argv.index('-c') + 1 + sys.argv[cfg_idx] = 'configs/base.yaml,' + sys.argv[cfg_idx] + configurable_entrypoint(EASYVOLCAP=EASYVOLCAP + ' ' + '-t gui') @@ -70,6 +74,9 @@ def ws_entrypoint(): if '-c' not in sys.argv: sys.argv.insert(1, '-c') sys.argv.insert(2, 'configs/base.yaml') + else: + cfg_idx = sys.argv.index('-c') + 1 + sys.argv[cfg_idx] = 'configs/base.yaml,' + sys.argv[cfg_idx] args = sys.argv args = ['python -q -X faulthandler easyvolcap/scripts/client.py'] + args[1:] diff --git a/readme.md b/readme.md index add465b..32d9ed1 100644 --- a/readme.md +++ b/readme.md @@ -85,20 +85,38 @@ The pre-trained model for ENeRFi on the DTU dataset can be downloaded from [this ```shell # Render ENeRFi with pretrained model -evc -t test -c configs/exps/enerfi/enerfi_${expname}.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml runner_cfg.visualizer_cfg.save_tag=${expname} exp_name=enerfi_dtu +evc-test -c configs/exps/enerfi/enerfi_${expname}.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml runner_cfg.visualizer_cfg.save_tag=${expname} exp_name=enerfi_dtu # Render ENeRFi with GUI -evc -t gui -c configs/exps/enerfi/enerfi_${expname}.yaml exp_name=enerfi_dtu # 2.5 FPS on 3060 +evc-gui -c configs/exps/enerfi/enerfi_${expname}.yaml exp_name=enerfi_dtu # 2.5 FPS on 3060 ``` If more performance is desired: ```shell # Fine quality, faster rendering -evc -t gui -c configs/exps/enerfi/enerfi_actor1_4_subseq.yaml exp_name=enerfi_dtu model_cfg.sampler_cfg.n_planes=32,8 model_cfg.sampler_cfg.n_samples=4,1 # 3.6 FPS on 3060 +evc-gui -c configs/exps/enerfi/enerfi_${expname}.yaml exp_name=enerfi_dtu model_cfg.sampler_cfg.n_planes=32,8 model_cfg.sampler_cfg.n_samples=4,1 # 3.6 FPS on 3060 # Worst quality, fastest rendering -evc -t gui -c configs/exps/enerfi/enerfi_actor1_4_subseq.yaml,configs/specs/fp16.yaml exp_name=enerfi_dtu model_cfg.sampler_cfg.n_planes=32,8 model_cfg.sampler_cfg.n_samples=4,1 # 5.0 FPS on 3060 +evc-gui -c configs/exps/enerfi/enerfi_${expname}.yaml,configs/specs/fp16.yaml exp_name=enerfi_dtu model_cfg.sampler_cfg.n_planes=32,8 model_cfg.sampler_cfg.n_samples=4,1 # 5.0 FPS on 3060 +``` + +*Note that ***EasyVolcap*** supports WebSocket based server-side rendering.* [More info](docs/design/websocket.md). + +To use the WebSocket based rendering, append the config `server.yaml` to any of the native rendering command beginning with `evc-gui`. + +```shell +# Run the rendering server, append `configs/specs/server.yaml` to the config file list +evc-gui -c configs/exps/enerfi/enerfi_${expname}.yaml,configs/specs/fp16.yaml,configs/specs/server.yaml exp_name=enerfi_dtu model_cfg.sampler_cfg.n_planes=32,8 model_cfg.sampler_cfg.n_samples=4,1 +``` + +And run the viewer in your desired viewing client, tested on Windows, MacOS and Linux. + +```shell +# Separate WebSocket Client parameter and evc parameter with --, for now, the viewer can be configured with evc +# Replace 10.76.5.252 with your server IP +# -c configs/datasets/enerf_outdoor/enerf_outdoor.yaml with what ever other config to use +evc-ws --host 10.76.5.252 --port 1024 -- -c configs/datasets/enerf_outdoor/enerf_outdoor.yaml viewer_cfg.window_size="768,1366" ``` ### Running Instant-NGP+T @@ -115,10 +133,13 @@ We need to write a config file for this model ```shell # With your config files ready, you can run the following command to train the model -evc -c configs/exps/l3mhet/l3mhet_${expname}.yaml +evc-train -c configs/exps/l3mhet/l3mhet_${expname}.yaml # Now run the following command to render some output -evc -t test -c configs/exps/l3mhet/l3mhet_${expname}.yaml,configs/specs/spiral.yaml +evc-test -c configs/exps/l3mhet/l3mhet_${expname}.yaml,configs/specs/spiral.yaml + +# And maybe render the model with GUI in lower resolution +evc-gui -c configs/exps/l3mhet/l3mhet_${expname}.yaml viewer_cfg.render_ratio=0.15 ``` [`configs/specs/spiral.yaml`](configs/specs/spiral.yaml): please check this file for more details, it's a collection of configs to tell the dataloader and visualizer to generate a spiral path by interpolating the given cameras @@ -167,13 +188,13 @@ The [`colmap.yaml`](configs/specs/colmap.yaml) provides some heuristics for larg ```shell # Train a 3DGS model on the ${expname} dataset -evc -c configs/exps/gaussiant/gaussiant_${expname}.yaml # might run out of VRAM, try reducing densify until iter +evc-train -c configs/exps/gaussiant/gaussiant_${expname}.yaml # might run out of VRAM, try reducing densify until iter # Perform rendering on the trained ${expname} dataset -evc -t test -c configs/exps/gaussiant/gaussiant_${expname}.yaml,configs/specs/superm.yaml,configs/specs/spiral.yaml +evc-test -c configs/exps/gaussiant/gaussiant_${expname}.yaml,configs/specs/superm.yaml,configs/specs/spiral.yaml # Perform rendering with GUI, do this on a machine with monitor, tested on Windows and Ubuntu -evc -t gui -c configs/exps/gaussiant/gaussiant_${expname}.yaml,configs/specs/superm.yaml +evc-gui -c configs/exps/gaussiant/gaussiant_${expname}.yaml ``` The [`superm.yaml`](configs/specs/superm.yaml) skips the loading of input images and other initializations for network-only rendering since all the information we need is contained inside the trained model. diff --git a/scripts/actorshq/convert_all_sequences.sh b/scripts/actorshq/convert_all_sequences.sh index 42fb8c6..5d5a80e 100644 --- a/scripts/actorshq/convert_all_sequences.sh +++ b/scripts/actorshq/convert_all_sequences.sh @@ -28,48 +28,48 @@ python scripts/actorshq/report_bounds.py --data_root data/actorshq/Actor07/Seque python scripts/actorshq/report_bounds.py --data_root data/actorshq/Actor08/Sequence1/1x python scripts/actorshq/report_bounds.py --data_root data/actorshq/Actor08/Sequence2/1x -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0001_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0001_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0001_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0001_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0001_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0001_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0001_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0001_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0002_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0002_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0002_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0002_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0002_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0002_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0002_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0002_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0003_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0003_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0003_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0003_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml -# evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0004_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 -# evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0004_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml +# evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0004_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 +# evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0004_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0004_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0004_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0004_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0004_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0005_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0005_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0005_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0005_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0005_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0005_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0005_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0005_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0006_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0006_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0006_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0006_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0006_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0006_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0006_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0006_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0007_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0007_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0007_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0007_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0008_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0008_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0008_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0008_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0008_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0008_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0008_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0008_02.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/surfs.yaml # Special cases for memory consideration -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0006_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.frame_sample=2000,None,1 val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 -evc -t test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0006_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml dataloader_cfg.dataset_cfg.frame_sample=2000,None,1 val_dataloader_cfg.dataset_cfg.frame_sample=2000,None,1,configs/specs/surfs.yaml +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0006_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml,configs/specs/vhulls.yaml val_dataloader_cfg.dataset_cfg.frame_sample=2000,None,1 val_dataloader_cfg.dataset_cfg.ratio=0.5 # jump 2 +evc-test -c configs/base.yaml,configs/models/r4dv.yaml,configs/datasets/actorshq/0006_01.yaml,configs/specs/mask.yaml,configs/specs/vis.yaml dataloader_cfg.dataset_cfg.frame_sample=2000,None,1 val_dataloader_cfg.dataset_cfg.frame_sample=2000,None,1,configs/specs/surfs.yaml diff --git a/scripts/enerf_outdoor/optimize_camera.sh b/scripts/enerf_outdoor/optimize_camera.sh index 65118f7..716b6d1 100644 --- a/scripts/enerf_outdoor/optimize_camera.sh +++ b/scripts/enerf_outdoor/optimize_camera.sh @@ -1,7 +1,7 @@ -evc -c configs/exps/l3mhet/l3mhet_actor1_static.yaml -evc -c configs/exps/l3mhet/l3mhet_actor2_static.yaml -evc -c configs/exps/l3mhet/l3mhet_actor3_static.yaml -evc -c configs/exps/l3mhet/l3mhet_actor1_4_static.yaml -evc -c configs/exps/l3mhet/l3mhet_actor2_3_static.yaml -evc -c configs/exps/l3mhet/l3mhet_actor5_6_static.yaml -evc -c configs/exps/l3mhet/l3mhet_actor1_complex_static.yaml +evc-train -c configs/exps/l3mhet/l3mhet_actor1_static.yaml +evc-train -c configs/exps/l3mhet/l3mhet_actor2_static.yaml +evc-train -c configs/exps/l3mhet/l3mhet_actor3_static.yaml +evc-train -c configs/exps/l3mhet/l3mhet_actor1_4_static.yaml +evc-train -c configs/exps/l3mhet/l3mhet_actor2_3_static.yaml +evc-train -c configs/exps/l3mhet/l3mhet_actor5_6_static.yaml +evc-train -c configs/exps/l3mhet/l3mhet_actor1_complex_static.yaml diff --git a/scripts/mobile_stage/optimize_camera.sh b/scripts/mobile_stage/optimize_camera.sh index 0fcdcf2..4892098 100644 --- a/scripts/mobile_stage/optimize_camera.sh +++ b/scripts/mobile_stage/optimize_camera.sh @@ -1,6 +1,6 @@ -evc -c configs/exps/l3mhet/l3mhet_xuzhen_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_purple_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_black_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_white_static.yaml runner_cfg.resume=False -# evc -c configs/exps/l3mhet/l3mhet_dance3_static.yaml runner_cfg.resume=False -# evc -c configs/exps/l3mhet/l3mhet_female_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_xuzhen_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_purple_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_black_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_white_static.yaml runner_cfg.resume=False +# evc-train -c configs/exps/l3mhet/l3mhet_dance3_static.yaml runner_cfg.resume=False +# evc-train -c configs/exps/l3mhet/l3mhet_female_static.yaml runner_cfg.resume=False diff --git a/scripts/renbody/optimize_camera.sh b/scripts/renbody/optimize_camera.sh index 8f869e1..886333c 100644 --- a/scripts/renbody/optimize_camera.sh +++ b/scripts/renbody/optimize_camera.sh @@ -1,22 +1,22 @@ -evc -c configs/exps/l3mhet/l3mhet_0008_01_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0008_03_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0008_05_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0011_11_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0012_01_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0012_03_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0012_11_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0013_03_static.yaml runner_cfg.resume=False -# evc -c configs/exps/l3mhet/l3mhet_0013_01_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0013_06_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0013_09_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0013_11_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0019_08_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0019_09_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0021_01_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0021_02_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0021_03_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0022_04_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0022_07_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0023_01_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0023_04_static.yaml runner_cfg.resume=False -evc -c configs/exps/l3mhet/l3mhet_0023_06_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0008_01_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0008_03_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0008_05_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0011_11_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0012_01_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0012_03_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0012_11_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0013_03_static.yaml runner_cfg.resume=False +# evc-train -c configs/exps/l3mhet/l3mhet_0013_01_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0013_06_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0013_09_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0013_11_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0019_08_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0019_09_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0021_01_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0021_02_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0021_03_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0022_04_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0022_07_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0023_01_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0023_04_static.yaml runner_cfg.resume=False +evc-train -c configs/exps/l3mhet/l3mhet_0023_06_static.yaml runner_cfg.resume=False diff --git a/scripts/renbody/space_carving.sh b/scripts/renbody/space_carving.sh index 152bfaa..d953d1c 100644 --- a/scripts/renbody/space_carving.sh +++ b/scripts/renbody/space_carving.sh @@ -1,13 +1,13 @@ -evc -c configs/exps/ppt/r4dv_0008_05.yaml configs=configs/specs/vhulls.yaml -evc -c configs/exps/ppt/r4dv_0011_11.yaml configs=configs/specs/vhulls.yaml -evc -c configs/exps/ppt/r4dv_0012_01.yaml configs=configs/specs/vhulls.yaml -evc -c configs/exps/ppt/r4dv_0012_03.yaml configs=configs/specs/vhulls.yaml -evc -c configs/exps/ppt/r4dv_0012_11.yaml configs=configs/specs/vhulls.yaml -evc -c configs/exps/ppt/r4dv_0013_11.yaml configs=configs/specs/vhulls.yaml -evc -c configs/exps/ppt/r4dv_0019_08.yaml configs=configs/specs/vhulls.yaml -evc -c configs/exps/ppt/r4dv_0019_09.yaml configs=configs/specs/vhulls.yaml -evc -c configs/exps/ppt/r4dv_0021_01.yaml configs=configs/specs/vhulls.yaml -evc -c configs/exps/ppt/r4dv_0021_02.yaml configs=configs/specs/vhulls.yaml -evc -c configs/exps/ppt/r4dv_0021_03.yaml configs=configs/specs/vhulls.yaml -evc -c configs/exps/ppt/r4dv_0022_04.yaml configs=configs/specs/vhulls.yaml -evc -c configs/exps/ppt/r4dv_0022_07.yaml configs=configs/specs/vhulls.yaml +evc-train -c configs/exps/ppt/r4dv_0008_05.yaml configs=configs/specs/vhulls.yaml +evc-train -c configs/exps/ppt/r4dv_0011_11.yaml configs=configs/specs/vhulls.yaml +evc-train -c configs/exps/ppt/r4dv_0012_01.yaml configs=configs/specs/vhulls.yaml +evc-train -c configs/exps/ppt/r4dv_0012_03.yaml configs=configs/specs/vhulls.yaml +evc-train -c configs/exps/ppt/r4dv_0012_11.yaml configs=configs/specs/vhulls.yaml +evc-train -c configs/exps/ppt/r4dv_0013_11.yaml configs=configs/specs/vhulls.yaml +evc-train -c configs/exps/ppt/r4dv_0019_08.yaml configs=configs/specs/vhulls.yaml +evc-train -c configs/exps/ppt/r4dv_0019_09.yaml configs=configs/specs/vhulls.yaml +evc-train -c configs/exps/ppt/r4dv_0021_01.yaml configs=configs/specs/vhulls.yaml +evc-train -c configs/exps/ppt/r4dv_0021_02.yaml configs=configs/specs/vhulls.yaml +evc-train -c configs/exps/ppt/r4dv_0021_03.yaml configs=configs/specs/vhulls.yaml +evc-train -c configs/exps/ppt/r4dv_0022_04.yaml configs=configs/specs/vhulls.yaml +evc-train -c configs/exps/ppt/r4dv_0022_07.yaml configs=configs/specs/vhulls.yaml diff --git a/scripts/tools/legacy/stableenerf_enerf_baseline.sh b/scripts/tools/legacy/stableenerf_enerf_baseline.sh index f3a1aa1..91e1dbb 100644 --- a/scripts/tools/legacy/stableenerf_enerf_baseline.sh +++ b/scripts/tools/legacy/stableenerf_enerf_baseline.sh @@ -11,37 +11,37 @@ python scripts/tools/prepare_finetune.py enerf_dtu enerf_my_393_se python scripts/tools/prepare_finetune.py enerf_dtu enerf_my_394_se # Extrac visual hulls using all views -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_313_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_315_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_377_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_386_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_387_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_390_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_392_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_393_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_394_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 +evc-test -c configs/projects/stableenerf/enerf/enerf_my_313_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 +evc-test -c configs/projects/stableenerf/enerf/enerf_my_315_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 +evc-test -c configs/projects/stableenerf/enerf/enerf_my_377_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 +evc-test -c configs/projects/stableenerf/enerf/enerf_my_386_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 +evc-test -c configs/projects/stableenerf/enerf/enerf_my_387_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 +evc-test -c configs/projects/stableenerf/enerf/enerf_my_390_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 +evc-test -c configs/projects/stableenerf/enerf/enerf_my_392_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 +evc-test -c configs/projects/stableenerf/enerf/enerf_my_393_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 +evc-test -c configs/projects/stableenerf/enerf/enerf_my_394_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 # Save pretrain rendering results -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_313_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_315_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_377_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_386_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_387_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_390_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_392_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_393_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' -evc -t test -c configs/projects/stableenerf/enerf/enerf_my_394_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' +evc-test -c configs/projects/stableenerf/enerf/enerf_my_313_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' +evc-test -c configs/projects/stableenerf/enerf/enerf_my_315_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' +evc-test -c configs/projects/stableenerf/enerf/enerf_my_377_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' +evc-test -c configs/projects/stableenerf/enerf/enerf_my_386_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' +evc-test -c configs/projects/stableenerf/enerf/enerf_my_387_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' +evc-test -c configs/projects/stableenerf/enerf/enerf_my_390_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' +evc-test -c configs/projects/stableenerf/enerf/enerf_my_392_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' +evc-test -c configs/projects/stableenerf/enerf/enerf_my_393_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' +evc-test -c configs/projects/stableenerf/enerf/enerf_my_394_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' # Run finetuning and save finetuned results -evc -c configs/projects/stableenerf/enerf/enerf_my_313_se.yaml -evc -c configs/projects/stableenerf/enerf/enerf_my_315_se.yaml -evc -c configs/projects/stableenerf/enerf/enerf_my_377_se.yaml -evc -c configs/projects/stableenerf/enerf/enerf_my_386_se.yaml -evc -c configs/projects/stableenerf/enerf/enerf_my_387_se.yaml -evc -c configs/projects/stableenerf/enerf/enerf_my_390_se.yaml -evc -c configs/projects/stableenerf/enerf/enerf_my_392_se.yaml -evc -c configs/projects/stableenerf/enerf/enerf_my_393_se.yaml -evc -c configs/projects/stableenerf/enerf/enerf_my_394_se.yaml +evc-train -c configs/projects/stableenerf/enerf/enerf_my_313_se.yaml +evc-train -c configs/projects/stableenerf/enerf/enerf_my_315_se.yaml +evc-train -c configs/projects/stableenerf/enerf/enerf_my_377_se.yaml +evc-train -c configs/projects/stableenerf/enerf/enerf_my_386_se.yaml +evc-train -c configs/projects/stableenerf/enerf/enerf_my_387_se.yaml +evc-train -c configs/projects/stableenerf/enerf/enerf_my_390_se.yaml +evc-train -c configs/projects/stableenerf/enerf/enerf_my_392_se.yaml +evc-train -c configs/projects/stableenerf/enerf/enerf_my_393_se.yaml +evc-train -c configs/projects/stableenerf/enerf/enerf_my_394_se.yaml # SECTION: NHR @@ -52,19 +52,19 @@ python scripts/tools/prepare_finetune.py enerf_dtu enerf_sport3_se python scripts/tools/prepare_finetune.py enerf_dtu enerf_basketball_se # Extrac visual hulls using all views -evc -t test -c configs/projects/stableenerf/enerf/enerf_sport1_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 -evc -t test -c configs/projects/stableenerf/enerf/enerf_sport2_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 -evc -t test -c configs/projects/stableenerf/enerf/enerf_sport3_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 -evc -t test -c configs/projects/stableenerf/enerf/enerf_basketball_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 +evc-test -c configs/projects/stableenerf/enerf/enerf_sport1_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 +evc-test -c configs/projects/stableenerf/enerf/enerf_sport2_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 +evc-test -c configs/projects/stableenerf/enerf/enerf_sport3_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 +evc-test -c configs/projects/stableenerf/enerf/enerf_basketball_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' dry_run=True val_dataloader_cfg.dataset_cfg.frame_sample=0,null,1 # Save pretrain rendering results -evc -t test -c configs/projects/stableenerf/enerf/enerf_sport1_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' -evc -t test -c configs/projects/stableenerf/enerf/enerf_sport2_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' -evc -t test -c configs/projects/stableenerf/enerf/enerf_sport3_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' -evc -t test -c configs/projects/stableenerf/enerf/enerf_basketball_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' +evc-test -c configs/projects/stableenerf/enerf/enerf_sport1_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' +evc-test -c configs/projects/stableenerf/enerf/enerf_sport2_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' +evc-test -c configs/projects/stableenerf/enerf/enerf_sport3_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' +evc-test -c configs/projects/stableenerf/enerf/enerf_basketball_se.yaml runner_cfg.visualizer_cfg.save_tag='pretrain' # Run finetuning and save finetuned results -evc -c configs/projects/stableenerf/enerf/enerf_sport1_se.yaml -evc -c configs/projects/stableenerf/enerf/enerf_sport2_se.yaml -evc -c configs/projects/stableenerf/enerf/enerf_sport3_se.yaml -evc -c configs/projects/stableenerf/enerf/enerf_basketball_se.yaml +evc-train -c configs/projects/stableenerf/enerf/enerf_sport1_se.yaml +evc-train -c configs/projects/stableenerf/enerf/enerf_sport2_se.yaml +evc-train -c configs/projects/stableenerf/enerf/enerf_sport3_se.yaml +evc-train -c configs/projects/stableenerf/enerf/enerf_basketball_se.yaml diff --git a/scripts/zjumocap/optimize_camera.sh b/scripts/zjumocap/optimize_camera.sh index c27535c..788bb68 100644 --- a/scripts/zjumocap/optimize_camera.sh +++ b/scripts/zjumocap/optimize_camera.sh @@ -1,6 +1,6 @@ -evc -c configs/exps/l3mhet/l3mhet_my_377_static.yaml runner_cfg.epochs=20 -evc -c configs/exps/l3mhet/l3mhet_my_386_static.yaml runner_cfg.epochs=20 -evc -c configs/exps/l3mhet/l3mhet_my_387_static.yaml runner_cfg.epochs=20 -evc -c configs/exps/l3mhet/l3mhet_my_390_static.yaml runner_cfg.epochs=20 -evc -c configs/exps/l3mhet/l3mhet_my_392_static.yaml runner_cfg.epochs=20 -evc -c configs/exps/l3mhet/l3mhet_my_393_static.yaml runner_cfg.epochs=20 +evc-train -c configs/exps/l3mhet/l3mhet_my_377_static.yaml runner_cfg.epochs=20 +evc-train -c configs/exps/l3mhet/l3mhet_my_386_static.yaml runner_cfg.epochs=20 +evc-train -c configs/exps/l3mhet/l3mhet_my_387_static.yaml runner_cfg.epochs=20 +evc-train -c configs/exps/l3mhet/l3mhet_my_390_static.yaml runner_cfg.epochs=20 +evc-train -c configs/exps/l3mhet/l3mhet_my_392_static.yaml runner_cfg.epochs=20 +evc-train -c configs/exps/l3mhet/l3mhet_my_393_static.yaml runner_cfg.epochs=20