APP下载

基于生成对抗网络的分级联合图像补全方法

2020-01-19冀俭俭

图学学报 2019年6期
关键词:网络结构全局局部

冀俭俭,杨 刚

(北京林业大学信息学院,北京 100083)

图像补全技术旨在合成图像中缺失或损坏的区域,是低级视觉中的基本问题。由于该技术具有广泛的应用,因此也是计算机视觉和图形图像领域的一个活跃的研究课题。图像补全技术可用于补全被遮挡的图像区域或修复受损的照片。此外,还可以用于调整图像中对象的位置或者删除不期望存在的物体。各种应用都需要合成图像具有精细的纹理和结构信息,但是由于自然图像的复杂性和该问题的固有模糊性,使得图像补全技术仍然是一项具有挑战性的任务。图像补全任务面临的难题是以视觉上合理的方式填补图像中的空白。

目前,已经有很多方法被提出用于图像补全,主要包括基于数字修补[1-2]、基于样本[3-6]和基于深度学习[7-9]的图像补全3个方面。基于扩散的图像补全是第一个数字修补方法[10],该方法通过将来自于已知区域的图像信息扩散到像素级的缺失区域来填充缺失的像素。基于扩散的图像补全方法基本上都基于变分方法和偏微分方程(partial differential equation,PDE)理论[11-13]。PDE算法是迭代算法,由KRÄHENBÜHL和KOLTUN等[12]提出,其重要目标是将图像的梯度方向和灰度值都传播到要填充的区域内部,并解决图像处理中对高阶偏微分方程的需求。如果缺失区域很小,PDE算法将产生良好结果。但是当缺失的区域很大时,该算法则需要很长时间,并且不会产生好的结果,而是产生一些模糊的区域,使得填充区域变得不自然。基于数字修补的另外一个较为常见的补全方法是以数据驱动的方式进行图像补全[14],该方法假设图像中相似的内容具有相同的上下文信息,通过从外部数据库中寻找匹配度较高的图像块进行图像补全。其在查找与示例图像具有足够的视觉相似性的图像块时非常有效,但当外部数据库中缺乏相关图像时,该方法就会受到很大的限制。此外,这种方法在运行时间和存储空间上也具有一定的缺陷。

相较于基于数据驱动的补全方法,基于样本的补全方法可以进行更复杂的图像填充,可以填充自然图像中较大面积的缺失区域。基于样本的图像补全方法最初被用于纹理合成[15-16],其中纹理块从源图像中采样并粘贴到目标图像中,随后被扩展到通过基于能量优化的图形分割和纹理生成[17-18]的图像拼接[19]中。在图像补全的应用中,该方法得到了一些改进[20-21],例如最佳补丁搜索。特别是,WEXLER等[22]和SIMAKOV等[23]提出了一种基于全局优化的方法,可以获得更一致的填充。这些技术后来经过随机块搜索算法(PatchMatch)[24]进行加速,并允许对图像进行实时的高级图像编辑。但是,基于样本的补全方法只有在缺失区域由简单的结构和纹理构成时才能很好地工作。

