Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error during rendering #21

Open
rexainn opened this issue Feb 1, 2024 · 12 comments
Open

Error during rendering #21

rexainn opened this issue Feb 1, 2024 · 12 comments

Comments

@rexainn
Copy link

rexainn commented Feb 1, 2024

Command: evc -t test -c configs/projects/realtime4dv/rendering/4k4d_rxy_demo.yaml,configs/specs/eval.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml,configs/specs/vf0.yaml

Error如下:

Error log
2024-02-01 22:51:17.099045 easyvolcap.runners -> <module>: Failed to import submodule volumetric_video_viewer of __init__.py:9
                           /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/runners/__init__.py
╭──────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────╮
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/runners/__init__.py:6 in <module>                          │
│                                                                                                                            │
│ ❱  6 │   │   exec(f'from . import {module}')                                                                               │
│ in <module>:1                                                                                                              │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/runners/volumetric_video_viewer.py:21 in <module>          │
│                                                                                                                            │
│ ❱   21 from imgui_bundle import imgui_color_text_edit as ed                                                                │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'imgui_bundle'
2024-02-01 22:51:17.143225 easyvolcap.scripts.main -> preflight: Starting experiment: 4k4d_rxy_demo, command: test  main.py:80
2024-02-01 easyvolca… Loading mask bytes for data/rxy/rxy_demo/masks VAL 100% ━━━━━━━━━━━ 4/4  0:00:00 < 0:00:00 258.9 it/s p…
22:51:17.… ->
           load_resi…
2024-02-01 easyvolca… Loading imgs bytes for data/rxy/rxy_demo/images VAL 100% ━━━━━━━━━━ 4/4  0:00:00 < 0:00:00 403.3 it/s p…
22:51:18.… ->
           load_resi…
2024-02-01 22:51:18.886432 easyvolcap.utils.console_utils -> inner: Runtime exception: OpenCV(4.9.0)      console_utils.py:341
                           /io/opencv/modules/imgcodecs/src/loadsave.cpp:1121: error: (-215:Assertion
                           failed) !image.empty() in function 'imencode'

