Skip to content

parcone/dataset

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

137 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Poisson-Gaussian Image Denoising: Unified Framework and Benchmark Suite

Official implementation and benchmark suite for the paper
“Unifying Statistical Inference and Deep Learning for Poisson--Gaussian Image Denoising: Benchmarks, Advances, and Future Horizons”
Submitted to The Visual Computer

Notice
This repository is directly related to the above manuscript. If you use the code, data, or benchmark protocol provided here, please cite the associated paper.


Overview

Poisson--Gaussian (PG) image denoising is a core problem in computational imaging, especially in low-photon and sensor-limited settings such as fluorescence microscopy, medical imaging, astronomy, and real-world low-light photography. Unlike additive white Gaussian noise (AWGN), PG noise combines signal-dependent photon noise with signal-independent electronic noise, making constant-variance assumptions invalid and introducing unique statistical and algorithmic challenges.

This repository provides a unified benchmark and implementation suite for PG denoising research. It is designed to support both methodological development and reproducible evaluation across classical, deep learning, diffusion, and plug-and-play approaches.


Abstract

Image denoising under Poisson--Gaussian (PG) noise is a fundamental challenge in computational imaging, arising in diverse low-photon and sensor-limited applications such as fluorescence microscopy, medical imaging, and astronomy. Unlike additive white Gaussian noise (AWGN), PG noise exhibits signal-dependent variance coupled with signal-independent electronic noise, which invalidates the constant-noise assumptions of classical denoising models and poses unique statistical and algorithmic hurdles. This survey provides a structured, statistically grounded overview of PG denoising research, developing a coherent theoretical framework linking exponential-dispersion modeling and unbiased risk estimation to contemporary blind-spot and generative architectures.


Key Contributions

  • Unified statistical perspective connecting variance-stabilizing transforms, Bayesian optimization, unbiased risk estimation, and modern deep learning methods.
  • Systematic benchmark suite spanning representative synthetic and real-noise datasets, including controlled PG noise generation and evaluation protocols.
  • Comprehensive performance analysis showing that PG-aware methods can outperform AWGN-based surrogates by up to 1.8 dB PSNR and 0.05 SSIM.
  • Open research outlook covering uncertainty quantification, cross-domain robustness, calibration, and resource-aware deployment.

Repository Structure

├── datasets/                    # Benchmark datasets
│   ├── synthetic/              # Synthetic PG-noise datasets
│   ├── real/                   # Real-noise datasets (FMD, RENOIR, SIDD)
│   └── calibration/            # Paired calibration datasets
├── methods/                    # Denoising method implementations
│   ├── classical/              # VST-based methods (VST-NLM, VST-BM3D, etc.)
│   ├── deep_learning/          # Supervised and self-supervised methods
│   ├── diffusion/              # Diffusion-based posterior sampling methods
│   └── plug_and_play/          # PnP and RED frameworks
├── utils/                      # Common utilities
│   ├── noise_estimation/       # PG parameter estimation
│   ├── metrics/                # Evaluation metrics (PSNR, SSIM, PG-URE)
│   └── transforms/             # Variance-stabilizing transforms
├── experiments/                # Reproducible experiments
│   ├── benchmarking/           # Standard benchmark scripts
│   ├── ablation/               # Ablation studies
│   └── visualization/          # Visualization and analysis tools
└── docs/                       # Documentation and tutorials

Installation

Prerequisites

  • Python 3.8+
  • PyTorch 1.12+
  • MATLAB R2016b+ (required for selected classical methods)
  • All Python dependencies listed in requirements.txt

Setup

git clone https://github.com/parcone/dataset.git
cd dataset

pip install -r requirements.txt
bash scripts/download_datasets.sh

For classical MATLAB-based methods:

matlab -batch "addpath(genpath('methods')); addpath(genpath('utils'));"

Quick Start

Python Example

import torch
from methods.deep_learning import VST_BM3D_Net
from utils.noise_estimation import estimate_pg_noise
from utils.metrics import calculate_psnr, calculate_ssim

# Load noisy image
noisy_image = torch.load('examples/noisy_image.pt')

# Estimate Poisson-Gaussian noise parameters
alpha, sigma = estimate_pg_noise(noisy_image)

# Initialize denoiser
denoiser = VST_BM3D_Net()

# Denoise
denoised_image = denoiser(noisy_image, alpha=alpha, sigma=sigma)

# Evaluate
psnr = calculate_psnr(denoised_image, ground_truth)
ssim = calculate_ssim(denoised_image, ground_truth)

print(f"PSNR: {psnr:.2f} dB, SSIM: {ssim:.4f}")

MATLAB Example

addpath(genpath('utils'));
addpath(genpath('methods'));

img_raw = imread('examples/noisy_image.tif');

[alpha, sigma] = estimate_noise(img_raw);
[img_denoised, processing_time] = denoise_VST_BM3D(img_raw, alpha, sigma);

figure;
subplot(1,2,1); imshow(img_raw, []); title('Raw Image');
subplot(1,2,2); imshow(img_denoised, []); title('Denoised Image');

Benchmark Results

Performance on Representative Datasets

