【论文阅读】High-Resolution Image Synthesis with Latent Diffusion Model

High-Resolution Image Synthesis with Latent Diffusion Model

引用: Rombach R, Blattmann A, Lorenz D, et al. High-resolution image synthesis with latent diffusion models[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2022: 10684-10695.

论文链接: http://openaccess.thecvf.com/content/CVPR2022/html/Rombach_High-Resolution_Image_Synthesis_With_Latent_Diffusion_Models_CVPR_2022_paper.html
代码链接: https://github.com/CompVis/latent-diffusion

论文概述

通过将图像形成过程分解为去噪自编码器的顺序应用,扩散模型(DMs)在图像数据上实现了最先进的合成结果,并且它们的公式允许在不重新训练的情况下引入引导机制来控制图像生成过程。然而,由于这些模型通常直接在像素空间中操作,优化强大的DMs通常需要数百个GPU天,并且由于顺序评估,推理成本很高。为了在有限的计算资源下进行DM训练,同时保留它们的质量和灵活性,作者将它们应用于强大预训练自编码器的潜在空间。与之前的工作不同,在这样的表示上训练扩散模型首次实现了复杂度降低和细节保留之间的近乎最优平衡,极大地提高了视觉保真度。与纯粹基于transformer的方法相比,可以更优雅地扩展到更高维的数据。与基于像素的扩散方法相比,还显著降低了推理系数。此外,设计了一种基于交叉注意力的通用条件反射机制,实现了多模态训练。通过在模型架构中引入交叉注意力层,将扩散模型转变为强大且灵活的生成器,适用于文本或边界框等一般条件输入,并且高分辨率合成以卷积方式成为可能。提出的潜在扩散模型(LDMs)在图像修复和类条件图像合成方面取得了新的最先进分数,并在各种任务上表现出极具竞争力的性能,包括文本到图像合成、无条件图像生成和超分辨率,同时与基于像素的DMs相比显著降低了计算需求。

Method

为了降低训练扩散模型对高分辨率图像合成的计算要求,尽管扩散模型允许通过对相应的损失项进行欠采样来忽略感知上不相关的细节[1],但它们仍然需要在像素空间中进行昂贵的函数评估,这导致了对计算时间和能源的巨大需求。因此,通过引入压缩学习阶段与生成学习阶段的明确分离来规避这一缺点(见图2)。为了实现这一点,使用了一个自动编码模型,该模型学习了一个在感知上等同于图像空间的空间,但大大降低了计算复杂性。这种方法有几个优点:

  1. 通过离开高维图像空间,我们获得了计算效率更高的DM,因为采样是在低维空间上执行的。
  2. 利用了DMs的归纳偏差,这些偏差继承自其UNet架构,这使得它们对具有空间结构的数据特别有效,因此减轻了以前方法所要求的激进的、降低质量的压缩水平的需求。
  3. 最后获得了通用压缩模型,其潜在空间可用于训练多个生成模型,也可用于其他下游应用,如单图像CLIP引导的合成。
  • Perceptual Image Compression使用感知压缩模型基于以前的工作[2],由一个通过感知损失[3]和基于补丁的[4]对抗目标组合训练的自动编码器组成。这确保了通过强制执行局部真实感来将重建限制在图像流形中,并避免了仅依靠像素空间损失(如 L2 或 L1 物镜)而引入的模糊。为了避免任意高方差的潜在空间,尝试了两种不同类型的正则化。第一种变体KL-reg.对学习的潜在个体施加了对标准正态的轻微KL惩罚,类似于VAE,而VQ-reg 在解码器中使用矢量量化层。该模型可以解释为VQGAN,但量化层被解码器吸收。因为随后的 DM 被设计为学习到的潜在空间 z = E(x) 的二维结构,所以可以使用相对温和的压缩率并实现非常好的重建。这与以前的工作形成鲜明对比,后者依赖于学习空间z的任意一维排序来自动回归地模拟其分布,从而忽略了z的大部分固有结构。因此,该压缩模型可以更好地保留 x 的细节。

  • Latent Diffusion Models扩散模型是一种概率模型,旨在通过逐渐去噪正态分布变量来学习数据分布p(x),这对应于学习长度为T的固定马尔可夫链的反向过程。潜在表示的生成建模通过我们训练好的由 E 和 D 组成的感知压缩模型,因此可以访问一个高效的低维潜在空间,其中高频、难以察觉的细节被抽象出来。与高维像素空间相比,这个空间更适合基于似然的生成模型,因为它们现在可以 (i) 专注于数据的重要语义位,以及 (ii) 在较低维度、计算效率更高的空间中进行训练。与之前在高度压缩、离散的潜在空间中依赖自回归、基于注意力的转换器模型的工作不同,该工作使用的模型可以提供的特定于图像的感应偏差。这包括主要从2D卷积层构建底层UNet的能力,并使用重新加权的边界将目标进一步集中在感知上最相关的bits上
    在这里插入图片描述
    在这里插入图片描述

  • Conditioning Mechanisms:与其他类型的生成模型类似,扩散模型原则上能够模拟p(z|y)形式的条件分布。这可以通过条件去噪自动编码器来实现,并为通过输入y(如文本、语义图或其他图像到图像翻译任务)控制合成过程铺平了道路。该工作通过交叉注意力机制增强其底层UNet骨干,将DM转变为更灵活的条件图像生成器,这对于学习各种输入模式的基于注意力的模型是有效的。为了预处理来自各种模态(例如语言提示)的 y,引入了一个特定于域的编码器,它将 y 投射到中间表示,然后通过交叉注意力层实现,具体如图3所示。

实验

在这里插入图片描述
在这里插入图片描述

参考文献

[1] Jonathan Ho, Ajay Jain, and Pieter Abbeel. Denoising diffusion probabilistic models. In NeurIPS, 2020. 1, 2, 3, 4, 6, 14.

[2] Patrick Esser, Robin Rombach, and Bjorn Ommer. Taming transformers for high-resolution image synthesis. CoRR, abs/2012.09841, 2020. 2, 3, 4, 6, 7, 18, 19, 27, 32, 34

[3] Shengyu Zhao, Jianwei Cui, Yilun Sheng, Yue Dong, Xiao Liang, Eric I-Chao Chang, and Yan Xu. Large scale image completion via co-modulated generative adversarial networks. ArXiv, abs/2103.10428, 2021. 8

[4] Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, and Alexei A. Efros. Image-to-image translation with conditional adversarial networks. In CVPR, ages 5967–5976. IEEE Computer Society, 2017. 3, 4

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

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

相关文章

SkyWalking链路追踪上下文TraceContext的追踪身份traceId生成的实现原理剖析

结论先行 SkyWalking 通过字节码增强技术实现,结合依赖注入和控制反转思想,以SkyWalking方式将追踪身份traceId编织到链路追踪上下文TraceContext中。 是不是很有趣,很有意思!!! 实现原理剖析 TraceConte…

1.1_2 性能指标——速率、带宽、吞吐量

文章目录 1.1_2 性能指标——速率、带宽、吞吐量(一)速率(二)带宽(三)吞吐量 1.1_2 性能指标——速率、带宽、吞吐量 (一)速率 速率即数据率或称数据传输率或比特率。 速率就是“快…

Redis的设计与实现

Redis的设计与实现 数据结构和内部编码 type命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符串)hash(哈希)、list(列表)、set(集合)、zset (有序集合),但这些只是Redis对外的数据结构。 实际上每种数据结构都有自己底层的…

