基于生成式对抗网络的图像修复
2020-05-19杨会成储慧敏
潘 玥,杨会成,储慧敏
(安徽工程大学 电气工程学院,安徽 芜湖 241000)
0 引言
图像修复是指将信息缺失或损坏的图像进行填充,并达到人类视觉所满意的效果.它可以应用于许多场合,例如修复珍贵书籍或字画图片中残缺的信息,修补老照片中丢失损坏的部分,或从图像中删除不需要的文本对象.通常图像修复的内容由图像的纹理结构和语义结构决定,纹理信息和语义信息恢复的精度决定了图像修补的精度特性.
为解决图像修补的问题,许多科研人员用区分破损信息区域的大小的方法来选择修补方案.他们假设纹理和类似于缺失区域的语义结构可以从同一图像中找到[1-3],并且可以在缺失区域中提供语义结构信息以启用补丁搜索过程[4-5].一是图像丢失信息区域较少的情况,如点迹,划痕,褶皱痕迹等受损区域狭窄且长,或者是去除的缺失区域在光滑的图像内,一般采用基于扩散像素级修补方法[6].通过求解偏微分方程(PDE)[7]或类似的扩散系统[8]以传播信息,从未损坏的或可用的部分进入待修复的区域.二是图像丢失信息区域较大的情况,如遮挡、水印等,一般采用基于样本块的范例方法[9-10].其基本思想:首先将未知区域中的块与已知区域中的块进行匹配,然后在颜色、纹理以及结构的条件约束下,通过搜索、匹配和合成等一系列操作,选择合适的最佳匹配块来填充未知区域.这些替代方法基本上都在复制粘贴已知图像区域的相似信息,并且只限图像结构较少、无高度结构化信息.
情境感知图像修复方法最新用于完成图像的研究方案之中,这要求系统了解图像的整体语义,即生成对抗性网络发挥作用的地方.最初的生成式对抗网络从高斯分布采样的随机向量中生成样本,忽略先前知识信息的输入.最近,许多领域相关的先验知识、优化算法和修改的构造策略被提出与对抗网络相结合,并在图像生成任务中取得巨大成功.例如样式转移、超分辨率以及未来预测.受此启发,Radford等人[11]首先应用卷积网络构建生成器,并提出深度生成式对抗网络(Deep Convolutional Generative Adversarial Networks,DCGAN),DCGAN的出现从一开始就被应用于各类图像处理、自然语言处理等领域.其优势是通过博弈的方式提高生成图片的质量.基于此,我们的研究主要有四个步骤:一是在改进的DCGAN的基础上,利用其改进后的性能生成大量的携带可弥补缺失区域像素的伪造图像集;二是通过优先函数的计算,确定好下一项待修复像素补丁,此处参考使用类似Criminisi等人[12]定义的填充顺序;三是采用均方误差在众多伪造图像集中确定与待修复区域最匹配的补丁;四是结合期望最大化算法对图像进行二次修复,有效地改进只进行一次修补图像,完成细节融合,提高修复图像的准确度.
1 方法
图像修复的核心任务是将已损坏的信息缺失区域进行合理的填补,填补内容的选择可根据图像的结构信息和纹理信息来确定,填补后的效果可从视觉上探讨.填写图像中缺失内容所需的信息类型为上下文信息和感知信息.如果没有上下文信息,就无法知道填写缺失内容所需的信息内容.感知信息则扮演判断的角色,能评判新内容是否看起来是一个好的解决方案,因为在某些情境下可以存在多个解决方案.一个直观的图像修复算法,可以捕获这两个属性,确定如何一步一步完成图像修复.
图1 像素填充图
根据Criminisi算法描述一副损坏的图像,如下图1所示,给定一个损坏的图像A与部分缺失区域(白色空白区域)表示为Ω;φ为包含确定颜色值的区域,称为源区域,并且从源区域φ中寻找合适的推断值将其填充于图像缺失部分的目标补丁Ωc;假设缺失区域图像由大小为m×m的重叠方形块组成,其大小影响整个修复算法的功能和性能.δΩ为目标区域的边缘,ψp为以p(p∈δΩ)点为中心的正方形小块;n为δΩ在p点的切线的单位法向量.
我们研究的算法的主要步骤:一是生成大量伪造图像集;二是修复补丁顺序选择;三是从源区域找到候选补丁;四是填充缺失区域,并处理图像融合细节.
1.1 修复框架
生成式对抗网络(GAN)一经提出就迅速应用于图像处理和自然语言处理等领域,为了改善和稳定GAN,Goodfellow Ian从寻找更快的模型来训练GAN的角度出发,提出由卷积神经网络构建生成器,称为深度生成式对抗网络(DCGAN)[13].它能更高效的生成高分辨率图像,引起业内人士的广泛研究和关注,并迅速应用于各类计算机视觉领域,在深度学习乃至机器学习中取得巨大成功.DCGAN在结构上把经典GAN中的生成式模型G和判别式模型D换成了2个卷积神经网络(CNN).生成器G学习如何从一个输入图像结合输入噪声生成一张逼真的伪图像,而判别器D学习判断生成的图像是真实的图片还是由生成器G生成的“假的图像”,生成器G尽最大努力生成可通过检验的伪图像,判断器D尽可能地阻止想要欺瞒的生成图像.两个模型在互相博弈斗争中学习,也称对抗式学习,最终达到一个理想状态,训练生成图像逼近于输入图像.DCGAN的网络结构图由图2所示.
图2 DCGAN网络结构
神经网络体系结构的一些突破,从AlexNet[14]开始,良好的卷积网络在计算机视觉中得到应用与发展,包括后来的GoogLeNet[15]、VGGNet[16]和ResNet[17](残差网络),在特征提取、特征匹配中的表现尤其突出.其中ResNet中的残差函数能有效解决退化、加快收敛,实现网络优化的特点.
图3 改进的残差网络模块单元
受DCGAN的启发,本研究将生成器的卷积神经网络替换成残差网络结构[18].此外,对残差网络进行了改进,将原残差网络的最后一层卷积层替换成完全连接层,改进后的残差网络由卷积层、池化层以及激活函数构成.整个残差网络输出流程如图3所示.我们首先采用更高级别的卷积层替换一开始的全连接层,卷积层由预定义大小的过滤器堆叠组成,卷积块的大小为3×3,这些过滤器与每一层的输入进行卷积操作,池化层也多采用标准化操作,使用tanh激活函数代替传统的ReLU激活函数,数据集收敛更快,并且获得更清楚的图像.在每一个残差网络模块第一个卷积层后,添加一个dropout,旨在防止过拟合.另外,去除传统网络中的最后一个卷积层经过训练可发现能获得更好修复效果.
在生成式对抗网络中,对输入数据的处理流程如图4所示,在输入图像集的同时加入噪声,利用生成器G输出有效的伪造图像,将生成的图像和输入的图像同时送入判别器进行检测.一旦DCGAN开始训练学习,就执行图像修复,生成器G可以生成逼真的图像,并且鉴别D器能够将“假”与“真实”分开,这意味着从输入含有缺失信息的图像中,生成大量的初步输出的伪图像,利用伪图像中的像素信息,结合语义信息和结构信息对输入缺失的图像进行初次修复和填充.
图4 DCGAN执行流程图
1.2 修复补丁的选择
算法的第二步就是选择下一个目标补丁.我们应用优先级函数[19]来选择具有最高优先级的目标补丁.优先级函数P(p)等于两个项的乘积,即置信项C(p)和数据项D(p),其计算公式为
P(p)=C(p)×D(p) (p∈δφ).
(1)
(2)
完成ψp的修复后,按照上式继续对待填补的像素点的置信度值C(p)进行更新,排在后面修复的小块置信度就越来越小.数据项D(ψp)体现p点周围线性结构信息的强弱,其值越大,表现线性结构越强,D(ψp)计算公式为
(3)
对于每一个像素点p的修补边界δΩ,像素点p与构成其要素作为其中心,沿着边界修补补丁需要补丁的填充顺序.这是通过在沿着边界像素点p处计算补丁填充优先级顺序来实现的,并且选择具有最大优先级的那个用于区域填充.如公式1所描述,优先级函数即为置信项C(p)和数据项D(p)乘积.置信值描述了补丁中存在来自区域的有效源像素数量,数据项描述了该点的分数导数函数的强度.找到优先级像素点p,计算出δΩ上所有的以像素点为中心的小块区域的优先级后,确定其中最大的小块P(p),按照上述方法筛选出优先级最高的小块,根据结构和纹理信息点,在源区域中搜寻最相似的匹配块来填补丢失的信息点,当类似补丁被发现后,该补丁的适当部分被复制到包含在内部涂色区域ψp∩Ωc,填补补丁后,更新边界并重复该过程.
1.3 查找候选补丁
修复一张完整的图像y,不能直接最大化D(y)缺失像素的图像.这个过程可能导致既不是数据分布也不是生成分布,而是需要找到图像生成分布的合理预测.计算从所选择的目标像素点和对应补丁像素点的均方误差(MSE)[20],计算公式为
(4)
Ltotal=LGAN+Lmse.
(5)
图5展示了使用MSE度量进行匹配的算法对于恢复结构和纹理的任务,从图c中可以看出,所提出的算法在保留缺失区域中的垂直结构的同时恢复了纹理信息.
图5 输入图像与修复图像纹理对比图
1.4 二次修复
算法的第4步是图像修复后的二次融合修复,利用期望最大化算法(EM)[22],通过迭代的步骤对一次修复的图像在细节上进行融合处理,以期获得更高质量的修复图像.期望最大化算法由Dempster等[23]提出,算法由两步组成:E步,求取期望;M步,求极大值.对于一次修复图像,在结构和纹理的细节上把握不准确的区域,用EM算法中最大似然估计(MLE)来确定最终决定,从而选出最有可能的估计结果.因此,在某种程度上来说优化算法等效于图模型中的统计估计方法,我们首先考虑统计模型中的似然函数[24]为
(6)
在MLE中,求和可以用最大项表示sim(·,·)∈(0,1),但是相应的匹配补丁批次独立,因此最大似然函数为
(7)
下面是算法的执行过程,假设N为从源区域伪造图像收集的补丁样本,并将类似类似于补丁样本的对应映射关系表示为:{θi,i=1,2,…,N},其中ψp为一组样本.
第1步:初始化ψp,∀p∈P.
设置最大迭代时间T,并设置计算器t=0.
第2步:迭代.
2 实验结果与分析
为了验证我们提出方法的有效性,我们在人脸数据集CelebA[25]上进行模拟实验,该数据集包含多种多样的人脸图像.由于五官是图像中的唯一化的信息,例如,鼻子部分只有一个,眼睛和耳朵需要有面部对称性,单一的五官不能直接从破损图像内部可获得全部的修复补丁.因此,相对于其他图像修复,人脸图像的修复工作是比较困难的,对网络框架的选取的要求也很高.我们首先从数据集中随机选取20 000张照片来训练DCGAN模型,其中选取3/5数据集训练网络模型,2/5数据集用于测试模型,并将网络框架的batch size设置为32,迭代次数设置为10 000次.训练过程如图6所示,每设置1 000步截取一张图片.
图6 训练迭代
如图7所示,原始的CelebA图像被32×32补丁中心裁剪,并调整为64×64.然后将28×28贴片随机添加到图像中.图7左边部分为破损区域大小不一的待修复图像,右边为修复图像.
图7 运行结果图
图7展示了CelebA测试数据集的破损区域不一人脸图像的修复结果.为了显示图像修复的效果,本文采用峰值信噪比(peak signal to noise ratio,PSNR)和结构相似性(structural similarity index,SSIM)来比较不同方法的修复效果.峰值信噪比是图像修复领域中客观评价的标准,直接测量像素值的差异性来衡量修复效果的好坏,差异数值越大表示失真越小,图像修复效果越好.结构相似性指数是衡量修复图像和真实原图像直接相似度的指标.其数值为0~1之间的一个数值,数值越大代表修复图像和真实原图像的相似性越大,图像修复效果越好.当两张图像一模一样时,其结构相似性的数值就为1.
在修复过程中,我们的修复网络会自动覆盖破损区域,对破损区域进行划分,一步步达到修复效果.从表1可以看出,相对于传统的Criminisi模型,我们做了进一步改进,结合了其修复思想,运用了DCGAN生成大量的待修复补丁,扩大了修复的可选择性.在视觉效果上,修复好的图像可以弥补缺失图像的结构和纹理信息,在一定程度上可以代替原图像,其相似性度量数值比传统方法都高,对于破损区域为鼻子、眉毛以及脸颊部分,修复效果尚可.由于眼睛区域独特的纹理信息和颜色信息,跳跃间隔大,不像脸颊,眉毛等纹理变化小,结构单一.因此,眼睛区域的修复难度很大.对于破损区域为眼睛时,修复的融合效果有待改进,可以进一步提升.
表1 质量评价评分
3 结论
图像通过由于各种各样的因素而导致不完整性,图像修复是从图像中恢复合理图像的技术.比如说由于老化引起的信息丢失,由于磨损造成的区域缺失,在这种情况下,需要预测丢失而不希望加入过多的噪声伪像.针对单幅图像修复,本文在提出DCGAN结合EM进行二次修复的算法,其中在填充的顺序,选择目标补丁的过程中,结合了Criminisi等人的思想.我们的算法包含四个步骤:第一步通过输入缺失区域图像选用生成式对抗网络生成大量含有修复像素的伪造图像;第二步通过最大化优先函数确定下一个待修复的目标补丁;第三步使用MSE度量在大量的伪图像集中寻找与目标补丁最佳匹配的修复候选补丁;第四步利用EM进行二次修复,对细节进行融合处理,采用端到端模式,输入单幅残缺图像,直接输出修复好图像.本算法利用DCGAN生成大量的可选用为修复补丁的伪图像,从而为目标补丁提供更多选择,对图像修复进行多重考虑.