def rec(left_blurs, right_blurs, left_deblurs, right_deblurs, left_kernels, right_kernels, nstd=0): left_rec = proc.gen_blur(left_deblurs, left_kernels, nstd=nstd, seeds=None) right_rec = proc.gen_blur(right_deblurs, right_kernels, nstd=nstd, seeds=None) rec_loss = tf.reduce_mean(tf.abs(left_rec-left_blurs)) \ + tf.reduce_mean(tf.abs(right_rec-right_blurs)) return rec_loss
def swap(left_blurs, right_blurs, left_deblurs, right_deblurs, left_kernels, right_kernels, nstd=0): left_swap = proc.gen_blur(right_deblurs, left_kernels, nstd=nstd, seeds=None) right_swap = proc.gen_blur(left_deblurs, right_kernels, nstd=nstd, seeds=None) swap_loss = tf.reduce_mean(tf.abs(left_swap-left_blurs)) \ + tf.reduce_mean(tf.abs(right_swap-right_blurs)) return swap_loss
niter = msave.iter ######################################################################### # Setup Graphs is_training = tf.placeholder_with_default(False, shape=[]) model = net.Net(is_training) # Images loading setup tset = Dataset(TLIST, KTLIST, BSZ, niter, rand_kernel=False) vset = Dataset(VLIST, KVLIST, BSZ, 0, isval=True) batch, swpT, swpV = tvSwap(tset, vset) imgs, left_kernels, right_kernels, left_ck, right_ck, seeds = batch # Generate blurry images left_blurs = proc.gen_blur(imgs, left_kernels, nstd=2, seeds=seeds[:,:2]) right_blurs = proc.gen_blur(imgs, right_kernels, nstd=2, seeds=seeds[:,2:]) # Deblur, same model for left and right images left_deblurs = left_blurs + model.generate(left_blurs) right_deblurs = right_blurs + model.generate(right_blurs) # Paired Loss loss, lvals, lnms = get_loss(left_blurs, right_blurs, left_deblurs, right_deblurs, left_kernels, right_kernels, nstd=0) # Stop gradients left_deblurs = tf.stop_gradient(left_deblurs) right_deblurs = tf.stop_gradient(right_deblurs) # Reblur, with random kernels left_reblurs = proc.gen_blur(left_deblurs, left_ck, nstd=2, seeds=None)
niter = msave.iter ######################################################################### # Setup Graphs is_training = tf.placeholder_with_default(False, shape=[]) model = net.Net(is_training) # Images loading setup tset = Dataset(TLIST, KTLIST, BSZ, niter, rand_kernel=True) vset = Dataset(VLIST, KVLIST, BSZ, 0, isval=True) batch, swpT, swpV = tvSwap(tset, vset) imgs, left_kernels, right_kernels, seeds = batch # Generate blurry images left_blurs = proc.gen_blur(imgs, left_kernels, nstd=2, seeds=None) right_blurs = proc.gen_blur(imgs, right_kernels, nstd=2, seeds=None) # Deblur, same model for left and right images left_deblurs = left_blurs + model.generate(left_blurs) right_deblurs = right_blurs + model.generate(right_blurs) # Loss loss = 0.5 * (tf.reduce_mean(tf.abs(imgs - left_deblurs)) + tf.reduce_mean(tf.abs(imgs - right_deblurs))) # MSE mse1 = tf.reduce_mean(tf.squared_difference(imgs, left_deblurs), axis=(1, 2, 3)) mse2 = tf.reduce_mean(tf.squared_difference(imgs, right_deblurs), axis=(1, 2, 3))
niter = msave.iter ######################################################################### # Setup Graphs is_training = tf.placeholder_with_default(False, shape=[]) model = net.Net(is_training) # Images loading setup tset = Dataset(TLIST, KTLIST, BSZ, niter, rand_kernel=False) vset = Dataset(VLIST, KVLIST, BSZ, 0, isval=True) batch, swpT, swpV = tvSwap(tset, vset) imgs, left_kernels, right_kernels, left_ck, right_ck, seeds = batch # Generate blurry images left_blurs = proc.gen_blur(imgs, left_kernels, nstd=2, seeds=seeds[:, :2]) right_blurs = proc.gen_blur(imgs, right_kernels, nstd=2, seeds=seeds[:, 2:]) # Deblur, same model for left and right images left_deblurs = left_blurs + model.generate(left_blurs) right_deblurs = right_blurs + model.generate(right_blurs) # Paired Loss _, lvals, lnms = get_loss(left_blurs, right_blurs, left_deblurs, right_deblurs, left_kernels, right_kernels, nstd=0) loss = 0.5 * (tf.reduce_mean(tf.abs(imgs - left_deblurs)) +