Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization

摘要

 Gatys等人最近引入了一种神经算法,该算法以另一幅图像的风格渲染内容图像,实现了所谓的风格转换。然而,他们的框架需要缓慢的迭代优化过程,这限制了其实际应用。已经提出了使用前馈神经网络的快速近似来加速神经风格的转移。不幸的是,速度的提高是有代价的:网络通常局限于一组固定的风格,无法适应任意的新风格。在本文中,我们提出了一种简单而有效的方法,首次实现了实时的任意风格转移。我们方法的核心是一个新的自适应实例归一化(AdaIN)层,它将内容特征的均值和方差与风格特征的均值、方差对齐。我们的方法实现了与现有最快方法相当的速度,而不受预先定义的一组样式的限制。此外,我们的方法允许灵活的用户控制,如内容风格权衡、风格插值、颜色和空间控制,所有这些都使用单个前馈神经网络。

1、介绍

 Gatys等人的开创性工作表明,深度神经网络不仅对图像的内容进行编码,而且对图像的风格信息进行编码。此外,图像的风格和内容在某种程度上是可分离的:可以在保留图像内容的同时改变图像的风格。Gatys等人的风格转移方法足够灵活,可以将任意图像的内容和风格结合起来。然而,它依赖于一个慢得令人望而却步的优化过程。

 在加速神经风格转移方面投入了大量精力。[24,51,31]试图训练前馈神经网络,该网络通过单次前向传递来执行风格化。大多数前馈方法的一个主要局限性是每个网络都被限制为一种风格。最近有一些作品解决了这个问题,但它们要么仍然局限于有限的风格集,要么比单一风格的转移方法慢得多。

 在这项工作中,我们提出了第一个神经风格的转移算法,该算法解决了这一基本的灵活性-速度困境。我们的方法可以实时传输任意新样式,结合了基于优化的框架的灵活性和类似于最快前馈方法的速度。我们的方法受到实例归一化(IN)层的启发,该层在前馈式传输中出奇地有效。为了解释实例归一化的成功,我们提出了一种新的解释,即实例归一化通过归一化特征统计来执行风格归一化,这些特征统计已被发现携带图像的风格信息。受我们解释的启发,我们引入了IN的一个简单扩展,即自适应实例规范化(AdaIN)。给定内容输入和风格输入,AdaIN只需调整内容输入的平均值和方差,以匹配风格输入的均值和方差。通过实验,我们发现AdaIN通过传递特征统计信息,有效地结合了前者的内容和后者的风格。然后学习解码器网络,通过将AdaIN输出反转回图像空间来生成最终风格化的图像。我们的方法比[16]快了近三个数量级,而不会牺牲将输入转换为任意新风格的灵活性。此外,我们的方法在运行时提供了丰富的用户控制,而无需对训练过程进行任何修改。

2、相关工作

 风格转换

风格转移问题起源于非照片真实感渲染,与纹理合成和转移密切相关。一些早期的方法包括线性滤波器响应的直方图匹配和非参数采样。这些方法通常依赖于低级别的统计信息,并且常常无法捕获语义结构。Gatys等人首次通过在DNN的卷积层中匹配特征统计,展示了令人印象深刻的风格转移结果。最近,对[16]提出了一些改进建议。Li和Wand在深度特征空间中引入了一个基于马尔可夫随机场(MRF)的框架来强制执行局部模式。Gatys等人提出了控制色彩保留、空间位置和风格转移规模的方法。Ruder等人通过施加时间约束来提高视频风格传输的质量。

 Gatys等人的框架基于缓慢的优化过程,该过程迭代地更新图像,以最小化由损失网络计算的内容损失和风格损失。即使与现代GPU融合也可能需要几分钟的时间。因此,移动应用程序中的设备上处理太慢,无法实现。一种常见的解决方法是用前馈神经网络代替优化过程,该网络经过训练以最小化相同的目标。这些前馈式传输方法比基于优化的替代方法快大约三个数量级,为实时应用打开了大门。王等人使用多分辨率架构增强了前馈风格传递的粒度。Ulyanov等人提出了提高生成样本质量和多样性的方法。然而,上述前馈方法是有限的,因为每个网络都绑定到一个固定的风格。为了解决这个问题,Dumoulin等人介绍了一种能够对32种风格及其插值进行编码的单一网络。在我们工作的同时,李等人提出了一种前馈架构,可以合成多达300个纹理并传输16种样式。尽管如此,上述两种方法不能适应训练中没有观察到的任意风格。

 最近,Chen和Schmidt介绍了一种前馈方法,该方法可以通过样式交换层传递任意样式。给定内容和风格图像的特征激活,风格交换层以逐补丁的方式用最匹配的风格特征替换内容特征。然而,他们的样式交换层产生了一个新的计算瓶颈:超过95%的计算用于512×512输入图像的样式交换。我们的方法也允许任意风格的转移,同时比[6]快1-2个数量级。

 风格转换的另一个核心问题是使用哪种风格损失函数。Gatys等人的原始框架通过匹配Gram矩阵捕获的特征激活之间的二阶统计量来匹配样式。已经提出了其他有效的损失函数,如MRF损失、对抗性损失、直方图损失、CORAL损失、MMD损失以及信道均值和方差之间的距离。注意,所有上述损失函数旨在匹配风格图像和合成图像之间的一些特征统计。

