当前位置: 首页 > news >正文

论文阅读笔记StyTr2: Image Style Transfer with Transformers

目录

1 论文简介

2 摘要Abstract

3 总结Conclusion

4 本文的研究思路

5 方法Method

5.1 整体框架

5.2 Content-Aware Positional Encoding

5.3 StyleTransfer Transformer

5.3.1 Style and Content Encoder

5.3.2  transformer based decoder

5.3.3 cnn based decoder

5.4 损失函数Loss function

6 实验的定性效果


1 论文简介

论文标题

StyTr2: Image Style Transfer with Transformers

论文发表位置

CVPR 2022

论文地址

https://openaccess.thecvf.com/content/CVPR2022/html/Deng_StyTr2_Image_Style_Transfer_With_Transformers_CVPR_2022_paper.html

https://arxiv.org/abs/2105.14576

论文署名单位

School of Artificial Intelligence, UCAS   中国科学院大学   人工智能学院

NLPR, Institute of Automation, CAS   中国科学院,模式识别国家重点实验室

School of Artificial Intelligence, Jilin University   吉林大学   人工智能学院

Kuaishou Technology   快手科技

CIPUC   中国刑事警察学院

论文代码

https://github.com/diyiiyiii/StyTR-2.

作者做实验时使用了两张P100,两张3090显卡。

2 摘要Abstract

本文针对的任务:风格迁移任务。在保持一个图片的原始内容的同时,用艺术化的特征(来自一个艺术化的参考图像)去“粉刷”它。

发现问题:CNN本身擅长于捕捉局部关系,因此不善于提取和保留输入图片的全局信息。传统的风格迁移方法出现了内容表示与真实值有偏的问题。

本文的解决办法:引入transformer去完成风格迁移,以考虑到输入图像的长程依赖关系。

使用两个transformer encoder去分别提取content图像和style图像中的特定域的信息,然后使用一个transformer decoder根据提取的style信息去风格化提取的content信息。

作者认为已有的位置编码方法效率不高,因此提出了内容相关的位置编码CAPE(content-aware positional encoding)。CPAE有着放缩不变的特点,更加适合风格迁移任务。

实验情况:与当下的SOTA CNN方法和flow方法进行了对比,证明了本文的方法的有效性。

3 总结Conclusion

此论文提出了一种新的风格迁移的框架,StyTr2。

这个框架包含一个内容transformer encoder和一个风格transformer encoder去捕捉特定域的长程(全局)依赖信息。还包含一个transformer decoder根据给定的风格信息将内容信息风格化。

除此以外,此论文还提出了与内容相关的位置编码方法,它与语义信息有关并且有着放缩不变的特点,更加适合图像生成任务。

StyTr2框架缓解了以往使用CNN框架的风格化过程中图像内容泄露的问题,以一种新的视角解决了这个问题。

展望未来:当前StyTr2框架的推理速度比不上一些基于CNN的框架,在未来可以研究结合之前CNN中的一些经验去加速计算。

4 本文的研究思路

  • 传统的风格迁移方法计算复杂度很高,因为笔画形状和绘画处理过程被公式化了。

传统的方法的参考论文:

Style transfer functions for illustrative volume rendering

Image quilting for texture synthesis and transfer

  • 后来提出了利用CNN完成风格迁移任务的方法,但是有时候不能得到令人满意的结果,因为建模能力有限,因此后来又提出了self-attention机制去进一步优化。

问题:基于CNN的方法不能捕捉长程依赖关系,因为卷积操作的感受野是受限的,除非加深卷积层的层数。另一方面层数加深后会出现信息的丢失以及尺寸的缩减,从而影响风格迁移的结果。

基于CNN的方法的参考论文:

Image style transfer using convolutional neural networks

Demystifying neural style transfer

Stable and controllable neural texture synthesis and style transfer using histogram losses

  • transformer用于视觉任务中可以轻松捕捉全局信息,每层提取的信息都是相似的结构信息和关系,因此有着强大的内容表示能力,可以避免CNN中出现的信息丢失的问题,可以很好地保存信息。

本文的贡献:

提出了一个称为StyTr2(Style Transfer Transformer Framework)的基于transformer的风格迁移框架,可以生成质量更好,内容保存更加完成的风格化图片。

为视觉任务(风格迁移任务)提出了一种新的位置编码。它有着放缩不变的特点,更加适合风格迁移任务。

进行了大量的实验论证StyTr2的有效性。

5 方法Method

5.1 整体框架

示意图如下:

首先使用线性映射层将内容图像和风格图像转换为patch序列;

然后内容序列在与CAPE相加后送入负责建模内容序列的transformer encoder,风格序列直接送入负责建模风格序列的transformer encoder;

两个transformer encoder的输出结果送入transformer decoder进行信息融合计算,根据风格序列风格化内容序列;

接着transformer decoder的输出使用CNN decoder进行上采样计算得到最后的图片输出。

5.2 Content-Aware Positional Encoding

问题:位置编码positional encoding用来建模图像的结构信息。在最开始位置编码设计来是为了建模句子的逻辑顺序信息的(自然语言处理领域)。

