tt-denoising
Image denoising with Tensor Train tensor decomposition and super-resolution.
Pipeline
We propose to use the batched version of the image (H x W x C)
to construct a tensor (H // n, n, W // m, m, C)
and then decompose it with ADMM (alternating direction method of multipliers).
This approach achieves better performance compared to the plain Tensor Train decomposition of the noisy image. The intuition behind this is
- many patches of image have close textures;
- noise varies, while similar textures stay the same;
- decomposition can extract these textures as sparse components of stacked image representation;
However, while the sparse structure extracts meaningful information about textures, it also blurs high-frequency details. We propose to use the super-resolution techniques to improve the overall quality of the resulting image. Specifically, we selected the Laplacian Pyramid Super-Resolution Network (LapSRN) model for this purpose.
Environment
Important: recommended having Jupyter Lab
installed in the base
conda environment. For the best experience, you may also install nb_conda_kernels
and ipywidgets
. Also, using mamba
is recommended.
- Create conda environment:
$ conda env create --file environment.yaml
- Activate it:
$ conda activate denoising-env
Super-resolution Models
- Download model files from here:
LapSRN_x2.pb
LapSRN_x4.pb
LapSRN_x8.pb
- Put them into the
models/
folder.
Our team
- Artemenkov Aleksandr
- Paplavsky Nikita
- Shubin Artem
This repository is a supplement to the Tensor Decompositions and Tensor Networks in Artificial Intelligence course project at Skolkovo Institute of Science and Technology.