基于数据驱动和样本的补全方法在合成面积较小或具有相似性结构纹理的图像时具有较好的结果,但是图像具有复杂的纹理和结构信息时,补全效果很不理想。近几年,深度学习的发展在图像修复方面也展现出了突出的成果。深度学习能够在保留语义和情境细节的基础上填充自然图像中大量缺失区域,同时能够更加有效地捕获图像的高级特征,从而推进了基本的图像处理任务,如对象移除等的发展。PHATAK等[25]结合L2损失和对抗损失训练了一个编码器-解码器卷积神经网络(上下文编码器),直接预测丢失的图像区域,能够预测合理的图像结构,并且只需要一次正向传播,速度非常快。虽然结果令人鼓舞,但该方法的修复结果有时缺乏精细的纹理细节,从而在缺失区域的边界周围产生可见的伪影。此外,该方法也不适用于处理高分辨率的图像,对抗网络需要根据生成图像和真实图像像素之间的损失反向调整网络参数,网络难以收敛。针对以上方法的不足,文献[8]提出了用编码器-解码器卷积神经网络作为全局内容约束,同时利用缺失区域与已知区域之间的局部神经块的相似性作为纹理约束,两者结合进行图像补全。文献[8]将高分辨率图像分为若干步进行补全,增加了纹理信息的真实性,但是难以保证补全图像的全局一致性。IIZUKA等[26]提出了全局和局部一致性图像补全方法,通过使用经过训练的全局和局部上下文判别器来区分真实图像和补全图像。全局判别器查看整个图像以评估整个图像是否一致,而局部判别器仅查看以补全区域为中心的小区域,以确保生成的图像块的局部一致性。但是当缺失区域面积较大或位于图像边缘位置时,由于上下文信息的缺失和生成对抗网络结构的不稳定性,补全结果会有空白和伪彩色区域生成。

文献[26]提出的全局和局部一致性图像补全方法补全大面积和边缘缺失区域的不足问题和 GAN本身难以训练的问题,本文提出了针对于大面积和边缘缺失区域的分级联合图像补全方法,并对文献[26]方法中的网络结构做了改进。

1 方法

1.1 全局和局部一致性图像补全方法

文献[26]采用了全局和局部一致性的方法对图像进行补全,即首先在原图上随机生成缺失区域,并生成对应的二值图像(0表示完整区域,1表示缺失区域)。将原图和对应的二值图像输入到补全网络中,利用原图中缺失区域和生成图像中补全区域的均方误差损失(mean-squared loss,MSE Loss)对补全网络进行训练;然后固定补全网络,分别将生成图像和生成图像中以补全区域为中心的区域输入到全局判别器和局部判别器中,并利用对抗损失对2个网络进行训练;最后将对抗损失和均方误差损失联合起来一起训练3个网络。文献[26]方法较已有的图像补全方法效果更好,但依然存在问题:①当缺失区域面积较大时,最终的补全结果较为模糊;②当缺失区域位于边缘区域时,由于上下文信息的缺失和补全网络与判别器训练速度的不一致性,导致补全的结果会出现模糊及色彩失真的问题。本文针对这2个问题做出了改进。

此外,文献[26]方法中采用的网络结构为原始生成对抗网络(generative adversarial network,GAN)模型。原始 GAN最明显的一个不足是训练过程难以收敛且具有很大的不稳定性。原因在于:①不同于一般的深度学习问题具有明确的目标函数,通过梯度下降法进行训练,GAN的训练是一个寻找纳什均衡点的过程。生成器和判别器在训练过程中任意一方的误差的下降可能导致另一方的误差上升,GAN很难达到相对均衡的状态,总是在生成样本的各种模式之间振荡,最常见的是GAN将不同的样本输入映射到相同的生成样本上,即重复生成相同的数据,该现象也被称为模式坍塌(model collapse)。②由于一般判别器的迭代速度高于生成器,两者的迭代速度不一致问题会导致GAN模型的不稳定性问题,难以得到最优模型。③反向传播过程中容易出现梯度消失等现象,导致模型训练较为困难。针对于GAN的缺点,研究者在GAN基本模型的基础上衍化出一系列新的模型,如条件生成对抗网络(conditional GAN,cGAN)[27]、深度卷积神经网络(deep convolutional GAN,DCGAN)[28]、基于散度的生成对抗网络(Wasserstein GAN,WGAN)[29]等。其中,WGAN的主要贡献是提高了原始GAN网络结构训练的稳定性。生成问题可近似理解为回归问题,原始GAN网络结构中判别器的最后一层使用的是sigmoid激活函数,将生成问题近似为0-1二分类问题,容易造成生成器和判别器难以达到平衡状态,引起模式坍塌及难以收敛等问题,WGAN通过将判别器的最后一层sigmoid函数去掉,提高了网络训练的稳定性。

