Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization

1.Introduction

  前向传播方法的主要限制是每一个网络受约束只能适应一种风格,近来很对研究都在尝试解决这个问题但是他们仍然是只能用于有限的风格集,或者比单风格转换更慢。本文的方法受到instance normalization启发,它很有效在前向传播网络中,实例规范化通过规范化特性统计实现样式规范化,这些统计数据被发现带有图像的样式信息。根据我们的解释,我们引入了一个简单的扩展,即自适应实例规范化(AdaIN)。给定一个内容输入和一个样式输入,AdaIN简单地调整了内容输入的平均值和方差,以与样式输入匹配。
  通过实验,我们发现AdaIN通过传递特征统计,有效地将前者的内容与后者的内容相结合。然后,通过将AdaIN输出反向转换为图像空间,学习生成最终的程式化图像。我们的方法比基于优化的方法快了3个数量级,而不牺牲将输入转换为任意新样式的灵活性。此外,我们的方法在运行时提供了丰富的用户控制,对培训过程没有任何修改。

2. Recent Work

  以前的风格迁移方法:1. 优化速度慢2. 风格单一。由于内容和样式映像的特性激活,样式交换层以一种patch-to-patch的方式替换了与最接近的风格特征的内容特性。风格交换层产生了一个新的计算瓶颈,本文允许任意风格转换,速度也很快。风格转换的另一个中心问题就是风格损失函数的使用,损失函数的目的是匹配风格图像与合成图像之间的一些特征统计。

3. Background

3.1 BN

  • BN有效的减轻了前向传播的训练通过归一化特征数据,BN归一化单个特征通道的均值和方差。
  • 归一化一批样例以一个单一风格为中心,但是每个样本仍然可能有自己的风格。
  • BNlayers在训练和测试时采用的是不同的数据集,训练时是采用小批数据。


  在训练过程中,BN使用小批量统计数据,并在推理过程中用流行的统计数据替换它们,在训练和推理之间引入差异。BN可以通过重新计算目标领域的流行统计数据来减轻领域的变化。

3.2 IN

  • 每个样例以及每个通道都独立计算均值、方差
  • IN layers在训练以及测试时使用相同的数据统计
  • 归一化每个样例到一个单一的风格。


3.3. Conditional Instance Normalization

  条件实例归一化,A learned representation for artistic style论文中主要提到的方法。网络可以通过使用相同的卷积参数来生成完全不同风格的图像,而只需要对归一化的结果进行一个平移和缩放,平移和缩放就是β_s和γ_s(s代表风格),每一个风格就是要学习这两个参数。训练多个风格就需要多组数据,如有c个feature maps和需要训练N个风格,那么总共就有2 x N x C个参数需要训练

4. Interpreting Instance Normalization

  IN发生在特征空间中,因此它的影响要比像素空间中简单的对比归一化化更有意义。更令人惊讶的是,IN的仿射参数可以完全改变输出图像的风格。我们使用预先训练的风格迁移网络将所有训练图像归一化(不同于目标风格)。当图像已经标准化时,所带来的改进会变得更小。剩下的差距可以解释为风格归一化并不完美。此外,在风格归一化图像上训练了BN的模型可以和在原始图像上训练的模型一样快。我们的结果表明,IN确实执行一种风格规范化。

5. Adaptive Instance Normalization

  AdaIN接受内容图片x和风格图片y,将content图的每通道输入的均值和方差归一化后的结果对齐匹配到风格图的每通道输入的均值和方差,让x的通道均值和方差匹配y的,没有可学习的参数,它通过风格输入计算防射参数。


  简而言之,AdaIN通过传输特征统计,特别是信道的均值和方差,在特征空间中进行风格转换。我们的AdaIN层扮演了一个类似的风格交换层的角色,而风格的交换操作非常耗时和内存消耗,我们的AdaIN层非常简单,几乎没有计算成本。

6. Experimental Setup

6.1 Architecture


  本文的风格迁移网络是内容图片和任意风格的图片作为输入,采用一个简单的编码解码结构,编码器f是预训练VGG19的前面几层(relu4_1),编码内容和风格在特征空间,将得到的feature map输入到AdaIN层使得内容特征的均值和方差和风格特征的均值方差一样,产生目标feature map:

一个随机初始化的解码器g被训练成将t映射回图像空间,产生风格化图片T(c,s):



  解码器主要是镜像编码器,通过最近的邻上采样替换所有的池层,以减少棋盘效应。我们在f和g中使用反射填充来避免边界。另一个重要的架构选择是,解码器是否应该使用实例、批处理或没有标准化层。正如第4节所讨论的那样,在将每个样本规范化为单一样式的同时,BN规范了一批样本以单一风格为中心。当我们希望解码器以截然不同的方式生成图像时,两者都是不可取的。因此,我们不会在解码器中使用归一化层。在第7.1节中,我们将说明解码器中的/BN层确实会损害性能。

6.2. Training

  Adam优化器,batch_size 为8张内容-风格图片对,先resize为512,再裁剪为256使用的是全卷积网络,测试时可以应用到任何尺寸。是有预训练的VGG19计算loss,去训练解码器,L=L_c+lambda x L_s
  内容损失是目标特征与输出图像特征之间的欧氏距离。转换后图像在vgg网络中Relu4_1的特征和adaIN输出feature maps的欧式距离。我们使用AdaIN输出t作为内容目标,而不是通常使用的内容图像的特征响应。我们发现这导致了稍微快一点的收敛,并与我们的目标相一致。


风格损失



  整个生成网络的时间花费基本是content encoding、style encoding、decoding各占三分之一时间。还有一部分时间是花费在VGG网络上。

7.3. Runtime controls

  我们展示了我们的风格转移网络允许用户控制风格的程度,在不同的风格之间插值,在保留颜色的同时,传递风格,在不同的空间区域使用不同的风格。注意,所有这些控制仅在运行时使用相同的网络,而不需要对训练过程进行任何修改。

Content-style trade-off

  我们的方法允许在测试时进行内容风格的交换,通过在特征映射之间插入到解码器。注意,这等价于插入AdaIN的仿射参数。


Style interpolation

Spatial and color control

  为了保存内容图像的颜色,我们首先将风格图像的颜色分布与内容图像的颜色分布匹配,然后使用颜色对齐的风格图像作为风格输入执行一个正常的风格转换。

你可能感兴趣的:(Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization)