Giter Club home page Giter Club logo

wavelet-denoising's Introduction

Deep Multi-resolution Diffusion Image Denoising via Low-Frequency-to-High-Frequency Channel Translation

Denoising b=1 Volumes

The proposed method enables a multi-resolution solution using wavelet decomposition for DWI denoising. See the system pipeline below.

System pipeline

Our main contributions are summarized as following:

  • We propose a multi-resolution deep learning framework for DWI image denoising.
  • We propose a novel wavelet channel transfer framework to reconstruct higher-frequency wavelet coefficients from lower-frequency wavelet coefficient based on 3D pix2pix style transfer network and 3D-SPADE.
  • We show that our method outperforms our implementation of DeepDTI for dMRI scans corresponding to randomly chosen gradient directions, and the proposed wavelet channel transfer network outperforms the conventional CNN model.

Setup

  • Clone this repo;
  • Prepare the environment by:
cd Multi-channels-DWIs-Denoising
pip -r requirements.txt

Getting Started

  • Download the dataset (HCP dataset);
  • Preprocess the dataset (generate the clean DWI, group as subset, wavelet transformation, etc.);

Train

The train.py provides the train function for one wavelet channel. The training set should be organized as:

|--train_dir
    |--subject id
        |--aaa
            |--b1data0.nii.gz
            |--b1clean0.nii.gz
            |--b1data1.nii.gz
            |--b1clean1.nii.gz
            |--mask.nii.gz (optional)
        |--aad
            ...

Note the input of the synthesis net comprises 4 lower-frequency coefficients from the same volume, and the output is the translated higher coefficient.

  • Train the lower-frequency denoising channel aaa as example:
python train.py --train_dir train/ --val_dir val/ -e 100 -b 4 -l 0.00005 --dropout 0.2 --wt aaa --net dncnn
  • Or use UNet+SPADE as synthesis net to train the higher-frequency channel ddd:
python train.py --train_dir train/ --val_dir val/ -e 100 -b 4 -l 0.0001 --dropout 0.2 --wt add --net unet+spade

Test

  • Organize the directory for 8 models in one folder, see detailed arrangement here;

  • (optional) Obtain brain mask and normalization parameters for 8 wavelet coefficients;

  • You can download the trained models, test examples and normalization parameters (include b=1000, 3000 ms/mm^2) here:

  • Test the b1/b3 DWIs using command:

python test.py --test_dir test/146331/b1data.nii.gz --output_dir test/146331/b1denoised.nii.gz --gt_dir test/146331/b1clean.nii.gz --mask_dir test/146331/wavelet_mask.nii.gz --bval b1 --metrix --denoise_in 7 --denoise_out 7
python test.py --test_dir test/146331/b3data.nii.gz --output_dir test/146331/b3denoised.nii.gz --gt_dir test/146331/b3clean.nii.gz --mask_dir test/146331/wavelet_mask.nii.gz --bval b3 --metrix

Junyan Wang, Jinnan Hu, Deep Multi-resolution Diffusion Image Denoising via Low-Frequency-to-High-Frequency Channel Translation, under review, 2022

Please feel free to contact us if you have any problem. [email protected]

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.