Docker Protainer可视化平台,忘记登录密码,重置密码。

由于好久没有登录portainer系统,导致忘记了登录密码,试了好多常用的密码都不对,无奈只能重置密码。 一、停止protainer 容器 查看容器ID和COMMAND 用于停止容器 docker ps -a停止容器 docker stop portainer二、查找volume data 宿主机所在…

JavaEE之多线程

一.认识线程 1.多进程实现并发编程的不足之处: 引入多个进程的核心:实现并发编程(c的CGI技术就是通过多进程的方式实现的网站后端开发)。因为现在是一个多核cpu的时代,并发编程就是刚需。多进程实现并发编程&#xf…

达梦、金仓、南大、瀚高、优炫:从社区建设看企业技术自信心

正文约950字,预计阅读时间2分钟 国产技术厂商在面对自身产品问题时,往往保持回避态度,不愿公之于众,主要原因有2方面: 1,产品技术层面问题较多,如某些根本性缺陷难以攻克,或问题发…

java找工作之Mybatis(入门及xml配置相关)

Mybatis 学习Mybatis就要学会查看官网&#xff0c;官网地址如下&#xff1a;<MyBatis中文网 > 1、简介 1.1什么是Mybatis MyBatis 是一款优秀的持久层框架&#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取…

【Vue3】3-6 : 仿ElementPlus框架的el-button按钮组件实

