Giter Site home page Giter Site logo

sdap's Introduction

【ICCV 2023】 Random Sub-Samples Generation for Self-Supervised Real Image Denoising

Yizhong Pan, Xiao Liu, Xiangyu Liao, Yuanzhouhan Cao, Chao Ren

paper iccv_paper

This is the official code of SDAP: Random Sub-Samples Generation for Self-Supervised Real Image Denoising.

main_fig

Abstract

With sufficient paired training samples, the supervised deep learning methods have attracted much attention in image denoising because of their superior performance. However, it is still very challenging to widely utilize the supervised methods in real cases due to the lack of paired noisy-clean images. Meanwhile, most self-supervised denoising methods are ineffective as well when applied to the real-world denoising tasks because of their strict assumptions in applications. For example, as a typical method for self-supervised denoising, the original blind spot network (BSN) assumes that the noise is pixel-wise independent, which is much different from the real cases. To solve this problem, we propose a novel self-supervised real image denoising framework named Sampling Difference As Perturbation (SDAP) based on Random Sub-samples Generation (RSG) with a cyclic sample difference loss. Specifically, we dig deeper into the properties of BSN to make it more suitable for real noise. Surprisingly, we find that adding an appropriate perturbation to the training images can effectively improve the performance of BSN. Further, we propose that the sampling difference can be considered as perturbation to achieve better results. Finally we propose a new BSN framework in combination with our RSG strategy. The results show that it significantly outperforms other state-of-the-art self-supervised denoising methods on real-world datasets.

Requirements

Our experiments are done with:

  • Python 3.7.9
  • PyTorch 1.7.1
  • numpy 1.19.5
  • opencv 4.5.1
  • scikit-image 0.17.2

Pre-trained Models

Training Dataset Model
SIDD Medium SDAP.pth
SIDD Medium + SIDD Benchmark SDAP_S_for_SIDD.pth
SIDD Medium + DND Benchmark SDAP_S_for_DND.pth

Test

You can get the complete SIDD validation dataset from https://www.eecs.yorku.ca/~kamel/sidd/benchmark.php.

'.mat' files need to be converted to images ('.png').

run test.pyto output the denoising results of our proposed method.

Train

'.mat' files in training datasets need to be converted to images ('.png').

You have to add the noisy images ('.png') for training in './dataset/train_data'.

Tip: Reducing the size of the training image speeds up the reading of the dataset thus speeding up training. So you can crop the image to a fixed size (e.g. 512*512) in advance.

run train.py.

Citation

@inproceedings{Pan_2023_ICCV,
author    = {Pan, Yizhong and Liu, Xiao and Liao, Xiangyu and Cao, Yuanzhouhan and Ren, Chao},
title     = {Random Sub-Samples Generation for Self-Supervised Real Image Denoising},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
month     = {October},
year      = {2023},
pages     = {12150-12159}
}

Contact

If you have any questions, please contact [email protected].

Acknowledgment

The codes are based on AP-BSN and Neighbor2Neighbor. Thanks for their awesome works.

sdap's People

Contributors

p1y2z3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

ip-restoration

sdap's Issues

img crop, the same as APBSN?

I follow the data preparation done by APBSN in which the patch size is 512 and the overlap size is 128, is that right?

1 psnr drop in reproducing

Firstly, I try my best to follow environment you provide

Secondly, only train in SIDD_Medium without crop before (self.repeat=80, 80*320=25600)

Thirdly, lr1e-4 ps160 bs16 epochs15 on the fisrt stage. while lr1e-5 ps250 bs8 epochs10 on the second

Fouthly, finish experiments in your project

Whatever I try, there is a 1 psnr drop, SDAP 35.5055 SDAP(E) 36.5131, is there something wrong with me?Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.