SkillAgentSearch skills...

IDF

[ICCV 2025] IDF: Iterative Dynamic Filtering Networks for Generalizable Image Denoising

Install / Use

/learn @dongjinkim9/IDF
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align="center"> <img src="https://dongjinkim9.github.io/projects/idf/assets/idf_logo.png" width="200" style="margin-left: auto; margin-right: auto; display: block;"> <h1>IDF: Iterative Dynamic Filtering Networks <br>for Generalizable Image Denoising</h1> <h4> <a href="https://dongjinkim9.github.io">Dongjin Kim</a>*, <a href="https://scholar.google.com/citations?user=NBs5cTMAAAAJ">Jaekyun Ko</a>*, <a href="https://scholar.google.com/citations?user=FW4ylx4AAAAJ&hl">Muhammad Kashif Ali</a>, <a href="https://sites.google.com/view/lliger9/team/taehyunkim">Tae Hyun Kim<sup>&#8224;</sup></a> </h4>

<b><sub><sup>* Equal contribution. <sup></sup> Corresponding author.</sup></sub></b>

arXiv   Project_page   Hugging_Face   Colab

</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:

  • Hugging Face: Hugging_Face

  • Colab: Colab

  • Local (Python script):

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 |

  1. Download datasets individually from the table above, or download the full bundled dataset package.

  2. After downloading, set the dataset root path (dataroot) in the dataset configuration YAML files located in configs/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

  1. Pretrained checkpoints are available in the pretrained_models directory.
  2. 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
  • Model: configs/models/idfnet.yaml

🎇 Results

Full qualitative comparisons are available on the project page: 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

View on GitHub
GitHub Stars40
CategoryDevelopment
Updated20d ago
Forks7

Languages

Python

Security Score

95/100

Audited on Mar 18, 2026

No findings