结合WGAN的方法,本文在文献[26]方法的基础上对图像补全方法和网络结构 2个方面做了改进:①通过将补全区域的中心区域作为本文添加的局部判别器 2的输入,使训练过程在中心区域和真实图像相应区域的损失函数上反向传播,合成结果更加真实;②文献[26]方法中网络结构的训练存在不稳定、难以收敛等问题,本文通过“加宽”网络,即添加了局部判别器 2,并将原始网络结构中判别器的最后一层sigmoid激活函数去掉,将每一个relu层替换为BN层和leaky_relu层的结合,避免了梯度消失、模式坍塌及网络难以收敛等问题,使得网络结构更加稳定,从而补全效果更加真实、清晰。

1.2 分级联合图像补全

在文献[26]方法的基础上,本文首先在原图orig上随机生成具有任意形状的空白区域,作为输入图像x,并生成输入图像对应的Mask二值图像(图1)。训练过程中首先利用补全区域c与原图orig中对应区域之间的均方误差损失L(orig,Mc)(式(1))训练补全网络,经过反复迭代之后得到补全网络的初步补全图像;然后从初步补全图像中裁剪出一个以补全区域为中心的图像块d,并将其与生成的整张图像分别输入到局部判别器和全局判别器中,以对抗损失Lodvd(式(2))同时训练2个网络。初步补全结果中保留了图像的结构信息,全局网络判别器用以保证图像的全局一致性,局部网络判别器用于保持补全区域与其他区域的局部一致性。

其中,Mc为输入的二进制Mask图像;Md为二进制图像中以缺失区域为中心的局部区域d。

但是,当缺失区域面积较大或位于图像边缘位置时,由于上下文信息的缺失和训练的不稳定性,以上3个网络得到的补全结果会出现失真、伪彩色等现象。因此,本文还生成了位于补全区域中心位置的图像块d′,如图1(b)所示。其中,x为输入图像;d为输入图像中以缺失区域为中心的图像块;c为缺失区域;d′为位于缺失区域中心且大小为缺失区域面积1/4大小的图像块。

图1 图像区域划分示意图

通过将d′输入到局部判别器网络2中并计算其与真实图像对应区域的对抗损失Ladvd′,与全局判别器和局部判别器一起训练反向调整网络参数,使得最终补全的纹理信息更加具有真实性,且保持了与周围区域的局部一致性,即

最后,以联合损失L训练整个网络结构,即

其中,α为对抗损失所占的比重的系数。

本文基于生成对抗网络的分级联合图像补全方法流程图如图2所示。

图2 分级联合图像补全流程图

1.3 网络结构

本文方法采用的网络结构如图3所示。包括补全网络(completion network)、全局判别器(globally discriminator)、局部判别器(locally discriminator)和局部判别器2(locally discriminator 2)4个网络。其中,补全网络用于生成缺失区域的内容,全局判别器查看整个生成图像与原图之间的真实性,以评估整个图像是否一致;而局部判别器仅查看以补全区域为中心的小区域,以确保生成的图像块的局部一致性。本文方法添加的局部网络判别器2,用于判定缺失区域的中心区域的生成图像与原图相应区域的图像内容的真实性,并平衡补全网络和判别器的迭代速度,使得生成图像中补全区域的边缘更加真实自然。

图3 网络结构图

补全网络的输入是含有缺失区域的整张图像和对应的二进制通道图片(0代表完整区域,1代表缺失区域),输出为补全区域和输入图像中的完整区域组合成的图像;然后将整张生成图像输入到全局判别器中,判断生成内容的真实性,并保持图像的全局一致性;局部判别器的输入为生成图像中以补全区域为中心的局部区域,用于保持生成区域与其他区域的局部一致性。本文添加的局部判别器2的输入为生成图像中补全区域的中心区域,用于判定大面积缺失区域的中心区域生成内容的真实性和边缘区域与其他区域的局部一致性。

