【经典论文阅读】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 传送连接的管理 &#…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...