CUHK-AIM-Group / EndoGaussian

EndoGaussian: Real-time Gaussian Splatting for Dynamic Endoscopic Scene Reconstruction
https://yifliu3.github.io/EndoGaussian/
MIT License
100 stars 5 forks source link

Unusal PSNR and LOSS #11

Closed peachorange124 closed 5 months ago

peachorange124 commented 5 months ago

Hi, Thanks for your great work. After following all the instructions in README.md, I trained EndoNeRF dataset with command python train.py -s data/endonerf/pulling --port 6017 --expname endonerf/pulling --configs arguments/endonerf/pulling.py. But there are some errors occured, I found the loss and psnr are very strange . Here is the screenshot of terminal: 图片 And here is the screenshot of my dataset download from original EndoNeRF dataset: 图片 I think maybe there is some problem with initialization, but I didn't change anything with dataset including depth image. Can you help me with the possible reasons? Best Wishes!

yifliu3 commented 5 months ago

Hi, Thanks for your attention. I have just tested the code on the cutting dataset and did not observe similar problems. I guess it may be aroused from the random sampling used in the initialization procedure, where I randomly sample 0.01% points from each view with replace=True.

In doing so, when the random sampling occasionally samples very few points, the inconvergence may happen. To fix this problem, I have set the code to sample 0.1% points with replace=True, which can alleviate the rare ill-posed initialization to some extent.

I have updated the code after testing. The final PSNR for cutting should be 38.42. You can have a try.

AngeLouCN commented 5 months ago

Hi,

Thank you for the great work you do. Even after using the latest version of the code I am facing the same issue. Do you know of any other possible causes?

Thank you very much.

yifliu3 commented 5 months ago

Hi, thanks for your attention.

It's kind of strange and may I have some more information about the issue? For example, when does the unusually low PSNR first happen--is it first come out during the first period or the second period? If it happens in the first stage where the optimization first starts, I think it is caused by the randomness of the initialization. If so, a potential solution is to change the seed in train.py to others.

AngeLouCN commented 5 months ago

Hi, thanks for your attention.

It's kind of strange and may I have some more information about the issue? For example, when does the unusually low PSNR first happen--is it first come out during the first period or the second period? If it happens in the first stage where the optimization first starts, I think it is caused by the randomness of the initialization. If so, a potential solution is to change the seed in train.py to others.

Hi,

Thank you for the suggestions. After troubleshooting, I've identified the issue. Due to limited permissions on the server, executing git submodule update --init --recursive resulted in errors, impacting the PSNR. To resolve this, I manually downloaded the problematic submodules. As a result, the situation has improved significantly.

yifliu3 commented 5 months ago

Hi, thanks for your attention. It's kind of strange and may I have some more information about the issue? For example, when does the unusually low PSNR first happen--is it first come out during the first period or the second period? If it happens in the first stage where the optimization first starts, I think it is caused by the randomness of the initialization. If so, a potential solution is to change the seed in train.py to others.

Hi,

Thank you for the suggestions. After troubleshooting, I've identified the issue. Due to limited permissions on the server, executing git submodule update --init --recursive resulted in errors, impacting the PSNR. To resolve this, I manually downloaded the problematic submodules. As a result, the situation has improved significantly.

That's great! Happy to find the problem solved.