其中,补全网络采用的是编码器-解码器结构,包含 10个卷积层、4个空洞卷积层、2个反卷积层和1个输出层。除了第1个卷积层使用5×5的卷积核之外,其余所有的卷积层和空洞卷积层均使用3×3的卷积核,反卷积层使用4×4的卷积核。文献[26]方法中补全网络中除最后一层外,其余每个卷积层后面都有一个relu层。由于relu激活函数会忽略掉负值的作用,将输入为负值的神经元的梯度置为0,造成“神经元死亡”的现象。针对relu的缺陷,本文将relu层替换为BN层和leaky_relu层的结合。网络反向传播过程是通过对网络前向传播过程中得到的实际输出与期望输出之间的误差求偏导,进而调整每一层网络的参数进行的。当网络层数较深,反向传播靠近输入层时,偏导数趋近于零,容易陷入局部最优。批归一化操作使得网络训练过程中每一层的输入保持相同的分布,避免了以上问题。leaky_relu解决了relu激活函数中当输入为负值时,输出为 0的现象,避免了梯度消失等问题。

本文方法的网络结构中包含 3个上下文判别器:全局判别器、局部判别器和局部判别器2。其中,局部判别器是本文在文献[26]方法的基础上增加的网络。

原始网络结构中判别器的训练速度比生成器快得多,导致判别器可以轻易的分辨出哪张是自然图像,哪张是生成图像,但是反向传播时传递给补全网络的梯度只能使其生成奇怪的纹路,由此容易产生色彩失真问题。本文通过“加宽”网络结构,即多加一个局部判别器,可以平衡两者的训练速度,使生成的纹理更加真实,不会生成伪彩色。此外,文献[26]方法中判别器的最后一层采用的是sigmoid激活函数,得到一个在[0,1]区间内的连续值,以表示图像来自真实样本的概率。由于sigmoid函数将图像生成问题近似为一个二分类问题,容易造成梯度消失、模式坍塌、生成器和判别器难以达到平衡状态等问题,本文借鉴了WGAN的方法思想,将原始网络结构中判别器最后一层的sigmoid激活函数移除,使得网络训练更加稳定,更加容易收敛,生成器和判别器可以很好地对抗并且达到平衡状态,从而生成结果更加真实、清晰。

2 实验

2.1 实验数据

本文实验中用到的数据集是从百度和谷歌等浏览器下载的草地相关图片。实验中将图片的大小初始化 324×324,将“大面积缺失区域”定义为长和宽均为原图的1/2的空白区域。此外,为了增加模型的泛化能力,本文在训练过程中,将缺失区域的大小随机设置为100×100~128×128大小。训练过程中还生成了输入图片(带有缺失区域的图片)的二值图像Mask(0代表完整区域,1代表要补全的区域)。本文将数据集分为训练集和测试集2部分,其中训练集1 000张,用于训练模型以得到最优的网络参数;测试集120张,用于检验模型的泛化能力,衡量模型的补全能力,对模型性能进行评价。本文的训练集仅采用了1 000张图片,数量并不多,但对于草地这种具有局部相似性的纹理而言,已可以获得较好的实验结果,能够体现本文方法的优势了。

2.2 实验策略

根据实验设备 GPU的性能和输入图片的大小,本实验将batch_size的大小设为16,以便更加合理地利用训练空间和时间。训练过程首先将补全网络迭代训练Tc次,然后单独训练3个判别器网络Td次,最后将整个网络一起迭代训练Ttrain次直至网络稳定。补全网络的输入是一张 324×324大小的含有缺失区域的图片和对应的Mask图片;全局判别器的输入为补全网络初步生成 256×256大小的图片,保持了合成结果的全局一致性;局部判别器的输入为补全网络初步合成结果中心128×128的区域,保持了缺失区域与上下文的局部一致性;局部判别器 2的输入为初步合成结果中位于缺失区域中心的 64×64的区域;最后将补全网络和判别器一起迭代训练。实验发现,当补全网络的迭代次数为 6 000,判别器的迭代次数为1 500,最后网络整体训练次数达到20 000次时网络可以较好的收敛,补全效果更加真实。当网络的迭代次数过少时,最终的补全结果出现失真、模糊和空白现象;当网络迭代次数过多时,容易出现过拟合,从而影响补全效果。

