Globally and Locally Consistent Image Completion(2017)论文笔记

一、摘要

提出了一种新的图像补全方法,可以使图像在局部和全局都保持一致。为了训练这个图像补全网络的一致性,我们使用了全局和局部上下文判别器,它们被训练来区分真实图像和完成的图像。全局鉴别器查看整个图像以评估其是否作为一个整体连贯,而局部鉴别器仅查看以完成区域为中心的小区域,以确保生成的补丁的局部一致性。

二、介绍

工作建立在最近提出的上下文编码器(CE)方法的基础上,使用经过对抗性损失训练的卷积神经网络实现的。本文解决了CE的两个缺点:如何处理任意的修复掩膜、如何处理高分辨率图像,而且提高了结果的视觉质量。本文以完全卷积网络为基础,提出一种新的架构,该架构由三个网络组成:完成网络(用于完成图像)、全局上下文判别器、局部上下文判别器(用于训练的辅助网络)。在每次训练迭代中,首先对判别器进行更新,使它们能够正确区分真实和完成的训练图像。然后,对补全网络进行更新,使它能很好地填充缺失区域以欺骗上下文鉴别器网络。

创新点:

1.一个可以完成任意缺失区域的高性能网络模型

2.一个用于图像补全的全局和局部一致的对抗训练方法

3.将我们的方法应用于特定数据集的结果,以实现更具挑战性的图像补全。

修复图像方法比较:

基于扩散的方法(diffusion):该技术传播目标孔周围的局部图像外观以填充它们,只能填充小孔或狭窄的孔,例如:老照片中常见的划痕。

基于补丁的方法(patch):可以填充自然图像中的大洞的更复杂的图像,包括任意图像大小和掩模的高质量重建,首次提出用于纹理合成,从源图像中采样纹理块,然后将其粘贴到目标图像中。然而,它们无法提供图像中其他地方没有的新图像片段,也无法对图像进行高层次的语义理解:它们仅在局部补丁级别上具有相似度。

这两种不能生成新的纹理或对象,并且只考虑局部相似性而不考虑场景的语义。

上下文编码器:仅处理固定大小较小的图像,可以生成新对象,但仅限于适合低分辨率图像。此外,由于没有考虑到完成区域与周围区域的连续性,该方法可能缺乏局部一致性。

本文方法:可以完成任意大小的图像,根据场景的局部和全局结构生成新的纹理和对象。

三、相关的工作

在CE上提出改进

本文是建立在最近提出的上下文编码器(CE)的基础上,该编码器将基于CNN的图像绘制扩展到大型掩模,并提出了一种基于生成对抗网络(GAN)的上下文编码器,通过图像绘制来学习特征。GAN的最初目的是使用卷积神经网络来训练生成模型。这些生成器网络通过使用一个称为鉴别器的辅助网络来训练,鉴别器用于区分图像是由网络生成的还是真实的。训练生成器网络欺骗鉴别器网络,同时并行更新鉴别器网络。使用均方误差(MSE)损失和GAN损失相结合,能够训练一个修复网络完成128 × 128像素图像的中心64 × 64像素的区域,避免了仅使用MSE损失常见的模糊。

本文修改了卷积结构,使用全卷积网络、同时修改了判别器,改成全局判别器和局部判别器相结合的判别器。

解决GAN的问题

GAN的主要问题之一是学习过程中的不稳定性,这导致了对该主题的大量研究。我们通过不训练纯粹的生成模型和调整学习过程来优先考虑稳定性来避免这个问题。此外,我们还针对图像补全问题对体系结构和训练过程进行了大量的优化。特别地,我们不是使用单个鉴别器,而是使用两个:一个全局鉴别器网络和一个局部鉴别器网络。正如我们所展示的,这对于获得语义和局部连贯的图像补全结果至关重要。

"不训练纯粹生成模型"指的是避免使用那些主要关注生成新数据样本的模型,通常这些模型会从随机噪声或已学到的分布中生成数据。这些模型的目标是生成与训练数据相似但不专门设计用于其他任务,比如分类、回归或任何特定的决策过程。

生成模型,如生成对抗网络(GANs)或变分自动编码器(VAEs),是属于纯粹生成模型的示例。它们旨在学习数据的基础分布并生成无法与真实数据区分的新数据样本。

"不训练纯粹生成模型"这个说法意味着所使用的模型的焦点可能不仅仅是生成新数据,而可能还具有其他组件或目标,使它们更多才多艺或更适用于特定任务或应用。这些附加的组件或目标可以有助于稳定训练过程并提高模型的整体性能。

模型

它由一个补全网络和两个辅助上下文鉴别器网络组成,这两个辅助上下文鉴别器网络仅用于训练补全网络,而不用于测试。全局鉴别器网络将整个图像作为输入,而局部鉴别器网络仅将完成区域周围的小区域作为输入。训练两个判别器网络来确定图像是真实的还是由补全网络完成的,而训练补全网络来欺骗两个判别器网络。

四、方法

CNN

