Pytorch implementation of HDMI denoising method

I just released a pytorch implementation of the HDMI denoising method that can be used on GPU: github.com/ahoudard/HDMI

This version allows to run the EM algorithm and the denoising in about half a minute!

python run_HDMI_denoising.py alley.png --stdv 0.1 --n_iter 40 --verbose --gpu
selected device: cuda
run EM algorithm...
denoise patches...
total runtime: 34s
PSNR: 29.8940dB

WGenPaTex code

With the publication in the SSVM 2021 proceeding of our paper Wasserstein Generative Models for Patch-based Texture Synthesis we just released the corresponding Python code available on github !

github.com/ahoudard/wgenpatex

Example on my local laptop (core i5 CPU) :

python run_optim_synthesis.py radishes.png --save
cpu
iteration 0 - elapsed 2s - loss = 3.3926462531089783
iteration 50 - elapsed 131s - loss = 0.5145381316542625
iteration 100 - elapsed 260s - loss = 0.23772023245692253
iteration 150 - elapsed 390s - loss = 0.20723320543766022
iteration 200 - elapsed 522s - loss = 0.20013415440917015
iteration 250 - elapsed 652s - loss = 0.19069230556488037
iteration 300 - elapsed 781s - loss = 0.18442947790026665
iteration 350 - elapsed 912s - loss = 0.18047476187348366
iteration 400 - elapsed 1042s - loss = 0.17874254286289215
iteration 450 - elapsed 1162s - loss = 0.17782559990882874
DONE - total time is 1292s

On the Existence of Optimal Transport Gradient for Learning Generative Models

New preprint available! [HAL] [PDF][ArXiv]

Abstract : The use of optimal transport cost for learning generative models has become popular with Wasserstein Generative Adversarial Networks (WGAN). Training of WGAN relies on a theoretical background: the calculation of the gradient of the optimal transport cost with respect to the generative model parameters. We first demonstrate that such gradient may not be defined, which can result in numerical instabilities during gradient-based optimization. We address this issue by stating a valid differentiation theorem in the case of entropic regularized transport and specify conditions under which existence is ensured. By exploiting the discrete nature of empirical data, we formulate the gradient in a semi-discrete setting and propose an algorithm for the optimization of the generative model parameters. Finally, we illustrate numerically the advantage of the proposed framework.

Learning local regularization for variational image restoration

New preprint available! [HAL] [PDF][ArXiv]

Joint work with Jean Prost, Andrés Almansa and Nicolas Papadakis

Abstract: In this work, we propose a framework to learn a local regularization model for solving general image restoration problems. This regularizer is defined with a fully convolutional neural network that sees the image through a receptive field corresponding to small image patches. The regularizer is then learned as a critic between unpaired distributions of clean and degraded patches using a Wasserstein generative adversarial networks based energy. This yields a regularization function that can be incorporated in any image restoration problem. The efficiency of the framework is finally shown on denoising and deblurring applications.

Semi-discrete OT loss for image generation

Some new application of our recent work Wasserstein Generative Models for Patch-based Texture Synthesis [arXiv] [HAL] that proposed a loss with semi-dual formulation of OT.

  •  Style transfert using semi-dual formulation for minimizing the OT distance between VGG-19 features:

       

   

   

  

  • Textures barycenters using our texture generation algorithm (Alg.1 from this work).

The key idea is to generate a new texture such that its patch distributions at various scales are Wasserstein barycenters of the patch distribution of the two inputs:


input 1                       W-barycenter                    input 2


input 1                       W-barycenter                    input 2

 

Wasserstein Generative Models for Patch-based Texture Synthesis

Wasserstein Generative Models for Patch-based Texture Synthesis [arXiv] [HAL]

NEW! Published at SSVM 2021 [link]

joint work with Arthur Leclaire, Nicolas Papadakis and Julien Rabin

Abstract: In this paper, we propose a framework to train a generative model for texture imagesynthesis from a single example. To do so, we exploit the local representationof images via the space of patches, that is, square sub-images of fixed size (e.g. 4×4). Our main contribution is to consider optimal transport to enforce themultiscale patch distribution of generated images, which leads to two differentformulations. First, a pixel-based optimization method is proposed, relying ondiscrete optimal transport. We show that it is related to a well-known textureoptimization framework based on iterated patch nearest-neighbor projections, whileavoiding some of its shortcomings. Second, in a semi-discrete setting, we exploitthe differential properties of Wasserstein distances to learn a fully convolutionalnetwork for texture generation. Once estimated, this network produces realisticand arbitrarily large texture samples in real time. The two formulations result innon-convex concave problems that can be optimized efficiently with convergenceproperties and improved stability compared to adversarial approaches, withoutrelying on any regularization. By directly dealing with the patch distribution ofsynthesized images, we also overcome limitations of state-of-the art techniques,such as patch aggregation issues that usually lead to low frequency artifacts (e.g. blurring) in traditional patch-based approaches, or statistical inconsistencies (e.g. color or patterns) in learning approaches.