Algolzw / image-restoration-sde

Image Restoration with Mean-Reverting Stochastic Differential Equations, ICML 2023. Winning solution of the NTIRE 2023 Image Shadow Removal Challenge.

Home Page:https://algolzw.github.io/ir-sde/index.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

synthetic noise

john-yyb opened this issue · comments

Hello, senior! First of all, I really appreciate your work. Secondly, I would like to know if this work can be used to process other noisy LQ images. In other words, the denoising model of the provided code only adds Gaussian noise to the GT image. If, I want to implement denoising with other types of LQ to get its HQ what do I need to do. Currently I have the paired dataset of LQ-GT. Looking forward to your reply. Thanks!

Hi, the denoising-ODE can only be used for Gaussian noise. If you want to perform other types of denoising, I would suggest you use normal IR-SDE as the code in deraining.

Thank you for your prompt reply. This is my first time coming into contact with the diffusion model, and I tried to perform a speckle image denoising task on IR-SDE. I generated 1700 LQ-GT images (size: 256) through simulation. And select 1590 images and perform sliding window cropping to 128. At the same time, image flipping is performed to expand the training data set to 8 times, with a total of 114800 patches. At the same time, the verification set only uses 10 images (size: 256). I wonder if this amount of data is sufficient. Whether it is necessary to add brightness displacement, image blur and Gaussian white noise to increase the complexity of the data. Secondly, because your method belongs to a general framework for image repair. Therefore, in addition to changing the image channel to a single channel in the configuration file to denoise grayscale images, does it also need to make some modifications to the IR-SDE-deraining network? Looking forward to your reply.

Hi! If you generate image pairs by yourself I would suggest moving more images to the validation set (maybe >= 100 images). And of course, you can add other degradations like small blur and noise to increase the complexity (regard these image pairs as a new dataset to illustrate the robustness of the model).

For grayscale images, you need to change the network settings (let in_nc=1, out_nc=1).

Thank you for your reply. I have successfully run your network. And achieved good results. Thanks again. However, I ran into a problem, what should I set up if I tried to use the trained model to run real-world denoising images. To be precise, if there is no GT in the real world, do I need to modify the settings of ir-sde-deraining?

Hi! Do you mean you want to test the model for real-world inputs? If so, the only change you need to do is to set the GT to None in the test.py.

Very much your answers and work. I have successfully done realistic denoising. However, new questions arose. Since you reminded me that I need to increase the number of validation sets, I retrained the IR-sde-derain model and used 108,000 LQ-GT as the data set of the trained model with a resolution of 128. The verification set uses 100 LQ--GT images with a resolution size of 256. However, during the training process, I found that the PSNR of the model was initially 11 and then dropped to 6. This phenomenon made me at a loss. Is the IR-sde-derain model sensitive to the number of datasets, or is there some detail I didn't notice? When I used 114800patch, I did not find such problems. The disadvantage was that I only selected 10 pictures in order to speed up the verification time. Looking forward to your reply.

Hi, have you solved this problem? I haven't met this issue before but maybe it would be better to keep the training set and validation set to be the same resolution.

Thank you for your reply, I have solved it. Finally, thank you very much for your work, I hope you will have more works in the future