Generative Image Inpainting with Contextual Attention(CVPR2018)

目录

Abstract(摘要):

1. Introduction

2、Related Work(相关工作)

2.1. Image Inpainting(图像修复)

2.2. Attention Modeling(注意力模型)

3、Improved Generative Inpainting Network(改进的生成修复网络)

4、Image Inpainting with Contextual Attention

4.1. Contextual Attention(文本注意力)

4.2. Unified Inpainting Network

文章中蓝色为我认为比较重要的知识

紫色为我个人的对文章的解读

Abstract(摘要):

基于深度学习的方法可以生成视觉上看似合理的的图像结构和纹理,但通常会产生与周围区域不一致的扭曲结构或模糊纹理。这主要是由于卷积神经网络在明确借用来自遥远空间位置的信息方面的无效性。另一方面,当需要从周围区域借用纹理时,传统的纹理和块合成方法特别适合。受这些观察的激励,本文提出了一种新的基于深度生成模型的方法,该方法不仅可以合成新的图像结构,而且可以在网络训练期间明确地利用周围的图像特征作为参考,以做出更好的预测。该模型是一个前馈、完全卷积的神经网络,可以在测试时间内处理在任意位置具有多个孔并且具有可变尺寸的图像。

  1. Introduction

早期的工作试图使用类似于纹理合成的思想来解决这个问题,即通过从低分辨率到高分辨率或从孔边界传播开始将背景补片匹配和复制到孔中。这些方法特别适用于背景修复任务,并在实际应用中得到广泛应用。然而,由于他们假设可以在背景区域的某个地方找到缺失的补片,因此他们无法针对修复区域涉及复杂的非重复结构(例如,人脸、物体)的挑战性情况。

基于CNN的方法经常产生边界伪影、扭曲的结构和与周围区域不一致的模糊纹理。本文认为这可能是由于卷积神经网络在模拟远距离上下文信息和空洞区域之间的长期相关性方面的无效性。

本文提出了一个统一的前馈生成网络和一个新颖的上下文注意层用于图像修复。本文提出的网络包括两个阶段(译者注:分为粗网络阶段和细网络阶段,且细网络阶段以粗网络阶段的加工内容为基础)。第一阶段(粗网络阶端)是一个简单的扩张卷积网络,用重建损失训练,以粗略估计丢失的内容。第二阶段(细网络阶段)整合语境注意。上下文注意的核心思想是利用已知块的特征作为卷积滤波器来处理生成的块。它被设计和实现为使用卷积将生成的块与已知的上下文块进行匹配,使用通道方式的softmax对相关块进行加权,使用去卷积将生成的块与上下文块进行重构。上下文注意模块还具有空间传播层,以鼓励注意的空间一致性。为了让网络产生新内容,本文有另一条与情境注意力路径平行的回旋路径。两个路径被聚合并被馈送到单个解码器以获得最终输出。用重建损失和两个Wasserstein GAN损失对整个网络进行端到端的训练,其中一个批评家着眼于全局图像,而另一个批评家着眼于缺失区域的局部块。

本文贡献:

(1)本文提出了一种新的上下文注意层,以明确地关注在遥远的空间位置的相关特征块。

(2)本文引入了几种技术,包括修复网络增强、全WGANS以及空间折扣重建损失,以基于当前最先进的生成式图像修复网络[17]来提高训练稳定性和速度。

2.1. Image Inpainting(图像修复)

现有的图像修复工作主要分为两类。第一类代表具有低级特征的传统的基于扩散或基于补丁的方法。第二类尝试通过基于学习的方法来解决修补问题,例如训练深度卷积神经网络来预测缺失区域的像素。

2.2. Attention Modeling(注意力模型)

3、Improved Generative Inpainting Network(改进的生成修复网络)

由粗到细的网络架构生成器网络采用孔洞中填充有白色像素的图像和指示孔洞区域的二进制掩码作为输入对,并输出最终完成的图像。我们将输入与相应的二进制掩码配对,以处理具有可变大小、形状和位置的孔洞。网络的输入是在训练期间随机采样的具有矩形缺失区域的256×256图像,并且训练的模型可以拍摄具有多个孔洞的不同大小的图像。

Generative Image Inpainting with Contextual Attention(CVPR2018)

在图像修复任务中,感受野的大小应该足够大,为了进一步扩大感受野和稳定训练,本文引入了一个两级粗到精的网络结构,其中第一个网络进行初始粗预测,第二个网络将粗预测作为输入并预测精结果。用重构损失显式地训练粗网络,而用重构损失和GAN损失训练细网络。直观上,细化网络看到的是比原始图像更完整的具有缺失区域的场景(译者注:个人认为因为细化网络的输入是以经过粗网络修复的图像),因此其编码器可以学习到比粗糙网络更好的特征表示。这种两阶段网络架构类似于剩余学习或深度监督。

