yinhaoz / denoising-fluorescence

CVPR 2019: Fluorescence Microscopy Denoising (FMD) dataset
https://arxiv.org/abs/1812.10366
MIT License
124 stars 15 forks source link

Fluorescence Microscopy Denoising (FMD) dataset

Code for CVPR 2019 paper "A Poisson-Gaussian Denoising Dataset with Real Fluorescence Microscopy Images", arXiv.1812.10366.

@inproceedings{zhang2018poisson,
    title={A Poisson-Gaussian Denoising Dataset with Real Fluorescence Microscopy Images},
    author={Yide Zhang and Yinhao Zhu and Evan Nichols and Qingfei Wang and Siyuan Zhang and Cody Smith and Scott Howard},
    booktitle={CVPR},
    year={2019}
}
git clone https://github.com/bmmi/denoising-fluorescence.git
cd denoising-fluorescence/denoising

Dependency

FMD dataset

To download the whole dataset at once

bash download_dataset.sh

To download dataset separately according to the microscope used

bash download_dataset.sh confocal

Change confocal to twophoton or widefield to download other categories.

Benchmark

Deep learning models

Download the FMD dataset into the default directory denoising/dataset/.

Train Noise2Noise model

python train_n2n.py

If your dataset is not within the default directory, you need to set --data-root path_to_dataset, where your downloaded dataset is under path_to_dataset. Try Noise2Noise model with BatchNorm using additional argument --net unetv2. It is more stable across different learning rate, but no denoising performance improvement if learning rate is well tuned. Experiment results are saved in ./experiments/.

Train DnCNN model

python train_dncnn.py

Try DnCNN with non-residual learning using additional argument --net dncnn_nrl. It is worse than the residual learning.

Benchmark with pretrained models

Download the pre-trained models in the dataset folder on google drive.

bash download_pretrained.sh

The pretrained model are saved in ./experiments/pretrained/.

Benchmark with the pretrained Noise2Noise model

python benchmark.py --model n2n

Use --model dncnn to benchmark with pretrained DnCNN model. GPU is used by default if it is available. Results are saved in ./experiments/pretrained/n2n/benchmark_gpu/. To run on CPU, use --no-cuda.

Reproduce test example in Fig 6 & 7 in the paper

python test_example.py

Traditional denosing methods

Download the FMD dataset into the default directory denoising/dataset/.

cd matlab

In the benchmark files (e.g., benchmark_VST_NLM.m), assign different folder names (e.g., Confocal_BPAE_B) to the variable data_name to benchmark different data groups. Execute the benchmark files to start benchmarking.

For more details regarding the traditional denoising methods, please refer to the following references.

Noise Estimation

VST

VST+NLM

VST+BM3D

VST+KSVD

VST+EPLL

VST+WNNM

PURE-LET