【经典论文阅读】Latent Diffusion Models(LDM)
Latent Diffusion Models
High-Resolution Image Synthesis with Latent Diffusion Models
摘要
动机:在有限的计算资源下进行扩散模型训练,同时保持质量和灵活性
引入跨注意力层,以卷积方式实现对一般条件输入(如文本或边界框)的响应以及高分辨率合成
1:引言
贡献
1:与纯粹基于 Transformer 的方法相比,在高维数据上的扩展更优雅
1.1 ==> 在压缩级别上工作,提供比之前工作更真实、更细致的重建
1.2 ==> 高效地应用于高分辨率的百万像素图像合成
2:与基于像素的扩散方法相比,在多种任务上(无条件图像生成、修复、随机超分辨率)取得了具有竞争力的性能,显著降低了计算成本和推理成本
3:与之前需要同时学习编码器/解码器架构和基于分数的先验的工作相比,无需对重建能力和生成能力进行复杂的权衡,确保了极高的重建忠实度,对潜在空间的正则化需求极低
4:对于密集条件约束任务(超分辨率、修复、语义合成),可以以卷积方式应用,并生成一致的超大图像
5:设计了基于跨注意力的通用条件机制,支持多模态训练
6:发布了预训练的潜在扩散模型和自编码模型
2:相关工作
1:generative models for image synthesis
2:diffusion probabilistic models(DM)
3:two-stage image synthesis
ARM:自回归模型
3:方法
autoencoding model(自编码模型) ==> learn a space that is perceptually equivalent to the image space
自编码模型的优点:
-
低维空间采样
-
利用从UNet继承的inductive bias,使得在处理具有空间结构的数据时**有效,无需激进的压缩
-
通用压缩模型,其潜在空间可以用于训练多种生成模型
3.1:Perceptual Image Compression
autoencoder(自编码器)==> 通过 感知损失 + patch-based对抗目标 训练
-
给定RGB空间的图像 x,编码器 e 把 x 编码到潜在表示 z,z = e(x)
-
解码器 D 从潜在表示中重建图像 x^~,x^~ = D(z) = D(e(x))
x的维度:
z的维度:
-
编码器下采样因子 f = H/h = W/w,讨论不同的下采样因子(2的指数倍)
避免潜在空间具有任意的高方差,采用了2种不同的正则化:
-
KL正则化:对学习到的潜在表示施加轻微的 KL 惩罚,使其趋向于标准正态分布(类似VAE)
-
VQ正则化:在解码器中使用向量量化层
3.2:Latent Diffusion Models
Diffusion Models
扩散模型:通过逐步对正态分布变量去噪,学习数据分布 p(x),对应学习固定长度为 T 的马尔可夫链的反向过程
图像合成模型,依赖于变分下界的重新加权变体
目标函数:
Generative Modeling of Latent Representations
通过训练的感知压缩模型(由 e 和 D 组成),可以访问一个高效的、低维的潜在空间
与高维像素空间相比,这个潜在空间更适合基于似然的生成模型,因为:
-
专注于数据中重要的语义信息
-
在一个更低维、计算上更高效的空间中进行训练
利用模型提供的与图像相关的归纳偏置:包括构建主要基于 2D 卷积层的 U-Net 的能力,并进一步将目标集中在感知上最相关的信息位上,使用重新加权的目标函数
目标函数修改为:
神经网络的主干:time-conditional UNet
zt 可以在训练期间通过 e 高效地获取
从 p(z) 的采样,可以通过 D 的一次前向传递,解码到图像空间
3.3:Conditioning Mechanisms
底层 U-Net 主干中加入跨注意力机制
为处理来自各种模态的 y,引入了一个特定领域的编码器 Tθ, 把 y 映射到一个中间表示 Tθ(y),维度为
跨注意力层的实现:
对于参数的解释:
framework
通过拼接(concatenation)或更通用的跨注意力机制(cross-attention mechanism)对潜在扩散模型 (LDMs) 进行条件化
基于图像条件对,目标函数修改为:
4:实验
4.1:感知压缩的权衡分析
实验内容:比较不同下采样因子 f(如 1, 2, 4, 8, 16, 32)对 LDM 模型性能的影响。下采样因子越大,压缩越强。
结果与分析:
-
小的下采样因子(如 f=1,2)导致训练进展缓慢,因为未能充分利用低维潜在空间的优势。
-
过大的下采样因子(如 f=32)会导致信息损失,限制最终生成质量。
-
最优权衡出现在 f=4 到 f=8 之间,既保证了高效的训练和推理,又提供了感知上忠实的生成结果。
结论:中等强度的压缩(如 f=4 和 f=8)在效率和质量之间提供了最佳平衡。
4.2:无条件图像生成
实验内容:在多个数据集(CelebA-HQ, FFHQ, LSUN-Churches, LSUN-Bedrooms)上评估 LDM 的无条件生成能力,并通过 FID、Precision 和 Recall 指标与其他方法(如 GAN, DDPM)进行比较。
结果与分析:
-
LDM 在大多数数据集上的 FID 指标优于现有扩散模型(例如 ADM)和 GAN 方法,尤其在 CelebA-HQ 数据集上达到 SOTA 性能。
-
与现有基于像素空间的扩散方法相比,LDM 显著降低了推理和训练的计算成本。
结论:LDM 在无条件图像生成任务中表现出色,能够在更低的计算资源下实现更好的质量。
4.3:条件图像生成
实验内容:
-
通过引入交叉注意力机制(cross-attention),LDM 被扩展到条件生成任务(例如文本到图像生成)。
-
使用 MS-COCO 数据集评估文本生成性能,并在语义地图条件下进行语义合成。
结果与分析:
-
在文本到图像生成上,LDM 超越了 DALL-E 和 CogView 等方法,FID 指标显著降低。
-
在语义合成任务中,LDM 能够在低分辨率训练的基础上生成更高分辨率的图像(如 512×1024)。
结论:LDM 的交叉注意力机制极大地增强了条件生成的灵活性,尤其适用于文本到图像等复杂条件。
4.4:超分辨率任务
实验内容:在 ImageNet 数据集上进行 64×64→256×256 超分辨率任务,与 SR3 模型进行比较。
结果与分析:
-
LDM 在 FID 指标上优于 SR3,但 IS 指标稍逊。
-
用户研究表明,在感知一致性上,LDM 生成的高分辨率图像更受欢迎。
结论:LDM 能有效进行超分辨率生成,且具有更高的生成质量。
4.5:图像修复
实验内容:在 Places 数据集上进行图像修复,与 LaMa 等方法比较,评估填补遮挡区域的效果。
结果与分析:
-
LDM 修复质量(FID)优于大多数现有方法,并通过用户研究证明更受人类偏好。
-
高分辨率的修复任务(如 512×512)得益于潜在空间的特性。
结论:LDM 提供了一种通用的条件生成方法,在高质量修复任务中表现突出。
总结
性能提升:LDM 在多个任务上展现出较传统扩散模型显著的性能提升,尤其是在计算效率和感知质量之间实现了良好平衡。
通用性与灵活性:LDM 的架构设计(如交叉注意力机制)使其适应多种条件生成任务,例如文本、语义地图到图像生成。
计算优势:相较于像素空间的扩散模型,LDM 大幅减少了训练时间和推理计算需求,降低了硬件门槛。
相关文章:
【经典论文阅读】Latent Diffusion Models(LDM)
Latent Diffusion Models High-Resolution Image Synthesis with Latent Diffusion Models 摘要 动机:在有限的计算资源下进行扩散模型训练,同时保持质量和灵活性 引入跨注意力层,以卷积方式实现对一般条件输入(如文本或边界框…...
智能指针中的weak_ptr(弱引用智能指针)
弱引用智能指针 std::weak_ptr 可以看做是shared_ptr的助手,它不管理 shared_ptr 内部的指针。std::weak_ptr 没有重载操作符*和->,因为它不共享指针, 不能操作资源,所以它的构造不会增加引用计数,析构也不会减少引用计数,它的…...
【电子通识】机电继电器和固态继电器的区别
机电继电器 机电继电器于19世纪中叶发明。这些器件将线圈与可移动的金属触点结合使用来充当电动开关。这些器件会因为金属触点出现磨损而发生故障,例如焊死在一起。因此,在完全失效之前器件能够进行的开关周期数有限,从而限制了其总体可靠性。 一般情况下继电器控制…...
工业异常检测-CVPR2024-新的3D异常数据合成办法和自监督网络IMRNet
论文:https://arxiv.org/pdf/2311.14897v3.pdf 项目:https://github.com/chopper-233/anomaly-shapenet 这篇论文主要关注的是3D异常检测和定位,这是一个在工业质量检查中至关重要的任务。作者们提出了一种新的方法来合成3D异常数据&#x…...
如何创建对话窗口
文章目录 1. 概念介绍2. 使用方法3. 示例代码我们在上一章回中介绍了Dismissible Widget相关的内容,本章回中将介绍AlertDialog Widget.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们介绍的AlertDialog是指程序中弹出的确认窗口,其实我们在上一章回中删除ListView中…...
新手上路,学Go还是Python
对于新手来说,Go和Python都是很好的编程语言,它们各有特点,以下是详细的对比来帮助你决定先学哪一个: 一、语法和学习难度 Python 语法简洁易懂:Python以其简洁、优雅的语法而闻名,代码的可读性很高。例如…...
<!DOCTYPE html>的作用是什么
一、背景 从今天开始会不定时的发布一些前端的常见面试题,供大家参考。今天要发布的内容是关于html的面试题的作用是什么。接下来就一起讨论以下吧 二、概念 DOCTYPE 是html5中一种标准通用标记语言的文档类型的声明,它的目的就是为了告诉浏览器应该以…...
EasyExcel改名为FastExce做了那些改变呢
回到:github原作者地址:https://github.com/CodePhiliaX/fastexcel 中文 |English | 什么是 FastExcel FastExcel 是由原 EasyExcel 作者创建的新项目。2023 年我已从阿里离职,近期阿里宣布停止更新 EasyExcel,作者他本人决定继…...
狗狗的生育周期:关注与呵护
狗狗的繁殖是一个复杂且需要谨慎对待的过程,了解其生产周期对于宠物主人以及从事相关行业的人员至关重要。 一般而言,狗狗的怀孕周期约为两个月左右,但这并非绝对固定。从受孕到分娩,通常在 58 至 65 天之间波动。小型犬可能相对…...
ABAP DIALOG屏幕编程2
在上一篇博客ABAP DIALOG屏幕编程1中阐述了DIALOG、PBO、PAI的概念并且对常用页面元素怎么用进行了演示。在这一篇博文中会讲述怎么添加下拉框、搜索帮助,怎么创建表控件、屏幕跳转等。会用到上一篇里面的内容。 有关程序包含文件结构如下。 一、响应用户指令 如上…...
获取缓存大小与清除 Web 缓存 - 鸿蒙 HarmonyOS Next
针对浏览器 Web 组件清除缓存相关,具体实现如下 code 实例所示: /*公共方法类*/ export class PublicUtils {/*获取缓存大小*/static async getCacheSize(): Promise<number> {try {let bundleStats await storageStatistics.getCurrentBundleStats()let size bundleS…...
在Unreal Engine中,UHT与反射机制
UHT(Unreal Header Tool) 是虚幻引擎(Unreal Engine)中的一个重要工具,它用于处理和生成引擎所需的元数据,使得虚幻引擎能够执行许多复杂的功能,如反射、序列化、蓝图交互、垃圾回收等。简而言之…...
SQL项目实战与综合应用——项目设计与需求分析
项目设计与需求分析是软件开发过程中的核心环节,尤其在涉及数据库的应用时,良好的设计将直接影响到项目的可扩展性、性能和维护性。本文将深入探讨数据库设计的最佳实践,结合 C 与 SQL 的实际应用场景,涵盖项目需求收集、数据库设…...
分布式中的CAP定理和BASE理论与强弱一致性
分布式中的CAP定理和BASE理论与强弱一致性 CAP定理 CAP定理,也称为布鲁尔定理(Brewer’s Theorem),是由加州大学伯克利分校的Eric Brewer教授在2000年提出的,并由麻省理工学院的Seth Gilbert和Nancy Lynch于2002年正…...
C/C++常见符号与运算符
C/C常见符号与运算符对照表 符号用法与意义与Java类比:在条件运算符中 (cond ? x : y) 表示条件为假的分支;在 switch-case 中如 case 1:表示标签结束点;在自定义标签如 label: 中用于 goto 跳转Java中? :三元运算相同;switch-case中也有:…...
了解 k8s 网络基础知识
了解 Docker 网络模式 在使用 Docker run 创建 Docker 容器时,可以使用 --net 选项指定容器的网络模式,Docker 可以有4种网络模式。 host 模式。–nethost 指定和宿主机共用一个 NetWork Namespace,容器中的网络环境(ip 地址、路…...
用户信息界面按钮禁用+发送消息功能
用户信息界面按钮禁用发送消息功能 前言 那么在上一集我们就完成了个人信息窗口所有的内容的修改,那么我们就需要进一步来看我们别的用户的信息界面的窗口。 需求分析 在之前的我们也讲了用户信息界面窗口一共有下图几种组件。 用户头像、用户id、用户昵称、用户…...
接近开关传感器-PCB线图电感式传感器【衰减系数1】
设计和工作原理 衰减系数为1的传感器是在电感式接近开关的基础上装备了特殊的振荡器。传感器内部有两个耦合空心线圈,能够保证根据不同的金属特性作合适的检测调整。无需考虑目标物是不同的金属,因为传感器能在同一感应距离下检测所有金属。 衰减系数为…...
C/C++流星雨
系列文章 序号直达链接1C/C爱心代码2C/C跳动的爱心3C/C李峋同款跳动的爱心代码4C/C满屏飘字表白代码5C/C大雪纷飞代码6C/C烟花代码7C/C黑客帝国同款字母雨8C/C樱花树代码9C/C奥特曼代码10C/C精美圣诞树11C/C俄罗斯方块12C/C贪吃蛇13C/C孤单又灿烂的神-鬼怪14C/C闪烁的爱心15C/C…...
计算机网络:传输层、应用层、网络安全、视频/音频/无线网络、下一代因特网
目录 (五)传输层 1.传输层寻址与端口 2.无连接服务与面向连接服务 3. 传输连接的建立与释放 4. UDP 的优点 5. UDP 和 TCP 报文段报头格式 6. TCP 的流量控制 7.TCP 的拥塞控制 8. TCP 传送连接的管理 &#…...
[漏洞挖掘与防护] 05.CVE-2018-12613:phpMyAdmin 4.8.1后台文件包含缺陷复现及防御措施
这是作者新开的一个专栏——“漏洞挖掘与防护”,前期会复现各种经典和最新漏洞,并总结防护技巧;后期尝试从零学习漏洞挖掘技术,包括Web漏洞和二进制及IOT相关漏洞,以及Fuzzing技术。新的征程,新的开启,漫漫长征路,偏向虎山行。享受过程,感谢您的陪伴,一起加油~ 欢迎关…...
GroundingDINO微调训练_训练日志解释
文章目录 1. 训练日志1. Epoch 和 Iteration2. Learning Rate(学习率)3. ETA(预计剩余时间)4. Time 和 Data Time5. Memory6. Gradient Norm(梯度范数)7. Loss(损失)8. Individual L…...
【0362】Postgres内核 XLogReaderState readBuf 有完整 XLOG page header 信息 ? ( 7 )
上一篇: 【0361】Postgres内核 page_read 读取所请求数据长度(至少 short page header)( 6 ) 文章目录 1. 检查 page_read 返回值 readLen2. 根据 readBuf 计算 XLogPageHeader 大小2.1 验证 XLOG Page header2.2 更新 XLogReaderState 读取状态信息1. 检查 page_read 返回…...
H5接入Steam 获取用户数据案例 使用 OpenID 登录绑定公司APP账户 steam公开用户信息获取 steam webapi文档使用
官方文档地址 1.注册 Steam API Key: 你需要一个 Steam Web API Key,可以在 Steam API Key 页面 获取。https://steamcommunity.com/dev/apikey 这里开发做demo用自己steam账户的就好,后续上线要用公司的账户 2.使用 OpenID 登录ÿ…...
pytorch多GPU训练教程
pytorch多GPU训练教程 文章目录 pytorch多GPU训练教程1. Torch 的两种并行化模型封装1.1 DataParallel1.2 DistributedDataParallel 2. 多GPU训练的三种架构组织方式2.2 数据不拆分,模型拆分(Model Parallelism)2.3 数据拆分,模型…...
力扣--LCR 178.训练计划VI
题目 教学过程中,教练示范一次,学员跟做三次。该过程被混乱剪辑后,记录于数组 actions,其中 actions[i] 表示做出该动作的人员编号。请返回教练的编号。 示例 1: 输入:actions [5, 7, 5, 5] 输出&#…...
Linux 网络接口配置
在 Linux 中,网络接口配置文件用于控制系统中的软件网络接口,并通过接口实现对网络设备的控制。当系统启动时,系统通过这些接口配置文件决定启动哪些接口,以及如此对这些接口进行配置. 在 Linux 中,网络接口配置文件用于控制系统中的软件网络接口,并通过这些接口实现对网络…...
【从零开始入门unity游戏开发之——C#篇01】理论开篇
文章目录 前言前置条件什么是编程?什么是代码?什么是编程语言?常见的编程语言什么是C#?学习Unity为什么要先学习C#?选择适合自己的IDE集成开发环境VSCode安装和环境配置VSCode调试模式专栏推荐完结 前言 这个系列我想…...
ABAP开发-批量导入BAPI和BDC_1
系列文章目录 文章目录 系列文章目录[TOC](文章目录) 前言一、概念二、BDC和BAPI数据导入1、BDC数据导入(录屏)2、BAPI数据导入 三、实例1、BAPI2、BDC 总结 前言 一、概念 SAP中,对一个事务码反复操作并且达到批量处理数据的效果࿰…...
RabbitMQ七种工作模式之 RPC通信模式, 发布确认模式
文章目录 六. RPC(RPC通信模式)客户端服务端 七. Publisher Confirms(发布确认模式)1. Publishing Messages Individually(单独确认)2. Publishing Messages in Batches(批量确认)3. Handling Publisher Confirms Asynchronously(异步确认) 六. RPC(RPC通信模式) 客⼾端发送消息…...
中交路桥建设网站/腾讯朋友圈广告怎么投放
分支预测 在stackoverflow上有一个非常有名的问题: 为什么处理有序数组要比非有序数组快,可见分支预测对代码运行效率有非常大的影响。 现代CPU都支持分支预测(branch prediction)和指令流水线(instruction pipeline),这两个结合可以极大提高…...
网站建设成本计划书/知识付费网站搭建
第一部分 简 介 一. 硬盘结构简介 1. 硬盘参数释疑 到目前为止,人们常说的硬盘参数还是古老的 CHS (Cylinder/Head/Sector)参数。那么为什么要使用这些参数,它们的意义是什么?它们的取值范围是什么? 很久以前(long long ago .…...
用明星做AV视频的网站/宁德市古田县
WPS Office 2016版本说明WPS Office2016产品包括专业版、专业增强版两个版本系列,并集成第三方合作伙伴授权产品推出组合套装产品。WPS Office 2016专业版WPS Office2016专业版包括 WPS 文字(WPS)、WPS 表格(ET)、WPS 演示(WPP)三大模块及二次开发包,该产…...
用微信微博网站来做睡眠经济/哪个公司的网站制作
https://blog.csdn.net/xiaoshan0711/article/details/54571823 在小程序的开发过程中,我们会遇到一种情况,就是在制作五星点评的时候,默认五颗星星都是要亮的。这里我们就要分享一下自己做默认五星的心得。 在这里我们先看一下效果图&#x…...
安丘做网站的公司/信息流广告优化师
开源SOA厂商WSO2周一在OSGi基础上推出SOA的组件框架,目的在于使用户不必安装过多的软件根据自身需要进行部署组装。 他们将该框架称为Carbon框架,它将首先以升级公司企业服务总线、应用服务器、注册表以及业务流程管理产品为特点。WSO2表示开发者能够部署…...
舟山集团网站建设/旅游推广赚佣金哪个平台好
一、软件性能概述: 1.1 在软件质量模型中效率特性即为软件的性能,其包含两方面特性: 1.1.1 时间特性:指系统处理客户端请求的响应时间; 1.2.1 资源特性:指在性能测试过程中,系统资源的消耗情况…...