在层实现方面,对所有卷积层使用镜像填充,并移除批量归一化层(我们发现这会恶化颜色一致性)。使用ELUs 作为激活函数,而不是ReLU,并且裁剪输出滤波器值,而不是使用tanh或者sigmoid函数。此外,作者发现分离GAN训练的全局和局部特征表示比特征串联更好。

全局和局部 Wasserstein GANS。本文将WGAN-GP损失附加到第二级细化网络的全局和局部输出,以加强全局和局部一致性。(对于图像生成任务,WGAN-GP损耗优于现有的GAN损耗,并且当与

Generative Image Inpainting with Contextual Attention(CVPR2018)重建损耗结合时,它工作得很好,因为它们都使用Generative Image Inpainting with Contextual Attention(CVPR2018)距离度量)

WGAN使用Earth-Mover距离,距离W(

Generative Image Inpainting with Contextual Attention(CVPR2018),Generative Image Inpainting with Contextual Attention(CVPR2018))比较生成的和真实的数据分布,

Generative Image Inpainting with Contextual Attention(CVPR2018)

其中D是1-Lipschitz函数的集合,

Generative Image Inpainting with Contextual Attention(CVPR2018)是由Generative Image Inpainting with Contextual Attention(CVPR2018)=G(z)隐式定义的模型分布。z是生成器的输入。

Gulrajani等人提出了一个带有梯度惩罚项的WGAN的改进版本

Generative Image Inpainting with Contextual Attention(CVPR2018)

其中是ˆx从分布Pg和Pr采样的点之间的直线上采样的。原因是直线上所有点的梯度d应该直接指向电流样本ˆx= (1−t)x+t

Generative Image Inpainting with Contextual Attention(CVPR2018)

对于图像修复,我们只试图预测空洞区域,因此梯度惩罚应该只应用于空洞内的像素。这可以通过梯度和输入掩码m相乘来实现

Generative Image Inpainting with Contextual Attention(CVPR2018)

其中,缺失像素的掩码值为0,其他像素的掩码值为1。在所有实验中,λ都设置为10。

我们使用像素损失和WGAN对抗损失的加权和。请注意,在原始空间中,WGAN中的wasserstein-1距离是基于地面

Generative Image Inpainting with Contextual Attention(CVPR2018)距离:

Generative Image Inpainting with Contextual Attention(CVPR2018)

其中

Generative Image Inpainting with Contextual Attention(CVPR2018)(Pr,Pg)表示所有联合分布Generative Image Inpainting with Contextual Attention(CVPR2018)(x,y)的集合,其边缘分别为PrandPg。直观地,逐像素重建损失直接将洞回归到当前地面真实图像,而WGANs隐式地学习匹配潜在正确的图像,并用相反的梯度训练生成器。由于两个损失都测量像素间的距离,因此组合损失更容易训练,并使优化过程更稳定。

(Spatially discounted reconstruction loss)空间折扣重建损失。直观上,孔洞边界附近的缺失像素比那些靠近孔洞中心的像素具有更少的模糊性。我们使用权重掩膜M引入空间折扣重建损失。掩模中每个像素的权重被计算为

Generative Image Inpainting with Contextual Attention(CVPR2018),其中l是该像素到最近的已知像素的距离。在所有实验中,γ被设置为0.99。

4、Image Inpainting with Contextual Attention

卷积神经网络用局部卷积核逐层处理图像特征,因此对于从遥远的空间位置借用特征并不有效。为了克服这一限制,我们考虑了注意力机制,并在深层生成网络中引入了一个新的上下文注意力层。

4.1. Contextual Attention(文本注意力)

如图3所示,首先在背景提取块(3×3 ),并将其重塑为卷积滤波器。为了匹配前景块{

Generative Image Inpainting with Contextual Attention(CVPR2018)}和背景补片{Generative Image Inpainting with Contextual Attention(CVPR2018)},我们使用归一化内积(余弦相似性)进行测量

Generative Image Inpainting with Contextual Attention(CVPR2018)

Generative Image Inpainting with Contextual Attention(CVPR2018)

