【图像生成1】Latent Diffusion Models 论文学习笔记

一、背景

本文主要记录一下使用 LDMs 之前,学习 LDMs 的过程。

二、论文解读

Paper:[2112.10752] High-Resolution Image Synthesis with Latent Diffusion Models 

1.  总体描述

        LDMs 将传统 DMs 在高维图像像素空间(Pixel Space)上的 diffusion 操作转移到低维潜空间(Latent Space)进行,大大降低了训练和推理所需计算资源,生成的图像细节更丰富,更真实,且能用于生成高分辨率(百万级像素)图像;同时引入的条件控制机制 Conditioning Mechanisms 使模型能够用于多种条件图像生成任务,如图像超分、图像修复、语义合成(文生图、图生图,布局生图)。

        后面这几位作者又提出了检索增强扩散模型(Retrieval Augmented Diffusion Models, RDMs)并将其用于 LDMs 的文生图任务中,大概作用就是进一步降低生成图像所需计算资源,提升生成图像的质量。

2. LDMs

2.1 主体框架

        通过框架图可知,在 LDMs 之前需要先训练一个 Autoencoder,包含一个编码器  和一个解码器 ,输入图像  经过编码器  得到其潜在空间的特征表示 ,解码器  再将  从潜在空间重构回像素空间得到生成后的 ,上述过程(对应框架图左部)可表示为:

Encode:

Decode:

其中降采样因子 ,且为 2 的幂次,即 

        正向扩散(加噪)过程和反向去噪(重构)过程均发生在潜在空间,重构过程中通过加入一个条件降噪自编码器  (UNet  cross attention,对应框架图中部)可以将输入条件  扩展到不同形态(对应框架图右部),比如文本、语义图、图像等,进而可以实现如文生图、布局生图、图生图等多种生成任务。

2.2 感知图像压缩(Perceptual Image Compression)

        现有 DMs 的生成过程可以视为一个压缩比(感知有效 bit 与图像维度之比)和失真率的平衡问题(如上图所示),压缩比越低(高),说明图像中感知有效的 bit 越少(多),因而生成的图像失真程度越大(小)。其学习过程大致可分为两个阶段:感知压缩阶段和语义压缩阶段。在感知压缩阶段,模型会舍弃图像中的高频信息而只学习一些语义变化,在语义压缩阶段,生成模型会学习数据的语义和概念信息(高维抽象的信息)。

        DMs 虽然可以忽略图像中一些在感知上无关紧要的信息,但模型的计算和优化过程仍然在像素空间中,这就导致如果合成一些高分辨率图像,空间维度就会非常高,在计算时间和计算资源上的花费会非常昂贵(heavy cost)。 

        于是作者提出了对图像的感知压缩,使用一个 Autoencoder,该 Autoencoder (论文中叫感知压缩模型)结合了感知损失和基于 patch 的对抗样本进行训练。在图像生成之前会先学习一个与图像空间感知等效(perceptually equivalent)的低维空间,即潜在空间,在这个空间中进行扩散过程和后续操作,有效降低模型计算复杂性,提高计算效率。

        为了避免潜在空间的高方差,导致重构图像与输入图像偏离过大,作者使用了两种正则化方法,KL-reg. 和 VQ-reg.。使用 KL-reg. 的感知压缩模型相当于一个 VAE,而使用了 VQ-reg. 的感知压缩模型与一个 VQGAN 的工作过程类似。

        代码中提供了使用 KL(AutoencoderKL 类)和 VQ(VQModel 类)正则配合不同降采样因子的 AE。

2.3 潜在扩散模型(Latent Diffusion Models)

        传统 DMs 在对服从正态分布的变量逐渐去噪的过程中学习其数据分布 ,可以看做是基于时序的降噪自编码器(an equally weighted sequence of denoising autoencoders) ,其中  是输入样本  的加噪版本,而 DMs 的任务就是学习如何从加噪版样本  中预测去噪版的 ,这个  是输入样本  的变体,二者不完全一样。对应目标函数可表示如下:

                             (公式1)

其中  均匀采样自序列  。

        LDMs 与DMs 相比,其训练过程在计算高效的低维空间中进行,且模型会聚焦于图像中的语义信息,丢弃高频和感知无效的细节。该模型的 backbone 本质上是一个时序条件 UNet(time-conditional UNet),训练时由编码器  生成潜在空间表示 ,解码器  将采样自  的样本解码回图像空间,得到重建后的 。目标函数表示如下:

                            (公式2)

可以看出 LDMs 就是将扩散过程由图像空间  转移到潜在空间 

2.4 条件机制(Conditioning Mechanisms) 

        上面主要介绍的是 LDMs 的无条件生成机制,本章节介绍了如何实现 LDMs 的多模态条件生成,如文生图、图生图、图像转换(image-to-image translation)等。

        扩散模型原则上能够对形如  的条件分布建模,借助一个条件降噪自编码器(conditional denoising autoencoder) 可以将生成过程中的控制条件扩展到多种形式,如文本、语义图(semantic maps)、图像等。

        在图像生成任务中,如果 DMs 的条件输入是除了类别标签(class-label)和模糊版图像(blurred variants of the input image,指图像超分)的其它形式,那 DMs 的生成能力还有待探索(随后本文就进行了探索)。

        通过在 UNet 中加入交叉注意力机制,使得 DMs 能够应对多种不同的条件输入模态(比如prompts)。为了处理条件输入 ,作者引入了一个域专用编码器(domain specific encoder),将  映射为一个中间表示(intermediate representation),之后通过交叉注意力层将其送入 UNet 的中间层(如框架图中展示的)。

 

 

其中  是 UNet(执行后)的一个中间表示, 和  为映射矩阵。

        借助图像-条件对,条件控制 LDM 的学习可表示如下:

                    (公式3)

与公式 2 相比多了一个条件 。 

3. 实验

        为了验证 LDMs 的效果,作者进行了大量实验,包括对下采样因子  的调节,无条件图形生成(基于 CelebA-HQ,FFHQ,LSUN-Churches 和 LSUN-Bedrooms 数据集,生成图像分辨率为256256) ,有条件图像生成(文生图、语义图生图、图像超分、图像修复等),基于多种评价指标分析生成图像的质量和效果。45 页的论文(加附录)有 90% 的篇幅属于实验分析,可谓相当有说服力了。

        实验部分就不做过多记录了,就简单整理一下实验类型和实验结论。(主要还是能力有限,很多分析看不大懂,只能通过图示来直观感受了 - -)

3.1 感知压缩的权衡(On Perceptual Compression Tradeoffs)

        作者使用了 6 种下采样因子()来分析其对图像生成的影响,当 时,LDMs 就是 DMs。

 越小({1-2})训练时间越长, 过大({32}) 导致信息损失过多,进而导致生成图像质量差, 时平衡效果最好。

        在两个数据集上比较了不同采样速度对 FID 分数的影响,当  时同样的采样速度下 FID 最低。所以综合分析来看, 时模型性能最好。

3.2 无条件图像生成(Image Generation with Latent Diffusion)

        作者在四个数据集上训练无条件 LDMs,基于 FID 和 PR 两个指标评价生成图像的质量。

在 CelebA-HQ 数据集上 LDM 的 FID 分数达到最优,在另外几个数据集上也表现优秀。

在各数据集上生成图像的效果:

3.3 条件 LDM(Conditional Latent Diffusion) 

3.3.1 引入Transformer 编码器的LDM

        作者使用了 BERT-Tokenizer,并将 (前面提到的域专用编码器)作为一个 transformer 来生成潜在特征,通过多头交叉注意力将潜在特征映射到 UNet。

(1)文生图

        作者在 LAION-400M 数据集上,以 prompts 为条件输入,训练了一个条件 LDM(使用 KL 正则优化),并在 MS-COCO 验证集上进行验证。

        LDM-KL-8-G(加入 classifier-free diffusion guidance) 的表现与当时的 SOTA 表现相当,但参数量明显更少。

生成效果展示

(2) 布局生图

        作者在 OpenImages 数据集(语义布局图,semantic layouts)上训练,在 COCO 数据集上微调。

生成结果展示:

(3)类别条件图像生成(ImageNet) 

结论也是:指标表现媲美 SOTA,参数量更少。 

3.3.2 卷积采样(Convolutional Sampling Beyond ) 

        以语义图(semantic maps)生成为例,作者在分辨率为  的图像上训练模型,但模型却可以生成分辨率更高的图像。

3.4 图像超分(Super-Resolution with Latent Diffusion) 

        作者使用的是在 OpenImages 数据集上预训练的 Autoencoder(使用 VQ 正则优化,),条件输入  为低分图像(对原图做 4 倍下采样),在 ImageNet 上训练 LDM。

LDM-SR 的 FID 分数超过 SR3,参数量最少。

超分效果展示

        然后作者又做了一个观察者实验,向受试者展示两张高分辨率图像(分别由 LDM-SR 和对比模型生成)和二者之间的一张低分图像, 然后统计受试者对这两张图像的评价,结果显示由 LDM-SR 生成的超分图像评价更高。