实验参数见表1。

表1 实验参数

2.3 实验环境

实验环境见表2。

表2 实验环境

2.4 实验结果与分析

为了方便对实验结果进行对比,本文对文献[26]方法在同样的参数设置下进行了实验,实验结果如图4所示。

图4 本文方法与文献[26]方法结果对比

结果表明,当缺失区域面积很大(本文中长和宽均超过50%)或位于图像的边界时,文献[26]方法的补全结果是模糊的,且有伪彩色生成。图中图像1~3输入图像的大小是256×256像素,其中缺失区域为位于图像中心 128×128大小的区域,即为输入图像的 1/4大小。从图中可以看到文献[26]方法的补全结果会出现模糊、失真等现象,尤其是缺失区域边界差异较为明显。由于本文采取了分级联合补全的方法,既考虑了合成结果全局与局部一致性,同时,通过添加初步补全结果中缺失区域的中心区域作为输入的局部判别器2进行对抗训练,保证了补全结果纹理信息的真实性,因此本文的结果更为清晰、真实;图中图像4的输入图像包含多个缺失区域,其中缺失区域随机分布于图像的不同位置。由于缺乏上下文信息,文献[26]方法的补全结果会出现很明显的空白区域。

当缺失区域面积较大且位于图像边缘位置时,如图4中图像5~8,文献[26]方法的补全结果中除了含有大面积空白外还出现了伪彩色。这是由于生成对抗网络中判别器的迭代速度大于生成器的迭代速度,从而导致了训练的不稳定。benwne统计了文献[26]方法中判别器和生成器每迭代100次的平均运行时间(图),其中,Tc_per100为生成器每迭代100次的运行时间(s);Td_per100为判别器每迭代 100次的运行时间(s)。从图中可以看出判别器每迭代100次的时间约为0.327 s,生成器每迭代100次平均约为0.645 s,即判别器每次迭代的运行时间约是生成器的 50%,导致判别器可以轻易地分辨出哪张是自然图像,哪张是生成图像,但是反向传播时传递给补全网络的梯度只能使其生成奇怪的纹路,由此容易产生色彩失真问题。而本文方法添加了局部判别器2,相当于“加宽”了网络,平衡了生成器和判别器的训练速度。此外,本文还通过将每个卷积层后面的 relu层替换为BN层和leaky_relu层的结合,并去掉判别器最后一层的sigmoid激活函数,避免了网络训练过程中的梯度消失和模式坍塌等问题,使得网络训练更加稳定。实验表明,本文网络的运行速度和文献[26]方法网络的运行速度差别仅为10%。本文的网络训练更加容易收敛,克服了文献[26]方法中生成伪彩色的缺陷,使得结果更加真实。在图的图像5,7,8中,本文合成结果虽然较文献[26]方法更优,但由于上下文信息缺失面积很大,且处于边缘位置,仍出现了部分空白区域。问题尚需进一步研究克服。

图5 生成器和判别器每迭代100次的运行时间图

除了对图像质量进行主观视觉评价方法以外,本文还使用了 MSE Loss和结构化相似性(structural similarity,SSIM)等客观评估方法对生成结果和原图orig之间的相似性进行量化评价。其中,MSE Loss用来比较图像之间的绝对误差,即图像像素之间的差距;SSIM用来评估图像像素之间的依赖性,即人眼对图像的接受程度。MSE Loss越小、SSIM越大,代表2张图像越相似。表3为文献[26]方法和本文方法在图4中测试图像的生成结果与原图orig的比较结果。

表3 图4中本文方法与文献[26]方法的MSE和SSIM值

