Coder Social home page Coder Social logo

noise2sim's Introduction

Suppression of Correlated Noises with Similarity-based Unsupervised Deep Learning

Introduction

Noise2Sim is a general unsupervised deep denoising method. On the common benchmark and practical low-dose CT datasets, Noise2Sim performs as effectively as or even better than the supervised learning methods. It has potential in various applications. Details can be found on the project page and in the paper.

News

Jan 6, 2022, noise2sim 0.1.2 released

Dec 24, 2021, noise2sim 0.1.0 released

Installation

Pytorch is required, for example,

conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch  # install pytorch

Then, Noise2Sim can be easily installed through pip,

pip install noise2sim

Or Noise2Sim can be installed from source,

git clone https://github.com/niuchuangnn/noise2sim.git
cd noise2sim
pip install -e .

Train denoising model with Noise2Sim

Low-dose CT Images

The low-dose CT dataset can be obtained at Low Dose CT Grand Challenge. The preprocessed FDA data can be obtained here.

Arrange the Mayo data like:

├── datasets   
    ├── Mayo                   
        ├── L067                    
        ├── L096
        ...

List training and testing files:

from noise2sim.tools import prepare_ldct
python prepare_ldct.py --patient-folder L067 L096 L109 L143 L192 L286 L291 L310 --output-file ./datasets/Mayo/mayo_train.txt
python prepare_ldct.py --patient-folder L506 L333 --output-file ./datasets/Mayo/mayo_test.txt

Run on 4 GPUs:

python ./scripts/train.py --config-file ./configs/ldct_mayo_unet2.py # for Mayo dataset
python ./scripts/train.py --config-file ./configs/ldct_fda_unet2.py # for FDA dataset

Photon-counting CT Images

The photon-counting datasets can be obtained here, and put it under ./datasets/.

Run on 4 GPUs:

python ./tools/train.py --config-file ./configs/pcct_livemouse_unet2.py # for live mouse dataset
python ./tools/train.py --config-file ./configs/pcct_leg_unet2.py # for live leg dataset
python ./tools/train.py --config-file ./configs/pcct_diedmouse_unet2.py # for died mouse dataset

Natural Images

Download BSD68 test dataset at here, and put them under the folder ./datasets/

Prepare dataset:

python noise2sim.tools.prepare_bsd400_lmdb.py

Run on 1 GPU:

python ./scripts/train.py --config-file ./configs/bsd400_unet2_ps3_ns8_gpu1.py # simultaneous training and testing

Run on 8 GPUs:

python ./sctipts/train.py --config-file ./configs/bsd400_unet2_ps3_ns8_gpu8.py # simultaneous training and testing

The results in the paper were obtained using 8 GPUs, you can obtain similar results with 1 GPU.

Using our pretrained models

Download our pretrained model here, and put these models under results folder. Then, run the corresponding test script as

python scripts/test_ldct.py --config-file ./configs/ldct_mayo_unet2.py # for Mayo dataset
python scripts/test_ldct.py --config-file ./configs/ldct_fda_unet2.py # for FDA dataset
python scripts/test_pcct.py --config-file ./configs/pcct_livemouse_unet2.py # for live mouse dataset
python scripts/test_pcct.py --config-file ./configs/pcct_leg_unet2.py # for chicken leg dataset
python scripts/test_pcct.py --config-file ./configs/pcct_diedmouse_unet2.py # for died mouse dataset

Citation

@inproceedings{noise2sim2021,
  title={Noise2Sim – Similarity-based Self-Learning for Image Denoising},
  author={Niu, Chuang and Wang, Ge},
  booktitle={arXiv:2011.03384},
  year={2020}
}

noise2sim's People

Contributors

niuchuangnn avatar gauenk 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.