Git Product home page Git Product logo

ffdnet's Introduction

FFDNet

Abstract

Due to the fast inference and good performance, discriminative learning methods have been widely studied in image denoising. However, these methods mostly learn a specific model for each noise level, and require multiple models for denoising images with different noise levels. They also lack flexibility to deal with spatially variant noise, limiting their applications in practical denoising. To address these issues, we present a fast and flexible denoising convolutional neural network, namely FFDNet, with a tunable noise level map as the input. The proposed FFDNet works on downsampled subimages,achieving a good trade-off between inference speed and denoising performance. In contrast to the existing discriminative denoisers, FFDNet enjoys several desirable properties, including

  • the ability to handle a wide range of noise levels (i.e., [0, 75]) effectively with a single network,
  • the ability to remove spatially variant noise by specifying a non-uniform noise level map, and
  • faster speed than benchmark BM3D even on CPU without sacrificing denoising performance.

Extensive experiments on synthetic and real noisy images are conducted to evaluate FFDNet in comparison with state-of-the-art denoisers. The results show that FFDNet is effective and efficient, making it highly attractive for practical denoising applications.

Network Architecture

architecture The input image is reshaped to four sub-images, which are then input to the CNN together with a noise level map. The final output is reconstructed by the four denoised sub-images

Test FFDNet Models

  • Demo_AWGN_Gray.m is the testing demo of FFDNet for denoising grayscale images corrupted by AWGN.

  • Demo_AWGN_Color.m is the testing demo of FFDNet for denoising color images corrupted by AWGN.

  • Demo_AWGN_Gray_Clip.m is the testing demo of FFDNet for denoising grayscale images corrupted by AWGN with clipping setting.

  • Demo_AWGN_Color_Clip.m is the testing demo of FFDNet for denoising color images corrupted by AWGN with clipping setting.

  • Demo_REAL_Gray.m is the testing demo of FFDNet for denoising real noisy (grayscale) images.

  • Demo_REAL_Color.m is the testing demo of FFDNet for denoising real noisy (color) images.

  • Demo_multivariate_Gaussian_noise.m is the testing demo of FFDNet for denoising noisy images corrupted by multivariate (3D) Gaussian noise model N([0,0,0]; Sigma) with zero mean and covariance matrix Sigma in the RGB color space.

Image Denoising for AWGN

Grayscale Image Denoising

Color Image Denoising

The left is the noisy image corrupted by AWGN with noise level 75. The right is the denoised image by FFDNet.

Real Image Denoising

The left is the real noisy image. The right is the denoised image by FFDNet.

example

Requirements and Dependencies

To run the code, you should install Matconvnet first. Alternatively, you can use function vl_ffdnet_matlab to perform denoising without Matconvnet.

Citation

@article{zhang2018ffdnet,
  title={FFDNet: Toward a Fast and Flexible Solution for {CNN} based Image Denoising},
  author={Zhang, Kai and Zuo, Wangmeng and Zhang, Lei},
  journal={IEEE Transactions on Image Processing},
  year={2018},
}

ffdnet's People

Contributors

cszn avatar

Watchers

 avatar  avatar

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.