Open hhhddddddd opened 8 months ago
Hi, thanks for your interest in our code. From the error above, it seems that you're missing a proper X11 installation:
CMake Error at /tmp/pip-build-env-wz5irisp/overlay/lib/python3.9/site-packages/cmake/data/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find X11 (missing: X11_X11_INCLUDE_PATH X11_X11_LIB)
Does this machine have a GUI? Real-time visualization requires a graphical interface to function correctly. So if this a display-less server, you could try running the offline rendering commands beginning with evc -t test
as listed here: https://github.com/zju3dv/4K4D?tab=readme-ov-file#rendering-of-trained-model
# Testing with input views
evc -t test -c configs/projects/realtime4dv/rendering/4k4d_0013_01.yaml,configs/specs/eval.yaml,configs/specs/vf0.yaml # Only render some of the view of the first frame
evc -t test -c configs/projects/realtime4dv/rendering/4k4d_0013_01.yaml,configs/specs/eval.yaml # Only rendering some selected testing views and frames
# Rendering rotating novel views
evc -t test -c configs/projects/realtime4dv/rendering/4k4d_0013_01.yaml,configs/specs/eval.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml,configs/specs/vf0.yaml # Render a static rotating novel view
evc -t test -c configs/projects/realtime4dv/rendering/4k4d_0013_01.yaml,configs/specs/eval.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml # Render a dynamic rotating novel view
Thank you very much for your advice!
My machine haven't a GUI, so I try executing the follow command:evc -t test -c configs/projects/realtime4dv/rendering/4k4d_0013_01.yaml,configs/specs/eval.yaml
However, I have a new error:
(4k4d) xuankai@Baicheng:~/code/4K4D$ evc -t test -c configs/projects/realtime4dv/rendering/4k4d_0013_01.yaml,configs/specs/eval.yaml
2024-03-29 11:39:50.187596 easyvolcap.runners -> <module>: Failed to import volumetric_video_viewer.py, missing __init__.py:10
package: imgui_bundle
2024-03-29 11:39:50.194870 __main__ -> preflight: Starting experiment: 4k4d_0013_01, command: test main.py:80
2024-03-29 11:39:54.231495 easyvolcap.utils.console_utils -> inner: Runtime exception: index 0 is out of console_utils.py:391
bounds for axis 1 with size 0
╭────────────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────────╮
│ /home/xuankai/code/4K4D/easyvolcap/utils/console_utils.py:388 in inner │
│ │
│ ❱ 388 │ │ │ │ return func(*args, **kwargs) │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/scripts/main.py:272 in main │
│ │
│ ❱ 272 │ else: globals()[args.type](cfg) # invoke this (call callable_from_cfg -> call_from_cfg) I: utilize @callable_from_ │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/engine/registry.py:61 in inner │
│ │
│ ❱ 61 │ │ return call_from_cfg(func, cfg) │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/engine/registry.py:52 in call_from_cfg │
│ │
│ ❱ 52 │ return func(**call_args) # the args of function is prepared. │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/scripts/main.py:165 in test │
│ │
│ ❱ 165 │ val_dataloader: "VolumetricVideoDataloader" = DATALOADERS.build(val_dataloader_cfg) # reuse the validataion I: val │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/engine/registry.py:305 in build │
│ │
│ ❱ 305 │ │ return self.build_func(*args, **kwargs, registry=self) # runner & viewer: self.build_func is build_from_cfg │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/engine/registry.py:136 in build_from_cfg │
│ │
│ ❱ 136 │ return call_from_cfg(obj_cls, args) │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/engine/registry.py:52 in call_from_cfg │
│ │
│ ❱ 52 │ return func(**call_args) # the args of function is prepared. │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/dataloaders/volumetric_video_dataloader.py:94 in __init__ │
│ │
│ ❱ 94 │ │ dataset: VolumetricVideoDataset = DATASETS.build(dataset_cfg) │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/engine/registry.py:305 in build │
│ │
│ ❱ 305 │ │ return self.build_func(*args, **kwargs, registry=self) # runner & viewer: self.build_func is build_from_cfg │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/engine/registry.py:136 in build_from_cfg │
│ │
│ ❱ 136 │ return call_from_cfg(obj_cls, args) │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/engine/registry.py:52 in call_from_cfg │
│ │
│ ❱ 52 │ return func(**call_args) # the args of function is prepared. │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/dataloaders/datasets/image_based_dataset.py:56 in __init__ │
│ │
│ ❱ 56 │ │ call_from_cfg(super().__init__, kwargs, skip_loading_images=skip_loading_images) │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/engine/registry.py:52 in call_from_cfg │
│ │
│ ❱ 52 │ return func(**call_args) # the args of function is prepared. │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/dataloaders/datasets/volumetric_video_dataset.py:276 in __init__ │
│ │
│ ❱ 276 │ │ self.load_paths() # load image files into self.ims │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/dataloaders/datasets/volumetric_video_dataset.py:382 in load_paths │
│ │
│ ❱ 382 │ │ self.ims_dir = join(*split(dirname(self.ims[0, 0]))[:-1]) # logging only │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
IndexError: index 0 is out of bounds for axis 1 with size 0
*** index 0 is out of bounds for axis 1 with size 0
> /home/xuankai/code/4K4D/easyvolcap/dataloaders/datasets/volumetric_video_dataset.py(382)load_paths()
380 ims = [np.asarray(ims[i])[:min([len(i) for i in ims])] for i in range(len(ims))] # deal with the fact that some
381 self.ims = np.asarray(ims) # V, N
--> 382 self.ims_dir = join(*split(dirname(self.ims[0, 0]))[:-1]) # logging only
383
384 # TypeError: can't convert np.ndarray of type numpy.str_. The only supported types are: float64, float32, float16
(Pdbr) exit
I wonder if you have any advice on the problems I am facing? Thank you very much!
Looks like the code could not find your dataset, please check whether join(self.data_root, self.images_dir)
exists.
The dataset structure for EasyVolcap is documented here: https://github.com/zju3dv/4K4D?tab=readme-ov-file#datasets
Thank you very much for helping me find the cause of the above problem!
I encountered a new problem when executing evc -t test -c configs/projects/realtime4dv/rendering/4k4d_0013_01.yaml,configs/specs/eval.yaml,configs/specs/vf0.yaml
2024-03-29 15:21:35.520479 easyvolcap.utils.console_utils -> inner: Runtime exception: The size of tensor a console_utils.py:391
(203840) must match the size of tensor b (440608) at non-singleton dimension 1
╭────────────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────────╮
│ /home/xuankai/code/4K4D/easyvolcap/utils/console_utils.py:388 in inner │
│ │
│ ❱ 388 │ │ │ │ return func(*args, **kwargs) │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/scripts/main.py:272 in main │
│ │
│ ❱ 272 │ else: globals()[args.type](cfg) # invoke this (call callable_from_cfg -> call_from_cfg) I: utilize @callable_from_ │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/engine/registry.py:61 in inner │
│ │
│ ❱ 61 │ │ return call_from_cfg(func, cfg) │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/engine/registry.py:52 in call_from_cfg │
│ │
│ ❱ 52 │ return func(**call_args) # the args of function is prepared. │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/scripts/main.py:181 in test │
│ │
│ ❱ 181 │ launcher(**kwargs, runner_function=runner.test, runner_object=runner) │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/scripts/main.py:52 in launcher │
│ │
│ ❱ 52 │ runner_function() │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/runners/volumetric_video_runner.py:275 in test │
│ │
│ ❱ 275 │ │ self.test_epoch(epoch) │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/runners/volumetric_video_runner.py:423 in test_epoch │
│ │
│ ❱ 423 │ │ for _ in test_generator: pass # the actual calling │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/runners/volumetric_video_runner.py:435 in test_generator │
│ │
│ ❱ 435 │ │ │ │ scalar_stats = self.evaluator.evaluate(output, batch) │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/runners/evaluators/volumetric_video_evaluator.py:31 in evaluate │
│ │
│ ❱ 31 │ │ img, img_gt, _ = super().generate_type(output, batch, Visualization.RENDER) │
│ │
│ /home/xuankai/code/4K4D/easyvolcap/runners/visualizers/volumetric_video_visualizer.py:176 in generate_type │
│ │
│ ❱ 176 │ │ │ img_gt = img_gt + output.bg_color * (1 - batch.msk) │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
RuntimeError: The size of tensor a (203840) must match the size of tensor b (440608) at non-singleton dimension 1
2024-03-29 15:21:35.806174 easyvolcap.runners.volumetric… 0% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0/3 0:00:18 < -:--:-- ? it/s v…
-> test_generator:
*** The size of tensor a (203840) must match the size of tensor b (440608) at non-singleton dimension 1
> /home/xuankai/code/4K4D/easyvolcap/runners/visualizers/volumetric_video_visualizer.py(176)generate_type()
174 if img_gt is not None and 'bg_color' in output and 'msk' in batch:
175 # Fill gt with input BG colors
--> 176 img_gt = img_gt + output.bg_color * (1 - batch.msk)
177
178 if self.store_image_error and img_gt is not None:
(Pdbr)
I wonder if you have any advice on the problems I am facing? In addition, I would also like to ask about the video memory requirements of the NVIDIA 3090 for the experiment in 4k4d. Thank you very much!
Strangely, I'm unable to reproduce the errors on my end. Can you help me make sure the pre-trained model is loaded?
There should be a line like: easyvolcap.utils.net_utils -> load_network: Loaded network data/trained_model/4k4d_0013_01/1599.npz at epoch -1
in your log.
For training, 4K4D shouldn't require more than 5GB of VRAM for the DNA-Rendering dataset.
Hello, your work is very interesting! I execute
evc -t gui -c configs/projects/realtime4dv/rendering/4k4d_0013_01.yaml,configs/specs/video.yaml
on the Minimal Dataset. I have the following error: then, I followed the prompts to installimgui_bundle
. however, I have a new problem:`(4k4d) xuankai@com4-X780-G30:~/code/4K4D$ pip install imgui_bundle Collecting imgui_bundle Using cached imgui-bundle-1.3.0.tar.gz (36.8 MB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Requirement already satisfied: numpy>=1.15 in /home/xuankai/anaconda3/envs/4k4d/lib/python3.9/site-packages (from imgui_bundle) (1.26.4) Collecting munch>=2.0.0 (from imgui_bundle) Using cached munch-4.0.0-py2.py3-none-any.whl.metadata (5.9 kB) Collecting glfw>2.5 (from imgui_bundle) Using cached glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-manylinux2014_x86_64.whl.metadata (5.4 kB) Collecting PyOpenGL>=3.0 (from imgui_bundle) Using cached PyOpenGL-3.1.7-py3-none-any.whl.metadata (3.2 kB) Requirement already satisfied: pillow>=9.0.0 in /home/xuankai/anaconda3/envs/4k4d/lib/python3.9/site-packages (from imgui_bundle) (10.2.0) Using cached glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-manylinux2014_x86_64.whl (211 kB) Using cached munch-4.0.0-py2.py3-none-any.whl (9.9 kB) Using cached PyOpenGL-3.1.7-py3-none-any.whl (2.4 MB) Building wheels for collected packages: imgui_bundle Building wheel for imgui_bundle (pyproject.toml) ... error error: subprocess-exited-with-error
× Building wheel for imgui_bundle (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [118 lines of output]
note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for imgui_bundle Failed to build imgui_bundle ERROR: Could not build wheels for imgui_bundle, which is required to install pyproject.toml-based projects`
then, I tried to install
imgui_bundle
through https://github.com/pthom/imgui_bundle, But this asks for Python >=3.10. I wonder if you have any advice on the problems I am facing? Thank you very much!