在图像领域设计位置编码时考虑内容语义信息在内显然更加合理。图a中左上角与绿色格子和蓝色格子的距离应该相近,因为绿色格子和蓝色格子的内容相似,而我们希望他们有着相似的风格化结果。

另一方面,传统的位置编码设计(与两个patch的位置空间距离有关系)在图像的尺寸放缩时,会受到较大的影响。图b中在图片尺寸变化后四个蓝色格子的距离(即位置编码)也会显著变化,而视觉任务中常常存在多尺寸的情况,因此传统的位置编码就显得不太合适。

解决办法:CAPE

CAPE更加适合尺寸多变的视觉任务,有着放缩不变的特点。CAPE是根据给定图像的内容语义信息去生成的。

首先使用自适应平均池化将输入的词向量(reshape为特征图)的尺寸固定到[n, n],这是基于[n, n]的位置编码能够充分建模输入图像的语义信息的假设的。

然后使用一个1x1的卷积去建模学习位置编码。

最后再将位置编码插值缩放,尺寸回到输入的特征图的大小(即H/m x W/m,m是patch 大小)。

5.3 StyleTransfer Transformer

5.3.1 Style and Content Encoder

用来提取艺术图像领域(artistic images)和内容图像领域(natural images)的特定特征。

这里的encoder使用的是类似ViT模型中堆叠最原始的transformer encoder的方法,没有使用各种变体。结构如下图

 内容图像序列化后要加上CAPE再输入encoder,风格图像序列化后直接输入encoder。

5.3.2  transformer based decoder

根据给定的风格内容encoded style sequence Ys去对内容图像encoded content sequence Yc进行风格迁移。

decoder的设计中有两个MSA层和一个FFN层,输入包含Ys和Yc

Yc用于生成Q,Ys用于生成K和V

输出X可通过以下公式的运算得到(LayerNorm被省略了)

 示意图如下:

5.3.3 cnn based decoder

前面transformer based decoder的输出的尺寸的形状是[H*W/64, C]。

本文选择了使用CNN based decoder去提炼输出,而不直接上采样。CNN based decoder 由一系列的3x3 Conv + ReLU + 2x Upsample组成。

最后得到的输出的形状是[H, W, 3]

5.4 损失函数Loss function

损失函数的设计上主要考虑3个方面,最后的loss将三种loss以一定的权重组合起来:

  • 维持原始的内容结构

content perceptual loss Lc 

 I_o是输出图像(output image),I_c是输入的内容图像(content images),\phi_i是指用预训练的VGG19模型的第i层提取特征,N_l是VGG19的总层数。

  • 风格与给定的艺术参考图像相似

 style perceptual loss Ls

 \mu(*)和\sigma(*)表示求提取的特征的均值和方差。

  • 维持自身不变(包括内容和风格)

即content image和style image使用同样的图片时,输出应该尽量保持不变。

content encoder和style encoder的输入都是content image时,输出为I_{cc}

content encoder和style encoder的输入都是style image时,输出为I_{ss} 

 L_{id1}表示内容应该尽量保持不变

L_{id2}表示风格应该尽量保持不变

6 实验的定性效果

相关文章:

  • mybatis面试题及回答
  • 奔腾电力面试题
  • 【leetcode】905. 按奇偶排序数组 (简单)
  • Java--MybatisPlus入门;与Mybatis区别;简单使用(一)
  • #ubuntu# #git# repository git config --global --add safe.directory
  • 【数据结构】——二叉树oj题详解
  • 性能测试:工具篇:Jmeter实时可视化平台搭建
  • 你该用什么的美剧学英语?
  • 面试算法 二叉树的遍历,方法 :迭代 ,前序遍历: 中序遍历: 后序遍历: 层序遍历
  • Matlab常用函数(control)
  • 推荐10款好用的数据可视化工具,赶紧收藏
  • Java刷题面试系列习题(六)
  • 解决:vue-cli-service不是内部或外部命令
  • 手把手教你深度学习和实战-----全连接神经网络
  • VSCode 配置 C++ 环境
  • classpath对获取配置文件的影响
  • DataBase in Android
  • JSDuck 与 AngularJS 融合技巧
  • Node 版本管理
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • PermissionScope Swift4 兼容问题
  • quasar-framework cnodejs社区
  • react-native 安卓真机环境搭建
  • Solarized Scheme
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • gunicorn工作原理
  • 交换综合实验一
  • ​VRRP 虚拟路由冗余协议(华为)
  • # 安徽锐锋科技IDMS系统简介
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #include到底该写在哪
  • $GOPATH/go.mod exists but should not goland
  • (1)bark-ml
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (多级缓存)缓存同步
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (利用IDEA+Maven)定制属于自己的jar包
  • (论文阅读11/100)Fast R-CNN
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转) Face-Resources
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • ./configure、make、make install 命令
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .htaccess 强制https 单独排除某个目录
  • .NET MVC第五章、模型绑定获取表单数据
  • .net连接oracle数据库
  • .Net转前端开发-启航篇,如何定制博客园主题
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • @开发者,一文搞懂什么是 C# 计时器!
  • [04]Web前端进阶—JS伪数组