Generative Image Inpainting with Contextual Attention(CVPR2018)表示以背景(Generative Image Inpainting with Contextual Attention(CVPR2018),Generative Image Inpainting with Contextual Attention(CVPR2018)) 和前景(x,y)为中心的块的相似性,我们用沿Generative Image Inpainting with Contextual Attention(CVPR2018)Generative Image Inpainting with Contextual Attention(CVPR2018)维度缩放的softmax对相似性进行加权,以获得每个像素的注意力得分,Generative Image Inpainting with Contextual Attention(CVPR2018)=softmaxGenerative Image Inpainting with Contextual Attention(CVPR2018)(Generative Image Inpainting with Contextual Attention(CVPR2018)Generative Image Inpainting with Contextual Attention(CVPR2018))这可通过卷积和通道方式softmax有效实现。最后,我们重新使用提取的面片{Generative Image Inpainting with Contextual Attention(CVPR2018)}作为去卷积滤波器来重建前景。对重叠像素的值进行平均。

注意力传播 通过传播(融合)来鼓励注意力的一致性。相干性的思想是,前景补片的移动可能对应于注意力的背景补片的相等移动。了建模和鼓励注意力地图的一致性,我们做了一个左右传播,然后是一个自上而下的传播,内核大小为k。以左右传播为例,我们得到新的关注分数:

Generative Image Inpainting with Contextual Attention(CVPR2018)

传播被有效地实现为以单位矩阵为核的卷积。注意力传播显著地改善了训练中的修复效果 。

(译者个人想法:可把前景和背景匹配认为是纵向匹配,注意力传播认为是横向匹配即同一图片中相邻的局部块比较相似,所以引入注意力传播))

记忆效率 降低GPU开销我们引入了两个选项:1)用步长提取背景补片以减少滤波器的数量,以及2)在卷积之前降低前景输入的分辨率,并且在传播之后提高注意力图的分辨率。

4.2. Unified Inpainting Network

为了集成注意力模块,在图2的基础上引入了两个并行编码器,如图4所示。底部的编码器特别关注具有逐层(扩张的)卷积的幻觉内容,而顶部的编码器试图关注感兴趣的背景特征。来自两个编码器的输出特征被聚集并馈入单个解码器以获得最终输出。为了解释上下文注意力,将其可视化如图4。我们使用颜色来表示每个前景像素最感兴趣的背景块的相对位置。例如,白色(颜色编码图的中心)表示像素本身,粉色在左下方,绿色在右上方。对于不同的图像,偏移值有不同的缩放比例,以便最好地显示最感兴趣的范围。

Generative Image Inpainting with Contextual Attention(CVPR2018)

对于训练,给定原始图像x,我们在随机位置对二进制m进行采样。来自原始图像z=x

Generative Image Inpainting with Contextual Attention(CVPR2018)​​​​​​m的输入图像是损坏的。修补网络G将输入的图像拼接,并输出与输入图像大小相同的预Generative Image Inpainting with Contextual Attention(CVPR2018)=G(z,m)。将Generative Image Inpainting with Contextual Attention(CVPR2018)粘贴到输出图像,我们得到修复输出˜x=z+Generative Image Inpainting with Contextual Attention(CVPR2018)(1−m).。在所有实验中,输入和输出的镜像值线性缩放至[-1,1]。训练程序如算法1所示。

Generative Image Inpainting with Contextual Attention(CVPR2018)

译者个人对训练的步骤解释:

以下步骤循环5次

随机选择x

随机生成mask m

用m覆盖在x上作为输入z

用z和预测的遮挡区域融合在一起作为最后的预测图

Generative Image Inpainting with Contextual Attention(CVPR2018)

将x和

Generative Image Inpainting with Contextual Attention(CVPR2018)一起送入判别器

更新全局和局部判别器

循环结束

随机选择图像x用于训练

生成随机mask m(译者认为这里的m是带有权重的m)(与作者第三部分提到的Spatially discounted reconstruction loss)(空间折扣重建损失)

更新生成器

文章的总结

本文引入了由粗到细的网络两级架构,在粗网络阶段以带有mask m的图像和m对应的二进制作为输入,用常规卷积+空洞卷积恢复出粗略的修复掩膜区域的图

在细网络阶段以粗网络阶段恢复出的图为输入,引入两个并行的编码器,其中一个编码器加入上下文注意力(上下文注意力通过前景和背景匹配 以及左右上下邻域匹配)恢复出比粗网络阶段更清晰的遮挡区域(这一部分关注的是局部),同时另一条支路把粗网络恢复出的粗图再次进行常规卷积+空洞卷积恢复出全局图,然后把这两个分支的输出contact,送入到解码器,恢复出最终的图。

Original: https://blog.csdn.net/change_lkl/article/details/124498817
Author: change_lkl
Title: Generative Image Inpainting with Contextual Attention(CVPR2018)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/641285/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球