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
- Python 3
- PyTorch 1.0
- skimage
- MATLAB
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.
Download the FMD dataset into the default directory denoising/dataset/
.
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/
.
python train_dncnn.py
Try DnCNN with non-residual learning using additional argument --net dncnn_nrl
. It is worse than the residual learning.
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
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.
- A. Foi, M. Trimeche, V. Katkovnik, and K. Egiazarian. "Practical Poissonian-Gaussian noise modeling and fitting for single-image raw-data". IEEE Transactions on Image Processing, 17(10):1737–1754, 2008.
- M. Makitalo and A. Foi. "A closed-form approximation of the exact unbiased inverse of the Anscombe variance-stabilizing transformation". IEEE Transactions on Image Processing, 20(9):2697–2698, 2011.
- M. Makitalo and A.Foi. "Optimal inversion of the generalized Anscombe transformation for Poisson-Gaussian noise". IEEE Transactions on Image Processing, 22(1):91–103, 2013.
- A. Buades, B. Coll, and J.-M. Morel. "A non-local algorithm for image denoising". In CVPR, 2005.
- B. K. Shreyamsha Kumar, “Image Denoising based on Non Local-means Filter and its Method Noise Thresholding”. Signal, Image and Video Processing, 7(6):1211-1227, 2013.
- K. Dabov, A. Foi, V. Katkovnik, and K. Egiazarian. "Image denoising by sparse 3-D transform-domain collaborative filtering". IEEE Transactions on Image Processing, 16(8):2080–2095, 2007.
- M. Aharon, M. Elad, and A. Bruckstein. "K-SVD: An algorithm for designing overcomplete dictionaries for sparse representation". IEEE Transactions on Signal Processing, 54(11):4311–4322, 2006.
- D. Zoran and Y. Weiss. "From learning models of natural image patches to whole image restoration". In ICCV, 2011.
- S. Gu, L. Zhang, W. Zuo, and X. Feng. "Weighted nuclear norm minimization with application to image denoising". In CVPR, 2014.
- F. Luisier, T. Blu, and M. Unser. "Image denoising in mixed PoissonGaussian noise". IEEE Transactions on Image Processing, 20(3):696–708, 2011.