Paper - VQGAN: Taming Transformers for High-Resolution Image Synthesis 简读

欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://spike.blog.csdn.net/article/details/136055085

VQGAN: Taming Transformers for High-Resolution Image Synthesis, CVPR 2021

VQGAN: 改良 Transformer 模型以实现高清图像合成

VQGAN

源码:https://github.com/CompVis/taming-transformers

为了学习顺序数据的长距离交互,Transformers在各种任务上持续展现出最先进的结果。与卷积神经网络(CNNs)相比,Transformer不包含优先考虑局部交互的归纳偏置(Inductive Bias)。这使得Transformer具有表达能力,但也使得Transformer在处理长序列,例如高分辨率图像时,计算上不可行。本文展示如何将CNNs的归纳偏置的有效性,与Transformer的表达能力相结合,使得VQGAN能够建模,并且合成高分辨率图像。本文展示如何(i)使用CNNs学习一个富含上下文的图像成分词汇表,然后(ii)利用Transformers高效地建模,在高分辨率图像中的组合。本文的方法可以很容易地应用于条件合成任务(Conditional Synthesis Tasks),其中,非空间信息,例如对象类别,和空间信息,例如分割,都可以控制生成的图像。特别地,本文展示了使用Transformers在语义引导下,合成百万像素(1024x1024)图像的第一个结果,并且,在类条件ImageNet上获得了自回归模型中的最先进水平。

本文获得一个有效和富有表现力的模型的关键启发是,卷积和Transformer架构结合起来,可以建模视觉世界的组合性质:本文使用卷积方法来高效地学习一个包含丰富上下文的视觉部件的码本,然后学习一个全局组合的模型。这些组合中的长距离交互,需要一个富有表现力的Transformer架构,来建模其构成视觉部件的分布。此外,本文利用对抗方法,来确保局部部件的字典,捕捉到感知上重要的局部结构,从而减轻了用Transformer架构建模低级统计的需要。让Transformer专注于独特优势——建模长距离关系——使它们能够生成高分辨率的图像,这是以前无法达到的。本文的方法通过条件信息来控制生成的图像,条件信息包括期望的对象类别或空间布局。最后,实验表明,本文的方法保留了Transformer的优势,超越了基于卷积架构的先进的基于码本的方法。

Transformer的机制, d k d_{k} dk d v d_v dv 的维度相同,Mask元素成,即:

Attention

本文使用一个卷积VQGAN来学习一个包含丰富上下文的视觉部分的编码本(Codebook),其组合随后由一个自回归的Transformer架构进行建模。一个离散的编码本提供了这些架构之间的接口,而一个基于块(patch-based)的判别器,使得在保持高感知质量的同时,实现强压缩。这种方法将卷积方法的效率引入了基于变换器的高分辨率图像合成。如图:

VQGAN

VQGAN的Encoder和Decoder结构:

VQGAN

滑动注意力窗口(Sliding attention window):

Sliding attention window

在本文设置中,Transformer统一广泛的图像合成任务。本文展示了在不同的条件输入和数据集上的256×256合成结果,所有这些结果都是用相同的方法获得的,即利用有效的基于CNN的VQGAN架构的归纳偏置,结合Transformer架构的表达能力。

  • 第1行:从无条件训练的ImageNet上的补全。
  • 第2行:在RIN上的深度到图像。
  • 第3行:在ADE20K上的语义引导合成。
  • 第4行:在DeepFashion上的姿态引导人物生成。
  • 第5行:在RIN上的类条件样本。

即:

图

将滑动注意力窗口(Sliding Attention Window)方法,应用于各种条件图像合成任务。

  • 第1行:在RIN上的深度到图像。
  • 第2行:在IN上的随机超分辨率。
  • 第3和第3行:在 S-FLCKR 上的语义合成
  • 第5行:在 IN上的边缘引导合成。

生成的图像大小在368×496和1024×576之间变化,因此最好放大查看。

图2

其他:

Frechet Inception Distance (FID) Score,即FID score是一种评估生成模型图片质量的指标,使用了Inception Net-V3分类器,来评估生成图片的清晰度和多样性。基本思想是,用分类器提取真实图片和生成图片的特征向量,然后计算两组特征向量的Fréchet距离,这个距离越小,说明生成图片越接近真实图片。具体的计算公式如下:
FID ( X , G ) = ∥ μ X − μ G ∥ 2 2 + Tr ( Σ X + Σ G − 2 ( Σ X Σ G ) 1 / 2 ) \text{FID}(X, G) = \|\mu_X - \mu_G\|_2^2 + \text{Tr}(\Sigma_X + \Sigma_G - 2(\Sigma_X\Sigma_G)^{1/2}) FID(X,G)=μXμG22+Tr(ΣX+ΣG2(ΣXΣG)1/2)

