IDF
[ICCV 2025] IDF: Iterative Dynamic Filtering Networks for Generalizable Image Denoising
Install / Use
/learn @dongjinkim9/IDFREADME
<b><sub><sup>* Equal contribution. <sup>†</sup> Corresponding author.</sup></sub></b>
</div><div align="center"> <img src="assets/teaser.png" alt="Framework overview">
<i>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.</i>
</div>📦 Installation
git clone https://github.com/dongjinkim9/IDF.git
cd IDF
pip install -r requirements.txt
🚀 Demo
You can try IDF in several ways:
python demo.py
📁 Dataset Preparation
| 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}
🏋️ Training & Evaluation
A. Train IDF
python main.py --config configs/train_lit_denoising.yaml
B. Validation / Testing
python main.py --config configs/test_lit_denoising.yaml
C. Reproducing Results
- Pretrained checkpoints are available in the
pretrained_modelsdirectory. - To evaluate a pretrained model:
python main.py --config configs/test_lit_denoising.yaml
D. Configuration Details
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
🎇 Results
Full qualitative comparisons are available on the project page:
🧪 Synthetic Noise
<p align="center"> <img src="assets/result_synthetic.png" alt="Synthetic noise results"> </p>🌏 Real-World Noise
<p align="center"> <img src="assets/result_real_world.png" height=440 alt="Real-world noise results"> </p>📚 Citation
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}
}
Related Skills
node-connect
350.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
