Pas encore de compte ?
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
Image dégradée
Image restaurée
DMSP-tensorflow
Licence
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