其中, X X X是真实图片的集合, G G G是生成图片的集合, μ X \mu_X μX μ G \mu_G μG是两组特征向量的均值, Σ X \Sigma_X ΣX Σ G \Sigma_G ΣG是两组特征向量的协方差矩阵, Tr \text{Tr} Tr是矩阵的迹, ∥ ⋅ ∥ 2 \|\cdot\|_2 2是二范数。

FID score与之前的IS(Inception Score)相比,有以下几个优点:

  • FID score同时考虑了生成图片的清晰度和多样性,而IS只考虑了多样性。
  • FID score与人类的主观评价更一致,而IS有时会出现与人类判断不一致的情况。
  • FID score可以用于不同的条件生成任务,而IS只适用于无条件生成任务。

FID score也有一些局限性,例如:

  • FID score依赖于分类器的选择,不同的分类器可能会导致不同的结果。
  • FID score需要有一个足够大的真实图片集合作为参考,这在一些特定领域可能不容易获得。
  • FID score不能反映生成图片的语义一致性,例如是否符合给定的条件或约束。

LDM: Latent Diffusion Model, Patrick Esser, Runway ML (Stable Diffusion 的公司)

LDM

Runway 公司:

Runway

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/455904.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

白酒:生产过程中的节能减排与环保措施

在当今社会,环保和可持续发展已成为各行各业关注的焦点。作为一家有社会责任感的企业,云仓酒庄在豪迈白酒的生产过程中,积极采取节能减排与环保措施,为可持续发展贡献力量。 云仓酒庄注重能源的节约使用,并介绍到&…

TDengine用户权限管理

Background 官方文档关于用户管理没有很详细的介绍,只有零碎的几条,这里记录下方便后面使用。官方文档:https://docs.taosdata.com/taos-sql/show/#show-users 1、查看用户 show users;super 1,表示超级用户权限 0,表…

SQL注入微境界

一、一个get注入的心里历程 使用的漏洞库是sqli-labs 1、判断参数是否代入数据库查询 ?id1 修改参数?id2 内容有变化,可以确定是代入数据库查询的。 2、判断是字符型还是数字型,是否属于拼接型 ?id1 有报错型注入 ?id1-- --是注释的一种&…

25.云原生ArgoCD高级之app of apps模式

文章目录 app of apps 模式介绍app如何管理apphelm方式管理kustomize方式管理 app of apps 模式介绍 通过一个app来管理其他app,当有多个项目要发布创建多个app比较麻烦,此时可以创建一个管理app,管理app创建后会创建其他app。比较适合项目环…

Bert下载和使用(以bert-base-uncased为例)

Bert官方github地址:https://github.com/google-research/bert?tabreadme-ov-file 【hugging face无法加载预训练模型】OSError:Can‘t load config for ‘./bert-base-uncased‘. If you‘re trying 如何下载和在本地使用Bert预训练模型 以bert-base-u…

基于Vue2用keydown、keyup事件实现长按键盘任意键(或组合键)3秒触发自定义事件(以F1键为例)

核心代码 <template></template> <script> export default {created() {//监听长按快捷键addEventListener("keydown", this.keydown);addEventListener("keyup", this.keyup);},destroyed(d) {//移除长按快捷键removeEventListener(&…

【开源】基于JAVA+Vue+SpringBoot的课程案例资源库系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 管理员需求分析2.2 用户需求分析 三、系统设计3.1 业务流程设计3.1.1 管理员业务流程设计3.1.2 用户业务流程设计3.1.3 首页功能模块及业务流程分析3.1.4 案例资源中心功能模块及业务流程分析3.1.5 用户信息中心功能模块…

机器学习聚类算法

聚类算法是一种无监督学习方法&#xff0c;用于将数据集中的样本划分为多个簇&#xff0c;使得同一簇内的样本相似度较高&#xff0c;而不同簇之间的样本相似度较低。在数据分析中&#xff0c;聚类算法可以帮助我们发现数据的内在结构和规律&#xff0c;从而为进一步的数据分析…

【敏捷开发】关于敏捷开发的几点思考,推荐一些高效书籍一起学

【敏捷开发】关于敏捷开发的几点思考&#xff0c;推荐一些高效书籍 一、背景二、敏捷宣言三、极限编程四、如何进行敏捷&#xff1f;4.1 改变软件研制方式4.2 组件高效团队4.3 改善研制流程4.4 持续集成与交付 五、Scrum过程六、书籍推荐 一、背景 软件开发的未来一定是多变的…

归并排序

1 确定分界点 mid &#xff08;lr&#xff09;/2 2 递归排序left right 3 归并 合二为一 #include<bits/stdc.h> using namespace std; const int N1e910; int q[N],tmp[N],n;void merge_sort(int q[],int l,int r) {if(l>r)return;int midlr>>1;merge_sort(…

会C语言但是不懂电路应该怎么入门单片机呢?

会C语言但是不懂电路应该怎么入门单片机呢&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C语言的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Video媒体组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Video媒体组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Video媒体组件 用于播放视频文件并控制其播放状态的组件。 子组件 无 接口…