文章目录 前言 本节内容实现需求完整代码如下&#xff1a; 前言 上节,我们学习了 slot插槽&#xff0c;组件内容的分发处理 本节内容 本小节利用前面学习的组件通信知识&#xff0c;来完成一个仿Element Plus框架的el-button按钮组件实现。 仿造的地址&#xff1a;uhttps://…

预充电阻器选型报告

1. 客户基础条件 预充时间 t≤200ms &#xff0c;电容 C1280uf &#xff0c;电池包最高电压 U410V&#xff0c;预充深度 98% &#xff0c;30 秒内连续预充 15 次。 1.1 现选型号 现选EAK预充电阻额定功率 60W&#xff0c;标称阻值为 35Ω&#xff0c;在 此条件下单次预充…

Unity 协程(Coroutine)到底是什么?

参考链接&#xff1a;Unity 协程(Coroutine)原理与用法详解_unity coroutine-CSDN博客 为啥在Unity中一般不考虑多线程 因为在Unity中&#xff0c;只能在主线程中获取物体的组件、方法、对象&#xff0c;如果脱离这些&#xff0c;Unity的很多功能无法实现&#xff0c;那么多线程…

红黑树的简单介绍

红黑树 红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路径会比其他路径长出俩倍&#x…

Python类 __init__() 是一个特殊的方法

设计者&#xff1a;ISDF工软未来 版本&#xff1a;v1.0 日期&#xff1a;2024/3/5__init__() 是一个特殊的方法 类似c# C的构造函数 两头都包含两个下划线&#xff0c;这是约定&#xff0c;用于与普通的函数保持区分class User:用户类def __init__(self,first_name,last_name):…

Linux 运维:CentOS/RHEL防火墙和selinux设置

Linux 运维&#xff1a;CentOS/RHEL防火墙和selinux设置 一、防火墙常用管理命令1.1 CentOS/RHEL 7系统1.2 CentOS/RHEL 6系统 二、临时/永久关闭SELinux2.1 临时更改SELinux的执行模式2.2 永久更改SELinux的执行模式 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;…

Finetuning Large Language Models: Sharon Zhou

Finetuning Large Language Models 课程地址&#xff1a;https://www.deeplearning.ai/short-courses/finetuning-large-language-models/ 本文是学习笔记。 Goal&#xff1a; Learn the fundamentals of finetuning a large language model (LLM). Understand how finetu…

STM32(16)使用串口向电脑发送数据

发送字节 发送数组 发送字符和字符串 字符&#xff1a; 字符串&#xff1a; 字符串在电脑中以字符数组的形式存储

ElasticSearch之分布式模型介绍,选主,脑裂

写在前面 本文看下es分布式模型相关内容。 1&#xff1a;分布式模型 1.1&#xff1a;分布式特征 支持水平扩展&#xff0c;可以存储PB级别数据&#xff0c;每个就能都有自己唯一的名称,默认名称时elasticsearch&#xff0c;可以通过配置文件&#xff0c;如cluster.name: my…

PowerBI怎么修改数据库密码

第一步&#xff1a;点击转换数据 第二步&#xff1a;点击数据源设置 第三步&#xff1a;点击编辑权限 第四步&#xff1a;点击编辑 第五步&#xff1a;输入正要修改的密码就可以了

STM32启动过程及反汇编

STM32从Flash启动的过程&#xff0c;主要是从上电复位到main函数的过程&#xff0c;主要有以下步骤&#xff1a; 1.初始化堆栈指针 SP_initial_sp&#xff0c;初始化 PC 指针Reset_Handler 2.初始化中断向量表 3.配置系统时钟 4.调用 C 库函数_main 初始化用户堆栈&#xf…

SAP HANA中PAL算法使用入门

1 应用场合 SAP HANA作为一款内存数据库产品, 使得数据常驻内存, 物理磁盘的存储作为数据备份与日志记录, 以防断电内存中数据丢失. 这种构架大大的缩短了数据存取的时间, 使得SAP HANA很”高速”. 在传统数据模型中,数据库只是作为存取数据一个工具,对于类似下图所示的应用, 客…

星瑞格数据库管理系统

一. 产品介绍 随着信息化的到来&#xff0c;数据安全成为保障信息化建设的一个关键问题&#xff1b;数据库作为信息化系统的基础软件其自身安全以及对数据的保障是至关重要。现阶段国内重要部门的信息系统存放着大量敏感数据&#xff0c;为了保障其数据的安全性&#xff0c;使用…