深度生成图像模型

 图像生成有几种替代框架,包括变分自动编码器、自回归模型和生成对抗性网络(GANs)。值得注意的是,GANs获得了最令人印象深刻的视觉质量。已经提出了对GAN框架的各种改进,例如条件生成、多级处理和更好的训练目标。GANs也已应用于风格转移[31]和跨域图像生成。

3、背景

3.1、批归一化

 Ioffe和Szegedy的开创性工作引入了批量归一化(BN)层,该层通过归一化特征统计显著简化了前馈网络的训练。BN层最初设计用于加速判别网络的训练,但也被发现在生成图像建模中有效。给定输入批次,BN对每个单独特征通道的平均值和标准偏差进行归一化:

                        

 其中,是从数据中学习的有限参数;是平均值和标准偏差,针对每个特征通道在批次大小和空间维度上独立计算:

                        

 BN在训练过程中使用小批量统计,在推理过程中用流行统计代替,引入了训练和推理之间的差异。最近提出了批量重整,通过在训练过程中逐渐使用流行的统计数据来解决这个问题。作为BN的另一个有趣应用,Li等人发现BN可以通过重新计算目标域中的流行统计数据来缓解域偏移。最近,已经提出了几种替代的归一化方案,以将BN的有效性扩展到递归架构。

3.2、实例级归一化

 在最初的前馈风格化方法中,风格转移网络在每个卷积层之后都包含一个BN层。令人惊讶的是,Ulyanov等人发现,只需将BN层替换为IN层,就可以实现显著的改进:

                        

 与BN层不同,这里µ(x)和σ(x)是针对每个通道和每个样本在空间维度上独立计算的:

                        

                        

 另一个不同之处在于,IN层在测试时间应用时保持不变,而BN层通常用总体统计取代迷你批次统计。

3.3、条件实例归一化

 Dumoulin等人[11]提出了一个条件实例归一化(CIN)层,该层为每种风格学习一组不同的参数\gamma^s\beta^s,而不是学习一组单一的参数\gamma\beta

                        

 在训练过程中,从一组固定的风格s\in \{1,2,3,...,S\}(在他们的实验中,S=32)中随机选择一个风格图像及其索引s。然后通过样式传递网络对内容图像进行处理,其中在CIN层中使用相应的\gamma^s\beta^s。令人惊讶的是,该网络可以通过在in层中使用相同的卷积参数但不同的最终参数来生成完全不同风格的图像。

