Home

Awesome

Normalization-Equivariant Neural Networks with Application to Image Denoising (NeurIPS'23)

Sébastien Herbreteau, Emmanuel Moebel, and Charles Kervrann

Requirements

Here is the list of libraries you need to install to execute the code:

Install

To install in an environment using pip:

python -m venv .nenn_env
source .nenn_env/bin/activate
pip install /path/to/normalization_equivariant_nn

Pre-trained models

The pre-trained models for the three variants (ordinary, scale-equivariant and normalization-equivariant) of the popular networks (see models):

are available at: https://github.com/sherbret/normalization_equivariant_nn/releases/tag/v1.0

Demo

We provide a Python Jupyter Notebook with example code to reproduce the experiments of the paper: demo_jupyter_notebook.ipynb. Make sure to download the pre-trained models first before using it.

Training

You can also retrain the models by yourself by using the demo_training.py file (time-consuming). Example:

python ./demo_training.py  --model_name fdncnn --blind --mode norm-equiv --num_iterations 900000 --patch_size 70 --batch_size 128 --save_every 1000 --lr 0.0001 --halve_lr_every 900000 --loss_function mse --in_folder my_folder_training_images --out_folder my_folder_saved_models

SortPool and AffineConv2d

Channel-wise sort pooling and affine-constrained convolutional layers are implemented in Pytorch in the file basicblocks.py.

Acknowledgements

This work was supported by Bpifrance agency (funding) through the LiChIE contract. Computations were performed on the Inria Rennes computing grid facilities partly funded by France-BioImaging infrastructure (French National Research Agency - ANR-10-INBS-04-07, “Investments for the future”).

Citation

@inproceedings{herbreteau2023normalizationequivariant,
 author = {Herbreteau, S\'{e}bastien and Moebel, Emmanuel and Kervrann, Charles},
 booktitle = {Advances in Neural Information Processing Systems},
 pages = {5706--5728},
 title = {Normalization-Equivariant Neural Networks with Application to Image Denoising},
 volume = {36},
 year = {2023}
}