lixiny / POEM

[CVPR 2023] POEM: Reconstructing Hand in a Point Embedded Multi-view Stereo
Apache License 2.0
57 stars 3 forks source link

Valuate error with DexYCBMV dataset #3

Open zhanxiaopan opened 1 year ago

zhanxiaopan commented 1 year ago

Hi Lixiny,

Thanks for your great work. I have tried to reproduce the valuate result as your guided. $ python scripts/eval.py --cfg config/release/${MODEL}_${DATASET}.yaml -g 0 -b 8 --reload ${PATH_TO_CKPT}

My valuated cmd based on DexYCBMV dataset: python scripts/eval.py --cfg config\release\POEM_DexYCBMV.yaml -g 0 -b 8 --reload checkpoints\POEM_DexYCBMV-20230912T110921Z-001\POEM_DexYCBMV\checkpoint\PtEmbedMultiviewStereo.pth.tar --eval_draw draw

The error is listed below, could you help to point out the root cause?

Traceback (most recent call last): File "scripts/eval.py", line 96, in main_worker(cfg, arg, exp_time) File "scripts/eval.py", line 73, in main_worker for bidx, batch in enumerate(testbar): File "C:\Users\asus.conda\envs\POEM2\lib\site-packages\tqdm\std.py", line 1182, in iter for obj in iterable: File "C:\Users\asus.conda\envs\POEM2\lib\site-packages\torch\utils\data\dataloader.py", line 530, in next data = self._next_data() File "C:\Users\asus.conda\envs\POEM2\lib\site-packages\torch\utils\data\dataloader.py", line 1224, in _next_data return self._process_data(data) File "C:\Users\asus.conda\envs\POEM2\lib\site-packages\torch\utils\data\dataloader.py", line 1250, in _process_data data.reraise() File "C:\Users\asus.conda\envs\POEM2\lib\site-packages\torch_utils.py", line 457, in reraise raise exception AssertionError: Caught AssertionError in DataLoader worker process 0. Original Traceback (most recent call last): File "C:\Users\asus.conda\envs\POEM2\lib\site-packages\torch\utils\data_utils\worker.py", line 287, in _worker_loop data = fetcher.fetch(index) File "C:\Users\asus.conda\envs\POEM2\lib\site-packages\torch\utils\data_utils\fetch.py", line 49, in fetch data = [self.dataset[idx] for idx in possibly_batched_index] File "C:\Users\asus.conda\envs\POEM2\lib\site-packages\torch\utils\data_utils\fetch.py", line 49, in data = [self.dataset[idx] for idx in possibly_batched_index] File "d:\zhanxiaopan\handtracking\poem\poem\lib\datasets\dexycb.py", line 398, in getitem assert const_v_id != -101, f"Cannot find the constant camera serial {self.CONST_CAM_SERIAL} in the dataset" AssertionError: Cannot find the constant camera serial 840412060917 in the dataset

lixiny commented 1 year ago

I have run the script on my system: Ubuntu 22.04. This particular error does not occur.

First, pull the latest main branch.

I suggest you to print all the info["cam_serial"] before the if statement: line395 to see whether the cam_serial exist.

image

For me, the results are:

836212060125
839512060362
840412060917
841412060263
932122060857
932122060861
932122061900
932122062010

Additionally, here is the log generated when I ran the script: eval_POEM_DexYCBMV_2023_0922_1303_17.log

zhanxiaopan commented 1 year ago

Hi Lixiny,

Thanks for your kind response! I have pull the latest main branch code, and the environment for me is windows conda, but I guess the error is not about ubuntu or windows.

The generated log diffence between us is: it seems that the results is not the same? is there any diffence between your local code and the remote main branch code? image

Actually, we need fix minor typos for main branch code. image

The DexYCBMV dataset subjects and multiview info list are: image

After apply the diff you provided, the result for me is listed below: 841412060263 932122060857 932122060861

lixiny commented 1 year ago

My local code is already sync with the remote main branch.

It seems that the data in your local computer is not complete. In the dexycb data loader, we use a caching strategy to preload dexycb's file index. However, the length of the dataset in your cached dexycb dataset is different from ours (as shown by the log differences you provided).

Please try deleting common\cache\DexYCB\ and regenerating the cache, then check if the error still occurs.