与没有归一化层的网络相比,具有CIN层的网络需要2FS附加参数,其中F是网络中特征图的总数。由于附加参数的数量与样式的数量成线性比例,因此将他们的方法扩展到对大量样式(例如,数万)进行建模是具有挑战性的。此外,如果不重新训练网络,他们的方法就无法适应任意的新风格。

 4、解释的实例归一化

 尽管(有条件的)实例规范化取得了巨大成功,但它们在风格转换方面特别有效的原因仍然难以捉摸。Ulyanov等人将IN的成功归因于其对内容图像对比度的不变性。然而,IN发生在特征空间中,因此它应该比像素空间中的简单对比度归一化具有更深远的影响。也许更令人惊讶的是,in中的精确参数可以完全改变输出图像的风格。

 已知DNN的卷积特征统计可以捕捉图像的风格。虽然Gatys等人使用二阶统计量作为他们的优化目标,但Li等人最近表明,匹配许多其他统计量,包括信道均值和方差,也对风格转移有效。受这些观察结果的启发,我们认为实例规范化通过规范化特征统计(即均值和方差)来执行一种风格规范化形式。尽管DNN在[16,33]中充当图像描述符,但我们相信生成器网络的特征统计也可以控制生成图像的风格。

 我们运行改进的纹理网络的代码来执行具有IN或BN层的单样式传输。正如预期的那样,具有IN的模型比BN模型收敛得更快(图第1(a)段)。为了测试[52]中的解释,我们通过对亮度通道执行直方图均衡,将所有训练图像归一化为相同的对比度。如图1(b)所示,IN仍然有效,这表明[52]中的解释是不完整的。为了验证我们的假设,我们使用[24]提供的预训练风格传递网络将所有训练图像归一化为相同的风格(不同于目标风格)。根据图1(c),当图像已经进行了风格归一化时,IN带来的改进变得更小。剩余的差距可以通过以下事实来解释:[24]的风格规范化并不完美。此外,在风格归一化图像上训练BN的模型可以与在原始图像上训练IN的模型一样快地收敛。我们的结果表明,IN确实执行了一种风格规范化。

 由于BN对一批样本的特征统计进行归一化,而不是对单个样本进行归一化,因此可以直观地理解为将一批样本归一化为以单个样式为中心。但是,每个样本可能仍然具有不同的样式。当我们想要将所有图像传输到相同的样式时,这是不可取的,就像原始前馈样式传输算法[51]中的情况一样。尽管卷积层可能会学会补偿批内风格的差异,但这给训练带来了额外的挑战。另一方面,IN可以将每个单独样本的样式标准化为目标样式。由于网络的其他部分可以在丢弃原始风格信息的同时专注于内容操纵,因此有利于训练。CIN成功背后的原因也很清楚:不同的定义参数可以将特征统计归一化为不同的值,从而将输出图像归一化为不同风格。

5、自适应的实例级归一化

 如果IN将输入标准化为由定义参数指定的单个样式,是否可以通过使用自适应定义转换将其调整为任意给定的样式?在这里,我们提出了一个对IN的简单扩展,我们称之为自适应实例规范化(AdaIN)。AdaIN接收内容输入x和风格输入y,并简单地对齐x的通道平均值和方差以匹配y。与BN、IN或CIN不同,AdaIN没有可学习的定义参数。相反,它会根据样式输入自适应地计算最终参数:

                        

 其中,我们简单地用σ(y)缩放归一化的内容输入,并用µ(y)移动它。与IN类似,这些统计数据是跨空间位置计算的。

 直观地说,让我们考虑一个功能通道,它可以检测某种风格的笔触。具有这种笔划的样式图像将产生该特征的高平均激活。AdaIN产生的输出将具有与此特征相同的高平均激活,同时保留内容图像的空间结构。类似于[10],可以使用前馈解码器将笔划特征反转到图像空间。该特征通道的变化可以编码更微妙的风格信息,这些信息也会传递到AdaIN输出和最终输出图像。简言之,AdaIN通过传递特征统计信息,特别是通道均值和方差,在特征空间中进行风格传递。我们的AdaIN层扮演着与[6]中提出的样式交换层类似的角色。虽然样式交换操作非常耗时且消耗内存,但我们的AdaIN层与IN层一样简单,几乎不增加计算成本。

                        

6、实验设置

6.1、结构

 我们的风格传递网络T将内容图像c和任意风格图像s作为输入,并合成将前者的内容和后者的风格重新组合的输出图像。我们采用了一种简单的编码器-解码器架构,其中编码器f固定在预训练的VGG-19的前几层(最高可达relu41)。在对特征空间中的内容和风格图像进行编码后,我们将两个特征图馈送到AdaIN层,AdaIN层将内容特征图的均值和方差与风格特征图的平均值和方差对齐,生成目标特征图t

                        

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

                        

 解码器主要镜像编码器,所有池化层都被最近的上采样所取代,以减少棋盘效应。我们在fg中都使用了反射填充,以避免边界伪影。另一个重要的体系结构选择是解码器应该使用实例层、批处理层还是不使用规范化层。如第4节所述,IN将每个样本归一化为单个样式,而BN将一批样本归一化为以单个样式为中心。当我们希望解码器生成风格迥异的图像时,两者都是不可取的。因此,我们在解码器中不使用归一化层。在第7.1节中,我们将展示解码器中的IN/BN层确实损害了性能。

