We introduce a compact iterative dynamic filtering (IDF) framework for image denoising that predicts pixel-adaptive denoising kernels. Even though IDF is trained with extremely limited data (e.g., a single-level Gaussian noise), it generalizes effectively to diverse unseen noise types and levels with only ~0.04M parameters.
git clone https://github.com/dongjinkim9/IDF.git
cd IDF
pip install -r requirements.txtYou can try IDF in several ways:
python demo.py| Dataset Type | Dataset |
|---|---|
| Training | CBSD432 |
| Testing (Synthetic Noise) | CBSD68 |
| McMaster | |
| Kodak24 | |
| Urban100 | |
| Testing (Real-World Noise) | SIDD |
| SIDD+ | |
| PolyU | |
| Nam | |
| MonteCarlo |
-
Download datasets individually from the table above, or download the full bundled dataset package.
-
After downloading, set the dataset root path (
dataroot) in the dataset configuration YAML files located inconfigs/datasets.
dataset:
target: idf.datasets.gaussian.GaussianDataset
params:
dataroot: {dataset_root_path}/{train|test}/{dataset_name}
python main.py --config configs/train_lit_denoising.yaml
python main.py --config configs/test_lit_denoising.yaml
- Pretrained checkpoints are available in the
pretrained_modelsdirectory. - To evaluate a pretrained model:
python main.py --config configs/test_lit_denoising.yaml
For detailed options related to training, datasets, and the model settings, please refer to:
- Training / Testing:
configs/{train|test}_lit_denoising.yaml - Datasets:
- Training:
configs/datasets/train/gaussian.yaml - Testing:
configs/datasets/test/synthetic.yaml
- Training:
- Model:
configs/models/idfnet.yaml
Full qualitative comparisons are available on the project page:
Please cite us if our work is useful for your research:
@InProceedings{Kim_2025_ICCV,
author = {Kim, Dongjin and Ko, Jaekyun and Ali, Muhammad Kashif and Kim, Tae Hyun},
title = {IDF: Iterative Dynamic Filtering Networks for Generalizable Image Denoising},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
month = {October},
year = {2025},
pages = {12180-12190}
}