Method FMD (PSNR / SSIM) SIDD (PSNR / SSIM) BSD68 (PSNR / SSIM)
VST-BM3D 32.4 / 0.842 34.1 / 0.876 35.2 / 0.912
VST-NLM 30.1 / 0.801 31.8 / 0.834 32.9 / 0.876
Deep VST-Net 34.2 / 0.891 36.1 / 0.912 37.3 / 0.934
PG-Diffusion 33.8 / 0.883 35.7 / 0.904 36.9 / 0.928

Noise Parameter Estimation

Dataset True (α, σ) Estimated (α, σ) Error
Synthetic 1 (1.0, 25.0) (1.02, 24.8) 0.8%
Synthetic 2 (4.0, 10.0) (3.98, 10.2) 1.2%
Real FMD - (2.1, 18.3) -

Reproducibility

Full Benchmark Suite

python experiments/benchmarking/run_full_benchmark.py
python experiments/benchmarking/run_classical.py
python experiments/benchmarking/run_deep_learning.py
python experiments/benchmarking/run_diffusion.py

Ablation Studies

python experiments/ablation/noise_parameter_sensitivity.py
python experiments/ablation/method_components.py

Custom Benchmark Example

from experiments.benchmarking import BenchmarkRunner

runner = BenchmarkRunner(
    datasets=['FMD', 'SIDD', 'BSD68'],
    methods=['VST_BM3D', 'Deep_VST_Net', 'PG_Diffusion'],
    noise_params=[(1, 25), (4, 10), (8, 5)]
)

results = runner.run()
runner.save_results('custom_results.json')

Method Categories

1. Variance-Stabilizing Transform Methods

  • VST-NLM
  • VST-BM3D
  • VST-KSVD
  • PURE-LET

2. Deep Learning Methods

  • Supervised PG denoising models
  • Self-supervised methods such as Noise2Void and related paradigms
  • Hybrid approaches combining model-based optimization and learned priors

3. Diffusion-Based Methods

  • Posterior sampling for uncertainty-aware reconstruction
  • PG-conditioned diffusion schedules
  • Accelerated and distilled variants

4. Plug-and-Play / RED Frameworks

  • PnP priors for inverse problems under PG noise
  • Regularization by denoising (RED)
  • Iterative Bayesian and proximal formulations

Evaluation Metrics

Standard Metrics

  • PSNR: Peak Signal-to-Noise Ratio
  • SSIM: Structural Similarity Index
  • LPIPS: Learned Perceptual Image Patch Similarity

PG-Specific Metrics

  • PG-URE: Poisson-Gaussian Unbiased Risk Estimator
  • Spatially weighted PSNR for heteroscedastic noise evaluation
  • Task-oriented metrics for domain-specific downstream analysis

Development

Code Style

  • Python: PEP 8
  • MATLAB: MathWorks conventions
  • Documentation: Sphinx for Python components and structured MATLAB documentation where applicable

Testing

python -m pytest tests/
python -m pytest tests/integration/
python experiments/validate_results.py

Contributing

Contributions are welcome. Please follow the standard workflow:

  1. Fork the repository.
  2. Create a feature branch.
  3. Add or update tests.
  4. Ensure all tests pass.
  5. Submit a pull request with a clear description of changes.

Citation

If you use this repository, benchmark, or associated methods, please cite the paper and repository as follows.

Paper

@article{peng2025unifying,
  title={Unifying Statistical Inference and Deep Learning for Poisson--Gaussian Image Denoising: Benchmarks, Advances, and Future Horizons},
  author={Peng, Pai and Ma, Chongya and Chen, Hechan and Liu, Chuxiang and Xiaokaiti, Aizimaiti},
  journal={The Visual Computer},
  year={2025},
  publisher={Springer},
  doi={[DOI will be assigned upon publication]}
}

Repository / Dataset

@dataset{peng2025pg_dataset,
  title={Poisson-Gaussian Image Denoising Dataset and Benchmark Suite},
  author={Peng, Pai and Ma, Chongya and Chen, Hechan and Liu, Chuxiang and Xiaokaiti, Aizimaiti},
  year={2025},
  publisher={GitHub},
  url={https://github.com/parcone/dataset},
  doi={10.5281/zenodo.[DOI will be assigned]}
}

Important Notice

This repository is directly associated with a manuscript currently under review.

  • The paper DOI will be added upon publication.
  • The codebase is intended to reflect the methodology described in the manuscript.
  • Benchmark results are designed to be reproducible using the included scripts and protocols.
  • If you use this work in academic or applied research, please cite the associated publication.

For paper-related questions, please contact the corresponding author.


License

This project is released under the MIT License. See the LICENSE file for details.


Acknowledgments

This work was supported by the Finance Science and Technology Project of Xinjiang Uygur Autonomous Region (2023B01029-1, 2023B01029-2).

We also thank the contributors and maintainers of the datasets and methods referenced in this benchmark, including:

  • FMD for fluorescence microscopy denoising
  • RENOIR for real-noise photography
  • SIDD for smartphone image denoising
  • The broader computational imaging and image restoration community

Contact

  • Corresponding Author: Aizimaiti Xiaokaiti
  • Email: azmtxkt@xju.edu.cn
  • Repository Support: Please use GitHub Issues for bug reports and implementation questions.

This repository is under active development.

About

This repository focuses on **Poisson–Gaussian image denoising**, summarising PG noise modelling and representative classical and deep-learning-based denoising methods, with emphasis on signal-dependent noise and practical applications.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors