Code Monkey home page Code Monkey logo

dubd's Introduction

DUBD

Jae Woong Soh, and Nam Ik Cho

[Paper]

Environments

  • Ubuntu 18.04
  • Tensorflow (>=1.8)
  • CUDA 11.2 & cuDNN
  • Python 3.7

Abstract

Image denoising is an essential part of many image processing and computer vision tasks due to inevitable noise corruption during image acquisition. Traditionally, many researchers have investigated image priors for the denoising, within the Bayesian perspective based on image properties and statistics. Recently, deep convolutional neural networks (CNNs) have shown great success in image denoising by incorporating large-scale synthetic datasets. However, they both have pros and cons. While the deep CNNs are powerful for removing the noise with known statistics, they tend to lack flexibility and practicality for the blind and real-world noise. Moreover, they cannot easily employ explicit priors. On the other hand, traditional non-learning methods can involve explicit image priors, but they require considerable computation time and cannot exploit large-scale external datasets. In this paper, we present a CNN-based method that leverages the advantages of both methods based on the Bayesian perspective. Concretely, we divide the blind image denoising problem into sub-problems and conquer each inference problem separately. As the CNN is a powerful tool for inference, our method is rooted in CNNs and propose a novel design of network for efficient inference. With our proposed method, we can successfully remove blind and real-world noise, with a moderate number of parameters of universal CNN.

Brief Description of Our Proposed Method

Probabilistic View

  • Notation: given noisy image y / latent clean image x

We reformulate the log-posterior by introducing a new random variable c that contains prior based on human knowlegde. For approximation the integration, we use the point estimate for c, which is argmax p(c|y). When p(c|y) has a unimodal distribution with a sharp peak, the approximation is quite fair. Then, we can solve the MAP estimate with the given point estimate. The problem can be reformulated into two sub-problems. Two neural networks are employed for two inference sub-problems.

Conditional Estimation Network

Tunable Denoising Network

Experimental Results

Results on Additive White Gaussian Noise

Parameter vs. PSNR

Spectrally, Spatially Variant Noise

  

  • Left: Results on spectrally variant noise. Right: Results on spatially variant noise.

Traversing Conditional Variable

  

Traversing the conditional variable on a noisy image with noise-level 30.

Results on DND Benchmark (Real Noisy Images)

Visualized Results



Guidelines for Codes

Requisites should be installed beforehand.

Clone this repo.

git clone http://github.com/JWSoh/DUBD.git
cd DUBD/

Test

[Options]

python main.py --gpu [GPU_number] --sigma [noise-level] --inputpath [image path] --output [output path]

--gpu: If you have more than one gpu in your computer, the number designates the index of GPU which is going to be used. [Default 0]
--sigma: Noise-level of the Gaussian noise [Default: 10]
--inputpath: Path of input images [Default: testset/CBSD68]
--outputpath: Path for the output images. [Default: results/CBSD68]

Citation

Will be updated soon.

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.