《StyTr²:基于 Transformer 的图像风格迁移》学习笔记
paper:2105.14576
GitHub:diyiiyiii/StyTR-2: StyTr2 : Image Style Transfer with Transformers
目录
摘要:
1、介绍
2、相关工作
2.1 图像风格迁移:
2.2 Transformer 在视觉任务中的应用:
2.3 位置编码:
3、方法
3.1 内容感知位置编码(CAPE)
3.2 风格迁移 Transformer
3.3 网络优化(Network Optimization)
4、实验
4.1 实现细节 (Implementation Details)
4.2 对比实验
4.3 内容泄漏分析 (Analysis of Content Leak)
4.4 CAPE 分析 (Analysis of CAPE)
摘要:
图像风格迁移的目标是渲染一幅图像,使其具有由风格参考引导的艺术特征,同时保持原始内容。由于卷积神经网络(CNN)具有局部性,提取和维护输入图像的全局信息变得困难。因此,传统的神经风格迁移方法面临着内容表示偏差的问题。为了应对这一关键问题,本文提出了一种基于Transformer 的图像风格迁移方法,称为StyTr²。与其他视觉任务的视觉变换器不同,StyTr²包含两个不同的 Transformer 编码器,分别生成内容和风格的特定领域序列。在这两个编码器之后,采用了多层变换器解码器,根据风格序列对内容序列进行风格化。此外,本文分析了现有位置编码方法的不足,并提出了一种内容感知位置编码(CAPE),该方法具有尺度不变性,更适合图像风格迁移任务。通过定性和定量实验,结果表明,所提出的StyTr²方法在效果上优于当前最先进的基于CNN和基于流的方法。
1、介绍
图像风格迁移是一个有趣且实用的研究主题,它可以使用参考的风格图像渲染内容图像。基于纹理合成的传统风格迁移方法 [1], [2] 可以生成生动的风格化图像,但由于笔触外观和绘画过程的复杂性,它们计算量较大。此后,研究人员将焦点转向基于卷积神经网络(CNN)的神经风格迁移方法。基于优化的风格迁移方法 [3]–[5] 通过迭代的方式,使用学习到的风格表示渲染输入的内容图像。随着编码器-迁移-解码器的流程,任意风格迁移网络 [6]–[14] 通过对内容图像和风格图像的二阶统计量对齐来优化,并能够以前馈方式高效生成风格化结果。然而,由于模型在内容和风格之间关系建模能力的有限性,这些方法在某些情况下无法获得令人满意的结果。为了解决这个问题,最近的一些方法 [15]–[19] 引入了自注意力机制,以改进风格化结果。
前述风格迁移方法都利用CNN学习风格和内容表示。由于卷积操作的感受野有限,CNN在没有足够层数的情况下无法捕捉到长程依赖关系。然而,网络深度的增加可能会导致特征分辨率和细节的丢失 [20]。缺失的细节可能会损害风格化结果,尤其是在内容结构保持和风格展示方面。如图1(a)所示,在卷积特征提取的过程中,一些细节被忽略。An等人 [21] 最近通过可视化风格化过程中的内容泄漏,展示了典型的基于CNN的风格迁移方法在内容表示上存在偏差,即经过多次风格化操作后,输入内容的提取结构会发生剧烈变化。
随着 Transformer 在自然语言处理(NLP)中的成功应用,Transformer 架构已被广泛采用于各种计算机视觉任务。将 Transformer 应用于计算机视觉的魅力体现在两个方面。首先,Transformer 通过自注意力机制可以自由地学习输入的全局信息。因此,在每一层中都可以轻松获得对整体的理解。第二,Transformer 架构可以建模输入形状之间的关系 [23],不同的层次提取相似的结构信息 [24](见图1(b))。因此,变换器具有强大的表示能力,能够精确捕捉内容表示,避免丢失细节。因此,生成的结构可以很好地保持。
在这项工作中,我们的目标是消除基于CNN的风格迁移方法中的偏差表示问题,并提出了一种新的图像风格迁移 Transformer 框架,称为StyTr²。与原始 Transformer 不同,我们在StyTr²框架中设计了两个基于 Transformer 的编码器来获取领域特定的信息。接着,使用 Transformer 解码器来逐步生成图像块的输出序列。此外,针对为NLP提出的位置编码方法,我们提出了两个考虑因素
(1)不同于按逻辑排列的句子,图像序列的标记与图像内容的语义信息相关;
(2)对于风格迁移任务,我们的目标是生成任意分辨率的风格化图像。
图像分辨率的指数级增加将导致位置编码的显著变化,进而导致位置偏差和较差的输出质量。一般来说,针对视觉任务所需的位置编码应当依赖于输入内容,并对图像缩放变换不敏感。因此,我们提出了一种内容感知位置编码方案(CAPE),它基于图像语义特征学习位置编码,并动态扩展位置以适应不同的图像大小。
总之,我们的主要贡献包括:
- 提出了一个基于 Transformer 的风格迁移框架StyTr²,用于生成具有良好保留输入内容图像结构和细节的风格化结果。
- 提出了一个内容感知的位置编码方案,它对尺度具有不变性,适用于风格迁移任务。
- 通过综合实验表明,StyTr²优于基准方法,能够获得理想的内容结构和风格模式,并取得出色的结果。
2、相关工作
2.1 图像风格迁移:
Gatys等人 [3] 发现CNN中的层级结构可以用来提取图像内容结构和风格纹理信息,并提出了一种基于优化的方法来迭代生成风格化图像。一些方法 [25], [26] 采用了端到端模型,以实现针对特定风格的实时风格迁移。为了更高效的应用,[27]–[29] 将多种风格结合到一个模型中,并取得了出色的风格化效果。近年来,任意风格迁移(arbitrary style transfer)引起了更多的关注。Huang等人 [6] 提出了自适应实例归一化(AdaIN),将内容的均值和方差替换为风格的均值和方差。AdaIN被广泛应用于图像生成任务 [10], [11], [14], [30], [31],用于融合内容和风格特征。Li等人 [7] 设计了一个白化与着色转换(WCT)来对齐内容和风格特征的二阶统计量。此外,许多方法 [21], [32], [33] 也致力于在保证效率的前提下促进生成效果。基于CNN模型,[15]–[17], [19], [34] 将自注意力引入到编码器-迁移-解码器框架中,以实现更好的特征融合。Chen等人 [35] 提出了内部-外部风格迁移算法(IEST),其中包含两种类型的对比损失,可以产生和谐且令人满意的风格化效果。然而,现有的编码器-迁移-解码器风格迁移方法无法处理长程依赖,可能导致细节丢失。
2.2 Transformer 在视觉任务中的应用:
作为递归神经网络(RNN)和卷积神经网络(CNN)的替代,Transformer [22] 最初是为机器翻译任务提出的,并且已广泛应用于各种NLP任务 [36]–[41]。受到Transformer 在NLP中的突破性成功启发,许多研究者为各种图像/视频相关任务开发了视觉Transformer [42],包括目标检测 [43]–[45],语义分割 [46], [47],图像分类 [48]–[52],图像处理与生成 [20], [50], [53]。与全卷积网络相比,基于Transformer 的网络通过自注意力机制能够捕捉输入图像的长期依赖。在本文中,我们为风格迁移任务引入了基于Transformer 的结构,可以视为图像块的序列到序列生成。
2.3 位置编码:
位置编码通常用于基于Transformer 的模型中,以提供位置信息。位置编码有两种类型:功能性位置编码和参数化位置编码。功能性位置编码是通过预定义函数(如正弦函数)来计算的 [22]。参数化位置编码则是通过模型训练学习的 [38]。为了确保 Transformer 的平移不变性,相对位置编码 [54]–[57] 考虑了图像序列中标记之间的距离。[58] 和 [59] 进一步将位置编码引入到基于CNN的模型中,作为空间归纳。在本文中,我们提出了一种内容感知的位置编码机制,它具有尺度不变性,更适合图像生成任务。
3、方法
为了利用 Transformer 捕捉图像特征长距离依赖的能力 进行风格迁移,我们将该问题建模为 序列化的 patch 生成任务。
给定一个 内容图像 和一个 风格图像
,我们将两张图像切分成若干 小块(patch)(类似 NLP 任务中的 token),并使用 线性投影层 将输入 patch 投影为 顺序特征嵌入
:
其中:
是序列长度( m=8 是 patch 尺寸)。
是特征维度。
3.1 内容感知位置编码(CAPE)
在 Transformer 结构中,位置编码(Positional Encoding, PE) 是必需的,它帮助模型获取 结构信息。
根据 [22] 的方法,第 i 个 patch 和第 j 个 patch 的注意力得分计算如下:
展开后:
其中:
和
是查询和键的参数矩阵。
代表 第 i 个 patch 的一维位置编码。
在 二维情况 下,patch 之间的相对关系由以下公式描述:
其中:
,
。
该公式表明:
- 传统 PE 仅依赖于 patch 之间的空间距离,即 位置越近,编码越相似。
- 然而,在风格迁移任务中,我们希望 内容相似的 patch 具有相似的风格迁移结果。
例如,在 右图 3(a) 中:- 红色 patch 和 绿色 patch 之间的距离
很小。
- 红色 patch 和 青色 patch 之间的距离
较大。
- 但我们实际上希望 内容相似的 patch 具有更接近的风格迁移结果。
- 红色 patch 和 绿色 patch 之间的距离
此外:
- 传统 PE 依赖固定的正弦编码,当输入图像的尺寸 指数级扩展 时,patch 之间的相对距离会剧烈变化,使得 PE 无法适用于多尺度视觉任务。
为了应对上述问题,我们提出了一种 内容感知位置编码(CAPE), 对尺度变化具有不变性(scale-invariant),更适用于风格迁移任务。
与 传统正弦位置编码(Sinusoidal PE) 仅考虑 patch 之间的 几何相对距离 不同,CAPE 结合了图像内容信息。
方法:
(1)固定大小的 PE 表示
设定一个固定大小的 位置编码矩阵(实验中 n=18)。这样,即使输入图像缩放,也能保持 相对位置关系稳定。
(2)PE 重新缩放到对应尺寸
对于输入图像 ,将
位置编码 重新缩放为
:
其中:
:对特征
进行 平均池化。
:使用 1×1 可学习卷积 生成 新的 PE。
(3) 通过插值计算最终 PE
最终,每个 patch 的 内容感知位置编码 计算如下:
其中:
是插值权重。
s 是 patch 邻域大小。
(4) 最终 PE 计算
最后,将 CAPE 加入 patch 特征:
3.2 风格迁移 Transformer
Transformer 编码器
我们通过基于 Transformer 的结构来学习序列化的视觉表示,从而捕获图像块之间的长距离依赖关系。不同于其他视觉任务 [43, 45, 53],风格迁移任务的输入来自两个不同的域,分别对应自然图像和艺术绘画。因此,StyTr² 采用了两个 Transformer 编码器来分别编码不同域的特征,并在后续阶段将一个域的序列转换到另一个域。
给定输入内容序列的嵌入表示:
我们首先将其输入 Transformer 编码器。编码器的每一层由一个多头自注意力(MSA)模块和一个前馈网络(FFN)组成。输入序列被编码成查询(Q)、键(K)和值(V):
其中,。然后,多头注意力计算如下:
其中, 为可学习参数,N 为注意力头的数量,
。残差连接被用于获得编码后的内容序列:
其中,前馈网络(FFN)定义如下:
并且在每个块后都会应用层归一化(Layer Normalization,LN)。
类似地,输入风格序列的嵌入:
按照相同的计算过程被编码为序列 ,不同之处在于风格输入不考虑位置编码(positional encoding),因为最终输出不需要保留风格输入的结构信息。
Transformer 解码器
Transformer 解码器的作用是根据编码后的风格序列 对编码后的内容序列
进行转换。与自然语言处理任务中的自回归(auto-regressive)过程不同,我们一次性输入所有序列化的图像块来预测最终结果。
如 Figure 3(a) 所示,每个 Transformer 解码器层包含 两个多头自注意力(MSA)层和一个前馈网络(FFN)。解码器的输入包括编码后的内容序列:
以及风格序列:
我们使用内容序列生成查询(Q),使用风格序列生成键(K)和值(V):
Transformer 解码器的输出序列 X 计算如下:
每个块后同样应用层归一化(LN)。
CNN 解码器
Transformer 的输出序列 形状为
,而不是直接对其进行上采样来构建最终结果,我们采用了一个 三层 CNN 解码器 来对 Transformer 解码器的输出进行细化,类似于 [46] 的方法。
对于每一层,我们使用以下一系列操作来扩展尺度:
最终,我们可以获得分辨率为 的最终风格迁移结果。
3.3 网络优化(Network Optimization)
生成的结果应保持原始内容结构,并符合参考风格模式。因此,我们构建了两种不同的感知损失(perceptual loss)来衡量输出图像 与输入内容图像
之间的内容差异,以及
与输入风格参考图像
之间的风格差异。
我们使用经过预训练的 VGG 模型提取特征,构造内容损失和风格损失,方法参照 [6] 和 [21]。
1. 内容感知损失(Content Perceptual Loss)
内容损失 定义如下:
其中, 表示 VGG19 预训练网络的第
层提取的特征,
是用于计算损失的网络层数。
2. 风格感知损失(Style Perceptual Loss)
风格损失 定义如下:
其中:
和
分别表示从 VGG19 提取的特征的均值和标准差。
3. 身份损失(Identity Loss)
为了学习更丰富且更准确的内容和风格表示,我们采用身份损失 [15]。具体来说,我们输入两个相同的内容(或风格)图像到 StyTr2 网络,期望生成的输出 (或
)应该与输入图像
(或
)一致。因此,我们计算两个身份损失项来衡量
(或
)与
(或
)之间的差异:
4. 总损失函数(Total Loss)
整个网络通过最小化以下目标函数进行优化:
其中,超参数设置如下:
这些超参数用于平衡不同损失项的影响,以避免数值尺度差异过大带来的影响。
4、实验
4.1 实现细节 (Implementation Details)
- 数据集: 我们使用 MS-COCO [60] 作为内容数据集,WikiArt [61] 作为风格数据集。
- 训练阶段: 所有图像随机裁剪至固定分辨率 256×256;在测试时,支持任意图像分辨率。
- 优化器: 采用 Adam 优化器 [62],学习率设置为 0.00005,使用热启动调整策略 [63]。
- 批量大小: 设置为 8,网络训练 160,000 次迭代。
4.2 对比实验
我们将方法与 AdaIN [6]、Avater [64]、SANet [15]、AAMS [18]、MAST [16]、MCC [17]、ArtFlow [21]、AdaAttN [19]、IEST [35] 和 StyleFormer [34] 进行比较。
-
方法背景:
- AdaIN, Avater, SANet, AAMS 和 MAST 是基于 CNN 的图像风格化方法。
- MCC [17] 是一种视频风格转移方法,但也可以应用于图像,并且不会损害生成效果。
- ArtFlow [21] 设计了基于流的网络以最小化图像重建误差和恢复偏差。
- AdaAttN [19] 在每个点上执行注意力归一化,以实现特征分布对齐。
- IEST [35] 结合了对比学习和外部记忆,以提高视觉质量。
- StyleFormer [34] 将 Transformer 机制引入传统的 CNN 编码器-解码器结构。
-
与我们的方法对比: 我们的方法采用纯 Transformer 架构,解决了卷积操作造成的内容细节丢失问题。
a) 时间信息:
我们的模型在两台 NVIDIA Tesla P100 GPU 和两台 NVIDIA GeForce RTX 3090 GPU 上训练约一天。
在表 I 中,我们比较了不同风格转移方法在两种输出分辨率下的推理时间,使用一台 Tesla P100。
b) 质量评估:
图 4 展示了定性比较结果。
由于简化了均值和方差的对齐,AdaIN [6] 的结果风格模式不足,风格化图像出现裂缝伪影,影响了整体转移质量。
AAMS [18] 侧重于内容图像的主要结构,但忽略了其他部分,导致次要结构无法很好地保持。
基于补丁交换的 AAMS 方法产生了模糊过度的伪影。
MCC [17] 使用了自注意力的变换形式,但缺少非线性操作,限制了网络输出的最大值,导致物体边界附近溢出。
ArtFlow [21] 是流式模型,特征表示能力有限,生成结果存在风格不准确和不足的情况,边界可能出现不理想的模式。
AdaAttN [19] 采用每个点的归一化,导致风格退化,生成的结果风格模式与输入参考不一致。
IEST [35] 的视觉质量优于其他方法,但生成的结果的风格可能与输入的风格参考不一致。
StyleFormer [34] 仍然遵循 CNN 基础的“编码器-解码器”流程,结果存在细节丢失的情况。
相比之下: StyTr2 利用 Transformer 架构,能够更好地捕捉输入图像特征的长程依赖关系,避免了内容和风格细节的缺失,能够保留良好的内容结构和理想的风格模式。
c) 定量评估:
我们计算了生成结果与输入内容图像之间的内容差异,以及生成结果与输入风格图像之间的风格差异,作为风格转移质量的两个间接指标。直观上,差异越小,表示输入内容/风格越能保持。
我们随机选择了 40 张风格图像和 20 张内容图像,生成了 800 张风格化图像。对于每种方法,我们基于公式 (9) 计算内容差异,并基于公式 (10) 计算风格差异。表 II 显示了相应的定量结果。
总体而言,我们的方法实现了最低的内容损失,IEST [35] 是第二好的方法。然而,如定性评估中所述,IEST 的风格损失最高,因为生成结果的风格外观与输入风格参考非常接近。在风格损失方面,SANet [15] 和 StyTr2 优于其他方法。因此,我们的结果能够同时有效保留输入内容和参考风格。
4.3 内容泄漏分析 (Analysis of Content Leak)
问题描述: 内容泄漏问题通常发生在风格化过程中,因为基于 CNN 的特征表示可能无法充分捕捉图像内容的细节。经过多轮相同风格化处理后,这种伪影很容易被人眼察觉。内容泄漏问题由以下公式表示:
其中 是第
轮生成器,
是对应的风格化结果。
解决方案: An 等人 [21] 提出了可逆网络来替代基于 CNN 的模型来解决内容泄漏问题。然而,严格的可逆性可能不适用于生成任务。相比之下,我们利用 Transformer 架构捕捉长程依赖关系,显著缓解了内容泄漏问题。
对比结果: 图 5 展示了与 CNN 方法和流模型 ArtFlow [21] 比较后的结果。上排显示了 CNN 方法在第一轮风格化后生成的内容结构受到不同程度的损坏,而我们的方法仍能呈现清晰的内容细节。尽管 ArtFlow 保持了清晰的内容结构,风格化效果不理想(例如,边缘缺陷和不合适的风格模式)。
随着风格化轮次增加: CNN 方法生成的内容结构逐渐模糊,而我们的方法则能保持清晰的内容结构。
4.4 CAPE 分析 (Analysis of CAPE)
PE(位置编码)的影响: 在计算 PE 时,我们需要考虑内容图像的语义信息。为了将提出的 CAPE 与不考虑语义的正弦 PE 进行比较,我们展示了两种情况下,输入内容图像存在重复模式或由四个相同的图像拼接而成的情况。
结果: 使用正弦 PE 时,最终结果的风格化区域不一致,尤其在输入内容图像重复或拼接的情况下。
对比实验: 图 7 比较了我们的方法与正弦 PE 在不同输入分辨率下的表现。正弦 PE 在分辨率为 512×512 时会产生垂直轨迹伪影,而我们的 CAPE 方法则能够避免这些问题,支持任意输入分辨率。
CAPE 动态编码: 图 8 展示了不同输入下的 CAPE。与学习型 PE 和正弦 PE 相比,CAPE 动态编码不同输入图像,能够更好地推广到各种分辨率,确保生成的风格化图像保持清晰的内容结构和适当的风格模式。