我们的方法是基于卷积神经网络。这是一种特殊的神经网络变体,基于使用卷积算子来保存输入的空间结构,通常由图像组成。这些网络由层组成,其中一组过滤器与输入映射进行卷积以产生一个输出映射,该输出映射用非线性激活函数进一步处理,最常见的是ReLu,分解为σ(·)= max(· ,0)

与仅使用标准卷积层不同,我们还使用了一种称为空洞卷积层的变体,它允许增加每层可以用作输入的面积。通过在输入映射上扩展卷积核,这不会增加可学习权重的数量。

空洞卷积公式:

Kh,kw是核宽和核高(奇数),η为膨胀因子,xu,v,yu,v是层的输入和输出的像素分量,σ(·)是一个分量非线性传递函数,Ws,t是核的C′× C矩阵,b是层的偏置向量。当η = 1时,方程成为标准的卷积运算。

该网络使用反正向传播的方法进行训练,使损失函数最小化,并使用由输入和输出对组成的数据集进行训练。

完成网络

补全网络是基于全卷积网络的。补全网络的输入为RGB图像,其二进制通道表示图像补全掩码(1代表需填充区域。0代表无损失区域),输出为RGB图像。我们不希望补全区域以外的区域发生任何变化,补全区域以外的输出像素将恢复为输入RGB值。一般架构遵循编码器-解码器结构,它允许通过在进一步处理图像之前先降低分辨率来减少内存使用和计算时间。然后,使用反卷积层将输出恢复到原始分辨率,它由分数步幅的卷积层组成。与其他使用许多池化层来降低分辨率的架构不同,我们的网络模型只降低了两次分辨率,使用原始大小的1/4的步幅卷积,这对于在缺失区域生成非模糊纹理很重要。

步幅卷积是一种卷积操作的变体,用于处理输入数据,以便减小输出特征图的尺寸。步幅卷积与普通卷积相比,在卷积过程中在输入数据上以固定的步幅跳跃。这意味着卷积核不再像普通卷积那样逐像素滑动,而是以一定的步幅进行跳跃。

步幅卷积的主要特点包括:

1、减小输出尺寸: 通过增加步幅,输出特征图的尺寸将缩小。这可以在深度卷积神经网络中用来控制数据维度的变化,从而降低计算复杂性和提高模型效率

2、减少感受野: 步幅卷积将减少每个输出神经元的感受野(receptive field)。这意味着每个输出神经元只能 "看到"输入数据的一部分,因此在一些情况下可能导致信息损失。

3、特征提取: 步幅卷积可以用来突出特定的特征,因为它们跳过了某些区域,而更集中地关注其他区域。这在图像处理中有时可以用来检测特定的特征,如边缘或角点。

(Strided convolutions )步幅卷积通常用于深度卷积神经网络中的不同层,以根据任务的需要来调整特征图的尺寸和信息提取。例如,池化层(pooling layer)通常使用步幅来降低特征图的分辨率,而卷积层可以使用步幅来控制输出特征图的尺寸。步幅卷积是卷积神经网络中的一个关键工具,可以根据任务要求进行调整以平衡计算复杂性和信息提取的需求。

空洞卷积使用分散的核,允许使用更大的输入区域计算每个输出像素,同时仍然使用相同数量的参数和计算能力。通过在较低分辨率下使用空洞卷积,该模型在计算每个输出像素时可以比使用标准卷积层更直观地“看到”输入图像的更大区域。(感受野更大了,理解信息能力更多了)

上下文判别器

全局判别器:由六个卷积层和一个输出单个1024维向量的全连接层组成所有的卷积层都采用2 × 2像素的步幅来降低图像分辨率,同时增加输出滤波器的数量。

最后,将全局鉴别器和局部鉴别器的输出连接在一起,形成一个单一的2048(1024+1024)维向量,然后由一个完全连接层处理,输出一个连续的值。使用sigmoid函数使该值映射在[0,1]范围内,并表示图像是真实的概率,而不是完整的概率。

损失函数

使用两个损失函数:加权均方误差(MSE)损失(L2损失)用于训练稳定性,生成对抗网络(GAN)损失用于提高结果的真实感。使用两种损失函数的混合可以稳定地训练高性能网络模型。与上下文编码器中的损失函数相同。

训练分成三个阶段

①单独训练完成网络,只用MSE损失

②固定完成网络,从零开始训练鉴别器网络,只用GAN损失

③完成网络和鉴别器网络共同训练,直到训练结束。完成网络和判别器网络的预训练是训练成功的关键。

指定当前迭代次数,例如前50000次迭代

当t < 50000时,只迭代MSE损失,只去算一下当前怎么样让我图像生成出来的结果跟我真实的结果越相似越好。

当迭代50000次之后,把MSE损失 + 对抗损失放到一起训练,当训练完成之后在进行联合训练。

Minibatch:小批量,在机器学习和深度学习过程中,一种将大的数据集分割成较小的子集进行训练的方法,以提高计算效率和减少内存需求。

后处理

虽然本文的网络模型可以合理地填充所有缺失的区域,但有时生成的区域与周围区域有细微的颜色不一致。为了避免这种情况,我们通过将完成的区域与周围像素的颜色混合来执行简单的后处理。特别地,我们采用了快速匹配方法,然后是泊松图像混合。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值