更多效果展示

 

3.5 图像修复(Inpainting with Latent Diffusion)

        作者在 Places 数据集上训练和验证模型。首先分析了在第一阶段选择不同可调因子(降采样因子、正则化项、注意力机制)对生成结果的影响。总体来说,LDM 与普通 DM( 的LDM)相比,速度上至少 2.7倍+,FID 分数高了 1.6倍+。

        加入注意力机制之后提高了生成图像的质量(从 FID 分数上反应)。从之前的观察者实验结果表中也可以反映 LDM 修复的图像质量更佳。

 修复效果展示


        实验部分梳理完毕(信息量确实太大了 - -)。后面作者提到了 LDMs 存在的局限性(顺序采样比 GANs 慢,生成高精度图像的能力等)以及模型可能造成的社会影响(生成假数据等)。

        以上就是基于本人目前水平对论文所做的解读,会有很多地方理解不够准确,建议大家看原文更有助于理解。

三、总结

        这篇文章属于无意之举,毕竟没有涉猎过图像生成相关领域,原本只是想记录一下使用 LDMs 的过程,但在看别人教程还是 github 的过程中有很多概念不太理解,就去搜搜看看,慢慢看得多了就想说要不干脆学习一下论文,原理上多理解一些对于后面模型使用也有好处。

        这一读不要紧,越读不懂的越多,搜的越多,费的时间越多,断断续续花了好几天才算把论文主要内容看完,配上自己粗浅的理解,才算有了这篇文章。说实话自己可能也就理解了一半,还有很多东西看不懂,比如什么是 ddpm,ddim?什么叫卷积采样?等等,留待以后再慢慢学习吧。

        Stable Diffusion 大火那会自己也是第一时间上手试玩,当时来说确实很惊艳,但也只是会用,不知道背后竟然是 LDMs,又转回来了。

参考资料

[1] [论文笔记] Semi-parametric Image Synthesis -知乎

[2] Retrieval-Augmented Diffusion Models -知乎

[3] Latent Diffusion Models论文解读 -知乎

[4] stable diffusion原始论文翻译(LDM latent diffusion model) -知乎

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

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

相关文章

通信安全堡垒:profinet转ethernet ip主网关提升冶炼安全与连接

作为钢铁冶炼生产线的安全检查员,我在此提交关于使用profinet转ethernetip网关前后对生产线连接及安全影响的检查报告。 使用profinet转ethernetip网关前的情况: 在未使用profinet转ethernetip网关之前,我们的EtherNet/IP测温仪和流量计与PR…

TIFS2024 | CRFA | 基于关键区域特征攻击提升对抗样本迁移性

Improving Transferability of Adversarial Samples via Critical Region-Oriented Feature-Level Attack 摘要-Abstract引言-Introduction相关工作-Related Work提出的方法-Proposed Method问题分析-Problem Analysis扰动注意力感知加权-Perturbation Attention-Aware Weighti…

day 20 奇异值SVD分解

一、什么是奇异值 二、核心思想: 三、奇异值的主要应用 1、降维: 2、数据压缩: 原理:图像可以表示为一个矩阵,矩阵的元素对应图像的像素值。对这个图像矩阵进行 SVD 分解后,小的奇异值对图像的主要结构贡…

符合Python风格的对象(对象表示形式)

对象表示形式 每门面向对象的语言至少都有一种获取对象的字符串表示形式的标准方 式。Python 提供了两种方式。 repr()   以便于开发者理解的方式返回对象的字符串表示形式。str()   以便于用户理解的方式返回对象的字符串表示形式。 正如你所知,我们要实现_…

springboot配置tomcat端口的方法

