面向图像复原的残差密集生成对抗网络新方法
2020-04-11许乾坤李克东
李 烨,许乾坤,李克东
(上海理工大学 光电信息与计算机工程学院,上海 200093)
1 引 言
近年来,随着电子信息技术和移动互联网技术的飞速发展,各种具有手持拍摄功能的智能终端设备得到了极大普及.然而在图像实际拍摄和传播的过程中,因受成像距离、成像设备分辨率、相机抖动等因素的影响,往往会使图像在获取的过程产生质量退化,导致图像模糊[1].如何避免图像退化,改善图像质量,一直以来都是图像处理领域亟待解决的问题.
摄影过程中造成的图像模糊按照形成条件可以分为运动模糊、失焦模糊和高斯模糊三大类.其中,运动模糊是造成图像退化的主要原因,也是研究的热点之一.在获取图像的瞬间,摄像机与目标物体之间发生相对移动导致的图像质量退化,称为运动模糊[2].从数学角度来看,运动模糊可以看成是清晰图像与模糊核进行卷积产生的结果,在实际场景中,通常还会有随机噪声掺杂其中,其数学模型可以表示为:
B=K*S+N
(1)
其中,B表示模糊图像,K表示模糊核,S表示清晰图像,*表示卷积运算,N表示加性噪声.而图像去运动模糊可以简化为一个求解图像的反卷积过程,根据图像模糊的基本原理并借助一定的图像先验知识,从一张或多张模糊图像中重建出接近于真实图像的清晰图像.根据模糊核K的已知情况,可以将去模糊方法分为非盲去模糊[3]和盲去模糊[4]两大类.非盲去模糊可以直接根据模糊图像和已知模糊核求解出清晰图像.而盲去模糊只有估计出精准的模糊核才能恢复潜在的清晰图像,否则会直接影响复原图像的质量,产生振铃现象[5].鉴于传统的图像去运动模糊方法存在计算过程复杂、受噪声影响较大、对模糊核估计要求较高等缺陷,基于深度学习的去模糊方法应运而生,寄望于利用深度神经网络强大的特征学习和表达能力,提升去模糊的质量和效率.特别是生成对抗网络(Generative Adversarial Network,GAN)的出现为计算机视觉应用提供了新的技术和手段,本文提出了一种基于残差密集生成对抗网络的去运动模糊方法,采用端到端的方式,直接将一幅模糊图像复原为清晰图像而无需估计模糊核.
2 相关工作
2.1 图像去运动模糊
早期的图像去模糊研究主要针对非盲去模糊,即在模糊核已知的条件下对模糊图像进行复原.迄今为止,已经有许多非盲去模糊算法被提出,如经典的维纳滤波法[6]、Richardson-Lucy算法[7,8]等.然而在大多数情况下,我们很难提前获取模糊核的有效信息,找到每个像素值相对应的模糊核是一个严重的不适定性问题,这是盲去模糊的困难所在.目前,常用的盲去模糊算法大多依据贝叶斯理论,具体可以分为两大类:变分贝叶斯(Variational Bayes,VB)和最大后验概率(Maximum A Posteriori,MAP).与变分贝叶斯算法相比,最大后验概率算法的推导简单且计算复杂度较低,因而使用比较广泛.Fergus等[9]首次利用自然图像的统计信息等先验知识成功地从比较严重的单幅运动模糊图像中恢复出潜在的清晰图像,但该算法会出现明显的振铃现象.Shan等[10]针对Fergus算法的不足,提出了结合局部先验和自然图像的稀疏梯度先验的去模糊方法,有效复原出清晰图像并且减轻了振铃现象.Xu和Jia[11]提出了一种两阶段模糊核估计算法,并利用正则化约束的方法对图像进行交替复原,该算法取得了较好的去模糊效果,但是计算比较复杂.2011年Krishnan等[12]提出一种归一化图像稀疏先验的盲去模糊算法,能够快速对模糊图像进行复原,但复原出的图像质量并不是很高.Whyte等[13]基于相机曝光过程中旋转速度的参数化几何模型,提出了一种新的非均匀盲去模糊算法,但重建出的图像产生了严重的振铃现象.Xu等[14]于2013年提出了一个广义的和数学上的L0稀疏表达式且给出了一种有效的去运动模糊新方法.
近年来,随着深度学习的发展,卷积神经网络被广泛应用于图像处理领域,并取得了前所未有的巨大成功.Xu等[15]提出了一种基于卷积神经网络的非盲去模糊方法,开辟了深度学习在图像去模糊研究领域的新篇章.2015年,Sun等[16]提出了一种利用卷积神经网络估计模糊核的盲去模糊方法.Chakrabarti等[17]在2016年提出采用滤波器将输入图像进行分解得到图像特征,并结合神经网络的方法估计模糊核,最后通过离散傅里叶变换得到复原图像.该方法可以估计不同尺寸的模糊核,但复原出的图像会出现边缘特征模糊现象.Nah等[18]于2017年提出了一种基于深度多尺度卷积神经网络的图像去模糊方法,该方法对于自然场景下空间变化的运动模糊图像有明显的复原效果.Nimisha等[19]通过将自编码器和生成对抗网络相结合,提出一种基于稀疏自编码的条件生成对抗网络用于模糊图像的盲复原.Ramakrishnan等[20]提出了一种用于消除运动模糊的深度生成网络,该方法将密集卷积神经网络与生成对抗网络结合在一起,构建出去运动模糊网络模型,取得了较好的去模糊效果.
2.2 生成对抗网络
GAN是2014年由Goodfellow等[21]提出的一种生成式深度学习模型,目前在图像超分辨率重建[22]、图像翻译[23]、风格迁移[24]、文本图像的相互生成[25]以及图像的还原与修复[26]等多个计算机视觉领域取得了显著成功[27].
该模型采用二人零和博弈的思想,理论上可以逼近任何概率分布.系统由生成器和判别器两部分构成,通过对抗学习的方式进行训练.生成器学习真实数据样本的潜在分布并生成新的数据样本;而判别器本质上为一个二分类器,甄别输入的数据是真实数据还是生成器生成的数据.GAN的优化过程可以描述为一个“二元极大极小”博弈问题,优化目标是达到纳什均衡[28],使得生成器能够估测到数据样本的概率分布.其目标函数定义为:
(2)
其中,D表示判别器,G表示生成器,E表示期望,x采样于真实数据分布pdata(x),z采样于先验噪声分布pz(z).
生成器与判别器的训练过程是交替进行的,更新一方参数时,另一方的参数保持不变.为了使生成器能够尽可能多的学习到有效信息,通常情况下,首先需要训练判别器D,然后再训练生成器G.
1)训练判别器D
在生成器给定的情况下,优化判别器,判别器的目标函数定义为:
(3)
对于第一项,当输入判别器的数据为真实数据x时,我们希望得到的判别结果D(x)越接近1越好;对于第二项,当输入的数据为假样本时,我们希望得到的结果D(G(z))越接近0越好,两项合在一起即最大化判别器目标函数.
2)训练生成器G
训练生成器时,判别器的权重参数被固定,目标函数为:
(4)
由于生成器的目标是生成更加逼真的数据骗过判别器D,所以对于输入的假样本G(z),我们希望通过判别器D判别的结果D(G(z))越大越好(或者说是1-D(G(z))越小越好),即最小化生成器的目标函数.
3 模型架构
基于GAN构建的去运动模糊基本网络模型如图1所示,其中生成器的目的是尽量学习图像数据样本的潜在分布,使得生成的图像尽可能的接近于真实清晰图像,而判别器的目的是尽量辨别出输入的图像数据样本是来自于真实清晰图像还是来自于生成器生成的图像.在对抗训练中生成器的生成能力和判别器的判别能力不断得到提高,当判别器的判别能力提升到一定程度,并且无法判别数据来源时,可以近似认为此时的生成器学习到了真实图像数据样本的分布,整个网络到达了一个纳什均衡状态.
图1 去运动模糊基本网络模型Fig.1 Basic network model of motion deblurring
3.1 生成器
生成器的作用是从输入的模糊图像中重建出复原后的清晰图像,因此,它不仅要保留输入图像的结构和细节信息,而且还要尽可能的消除模糊.不同于原始GAN,本文生成器G的输入不是随机噪声,而是待修复的模糊图像.如图2所示,输入的模糊图像首先通过卷积层进行卷积操作,卷积层的参数设置为Conv(64,7×7,1×1),即64个7×7的卷积核,步长为1,再填补适宜的0用来保持原图像的尺寸大小.然后经过两层卷积核大小为3×3、步长为2的步幅卷积,确保生成网络在学习中能够获得提取模糊图像从像素级特征到内容级特征的能力,所提取的浅层特征输入到由10个残差密集块(Residual Dense Block,RDB)构成的深度残差密集网络(Residual Dense Network,RDN)[29].RDB的结构如图3所示,每个RDB除了最后一层卷积层的卷积核大小为1×1、步长为1之外,其余卷积层的卷积核大小均为3×3、步长均为1.所有RDB经拼接(Concat)以进行全局特征融合操作,并通过卷积核大小为1×1、步长为1的卷积层进行降维处理.为了使生成网络的生成图像和输入图像具有相同的尺寸,使用了两层步幅为1/2的微步幅卷积进行反卷积操作.生成器中的每一个卷积层后面都紧跟一个实例化标准层(InstanceNorm,IN),除了输出层使用Tanh激活函数外,其余层均使用ReLU激活函数.此外,通过增加跳变连接(Skip Connect)来提高整个网络的训练速度和收敛性能.RDN结合残差网络和密集连接网络的特性,充分利用了待修复图像的所有分层特征,且RDN中的前一个RDB的输出可以直接访问后一个RDB的各层,从而使得需要保留的特征信息可以连续传递,为图像重构提供更多的线索信息.考虑到模糊图像与清晰图像在像素值上非常接近,深度残差密集网络结构可以更好地学习两幅图像之间的映射关系.相比于其它的卷积神经网络模型,RDN能够提取图像不同层次的分层特征,保留图像中大量的细节信息,重建出更加完整的图像.
图2 生成器结构Fig.2 Generator structure
图3 残差密集块结构Fig.3 Residual dense block structure
3.2 判别器
判别器结构如图4所示.判别器一方面用来判断输入图像的真假,另一方面也辅助生成器生成更为接近于真实图像的去模糊图像.判别器的输入维度和生成器的输出维度一致,都为128×128×3,网络结构主要由卷积层、实例标准化层以及LReLU(Leaky ReLU)激活层组成,在判别网络的最后一层后面连接Sigmoid激活函数,将输出映射到[0,1]之间.
图4 判别器结构Fig.4 Discriminator structure
4 损失函数
a)对抗损失
原始生成对抗网络的优化策略是基于JS散度(Jensen Shannon Divergence)和KL散度(Kullback Leibler Divergence),但是这种优化方式会导致训练过程不稳定且容易产生梯度消失和模型崩溃的现象.针对上述问题,Arjovsky等[30]提出了使用EM距离(Earth-Mover Distance)作为优化策略的Wasserstein生成对抗网络(WGAN),相比于原始GAN具有一些改善,但是仍然存在训练困难、收敛速度慢的问题.研究表明,引入对抗损失函数,通过生成器与判别器之间的对抗博弈,可重建出更多的纹理细节信息,使得生成的图像在主观视觉上更加真实锐利.Gulrajani等[31]提出WGAN-GP,采用如下带梯度惩罚项的对抗损失,以改进WGAN的训练:
(5)
b)感知损失
为了获得更加清晰的图像,提升生成图像的感知效果,引入在ImageNet数据集上预先训练好的VGG-19网络,该网络的卷积核大小为3×3,共有19层,包括16个卷积层和3个全连接层,多个卷积层与非线性的激活层交替的结构使得其特征提取的能力较强,可以衡量生成图像和真实图像之间的高维特征差异,并致力于缩小它们.将生成器生成的图像和目标清晰图像输入到网络中,通过深层卷积神经网络提取到生成图像与目标图像空间特征,然后计算两者的欧式距离.文中通过计算清晰图像与重建图像在VGG-19网络中第3个池化层前的第3个卷积层的特征差异来计算感知损失,在感知损失的约束下,使得生成的图像与目标清晰图像在语义上更为相似.感知损失函数定义为:
(6)
其中,S表示清晰图像,B表示模糊图像,Wi,j、Hi,j表示特征映射图的宽和高,φi,j表示在VGG-19网络中第i个池化层前的第j个卷积层的特征映射.
c)梯度L1正则化和L1损失
考虑到清晰图像与模糊图像之间的边缘特征差异较大,引入梯度L1正则化,用来约束生成图像与真实图像之间的梯度差异;为了保证生成图像与真实清晰图像在低频特征细节的相似性,进一步引入L1损失函数;这样二者结合构成一组新的损失函数项,既有助于网络模型的优化又可以保留图像更多边缘细节和结构信息.该损失函数定义为:
lx=‖G(B)-S‖1+β‖G(B)-S‖1
(7)
其中,‖G(B)-S‖1表示L1损失,表示梯度算子,β表示梯度L1正则化权重.
模型的总体损失函数由ladv、lpercep和lx三部分构成,在损失函数的约束下生成器和判别器进行对抗训练,最终达到纳什均衡状态,总体损失函数定义为:
ltotal=ladv+k1·lpercep+k2·lx
(8)
其中,k1、k2为权重因子,用于平衡各项损失函数.
5 仿真实验分析
5.1 数据的获取与处理
采用Nah等[18]公开的GoPro数据集进行实验.该数据集是对不同场景下拍摄的一系列连续清晰视频图像累加高速视频中的视频帧,来近似模拟现实生活中运动模糊图像的产生过程.整个数据集由3214对模糊清晰图像对构成,其中的2103对作为训练集,剩余的1111对为测试集.训练前预先对数据做成对处理,将模糊图像和清晰图像拼接在一起,输入网络中的图像分辨率大小均调整为128×128×3.
5.2 实验设置
通过Tensorflow深度学习框架实现本文模型,实验平台搭建在Google Cloud Platform,硬件配置为8个vCPU,15GB内存,NVIDIA Tesla K80 GPU.模型epoch设置为300,对抗损失中权重参数λ设为10,梯度L1正则化权重设置为β设置为10-5,总体损失函数中的权重因子k1和k2分别设为100和75.考虑到样本数据量比较小,将batchsize设置为1,学习率算法采用自适应矩估计(ADAptive Moment estimation,ADAM)优化策略,经过多次训练后,最终将学习率大小设置为0.0001,Adam优化器其余的超参数设置为默认值.采用峰值信噪比(Peak Signal to Noise Ration,PSNR)和结构相似性(Structural SIMilarity,SSIM)作为图像修复质量优劣的评价指标,其中PSNR衡量重建图像与真实图像在像素值上的差异,其值越高说明图像失真越小,而SSIM从亮度、对比度、结构信息三方面来衡量两幅图像之间的相似度,其值越接近于1,说明重建图像与真实图像在结构上更加相似,复原效果越好.
5.3 网络结构的影响
为了验证本文残差密集网络模型的有效性,在相同的参数设置和数据集下,与残差网络、密集连接网络进行对比研究,实验结果如图5和表1所示.由图5可见,尽管三种方法的去模糊效果在视觉清晰度上比较接近,但是从放大的细节图可以清楚观察到,采用本文网络模型重建出的图像恢复了更多的细节特征.由表1可见,采用本文网络模型得到的PSNR和SSIM明显高于其它两种网络结构.这表明,RDN结合残差网络和密集连接网络二者的优势,通过浅层特征提取、残差密集连接和特征融合,充分利用原始图像的所有分层特征,可获得更优的图像复原效果.
表1 采用不同网络模型的去模糊结果对比
Table 1 Comparison of deblurring results adopting
different network models
残差网络密集连接网络本文方法PSNR26.872026.431927.8169SSIM0.85440.81080.8941
5.4 损失函数的影响
为了验证本文所提损失函数的效果,在相同参数设置和数据集下,采用不同函数组合进行实验对比研究.实验结果如图6和表2所示.由图6可见,ladv+l1损失函数组合去模糊效果最差,重建出的图像存在部分模糊和细节缺失现象.尽管ladv+lpercep和ladv+l1+lpercep损失函数组合重建出的图像在整体主观视觉上与本文方法相差不大,但从放大的细节图中可以发现本文方法重建出的图像更加清晰自然且拥有更多的细节特征.由表2分析ladv+l1+lpercep组合相比于ladv+lpercep,前者生成图像的PSNR和SSIM指标都有一定程度的提高,这是由于L1损失函数的引入能够辅助网络模型捕获更多的图像低频信息,确保生成图像的完整性;ladv+l1+lpercep组合相比于ladv+l1,其SSIM有一定程度的提高,说明感知损失的引入可以保留图像更多的结构信息;本文方法将对抗损失、感知损失、L1损失函数和梯度L1正则化组合起来,所生成图像的PSNR和SSIM均获得了最高的指标值.
表2 采用不同损失函数组合的去模糊结果对比
Table 2 Comparison of deblurring results adopting
different loss functions combination
ladv + lpercepladv + l1ladv+ l1 + lpercep本文方法PSNR26.504827.211627.081427.8169SSIM0.87360.86390.88500.8941
图5 采用不同网络模型的去模糊结果对比Fig.5 Comparison of deblurring results of different network models
图6 采用不同损失函数组合的去模糊结果对比Fig.6 Comparison of deblurring results adopting different loss functions combination
5.5 与其他方法对比
选取Whyte等[13]、Xu等[14]和Ramakrishnan等[20]分别提出的三种具有代表性的盲去模糊算法进行对比研究,实验结果如图7和表3所示.由图7可以看出,文献[13]的去模糊结果出现了明显的失真现象;文献[14]的去模糊结果相比于模糊图像虽然在视觉清晰度上有较大改善,但是复原出的图像边缘存在一部分的模糊区域,并且出现了细节缺失现象;文献[20]相比于上述两种算法无论是视觉清晰度还是图像质量评价指标均有较大提升,但是重建出的图像细节区域仍然不够清晰;显然,本文方法在视觉清晰度、边缘特征以及细节信息等方面均有明显改善,这说明所构建的网络模型和采用的损失函数对于图像边缘特征、细节信息的提取和复原均具有更好的作用.由表3可以看出,本文方法的PSNR和SSIM指标均高于其它三种方法,说明去模糊效果更优.
图7 与三种代表性方法的对比Fig.7 Comparison with three representative methods
表3 与三种代表性方法的对比
Table 3 Comparison with three representative methods
文献[13]文献[14]文献[20]本文方法PSNR24.216525.185827.478027.8169SSIM0.80140.88320.89240.8941
6 结 语
提出了一种基于残差密集生成对抗网络的图像去运动模糊的新方法,采用端到端的方式直接对模糊图像进行复原,无需估计模糊核,有效避免了由于估计模糊核带来的一些问题.以残差密集网络作为生成式模型的核心组件,为图像复原提供更多的特征信息,并在各项损失函数的约束下,重建出细节丰富、真实锐利的图像.实验结果表明,与已有的几种代表性的盲去模糊方法相比,本文方法在主观视觉效果和图像质量评价结果方面均有明显提高.