6.2、训练

 根据[6]的设置,我们使用MS-COCO作为内容图像和主要从WikiArt收集的绘画数据集作为风格图像来训练我们的网络。每个数据集包含大约80000个训练示例。我们使用adam优化器[26]和8个内容风格图像对的批量大小。在训练过程中,我们首先将两幅图像的最小尺寸调整为512,同时保持纵横比,然后随机裁剪大小为256×256的区域。由于我们的网络是完全卷积的,因此在测试过程中可以应用于任何大小的图像。类似于[51,11,52],我们使用预先训练的VGG19[48]来计算损失函数来训练解码器:

                                

 其是内容损失和风格损失与风格损失权重λ的加权组合。内容损失是目标特征和输出图像的特征之间的欧几里得距离。我们使用AdaIN输出t作为内容目标,而不是内容图像的常用特征响应。我们发现这会使收敛速度稍快,也符合我们反转AdaIN输出t的目标。

                                

 由于我们的AdaIN层只传递样式特征的平均值和标准差,因此我们的样式损失只匹配这些统计数据。尽管我们发现常用的Gram矩阵损失可以产生类似的结果,但我们匹配IN统计数据,因为它在概念上更干净。李等人也探讨了这种风格的损失。

                                

 其中每个\phi_i表示VGG-19中用于计算样式损失的层。在我们的实验中,我们使用具有相等权重的relu1、relu2_1、relu3_1、relu4_1层。

7、结果

7.1、和其他方法的比较

 在本小节中,我们将我们的方法与三种类型的风格转移方法进行了比较:1)灵活但缓慢的基于优化的方法,2)仅限于单一风格的快速前馈方法,以及3)中速的灵活的基于补丁的方法。如果未另行提及,则通过使用默认配置运行代码来获得比较方法的结果。对于[6],我们使用作者提供的预先训练的逆网络。所有测试图像的大小为512×512。

                

 定性示例

在图4中,我们展示了通过比较方法生成的示例风格转换结果。请注意,在我们的模型训练过程中,从未观察到所有的测试风格图像,而[52]的结果是通过为每个测试风格设置一个网络来获得的。即便如此,对于许多图像(例如,第1、2、3行),我们的风格化图像的质量与[52]和[16]相当有竞争力。在其他一些情况下(例如,第5行),我们的方法稍微落后于[52]和[16]的质量。这并不意外,因为我们相信速度、灵活性和质量之间存在三方权衡。与[6]相比,我们的方法似乎更忠实地传递了大多数比较图像的风格。最后一个例子清楚地说明了[6]的一个主要限制,它试图将每个内容补丁与最匹配的风格补丁相匹配。但是,如果大多数内容补丁与少数不代表目标样式的样式补丁相匹配,则样式转换将失败。因此,我们认为匹配全局特征统计是一种更通用的解决方案,尽管在某些情况下(例如,第3行),[6]的方法也可以产生有吸引力的结果。

        

定量评估

 我们的算法是否会为了更高的速度和灵活性而牺牲一些质量?如果是,会牺牲多少?为了定量回答这个问题,我们将我们的方法与基于优化的方法[16]和快速单一风格转移方法[52]在内容和风格损失方面进行了比较。由于我们的方法使用了基于IN统计的风格损失,为了进行公平的比较,我们还相应地修改了[16]和[52]中的损失函数(图中的结果4仍然是使用默认的Gram矩阵损失获得的)。此处显示的内容损失与[52,16]中的内容损失相同。报告的数字是从WikiArt数据集[39]和MS-COCO[36]的测试集中随机选择的10幅风格图像和50幅内容图像的平均值。

 如图3所示,我们合成的图像的平均内容和风格损失略高,但与Ulyanov等人的单一风格转移方法相当。特别是,我们的方法和[52]在50到100次优化迭代之间都获得了类似于[16]的风格损失。这证明了我们方法的强大泛化能力,考虑到我们的网络在训练过程中从未见过测试风格,而[52]的每个网络都是在测试风格上进行专门训练的。此外,请注意,我们的风格损失远小于原始内容图像的风格损失。

 速度分析

我们的大部分计算都花在了内容编码、风格编码和解码上,每一项都大约需要三分之一的时间。在视频处理等一些应用场景中,风格图像只需要编码一次,AdaIN可以使用存储的风格统计信息来处理所有后续图像。在一些其他情况下(例如,将相同的内容转移到不同的风格),可以共享在内容编码上花费的计算。

 在表1中,我们将我们的方法的速度与以前的方法进行了比较。除去样式编码的时间,我们的算法分别对256×256和512×512图像以56和15FPS的速度运行,从而可以实时处理任意用户上传的样式。在适用于任意风格的算法中,我们的方法比[16]快近3个数量级,比[6]快1-2个数量级。与[6]相比,速度的提高对于更高分辨率的图像尤其重要,因为[6]中的样式交换层不能很好地扩展到高分辨率样式图像。此外,我们的方法实现了与仅限于几种类型的前馈方法相当的速度。我们的方法处理时间稍长,主要是由于我们更大的基于VGG的网络,而不是方法上的限制。有了更有效的架构,我们的速度可以进一步提高。

                        