在Spring Boot中配置Tomcat端口可通过以下方法实现: 配置文件方式 properties格式 在application.properties中添加:server.port8081YAML格式 在application.yml中添加:server:port: 8082多环境配置 创建不同环境的配置文件(如app…

DeepSeek指令微调与强化学习对齐:从SFT到RLHF

后训练微调的重要性 预训练使大模型获得丰富的语言和知识表达能力,但其输出往往与用户意图和安全性需求不完全匹配。业内普遍采用三阶段训练流程:预训练 → 监督微调(SFT)→ 人类偏好对齐(RLHF)。预训练阶段模型在大规模语料上学习语言规律;监督微调利用人工标注的数据…

Maven 插件扩展点与自定义生命周期

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

ecmascript 第6版特性 ECMA-262 ES6

https://blog.csdn.net/zlpzlpzyd/article/details/146125018 在之前写的文章基础上,ES6在export和import的基础外,还有如下特性 特性说明let/const块级作用域变量声明>箭头函数Promise异步编程

CT重建笔记(五)—2D平行束投影公式

写的又回去了,因为我发现我理解不够透彻,反正想到啥写啥,尽量保证内容质量好简洁易懂 2D平行束投影公式 p ( s , θ ) ∫ ∫ f ( x , y ) δ ( x c o s θ y s i n θ − s ) d x d y p(s,\theta)\int \int f(x,y)\delta(x cos\theta ysi…

记一次缓存填坑省市区级联获取的操作

先说缓存是什么? 缓存主要是解决高并发,大数据场景下,热点数据快速访问。缓存的原则首先保证数据的准确和最终数据一致,其次是距离用户越近越好,同步越及时越好。 再说我们遇到的场景: 接手项目后&#…

无法加载文件 E:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本

遇到“无法加载文件 E:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本”这类错误,通常是因为你的 PowerShell 执行策略设置为不允许运行脚本。在 Windows 系统中,默认情况下,出于安全考虑,PowerShell 可能会阻止运行未…

OpenWebUI新突破,MCPO框架解锁MCP工具新玩法

大家好,Open WebUI 迎来重要更新,现已正式支持 MCP 工具服务器,但 MCP 工具服务器需由兼容 OpenAPI 的代理作为前端。mcpo 是一款实用代理,经测试,它能让开发者使用 MCP 服务器命令和标准 OpenAPI 服务器工具&#xff…

松下SMT贴片机选型与高效应用指南

内容概要 在电子制造领域,SMT贴片机作为核心生产设备,其选型与应用直接关系到企业产能与产品质量。本文聚焦松下SMT贴片机系列,通过系统性梳理设备选型逻辑与技术特性,为制造企业提供多维度的决策参考。重点涵盖主流机型性能参数…

计算机网络(1)——概述

1.计算机网络基本概念 1.1 什么是计算机网络 计算机网络的产生背景 在计算机网络出现之前,计算机之间都是相互独立的,每台计算机只能访问自身存储的数据,无法与其他计算机进行数据交换和资源共享。这种独立的计算机系统存在诸多局限性&#…

React学习(二)-变量

也是很无聊,竟然写这玩意,毕竟不是学术研究,普通工作没那么多概念性东西,会用就行╮(╯▽╰)╭ 在React中,变量是用于存储和管理数据的基本单位。根据其用途和生命周期,React中的变量可以分为以下几类&…

完整卸载 Fabric Manager 的方法

目录 ✅ 完整卸载 Fabric Manager 的方法 1️⃣ 停止并禁用服务 2️⃣ 卸载 Fabric Manager 软件包 3️⃣ 自动清理无用依赖(可选) 4️⃣ 检查是否卸载成功 ✅ 补充(仅清除服务,不删包) ✅ 完整卸载 Fabric Mana…

ABP vNext 多租户开发实战指南

🚀 ABP vNext 多租户开发实战指南 🛠️ 环境:.NET 8.0 ABP vNext 8.1.5 (C# 11, EF Core 8) 📚 目录 🚀 ABP vNext 多租户开发实战指南🏠 一、什么是多租户?📦 二、ABP 多租户的核…

【WIN】笔记本电脑忘记密码解决办法/笔记本电脑重装系统笔记/bitlocker忘记密码的解决办法

通过安全模式下的CMD命令找回 具体的步骤就是: 首先通过笔记本的对应的一个进入安全模式的一个方式 进入安全模式之后,一直点着这个诊断,然后高级选项进去就可以看到了。 但是这种方法应该是属于安全漏洞,所以只适合老版本。如果是…

人工智能100问☞第25问:什么是循环神经网络(RNN)?

目录 一、通俗解释 二、专业解析 三、权威参考 循环神经网络(RNN)是一种通过“记忆”序列中历史信息来处理时序数据的神经网络,可捕捉前后数据的关联性,擅长处理语言、语音等序列化任务。 一、通俗解释 想象你在和朋友聊天,每说一句话都会根据之前的对话内容调整语气…

实验八 基于Python的数字图像问题处理

一、实验目的  培养利用图像处理技术解决实际问题的能力。  培养利用图像处理技术综合设计实现的能力。  掌握在Python环境下解决实际问题的能力。  熟练掌握使用cv2库对图像进行处理  熟练掌握使用区域生长法提取图片中感兴趣的区域 二、实验内容 本次实验内容为…