风格迁移-StyTr 2 : Image Style Transfer with Transformers

风格迁移-StyTr 2 : Image Style Transfer with Transformers

论文链接:Image Style Transfer with Transformers

源码链接:StyTR-2

文章目录

  • [风格迁移-StyTr 2 : Image Style Transfer with Transformers](#风格迁移-StyTr 2 : Image Style Transfer with Transformers)
        • StyTR架构图
        • 图像内容编码器
          • [内容感知位置编码(CAPE,Content-Aware Positional Encoding)](#内容感知位置编码(CAPE,Content-Aware Positional Encoding))
        • 风格图像编码器
        • 图像和风格融合解码器
        • 图像解码器
        • 损失函数
          • [内容感知损失(Content Perceptual Loss, Lc)](#内容感知损失(Content Perceptual Loss, Lc))
          • [风格感知损失(Style Perceptual Loss, Ls)](#风格感知损失(Style Perceptual Loss, Ls))
          • [身份损失 1(Identity Loss 1, Lid1)](#身份损失 1(Identity Loss 1, Lid1))
          • [身份损失 2(Identity Loss 2, Lid2)](#身份损失 2(Identity Loss 2, Lid2))
          • [总损失函数(Total Loss, L)](#总损失函数(Total Loss, L))

StyTr的核心创新在于将Transformer应用到图像风格迁移任务中。传统的风格迁移方法多基于卷积神经网络(CNN),而StyTr引入了Transformer的注意力机制,能够捕捉图像的全局依赖关系,并在迁移过程中实现更细腻的风格融合。

StyTR架构图

主要由四部分组成:图像内容编码器(b图中黄色区域),风格图像编码器(上面Style value区域),图像和风格融合解码器(Transformer decoder),图像解码器(最后decoder)。下面将从这四个部分介绍这个模型,并且每一部分有什么创新点。

图像内容编码器

主要黄色区域,这一部分直接使用transformer的注意力机制,但是有些不同的是,这里位置编码的嵌入与传统的位置编码不同,传统的位置编码多使用正余弦函数只考虑像素之间的相对距离,本篇论文中则采用内容感知位置编码(CAPE,Content-Aware Positional Encoding)来实现的位置编码的嵌入。

内容感知位置编码(CAPE,Content-Aware Positional Encoding)

内容感知位置编码(CAPE,Content-Aware Positional Encoding)的核心思想是,为图像风格迁移任务引入一种更加灵活和适应性的位置信息编码方式。相比于传统的正弦位置编码(sinusoidal PE)只考虑像素之间的相对距离,CAPE还基于图像的语义内容来调整位置编码。这样可以确保在风格迁移任务中,不同尺度的图像仍然能保持一致的空间关系。

CAPE的工作原理

  1. 内容感知:CAPE根据图像的语义内容生成位置信息。它不仅考虑每个块的相对位置,还考虑了图像的内容信息(例如颜色、纹理、物体的形状等),这样能让模型更好地保持图像的结构,并在风格迁移过程中得到更自然的结果。

  2. 尺度不变性:风格迁移涉及不同尺度的图像,而传统的位置编码在处理不同大小的图像时会有一定局限。CAPE通过重新调整位置编码的大小(使用一个固定大小的编码矩阵,比如18×18,然后根据图像的大小进行缩放),确保无论图像大小如何,其空间关系不会改变。这种做法解决了不同尺度图像之间的空间不一致性问题。

CAPE的原理是让位置编码不再只依赖于像素之间的距离,而是通过引入图像的语义内容来使编码更加智能和灵活。这种方法可以在风格迁移中保持图像的空间结构一致性,同时适应不同大小的图像,从而得到更好的风格迁移效果。

风格图像编码器

在风格迁移任务中,风格编码器的主要作用是将输入的风格图像转化为一个特征表示序列,从而能够与内容图像的特征进行融合,完成风格迁移。风格编码器的处理方式与内容编码器类似,但有一个重要的不同点:风格编码器不考虑位置编码

**原因:**与内容图像不同,风格图像的空间结构在风格迁移任务中并不需要严格保持。也就是说,风格图像的每个部分(比如颜色、纹理等)的具体位置并不重要,重要的是这些特征本身。因此,风格编码器不需要为风格图像加入位置编码。这样做的目的是为了让模型更加自由地将风格特征应用到内容图像的不同部分,而不必受到空间位置的限制。

图像和风格融合解码器

主要是将图像特征与风格特征相融合。

  1. 输入Transformer解码器:内容序列 (Yc)+风格序列 (Ys)

  2. 生成查询、键和值

    • 在Transformer中,解码器使用内容序列和风格序列生成三组关键数据:

    • 查询 (Q):用内容序列 Yc 生成,具体为 YcWq,其中 Wq是一个学习到的权重矩阵。

    • 键 (K)值 (V):用风格序列 Ys 生成,分别为 YsWk和 YsWv,其中 Wk和 Wv是另外两个学习到的权重矩阵。

  3. 计算Transformer解码器的输出

图像解码器

整个CNN解码器的流程是为了从Transformer解码器输出的低分辨率特征序列中生成高质量的风格迁移图像。通过三层卷积层的逐步上采样和细化处理,模型能够更好地恢复图像中的细节,并最终输出一个符合期望风格和内容的高分辨率图像。

虽然可以直接将这个特征序列上采样回到原始图像的分辨率,但为了得到更精细的结果,作者选择使用一个三层的CNN解码器来进一步优化和细化特征。直接上采样可能导致结果粗糙,细节不足,因此需要卷积操作来增强局部信息和细节。

三层CNN解码器的结构

这个三层的CNN解码器用于逐步扩展图像的尺寸,并将特征转换为最终的RGB图像。具体的操作包括:

  • 3x3卷积 (Conv):每一层首先进行3x3卷积操作。3x3卷积核能够很好地提取局部特征,帮助增强细节。
  • ReLU激活函数:每层卷积后使用ReLU(修正线性单元)激活函数。ReLU通过引入非线性,有助于网络捕捉更复杂的特征。
  • 2倍上采样 (Upsample):在每一层中,通过上采样操作将特征图的尺寸扩展一倍。这种逐步上采样的方法有助于逐渐恢复图像的高分辨率结构,同时保持细节。
损失函数

损失函数主要由四个组成:内容感知损失(Content Perceptual Loss, Lc)、风格感知损失(Style Perceptual Loss, Ls)、身份损失 1(Identity Loss 1, Lid1)、身份损失 2(Identity Loss 2, Lid2)构成总损失函数。说明Io表示输出图像,Ic表示内容图像,Is表示风格图像。

内容感知损失(Content Perceptual Loss, Lc)
风格感知损失(Style Perceptual Loss, Ls)
身份损失 1(Identity Loss 1, Lid1)
身份损失 2(Identity Loss 2, Lid2)
总损失函数(Total Loss, L)

需要源码讲解可以联系我

相关推荐
HPC_fac1305206781636 分钟前
科研深度学习:如何精选GPU以优化服务器性能
服务器·人工智能·深度学习·神经网络·机器学习·数据挖掘·gpu算力
猎嘤一号1 小时前
个人笔记本安装CUDA并配合Pytorch使用NVIDIA GPU训练神经网络的计算以及CPUvsGPU计算时间的测试代码
人工智能·pytorch·神经网络
天润融通2 小时前
天润融通携手挚达科技:AI技术重塑客户服务体验
人工智能
Elastic 中国社区官方博客4 小时前
使用 Elastic AI Assistant for Search 和 Azure OpenAI 实现从 0 到 60 的转变
大数据·人工智能·elasticsearch·microsoft·搜索引擎·ai·azure
江_小_白5 小时前
自动驾驶之激光雷达
人工智能·机器学习·自动驾驶
yusaisai大鱼6 小时前
TensorFlow如何调用GPU?
人工智能·tensorflow
珠海新立电子科技有限公司8 小时前
FPC柔性线路板与智能生活的融合
人工智能·生活·制造
IT古董9 小时前
【机器学习】机器学习中用到的高等数学知识-8. 图论 (Graph Theory)
人工智能·机器学习·图论
曼城周杰伦9 小时前
自然语言处理:第六十三章 阿里Qwen2 & 2.5系列
人工智能·阿里云·语言模型·自然语言处理·chatgpt·nlp·gpt-3
余炜yw9 小时前
【LSTM实战】跨越千年,赋诗成文:用LSTM重现唐诗的韵律与情感
人工智能·rnn·深度学习