╭──────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────╮
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/utils/console_utils.py:338 in inner                        │
│                                                                                                                            │
│ ❱ 338 │   │   │   return func(*args, **kwargs)                                                                             │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:56 in inner                             │
│                                                                                                                            │
│ ❱  56 │   │   return call_from_cfg(func, cfg)                                                                              │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:47 in call_from_cfg                     │
│                                                                                                                            │
│ ❱  47 │   return func(**call_args)                                                                                         │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/scripts/main.py:158 in test                                │
│                                                                                                                            │
│ ❱ 158 │   val_dataloader: "VolumetricVideoDataloader" = DATALOADERS.build(val_dataloader_cfg)  # reuse the validataion     │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:300 in build                            │
│                                                                                                                            │
│ ❱ 300 │   │   return self.build_func(*args, **kwargs, registry=self)                                                       │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:131 in build_from_cfg                   │
│                                                                                                                            │
│ ❱ 131 │   return call_from_cfg(obj_cls, args)                                                                              │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:47 in call_from_cfg                     │
│                                                                                                                            │
│ ❱  47 │   return func(**call_args)                                                                                         │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/dataloaders/volumetric_video_dataloader.py:94 in __init__  │
│                                                                                                                            │
│ ❱  94 │   │   dataset: VolumetricVideoDataset = DATASETS.build(dataset_cfg)                                                │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:300 in build                            │
│                                                                                                                            │
│ ❱ 300 │   │   return self.build_func(*args, **kwargs, registry=self)                                                       │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:131 in build_from_cfg                   │
│                                                                                                                            │
│ ❱ 131 │   return call_from_cfg(obj_cls, args)                                                                              │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:47 in call_from_cfg                     │
│                                                                                                                            │
│ ❱  47 │   return func(**call_args)                                                                                         │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/dataloaders/datasets/image_based_inference_dataset.py:33 i │
│                                                                                                                            │
│ ❱  33 │   │   call_from_cfg(super().__init__, kwargs)  # will have prepared other parts of the dataset (interpolation or o │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:47 in call_from_cfg                     │
│                                                                                                                            │
│ ❱  47 │   return func(**call_args)                                                                                         │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/dataloaders/datasets/volumetric_video_inference_dataset.py │
│                                                                                                                            │
│ ❱  56 │   │   call_from_cfg(super().__init__, kwargs)                                                                      │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:47 in call_from_cfg                     │
│                                                                                                                            │
│ ❱  47 │   return func(**call_args)                                                                                         │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/dataloaders/datasets/volumetric_video_dataset.py:272 in __ │
│                                                                                                                            │
│ ❱  272 │   │   │   self.load_bytes()  # load image bytes (also load vhulls)                                                │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/dataloaders/datasets/image_based_inference_dataset.py:70 i │
│                                                                                                                            │
│ ❱  70 │   │   return VolumetricVideoDataset.load_bytes(self)  # store images                                               │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/dataloaders/datasets/volumetric_video_dataset.py:472 in lo │
│                                                                                                                            │
│ ❱  472 │   │   │   │   decode_crop_fill_ims_bytes(self.ims_bytes, self.mks_bytes, self.Ks.numpy(), self.Rs.numpy(), self.T │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/utils/data_utils.py:1679 in decode_crop_fill_ims_bytes     │
│                                                                                                                            │
│ ❱ 1679 │   out = parallel_execution(list(ims_bytes), list(mks_bytes), list(Ks), list(Rs), list(Ts), list(bounds),          │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/utils/parallel_utils.py:69 in parallel_execution           │
│                                                                                                                            │
│ ❱ 69 │   │   │   │   results.append(async_result.get())  # will sync the corresponding thread                              │
│                                                                                                                            │
│ /home/jj/.conda/envs/sadtalker/lib/python3.8/multiprocessing/pool.py:771 in get                                            │
│                                                                                                                            │
│ ❱ 771 │   │   │   raise self._value                                                                                        │
│                                                                                                                            │
│ /home/jj/.conda/envs/sadtalker/lib/python3.8/multiprocessing/pool.py:125 in worker                                         │
│                                                                                                                            │
│ ❱ 125 │   │   │   result = (True, func(*args, **kwds))                                                                     │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/utils/data_utils.py:1663 in decode_crop_fill_im_bytes      │
│                                                                                                                            │
│ ❱ 1663 │   im_bytes = cv2.imencode(encode_ext, img, [cv2.IMWRITE_JPEG_QUALITY, jpeg_quality, cv2.IMWRITE_PNG_COMPRESSION,  │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
error: OpenCV(4.9.0) /io/opencv/modules/imgcodecs/src/loadsave.cpp:1121: error: (-215:Assertion failed) !image.empty() in function 'imencode'

2024-02-01    easyvolcap.… Cropping msks imgs for data/rxy/rxy_demo VAL  25% ━━━╺━━━━━━━━━ 1/4  0:00:01 < -:--:--   ?  it/s p…
22:51:19.806… ->
              decode_crop…
*** OpenCV(4.9.0) /io/opencv/modules/imgcodecs/src/loadsave.cpp:1121: error: (-215:Assertion failed) !image.empty() in
function 'imencode'

> /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/utils/data_utils.py(1663)decode_crop_fill_im_bytes()
   1661     K[1, 2] -= y
   1662
-> 1663     im_bytes = cv2.imencode(encode_ext, img, [cv2.IMWRITE_JPEG_QUALITY, jpeg_quality, cv2.IMWRITE_PNG_COMPRESSION, png
   1664     mk_bytes = cv2.imencode(encode_ext, msk, [cv2.IMWRITE_JPEG_QUALITY, jpeg_quality, cv2.IMWRITE_PNG_COMPRESSION, png
   1665     return im_bytes, mk_bytes, K, h, w, x, y
@rexainn
Copy link
Author

rexainn commented Feb 1, 2024

如果把mask.yaml注释掉,又会有新的error:

Error log:
2024-02-01 22:56:16.214839 easyvolcap.runners -> <module>: Failed to import submodule volumetric_video_viewer of __init__.py:9
                           /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/runners/__init__.py
╭──────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────╮
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/runners/__init__.py:6 in <module>                          │
│                                                                                                                            │
│ ❱  6 │   │   exec(f'from . import {module}')                                                                               │
│ in <module>:1                                                                                                              │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/runners/volumetric_video_viewer.py:21 in <module>          │
│                                                                                                                            │
│ ❱   21 from imgui_bundle import imgui_color_text_edit as ed                                                                │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'imgui_bundle'
2024-02-01 22:56:16.261401 easyvolcap.scripts.main -> preflight: Starting experiment: 4k4d_rxy_demo, command: test  main.py:80
2024-02-01 easyvolca… Loading imgs bytes for data/rxy/rxy_demo/images VAL 100% ━━━━━━━━━━ 4/4  0:00:00 < 0:00:00 126.4 it/s p…
22:56:17.… ->
           load_resi…
2024-02-01 22:56:19.341804 easyvolcap.utils.console_utils -> inner: Runtime exception: 'SuperChargedR4DV  console_utils.py:341
                           is not in the samplers registry'
╭──────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────╮
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/utils/console_utils.py:338 in inner                        │
│                                                                                                                            │
│ ❱ 338 │   │   │   return func(*args, **kwargs)                                                                             │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:56 in inner                             │
│                                                                                                                            │
│ ❱  56 │   │   return call_from_cfg(func, cfg)                                                                              │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:47 in call_from_cfg                     │
│                                                                                                                            │
│ ❱  47 │   return func(**call_args)                                                                                         │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/scripts/main.py:160 in test                                │
│                                                                                                                            │
│ ❱ 160 │   model: "VolumetricVideoModel" = MODELS.build(model_cfg)                                                          │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:300 in build                            │
│                                                                                                                            │
│ ❱ 300 │   │   return self.build_func(*args, **kwargs, registry=self)                                                       │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:131 in build_from_cfg                   │
│                                                                                                                            │
│ ❱ 131 │   return call_from_cfg(obj_cls, args)                                                                              │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:47 in call_from_cfg                     │
│                                                                                                                            │
│ ❱  47 │   return func(**call_args)                                                                                         │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/models/volumetric_video_model.py:58 in __init__            │
│                                                                                                                            │
│ ❱  58 │   │   self.sampler: ImportanceSampler = SAMPLERS.build(sampler_cfg, network=self.network)                          │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:300 in build                            │
│                                                                                                                            │
│ ❱ 300 │   │   return self.build_func(*args, **kwargs, registry=self)                                                       │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:121 in build_from_cfg                   │
│                                                                                                                            │
│ ❱ 121 │   │   │   raise KeyError(                                                                                          │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
KeyError: 'SuperChargedR4DV is not in the samplers registry'
*** 'SuperChargedR4DV is not in the samplers registry'
> /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py(121)build_from_cfg()
    119         obj_cls = registry.get(obj_type)
    120         if obj_cls is None:
--> 121             raise KeyError(
    122                 f'{obj_type} is not in the {registry.name} registry')
    123     elif inspect.isclass(obj_type) or inspect.isfunction(obj_type):

@dendenxu
Copy link
Member

dendenxu commented Feb 3, 2024

您好,从error log来看,是没装imgui_bundle这个包

@rexainn
Copy link
Author

rexainn commented Feb 3, 2024

但是我使用的是evc -t test呀,ingui是必装的吗

@dendenxu
Copy link
Member

dendenxu commented Feb 3, 2024

因吹斯汀,我尝试复现一下

@dendenxu
Copy link
Member

dendenxu commented Feb 3, 2024

Ah,和imgui没关系,原因是你之前装过easyvolcap,需要在4k4d仓库重新跑一下pip install -e .指令(readme里的installation section有提及),否则会引用easyvolcap里的代码,自然找不到SuperChargedR4DV

@rexainn
Copy link
Author

rexainn commented Feb 4, 2024

Command: evc -t test -c configs/projects/realtime4dv/rendering/4k4d_rxy_demo.yaml,configs/specs/eval.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml,configs/specs/vf0.yaml

Error如下:

Error log

2024-02-01 22:51:17.099045 easyvolcap.runners -> <module>: Failed to import submodule volumetric_video_viewer of __init__.py:9
                           /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/runners/__init__.py
╭──────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────╮
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/runners/__init__.py:6 in <module>                          │
│                                                                                                                            │
│ ❱  6 │   │   exec(f'from . import {module}')                                                                               │
│ in <module>:1                                                                                                              │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/runners/volumetric_video_viewer.py:21 in <module>          │
│                                                                                                                            │
│ ❱   21 from imgui_bundle import imgui_color_text_edit as ed                                                                │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'imgui_bundle'
2024-02-01 22:51:17.143225 easyvolcap.scripts.main -> preflight: Starting experiment: 4k4d_rxy_demo, command: test  main.py:80
2024-02-01 easyvolca… Loading mask bytes for data/rxy/rxy_demo/masks VAL 100% ━━━━━━━━━━━ 4/4  0:00:00 < 0:00:00 258.9 it/s p…
22:51:17.… ->
           load_resi…
2024-02-01 easyvolca… Loading imgs bytes for data/rxy/rxy_demo/images VAL 100% ━━━━━━━━━━ 4/4  0:00:00 < 0:00:00 403.3 it/s p…
22:51:18.… ->
           load_resi…
2024-02-01 22:51:18.886432 easyvolcap.utils.console_utils -> inner: Runtime exception: OpenCV(4.9.0)      console_utils.py:341
                           /io/opencv/modules/imgcodecs/src/loadsave.cpp:1121: error: (-215:Assertion
                           failed) !image.empty() in function 'imencode'

╭──────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────╮
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/utils/console_utils.py:338 in inner                        │
│                                                                                                                            │
│ ❱ 338 │   │   │   return func(*args, **kwargs)                                                                             │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:56 in inner                             │
│                                                                                                                            │
│ ❱  56 │   │   return call_from_cfg(func, cfg)                                                                              │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:47 in call_from_cfg                     │
│                                                                                                                            │
│ ❱  47 │   return func(**call_args)                                                                                         │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/scripts/main.py:158 in test                                │
│                                                                                                                            │
│ ❱ 158 │   val_dataloader: "VolumetricVideoDataloader" = DATALOADERS.build(val_dataloader_cfg)  # reuse the validataion     │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:300 in build                            │
│                                                                                                                            │
│ ❱ 300 │   │   return self.build_func(*args, **kwargs, registry=self)                                                       │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:131 in build_from_cfg                   │
│                                                                                                                            │
│ ❱ 131 │   return call_from_cfg(obj_cls, args)                                                                              │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:47 in call_from_cfg                     │
│                                                                                                                            │
│ ❱  47 │   return func(**call_args)                                                                                         │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/dataloaders/volumetric_video_dataloader.py:94 in __init__  │
│                                                                                                                            │
│ ❱  94 │   │   dataset: VolumetricVideoDataset = DATASETS.build(dataset_cfg)                                                │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:300 in build                            │
│                                                                                                                            │
│ ❱ 300 │   │   return self.build_func(*args, **kwargs, registry=self)                                                       │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:131 in build_from_cfg                   │
│                                                                                                                            │
│ ❱ 131 │   return call_from_cfg(obj_cls, args)                                                                              │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:47 in call_from_cfg                     │
│                                                                                                                            │
│ ❱  47 │   return func(**call_args)                                                                                         │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/dataloaders/datasets/image_based_inference_dataset.py:33 i │
│                                                                                                                            │
│ ❱  33 │   │   call_from_cfg(super().__init__, kwargs)  # will have prepared other parts of the dataset (interpolation or o │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:47 in call_from_cfg                     │
│                                                                                                                            │
│ ❱  47 │   return func(**call_args)                                                                                         │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/dataloaders/datasets/volumetric_video_inference_dataset.py │
│                                                                                                                            │
│ ❱  56 │   │   call_from_cfg(super().__init__, kwargs)                                                                      │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/engine/registry.py:47 in call_from_cfg                     │
│                                                                                                                            │
│ ❱  47 │   return func(**call_args)                                                                                         │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/dataloaders/datasets/volumetric_video_dataset.py:272 in __ │
│                                                                                                                            │
│ ❱  272 │   │   │   self.load_bytes()  # load image bytes (also load vhulls)                                                │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/dataloaders/datasets/image_based_inference_dataset.py:70 i │
│                                                                                                                            │
│ ❱  70 │   │   return VolumetricVideoDataset.load_bytes(self)  # store images                                               │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/dataloaders/datasets/volumetric_video_dataset.py:472 in lo │
│                                                                                                                            │
│ ❱  472 │   │   │   │   decode_crop_fill_ims_bytes(self.ims_bytes, self.mks_bytes, self.Ks.numpy(), self.Rs.numpy(), self.T │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/utils/data_utils.py:1679 in decode_crop_fill_ims_bytes     │
│                                                                                                                            │
│ ❱ 1679 │   out = parallel_execution(list(ims_bytes), list(mks_bytes), list(Ks), list(Rs), list(Ts), list(bounds),          │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/utils/parallel_utils.py:69 in parallel_execution           │
│                                                                                                                            │
│ ❱ 69 │   │   │   │   results.append(async_result.get())  # will sync the corresponding thread                              │
│                                                                                                                            │
│ /home/jj/.conda/envs/sadtalker/lib/python3.8/multiprocessing/pool.py:771 in get                                            │
│                                                                                                                            │
│ ❱ 771 │   │   │   raise self._value                                                                                        │
│                                                                                                                            │
│ /home/jj/.conda/envs/sadtalker/lib/python3.8/multiprocessing/pool.py:125 in worker                                         │
│                                                                                                                            │
│ ❱ 125 │   │   │   result = (True, func(*args, **kwds))                                                                     │
│                                                                                                                            │
│ /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/utils/data_utils.py:1663 in decode_crop_fill_im_bytes      │
│                                                                                                                            │
│ ❱ 1663 │   im_bytes = cv2.imencode(encode_ext, img, [cv2.IMWRITE_JPEG_QUALITY, jpeg_quality, cv2.IMWRITE_PNG_COMPRESSION,  │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
error: OpenCV(4.9.0) /io/opencv/modules/imgcodecs/src/loadsave.cpp:1121: error: (-215:Assertion failed) !image.empty() in function 'imencode'

2024-02-01    easyvolcap.… Cropping msks imgs for data/rxy/rxy_demo VAL  25% ━━━╺━━━━━━━━━ 1/4  0:00:01 < -:--:--   ?  it/s p…
22:51:19.806… ->
              decode_crop…
*** OpenCV(4.9.0) /io/opencv/modules/imgcodecs/src/loadsave.cpp:1121: error: (-215:Assertion failed) !image.empty() in
function 'imencode'

> /DATA/DATA1/rxy_code/projects/202312_demo/EasyVolcap/easyvolcap/utils/data_utils.py(1663)decode_crop_fill_im_bytes()
   1661     K[1, 2] -= y
   1662
-> 1663     im_bytes = cv2.imencode(encode_ext, img, [cv2.IMWRITE_JPEG_QUALITY, jpeg_quality, cv2.IMWRITE_PNG_COMPRESSION, png
   1664     mk_bytes = cv2.imencode(encode_ext, msk, [cv2.IMWRITE_JPEG_QUALITY, jpeg_quality, cv2.IMWRITE_PNG_COMPRESSION, png
   1665     return im_bytes, mk_bytes, K, h, w, x, y

您好,但是这个error还是没有解决。

@rexainn
Copy link
Author

rexainn commented Feb 4, 2024

不使用mask会报:

IndexError: list index out of range
2024-02-04 18:11:23.256265 easyvolcap.runners.volumet…    0% ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0/300  0:00:02 < -:--:--   ?  it/s v…
                           -> test_generator:
*** list index out of range
> /DATA/DATA1/rxy_code/projects/202312_demo/4K4D/easyvolcap/models/samplers/super_charged_r4dv.py(492)<listcomp>()
    490         # Extract input
    491         xyz = torch.stack([self.pcds[l] for l in index])  # B, N, 3
--> 492         rad = torch.stack([self.rads[l] for l in index])  # B, N, 3
    493         occ = torch.stack([self.occs[l] for l in index])  # B, N, 3
    494         cent = torch.stack([self.cents[l] for l in index])  # B, S, 3

@dendenxu
Copy link
Member

dendenxu commented Feb 4, 2024

你好,4k4d现在的代码不支持training,所以会默认load trained models,load不到就会报你注释掉mask之后的错误。

@rexainn
Copy link
Author

rexainn commented Feb 4, 2024

evc -t test -c configs/projects/realtime4dv/rendering/4k4d_rxy_demo.yaml,configs/specs/eval.yaml,configs/specs/spiral.yaml,configs/specs/ibr.yaml,configs/specs/vf0.yaml 这行指令的意思是使用预训练模型test我的数据集嘛。那我是要怎么指定预训练模型?

@dendenxu
Copy link
Member

dendenxu commented Feb 4, 2024

你好,我们的readme里有介绍详细的渲染流程。

@rexainn
Copy link
Author

rexainn commented Feb 4, 2024

我是按照readme做的,trained model都下载在指定路径里了TT我和readme唯一的区别就是使用了自己的数据集,所以重新写了config。

问题是在custom dataset上test pretrained model,他应该从data/trained_model/4k4d_0013_01加载模型,而不是从data/trained_model/4k4d_rxy_demo加载模型。

看起来是没有像EasyVolcap一样有inference的代码。

@dendenxu
Copy link
Member

dendenxu commented Feb 4, 2024

是的,4k4d是per-scene optimization方法

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants