Skip to content
/ LIChI Public

Official implementation of the paper "Linear Combinations of Patches Are Unreasonably Effective for Single-Image Denoising"

License

Notifications You must be signed in to change notification settings

sherbret/LIChI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Linear Combinations of Patches Are Unreasonably Effective for Single-Image Denoising (IEEE TIP'24)

Sébastien Herbreteau and Charles Kervrann

Requirements

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

  • Python 3.8
  • Pytorch 2.2
  • Torchvision 0.17
  • Einops 0.7.0

Install

To install in an environment using pip:

python -m venv .lichi_env
source .lichi_env/bin/activate
pip install /path/to/LIChI

Demo

To denoise an image with LIChI (remove --add_noise if it is already noisy):

python ./demo.py --sigma 15 --add_noise --in ./test_images/cameraman.png --out ./denoised.png

Or use directly the Pytorch class LIChI within your code:

m_lichi = LIChI() # instantiate the LIChI class
y = 15 * torch.randn(1, 1, 100, 100) # image of pure Gaussian noise with variance 15^2
x_hat = m_lichi(y, sigma=15, constraints='affine', method='n2n', p1=11, p2=6, k1=16, k2=64, w=65, s=3, M=9)

(see the meaning of the parameters in file lichi.py, method set_parameters)

Results

Gray denoising

The PSNR (dB) results of different methods on three datasets corrupted with synthetic white Gaussian noise and sigma = 5, 15, 25, 35 and 50. Best among each category (unsupervised or supervised) is in bold. Best among each subcategory is underlined

results_psnr

Complexity

We want to emphasize that LIChI is relatively fast. We report here the execution times of different algorithms. It is provided for information purposes only, as the implementation, the language used and the machine on which the code is run, highly influence the results. The CPU used is a 2,3 GHz Intel Core i7 and the GPU is a GeForce RTX 2080 Ti. LIChI has been entirely written in Python with Pytorch so it can run on GPU unlike its traditional counterparts.

Running time (in seconds) of different methods on images of size 256x256. Run times are given on CPU and GPU if available.

results_running_time

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

@ARTICLE{10639330,
  author={Herbreteau, Sébastien and Kervrann, Charles},
  journal={IEEE Transactions on Image Processing}, 
  title={Linear Combinations of Patches are Unreasonably Effective for Single-Image Denoising}, 
  year={2024},
  volume={33},
  number={},
  pages={4600-4613},
  doi={10.1109/TIP.2024.3436651}}

About

Official implementation of the paper "Linear Combinations of Patches Are Unreasonably Effective for Single-Image Denoising"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages