StyTr2:引入 Transformer 解决 CNN 在长距离依赖性处理不足和细节丢失问题
- 提出背景
- StyTr2 组成
- StyTr2 架构
- 全流程优化
- 原始子解法:VGG网络做内容特征提取
- 替换子解法:使用GANs中的判别器进行特征提取
提出背景
论文:https://arxiv.org/pdf/2105.14576.pdf
代码:https://github.com/diyiiyiii/StyTR-2
问题: 传统的神经风格迁移方法因卷积神经网络(CNN)的局部性,难以提取和维持输入图像的全局信息,导致内容表示偏差。
解法: 提出了一种新的方法StyTr2,这是一种基于变换器的图像风格迁移方法,考虑输入图像的长距离依赖性。
StyTr2 组成
-
两个不同的变换器编码器(双Transformer编码器) - 内容域和风格域的分别编码
之所以使用双变压器编码器,是因为图像的内容和风格信息在本质上是不同的域,需要独立处理以更准确地捕捉各自的特征。
内容编码器:它专门针对内容图像的特征进行编码,以捕捉内容的结构和细节。内容编码器通常需要能够理解图像的语义信息和空间结构,以便在风格迁移时保持内容的一致性和可识别性。
风格编码器:这个编码器则是专门为了提取和编码风格图像的风格特征,如纹理、颜色分布和画面的艺术风格。风格编码器的目的是捕获那些可以转移到内容图像上的风格性特征。
这两个编码器在Transformer框架中并行工作,各自独立地处理图像的内容和风格信息。
通过这种设计,网络可以更细致地处理风格迁移的两个非常不同的方面:保留原始内容图像的结构和细节,同时有效地融入参考风格图像的艺术特质。
最后,通过一个变换器解码器将这两部分信息合并,生成风格化的输出图像。
-
采用多层变换器解码器,逐步生成输出序列。
接着使用变压器解码器来逐步生成图像块的输出序列,实现风格迁移。
在风格化过程中,解码器层将内容特征作为查询(Query),将风格特征作为键(Key)和值(Value),通过自注意力机制相互作用,实现内容和风格的有效融合。
之所以使用变压器解码器,是因为它可以有效地合并编码阶段得到的内容和风格信息,生成具有所需风格特征的内容图像。
-
内容感知位置编码(CAPE):设计目的是使位置编码不仅能够反映图像块的相对或绝对位置,而且还能够考虑到图像内容的语义信息。
位置编码在Transformer模型中用于提供序列中每个元素的位置信息。
与传统的位置编码不同,CAPE是基于图像的内容,特别是语义信息来设计的。
这意味着相似内容的图像块,即使在空间上相隔较远,也会被赋予相似的位置编码,因此在风格迁移时能够保持它们的风格一致性。
CAPE被设计为对图像尺寸的缩放具有不变性。这是通过将固定大小的位置编码动态地适应不同尺寸的图像来实现的。无论图像被缩放到什么程度,CAPE都能保持其有效性,确保风格迁移在不同分辨率的图像间是一致的。
为了适应不同尺寸的图像,CAPE利用插值权重来调整位置编码。这允许编码根据图像的实际尺寸和内容进行动态调整。
CAPE与图像分块(像素块)结合使用,每个块都被视为序列中的一个元素。这样,位置编码就与图像的空间结构相对应,有助于变换器理解和处理图像内容。
之所以使用内容感知位置编码,是因为它能够根据图像的语义内容动态调整位置信息,使得Transformer模型在处理具有不同尺寸和风格的图像时更加灵活和有效。
内容感知位置编码(CAPE)的示意图:
(a):展示了如何将一张图片分割成不同的区块,并对每个区块进行标记。
(b):展示了内容感知位置编码(CAPE)的结构,这是一个考虑图像内容语义的位置编码系统,与传统的Transformer模型中使用的位置编码不同,它基于图像的内容来调整每个区块的位置信息。
这些子特征构成了一个逻辑链条。在图像风格迁移的任务中,我们可以将这个逻辑链条比作一道制作复杂蛋糕的流程。每一个子特征就像是蛋糕制作中的一步,它们相互依赖、按顺序进行,最终才能制作出既有特定风格又保持原有内容结构的蛋糕。
比方说:
-
子特征1(双变压器编码器):这就像是我们先要准备蛋糕的两种主要原料——面糊和奶油。
内容域和风格域的分别编码就像是将面糊和奶油分别调配好,确保它们各自的特性都得到保留。
-
子特征2(变压器解码器):接下来,我们要将面糊放入烤箱中烘烤,同时把调好的奶油放置一旁待用。
在图像风格迁移中,这个步骤类似于将内容编码通过变压器解码器与风格编码相融合,这个过程就像是烘烤中的面糊吸收奶油的香味,使得最终的蛋糕既有面糊的结构也有奶油的风味。
-
子特征3(内容感知位置编码 CAPE):最后的装饰过程就好比是在蛋糕上进行艺术绘画,这需要考虑到蛋糕的大小和形状。
内容感知位置编码正是这样一个装饰步骤,它根据蛋糕(图像)的内容(语义信息)来精确地放置装饰物(位置编码),确保无论蛋糕的尺寸如何变化,装饰的相对位置总是恰到好处。
StyTr2 架构
- (a) Transformer解码器层:展示了Transformer解码器的结构,包含多头注意力机制和前馈神经网络(FFN),说明了在风格迁移中,如何处理内容和风格信息。
- (b) StyTr2网络:展示了整个网络的结构,包括内容和风格图像的分割、转换成序列,以及使用Transformer编码器和解码器处理这些序列。最终,使用一个递进式上采样解码器来得到最终的输出图像。
工作流程:
- 内容和风格的分割: 首先,将内容图像和风格图像分割成小块(patches),类似于在自然语言处理中的词汇(tokens)。
- 线性投影: 然后,这些图像块通过线性投影层被转换成序列化的特征嵌入。
- 变换器编码器: 接着,内容序列与内容感知位置编码(CAPE)结合,送入内容变换器编码器;同时,风格序列送入风格变换器编码器。
- 变换器解码器: 两个编码器处理后的序列被送入变换器解码器,进行风格化处理。
- 逐步上采样解码器: 最后,使用逐步上采样的解码器生成最终输出图像。
效果对比:
这个表格显示了不同风格迁移方法在内容损失(Lc)和风格损失(Ls)方面的性能比较。
这些损失值用于衡量生成的图像在保留输入内容和风格方面的效果。
表格中,“我们的”结果指的是StyTr2方法的结果,它在保持内容和风格方面取得了最佳效果,其次是其他列出的方法。
这些结果说明StyTr2在风格迁移任务中表现出色,尤其是在保留内容结构和风格特征方面。
全流程优化
以图像风格迁移中的一个子解法——内容特征提取为例,并考虑将其替换为使用**生成对抗网络(GANs)**中的判别器作为特征提取器的情形。
这种替代方案可以为风格迁移带来新的视角和可能的改进。
原始子解法:VGG网络做内容特征提取
在图像风格迁移任务中,内容特征提取通常依赖于预训练的深度学习模型,如VGG网络。这些模型通过其卷积层能够捕获图像的层次化特征,从而帮助在保持原始内容的同时应用新的风格。
替换子解法:使用GANs中的判别器进行特征提取
替代方案的理由:
- 理论基础:GANs中的判别器被训练用于区分真实图像与生成图像。在这个过程中,判别器学习到了如何理解和识别图像内容的细节和结构特征,这些特征对于图像风格迁移至关重要。
- 特征的丰富性:与传统的预训练网络相比,GANs的判别器可能捕获更丰富或不同的特征集合,这些特征可能对于风格迁移有特别的价值,尤其是在生成具有复杂纹理和细节的图像时。
实施步骤:
- 选择合适的GAN模型:选择一个在类似的图像数据集上预训练过的GAN模型。模型的选择取决于目标风格和内容图像的类型。
- 使用判别器作为特征提取器:而不是使用整个GAN模型,只使用其判别器部分来提取图像特征。这些特征将代表了图像的内容信息。
- 特征融合:将判别器提取的特征用于风格迁移的内容编码阶段。这可能需要调整特征的维度或进行某种形式的归一化,以便与风格特征相匹配。
- 风格迁移优化:使用这些新的内容特征进行风格迁移的训练过程。可能需要调整风格迁移模型的其他参数,以适应这些新特征的特性。
可能的挑战:
- 特征匹配:确保判别器提取的特征与风格迁移任务的需求相匹配可能需要一些实验和调整。
- 训练稳定性:使用GANs的判别器可能会引入额外的训练稳定性挑战,需要仔细调整学习率和其他超参数。
优势和改进:
- 内容理解的深度:通过使用判别器的特征,风格迁移模型可能会获得对内容图像更深层次的理解,特别是在区分背景与前景、理解图像的局部结构方面。
- 风格迁移的质量:这种方法可能会提高风格迁移的质量,尤其是在生成具有复杂风格特征的图像时,如更好的细节保留和更准确的风格模仿。