【经典论文阅读】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 传送连接的管理 &#…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...