Logo elodees  elodees

Une IA bien-veillante pour un monde meilleur













Seuls les caractères alphabétiques accentués ou non ainsi que l'espace sont acceptés

Logo IA




Décalage moyen profond a priori pour la restauration d'image





Pas encore de compte ?

Inscrivez-vous pour accéder à tous les contenus




Dans ce github, ils introduisent une image naturelle a priori qui représente directement une version lissée gaussienne de la distribution de l'image naturelle.

Ils incluent leur a priori dans une formulation de restauration d'image en tant qu'estimateur de Bayes qui nous permet également de résoudre des problèmes de restauration d'image sans bruit.

Ils montrens que le gradient de leur a priori correspond au vecteur de décalage moyen sur la distribution naturelle de l'image.

De plus, ils apprenent le champ vectoriel de décalage moyen à l'aide d'auto-encodeurs de débruitage et l'utilisens dans une approche de descente de gradient pour effectuer une minimisation du risque de Bayes.

Ils démontrent des résultats compétitifs pour le brouillage sans bruit, la super-résolution et le dématriçage.



Testé sous Anaconda et Python 3.7

import numpy as np
import scipy.io as io
from PIL import Image
import tensorflow as tf
 
# The DMSP deblur function and the RGB filtering function (flipped convolution)
from DMSPDeblur import DMSPDeblur, filter_image
# The denoiser implementation
from DAE_model import denoiser
 
# Limit the GPU access
import os
os.environ["CUDA_VISIBLE_DEVICES"]="0"
 
 
# configure the tensorflow and instantiate a DAE
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
config.allow_soft_placement = True
sess = tf.Session(config=config)
 
DAE = denoiser(sess)
 
 
# Load data
sigma_d = 255 * .01
matFile = io.loadmat('kernels.mat')
kernel = matFile['kernels'][0,0]
kernel = kernel / np.sum(kernel[:])
gt = np.array(Image.open('data/101085.jpg'), dtype='float32')
 
degraded = filter_image(gt, kernel)
noise = np.random.normal(0.0, sigma_d, degraded.shape).astype(np.float32)
degraded = degraded + noise
 
img_degraded = Image.fromarray(np.clip(degraded, 0, 255).astype(dtype=np.uint8))
img_degraded.save("data/degraded.png","png")
 
 
# non-blind deblurring demo
# run DMSP
params = {}
params['denoiser'] = DAE
params['sigma_dae'] = 11.0
params['num_iter'] = 300
params['mu'] = 0.9
params['alpha'] = 0.1
params['gt'] = gt # feed ground truth to monitor the PSNR at each iteration
 
restored = DMSPDeblur(degraded, kernel, sigma_d, params)
 
img_restored = Image.fromarray(np.clip(restored, 0, 255).astype(dtype=np.uint8))
img_restored.save("data/restored.png","png")
 
# noise-blind deblurring demo
# run DMSP noise-blind
params = {}
params['denoiser'] = DAE
params['sigma_dae'] = 11.0
params['num_iter'] = 300
params['mu'] = 0.9
params['alpha'] = 0.1
params['gt'] = gt
 
restored_nb = DMSPDeblur(degraded, kernel, -1, params)
 
img_restored_nb = Image.fromarray(np.clip(restored_nb, 0, 255).astype(dtype=np.uint8))
img_restored_nb.save("data/restored_noise_blind.png","png")
 


Image originale

Tensorflow playground

Image dégradée

Tensorflow playground


Image restaurée

Tensorflow playground


DMSP-tensorflow

License: CC BY-NC-SA 4.0LicenseCC BY-NC-SA 4.0  Licence


GitHub













Bienvenu, je m’appelle Eric Soupet et je suis l'administrateur du site elodees.com. elodees.com est un état de l'art de l'Intelligence Artificielle et se veut collaboratif, vous pouvez dès à présent proposer du contenu tels que des articles, des événements, des tutoriels, ... alors n'hésitez pas !

Crédit des images de la plate-forme : Pixabay - Pixabay License | Pexels - Pexels License