Home

Awesome

DIP-denosing

This is a code repo for Rethinking Deep Image Prior for Denoising (ICCV 2021).

Addressing the relationship between Deep image prior and effective degrees of freedom, DIP-SURE with STE(stochestic temporal ensemble) shows reasonable result on single image denoising.

If you use any of this code, please cite the following publication:

@article{jo2021dipdenoising,
  author  = {Yeonsik Jo, Se young chun,  and Choi, Jonghyun},
  title     = {Rethinking Deep Image Prior for Denoising},
  booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
  month     = {October},
  year      = {2021},
  pages     = {5087-5096}
}

Working environment

Note: Experimental results were not checked in other environments.

Set-up

conda create --name DIP --file requirements.txt
conda avtivate DIP
pip install tqdm

Inference

bash exp_denoising.sh CSet9 <GPU ID>
mkdir testset/<YOUR_DATASET>
python main.py --dip_type eSURE_new --net_type s2s --exp_tag <EXP_NAME> --optim RAdam --force_steplr --desc sigma25   denoising --sigma 25 --eval_data <YOUR_DATASET>

Browsing experimental result

invoke showtable csv/<exp_type>/<exp_tag> 
invoke showtable csv/poisson/MNIST/
PURE_dc_scale001_new                     optimal stopping : 384.30,     31.97/0.02      | ZCSC : 447.60,         31.26/0.02 | STE 31.99/0.02
PURE_dc_scale01_new                      optimal stopping : 94.70,      24.96/0.12      | ZCSC : 144.60,         24.04/0.14 | STE 24.89/0.12
PURE_dc_scale02_new                      optimal stopping : 70.30,      22.92/0.20      | ZCSC : 110.00,         21.82/0.22 | STE 22.83/0.20
<EXEPRIMENTAL NAME>                      optimal stopping :<STEP>,      <PSNR>/<LPIPS>  | ZCSC : <STEP>,      <PSNR>/<LPIPS>| STE <PSNR>/<LPIPS>

The reported numbers are PSNR/LPIPS.

Results in paper

For the result used on paper, please refer this link.

SSIM score

For SSIM score of color images, I used matlab code same as the author of S2S.
This is the demo code I received from the S2S author.
Thank you Mingqin!

% examples
ref = im2double(imread('gt.png'));
noisy = im2double(imread('noisy.png'));
psnr_result = psnr(ref, noisy);
ssim_result = ssim(ref, noisy);

License

MIT license.

Contacts

For questions, please send an email to dustlrdk@gmail.com