当缺失面积较大时,文献[26]方法的MSE Loss值比本文方法高 20%~40%,表明缺失区域面积较大时,本文方法更能保证图像纹理信息的真实性,见表3中的图像1~3;当缺失区域位于图像边缘位置时,文献[26]方法的补全结果和原图之间的MSE Loss值和 SSIM 值均与本文补全结果有较大的差距,表明本文方法相较于文献[26]方法在图像上下文信息和全局、局部一致性方面均与原图更加相似,见表3中图像4~8。

图(a)为文献[26]方法采用的网络结构在训练过程中各个损失的运行图,即网络结构中卷积层采用relu激活函数,判别器的最后一层通过sigmoid激活函数进行二分类判断;图6(b)为本文方法采用的网络结构在训练过程中各个损失的运行图。本文方法对网络结构做出的改进包括:用 BN层和leak_relu层结合的方式替代relu层,并且去掉原始判别器结构中最后一层的sigmoid激活函数,以及添加了局部判别器2“加宽”网络。

图6 文献[26]与本文方法网络结构的Loss曲线图

由图6可以看出,文献[26]方法的网络结构训练过程中容易出现梯度消失现象,训练过程很不稳定。本文方法采用的网络结构训练过程则相对稳定,且生成损失下降时,对抗损失呈上升趋势,二者始终保持对抗状态,直至达到平衡。

除了针对具有重复性纹理的图像进行补全外,本文还对具有一定结构特征的铁丝网的照片进行了验证,如图7所示。

此外,为了验证本文方法的泛化能力,从Places2数据集中随机抽取了15 000张图片进行训练,测试结果如图8所示。

由图8可以看出,文献[26]方法生成的图片的补全区域很模糊,且边界区域较为明显,不能很好地保持图像的真实性和一致性。本文方法由于对网络结构做出了改进,使得网络在训练过程中避免了梯度消失、减小了生成器和判别器迭代速度的不一致性,对具有较强结构性的图案也可以具有更好的补全效果。能够生成更加清晰、真实的图片,且保持图像的全局和局部一致性。

图7 铁丝网图片补全结果对比

图8 Places2数据集图片补全结果对比

3 结束语

本文提出一种分级联合图像补全方法,将图像分为以缺失区域为中心的区域和缺失区域中心的区域,添加了局部判别器2对图像进行补全,并对文献[26]方法中使用的GAN模型结构进行了改进。本文的方法克服了文献[26]方法训练过程中大面积缺失区域的补全结果较为模糊、失真的问题,又使得网络迭代过程中补全网络和判别器的迭代速度更加一致,网络训练更加稳定,从而避免了伪彩色的生成,使得补全的结果更加真实清晰。

但是,本文的方法仍然存在局限性:①当大面积缺失区域位于图像边界时,补全结果仍然具有较小的空白区域。这是由于缺少上下文信息所致。是否可以在图像库中匹配出合适的上下文信息将是一个有趣的探讨方向;②本文方法主要针对有重复性纹理结构的图形补全,当图像具有非规则结构时,由于训练过程中难以捕获纹理的细节特征本文方法将无法适用,还有待进一步研究解决。

本文方法可应用于图像修复,当图像具有大面积的缺损或磨痕时,可以使得修复后的图像更加逼真;此外,当用户希望去除电子图像中的某目标物体时,擦除该目标物体后,可以实现根据周围信息对擦除区域进行补全。由于在具体的应用中只需要用到本文网络结构中的补全网络,结构相对轻型,所以本文方法还可以应用于视频操作等场景中,且克服了已有图像补全技术的弊端,具有较好的应用前景。

猜你喜欢

网络结构全局局部
爨体兰亭集序(局部)
快递网络结构研究进展
凡·高《夜晚露天咖啡座》局部[荷兰]
基于AutoML的保护区物种识别①
落子山东,意在全局
记忆型非经典扩散方程在中的全局吸引子
丁学军作品
局部遮光器
基于时效网络的空间信息网络结构脆弱性分析方法研究
基于互信息的贝叶斯网络结构学习