APP下载

基于DeblurGAN对运动图像的去模糊化研究

2019-12-13梁志勇肖衡杨琳

现代计算机 2019年31期
关键词:模糊化卷积损失

梁志勇,肖衡,杨琳

(1.三亚学院信息与智能工程学院,三亚 572022;2.三亚学院超算中心,三亚 572022)

1 背景

生成对抗网络(Generative Adversarial Networks,GAN)是Goodfellow等在2014年提出的一种生成模型,通过让两个神经网络相互博弈的方式进行学习。GAN的主要灵感来源于博弈论中零和博弈的思想,应用到深度学习神经网络上来说,就是通过生成网络G(Generator)和判别网络 D(Discriminator)不断的进行互相博弈,进而使网络G学习到数据的分布,如果应用于图形图像的生成上,则训练完成后,网络G可以从一段随机数中生成逼真的图像。

GAN的优势在于不仅能够保存图像中高纹理细节,而且创建出来的图像又能最大限度接近真实图像,所以可以主要用于图像超分辨率重构和图像修复。正因为GAN有着这样的优势,故可以基于条件GAN和多元内容损失的DeblurGAN用于运动图像的去模糊化操作。无内核的盲目运动去模糊的方法——Deblur-GAN用多分量损失函数来优化条件对抗网络的去模糊实现了一个实际合成的模糊去模拟不同的模糊源。

2 DeblurGAN

2.1 传统图像去模糊化架构

图像去模糊化处理是一个典型的不适应问题,因此处理难度比较大。在深度学习流行以前,传统的图像去模糊化主要使用模糊模型对其进行建模处理。模糊模型的常见表述如下:IB=K*IS+N。其中IB是模糊图像,K是模糊核,*表示卷积运算,N是加性噪声,IS是潜在、未知的清晰图像,也就是最终重构出来的清晰图像。

在去模糊化的方法中,一般分为两种类型:盲目去模糊与非盲目去模糊。但是在实际去模糊化操作中,模糊函数是未知的,因此可以在潜在、未知的清晰图像IS和模糊核K中找到盲目去模糊算法。为每个像素找到模糊函数是一个不适定的问题,因此大多数现有算法依赖于图像启发式和模糊源的假设。这些方法系列通过考虑图像上的均匀模糊来解决由相机抖动引起的模糊,这就需要根据诱导模糊核估计相机运动,然后通过执行反卷积操作来反转效果。

2.2 DeblurGAN的整个网络架构

在DeblurGAN中,输入一张模糊的图像IB,通过构建一个生成对抗网络,训练出一个卷积神经网络作为GAN中的生成器和一个判别网络,最终通过对抗形式重构出清晰的图像IS,从而达到去运动模糊的结果。整个网络架构如图1所示。

图1 DeblurGAN流程图

2.3 DeblurGAN的生成器和判别器

在生成器G(Generator)的网络结构设计上,DeblurGAN使用深度残差网络(ResNet)结构,由于ResNet不仅大幅增加了神经网络层数,而且在一定程度上解决了在很深的网络训练中梯度消失或梯度爆炸问题,这可以大幅提升模型的容纳能力,从而最终获得更佳的图像生成效果。对于生成器G的结构如图1所示。在图中的架构中可以看出,DeblurGAN包含两个1/2间隔的卷积单元、9个剩余residual单元和两个反卷积单元。每个ResBlock由一个卷积层、实例归一化层和ReLU激活组成。而DeblurGAN的判别器D(Discriminator)的网络架构依然使用pix2pix中的Patch-GAN。

2.4 DeblurGAN的损失函数

在DeblurGAN中,损失函数由“Adversarial loss”和“Content loss”这两部分构成,其整体计算公式是L=LGAN+λ∙LX,其中LGAN是 Adversarial loss、LX是 Content loss,λ=100。

(1)Adversarial loss

训练原始的GAN很容易遇到梯度消失、模型崩溃等问题,训练起来十分棘手。使用WGAN-GP实现了在多种GAN结构上稳定训练,且几乎不需要调整超参数。在DeblurGAN中使用的是WGAN-GP,Adversarial loss的计算式如下:

(2)Content loss

内容损失是评估生成的清晰图像和实际清晰图像之间的差距。两个常用的选择是L1(MAE)损失,和L2(MSE)损失。在 DeblurGAN 中使用“Perceptual loss”,本质上是一种L2(MSE)损失。Content loss的计算式如下:

3 实验结果分析

3.1 实验设计

本实验在Windows操作系统下基于TensorFlow深度学习框架下实现。数据集使用GOPRO数据集中进行训练。计算机硬件环境为AMD Ryzen 5 1600+16G内存+NVIDIA GeForce GTX1660TI。在模型中,生成器G和判别器D的学习率learning_rate设置成10-4。设置batch_size为200,可同时处理200张图像。设置epoch为200,表示训练200次全数据集,同时设定每50个epoch保存一次结果。

3.2 数据集的预处理

GOPRO数据集有三种版本,分别是GOPRO_Large(8.9G)、GOPRO_Large_all(35G)和 blurred_sharp.zip(1G),本文以blurred_sharp.zip中的图片作为整个模型的训练集和测试集。该数据集中的图像主要以汽车的运动场景所造成的图像模糊,图片均为720×720像素的图片。训练集中的blur文件夹中有1146张运动模糊图像和sharp文件夹中与之对应的清晰图片。在模型的训练过程中,将模糊图像与相对应的清晰图像同时作为生成器G(Generator)的输入。

图2 DeblurGAN中生成器G(Generator)的网络结构图

3.3 实验结果

经过200次全数据集的迭代训练之后,使用测试集图片进行验证,具体结果如图3所示。

图3 DeblurGAN的运行结果对比图

从结果可以看出来,相比于输入的blur影像,通过DeblurGAN后确实可以明显地看出图像清晰了很多,能显示出图像中的一些细节纹理,特别是上图中数字能基本准确辨别出来。由于训练的次数还不够或者是原图像过度模糊难以复原,部分放大了看仍有一些地方比较模糊。为了得到更佳的清晰图片,可以在增加迭代训练次数的基础上采用算力更强的显卡进行更多次的训练,从而既能节约训练时间,又能得到较好的预期结果。

4 结语

本文提出来基于DeblurGAN的运动图像去模糊的方法,相比传统的运动图像去模糊化算法,采用生成对抗网络(GAN)能够使得最终生成图像具有更佳的纹理效果。但由于本文提出的算法在训练过程中参数设置过于复杂,增加了训练的复杂度,同时也加深了训练时间,下一步的研究重点将用于如何在获得更佳的去模糊化图像的情况下,对模型参数进行优化,以降低训练的复杂度和训练时间。

猜你喜欢

模糊化卷积损失
洪涝造成孟加拉损失25.4万吨大米
基于全卷积神经网络的猪背膘厚快速准确测定
([0,1],[0,1])-模糊拟阵的基和秩函数
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
两败俱伤
我国村级环境政策末端执行模糊化问题研究
汉译英诗歌翻译中的“模糊性”研究
损失