Skip to content

GED-based-Image-denoiser-performed-on-residual-learning/

Notifications You must be signed in to change notification settings

fagan2888/GEDImageDenoiser

 
 

Repository files navigation

Denoising_Residual_Learning

A research project about image denoisers directed by professor Rob Fergus in NYU Courant.

Take a glance of our result.

GitHub Logo

Section 1. Structure of this repository.

There are in total twelve folders presented in this repository. 1.1 The data folder (zipped) consists of 3 subfolders: Train, training datasets; 68 and 12 consisting of 68 images and 12 images for testing. 1.2 The Beta_estimator_VGG corresponds to the classification model which is trained to detect the beta level of each given noisy picture. 1.3 The seven folders beta0.83179394, beta0.90207981, beta1.14831186, beta1.4063303, beta1, beta2, beta6, contains the code and trained model for each beta level correspondingly. Within each folder:

  • To train the model, the code files are utils.py, dataset.py, models.py, train.py.
  • The “logs” subfolder contains the trained model.
  • The log.txt file is the log during training.
  • To test the model, the code files are test.py, testT.py testGED.py, whose purpose is to test the model based on the test dataset (either 12 or 68) and based on the given noise (either Gaussian noise or noise with fat tail). The log files during testing are also presented in this folder and are named correspondingly. 1.4 The orgb10, and orgs10 are two folders for the original model. The files in these two folders have the same structure as the seven folders with name starting with “beta”. 1.5 Denoised picture for set 12 contained the noisy picture and clean picture of the test dataset 12.

Section 2. How to use this repository.

If you have a ground-truth picture and you would like to the effect of our model.

Step1: You may copy and paste your image to [the model you want test]/org/data/Set68

Step2: Run the test.py under this folder to see the PSNR of the denoised picture based on your ground-truth picture with artifical noise.

Step3: You may choose the model which gives a denoised picture with the highest PSNR.

Step4: After knowing what model to use (which folder to use), to get the denoised picture, you can run getDenoisedImage.ipynb to get it.

If you don't have a ground-truth picture. You have a picture with noise and you want to denoise it. We cannot calculate the PSNR under this circumstance because the original picture is needed when calculating PSNR.

Step1: You need to download a VGG beta estimator to estimate the beta and then choose the corrsponding model to denoise your pending pictures. The VGG estimator is a classifier with ten classes with an top-1 arrcuracy of 55%. (We believe there are some room for improvement). The mapping from the class label to the beta of the model is as follows.

class label beta estimator
0 6
1 2
2 1.40633033
3 1.14831186
4 1
5 0.90207981
larger than 5 0.83179394

Step2: After knowing what beta value does your picture have (which folder to use), to get the denoised picture, you can run getDenoisedImage2.ipynb to get it.

Please contact tz1280@nyu.edu if you have any questions. Thank you!

About

GED-based-Image-denoiser-performed-on-residual-learning/

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 88.2%
  • Jupyter Notebook 10.3%
  • Shell 1.5%