7.2、额外的实验

在本小节中,我们将进行实验来证明我们的重要架构选择是合理的。我们将第6节中描述的方法表示为Enc-AdaIN-12。我们用一个名为Enc-Concat-Dec的模型进行了实验,该模型用级联代替了AdaIN,这是一种自然的基线策略,用于组合来自内容和风格图像的信息。此外,我们在解码器中运行具有BN/In层的模型,分别表示为Enc-AdaIN-BNDec和Enc-AdaIN INDec。其他培训设置保持不变。

在图5和图6中,我们展示了比较方法的示例和训练曲线。在由EncConcat-Dec基线生成的图像中(图5(d)),可以清楚地观察到风格图像的对象轮廓,这表明网络未能将风格信息与风格图像的内容区分开来。这也与图6一致,其中Enc-Concat-Dec可以达到低风格损失,但不能减少内容损失。具有BN/IN层的模型也获得了质量较差的结果和持续较高的损耗。IN层的结果尤其差。这再次证实了我们的说法,即IN层倾向于将输出标准化为单一样式,因此当我们想要生成不同样式的图像时,应该避免。

                

7.3、运行时间控制

 为了进一步强调我们方法的灵活性,我们展示了我们的风格转移网络允许用户控制风格化程度,在不同风格之间进行插值,在保留颜色的同时转移风格,并在不同的空间区域使用不同的风格。请注意,所有这些控制仅在运行时使用相同的网络应用,而不对训练程序进行任何修改。

 内容风格的权衡。在训练过程中,可以通过调整方程11中的风格权重λ来控制风格转移的程度。此外,我们的方法通过在提供给解码器的特征图之间进行插值,允许在测试时进行内容风格权衡。请注意,这相当于在AdaIN的有限参数之间进行插值。

                

 当\alpha=0时,网络试图忠实地重建内容图像,当α=1时,网络尝试合成最具风格的图像。如图7所示,通过将\alpha从0变为1,可以观察到内容相似性和风格相似性之间的平稳过渡。

风格插入

 为了在一组K风格的图像之间插值,其具有相应的权重,使得,我们类似地在特征图之间插值(结果如图8所示):

                        

 空间和颜色控制

Gatys等人最近引入了用户对颜色信息和风格转移的空间位置的控制,可以很容易地将其纳入我们的框架中。为了保留内容图像的颜色,我们首先将样式图像的颜色分布与内容图像的色彩分布相匹配,然后使用颜色对齐的样式图像作为样式输入执行正常的样式转换。示例结果如图9所示。在图10中,我们证明了我们的方法可以将内容图像的不同区域转换为不同的风格。这是通过使用来自不同风格输入的统计数据对内容特征图中的不同区域单独执行AdaIN来实现的,类似于[4,17],但完全是前馈的。虽然我们的解码器只在具有同质风格的输入上进行训练,但它自然地推广到不同区域具有不同风格的输入。

                

                

8、讨论和结论

在本文中,我们提出了一个简单的自适应实例规范化(AdaIN)层,该层首次实现了实时的任意风格转移。除了引人入胜的应用之外,我们相信这项工作也揭示了我们对深度图像表示的理解。考虑我们的方法与以前基于特征统计的神经风格转移方法之间的概念差异是很有趣的。Gatys等人[16]采用优化过程来操纵像素值以匹配特征统计。在[24,51,52]中,前馈神经网络取代了优化过程。尽管如此,网络还是被训练来修改像素值,以间接匹配特征统计信息。我们采用了一种非常不同的方法,在一次拍摄中直接对齐特征空间中的统计数据,然后将特征反转回像素空间。

鉴于我们的方法很简单,我们认为仍有很大的改进空间。在未来的工作中,我们计划探索更先进的网络架构,如残差架构[24]或具有来自编码器的额外跳过连接的架构。我们还计划研究更复杂的训练方案,如增量训练。此外,我们的AdaIN层只对齐最基本的特征统计数据(均值和方差)。用相关性比对或直方图匹配替换AdaIN可能会通过传输更高阶的统计数据来进一步提高质量。另一个有趣的方向是将AdaIN应用于纹理合成。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wanderer001

ROIAlign原理

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值