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.mzph.cn/news/681315.shtml

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

相关文章

TypeScript 入门

课程地址 ts 开发环境搭建 npm i -g typescript查看安装位置: $ npm root -g C:\Users\Daniel\AppData\Roaming\npm\node_modules创建 hello.ts: console.log("hello, ts");编译 ts 文件,得到 js 文件: $ tsc foo.…

LeetCode二叉树的垂序遍历

题目描述 给你二叉树的根结点 root ,请你设计算法计算二叉树的 垂序遍历 序列。 对位于 (row, col) 的每个结点而言,其左右子结点分别位于 (row 1, col - 1) 和 (row 1, col 1) 。树的根结点位于 (0, 0) 。 二叉树的 垂序遍历 从最左边的列开始直到…

ubuntu22.04@laptop OpenCV Get Started: 007_color_spaces

ubuntu22.04laptop OpenCV Get Started: 007_color_spaces 1. 源由2. 颜色空间2.1 RGB颜色空间2.2 LAB颜色空间2.3 YCrCb颜色空间2.4 HSV颜色空间 3 代码工程结构3.1 C应用Demo3.2 Python应用Demo 4. 重点分析4.1 interactive_color_detect4.2 interactive_color_segment4.3 da…

Imgui(1) | 基于imgui-SFML改进自由落体小球

Imgui(1) | 基于imgui-SFML改进自由落体小球 0. 简介 使用 SFML 做2D图形渲染的同时,还想添加一个按钮之类的 GUI Widget, 需要用 Dear Imgui。由于 Imgui 对于2D图形渲染并没有提供类似 SFML 的 API, 结合它们两个使用是一个比较好的方法, 找到了 imgui-SFML 这个…

C++,stl,map/multimap详解

目录 1.map的构造和赋值 2.map的大小和交换 3.map的插入和删除 4.map的查找和统计 5.map的排序 1.map的构造和赋值 #include<bits/stdc.h> using namespace std;void print(map<int,int> &mp) {for(map<int,int>::iterator it mp.begin(); it ! m…

数据库管理-第150期 Oracle Vector DB AI-02(20240212)

数据库管理150期 2024-02-12 数据库管理-第150期 Oracle Vector DB & AI-02&#xff08;20240212&#xff09;1 LLM2 LLM面临的挑战3 RAG4 向量数据库LLM总结 数据库管理-第150期 Oracle Vector DB & AI-02&#xff08;20240212&#xff09; 作者&#xff1a;胖头鱼的鱼…

2.8:Maefile、计算单词个数、判断文件类型、单词逆置

1.有main.c&#xff0c;test.c&#xff0c;test1.c&#xff0c;创建Makefile 程序代码&#xff1a; Makefile: 1 CCgcc2 EXEhello3 OBJS$(patsubst %.c,%.o,$(wildcard *.c))4 CFLAGS-c -o5 all:$(EXE)6 7 #hello依赖test.o main.o8 $(EXE):$(OBJS)9 $(CC) $^ -o $10 …

腾讯云4核8G服务器多少钱?646元一年零3个月

腾讯云服务器4核8G配置优惠价格表&#xff0c;轻量应用服务器和CVM云服务器均有活动&#xff0c;云服务器CVM标准型S5实例4核8G配置价格15个月1437.3元&#xff0c;5年6490.44元&#xff0c;轻量应用服务器4核8G12M带宽一年446元、529元15个月&#xff0c;腾讯云百科txybk.com分…

算法学习——LeetCode力扣二叉树篇8

算法学习——LeetCode力扣二叉树篇8 669. 修剪二叉搜索树 669. 修剪二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; 描述 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[low, high…

恒创科技:香港 BGP 服务器网络连通性如何测试?

随着互联网的快速发展&#xff0c;网络连通性测试变得越来越重要。网络连通性测试的目的是确定网络设备之间的连接是否正常&#xff0c;以及数据包是否能够在网络中顺利传输。本文将介绍一种简单易行的香港 BGP 服务器网络连通性的测试方法&#xff0c;利用tracer测试工具。这里…

springboot184基于springboot的校园网上店铺的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

day39 Bootstrap——容器简括

前言 前言Bootstrap5 容器容器内边距容器的边框和颜色响应式容器 前言 Bootstrap&#xff0c;来自 Twitter&#xff0c;是目前最受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的&#xff0c;它简洁灵活&#xff0c;使得 Web 开发更加快捷。 Bootstrap5 容器 B…

wayland(xdg_wm_base) + egl + opengles 纹理贴图进阶实例(四)

文章目录 前言一、使用gstreamer 获取 pattern 图片二、代码实例1. pattern 图片作为纹理数据源的代码实例1.1 基于opengles2.0 接口的 egl_wayland_texture2_1.c1.2 基于opengles3.0 接口的 egl_wayland_texture3_1.c2. xdg-shell-client-protocol.h 和 xdg-shell-protocol.c3…

【力扣】5.最长回文子串

这道题我主要是通过动态规划来进行解题&#xff0c;看了我好久&#xff08;解析&#xff09;&#xff0c;生疏了呀。 首先就是判断一个字符串是不是回文&#xff0c;我们可以设置两个指针&#xff0c;从前往后进行判断即可&#xff0c;运用暴力解题法&#xff0c;这里运用的动…

Gitee的使用教程(简单详细)

1.安装git&#xff08;我的电脑自带git&#xff0c;我没弄这步QAQ&#xff09; Git (git-scm.com)https://git-scm.com/ 安装好后在桌面点击鼠标右键会出现git GUI 和 git Bash&#xff08;没有的话点击显示更多选项&#xff09; 2.去gitee上注册一个账号 工作台 - Gitee.co…

Spring Boot 笔记 008 创建接口_获取用户信息

1.1.1 编写userinfo接口 1.1.2 User实体类中增加转json忽略password注释 package com.geji.pojo;import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data;import java.time.LocalDateTime;//lombok 在…

C#查找字符串中的所有数字: 面向对象的自定义方法 vs 使用char.IsDigit()方法

目录 一、涉及到的方法 1.面向对象的自定义方法 2.面向对象编程技术定义 3.使用char.IsDigit()方法 二、实例 1.源码 2.生成效果 一、涉及到的方法 1.面向对象的自定义方法 查找字符串中的所有数字时&#xff0c;首先将所有数字存储到一个字符串数组中&#xff0c;然后…

【DDD】学习笔记-事件风暴与领域分析建模

在确定了全景事件流之后&#xff0c;可以在战略设计层面继续精进&#xff0c;鉴别出领域与限界上下文的边界&#xff0c;进入战术设计阶段的领域分析建模。 事件风暴的分析模型要素 通过事件风暴进行领域分析建模&#xff0c;其核心的模型要素就是“事件”。除此之外&#xf…

Windows 虚拟桌面信息(一)分析注册表

目录 前言 一、理论分析 二、代码实现 总结 本文为原创文章&#xff0c;转载请注明出处&#xff1a; https://blog.csdn.net/qq_59075481/article/details/136110636 前言 Win 10/11 的虚拟桌面微软暂时没有开放接口&#xff0c;有很多信息对开发者是闭塞的&#xff0c;…

react【六】 React-Router

文章目录 1、Router1.1 路由1.2 认识React-Router1.3 Link和NavLink1.4 Navigate1.5 Not Found页面配置1.6 路由的嵌套1.7 手动路由的跳转1.7.1 在函数式组件中使用hook1.7.2 在类组件中封装高阶组件 1.8 动态路由传递参数1.9 路由的配置文件以及懒加载 1、Router 1.1 路由 1.…