LDM论文解读

news2024/10/6 12:31:20

论文名称:High-Resolution Image Synthesis with Latent Diffusion Models

发表时间:CVPR2022
作者及组织:Robin Rombach, Andreas Blattmann, Dominik Lorenz,Patrick Esser和 Bjorn Ommer, 来自Ludwig Maximilian University of Munich & IWR, Heidelberg University, Germany。
开源地址:https://github.com/CompVis/latent-diffusion

前言

  本文就是VQGAN和DDPM的结合。在图像的2D特征向量上做加噪去噪,从而降低DDPM在全像素空间上生成造成计算量大的问题。而且在隐变量上训练DDPM在一定程度上并不会损失生成的细节。

1、方法

  以VQGAN为例,第一个阶段是感知压缩阶段,旨在去掉无关的像素细节;第二个阶段是语义压缩阶段,让自回归模型来预测图像的语义。而本文就是找到两个压缩阶段之间的一个trade-off。

在这里插入图片描述

1.1.感知压缩阶段

 该阶段用T-UNet来提取图像特征向量: z = E ( x ) z = E(x) z=E(x) ,其中 z z z 并不像VQGAN中一样是经过codebook后的特征向量,而是未经过codebook,因为作者认为此时 z z z 天然具有一定归纳偏置 ,有利于后续生成。而压缩的比例用变量 $f $ 进行表示(比如f=2就表示下采样2倍,f=1就是原始像素空间)。
 解码器为 x ^ = D ( z ) \hat x = D(z) x^=D(z)
 为了防止隐空间的特征向量有高方差,加了两个正则化,KL-reg和VQ-reg,分别对应VAE和VQGAN中的两种损失函数。

1.2.LDM

 DM损失函数为:
L D M = E x , ϵ   N ( 0 , 1 ) , t [ ∣ ∣ ϵ − ϵ θ ( x t , t ) ∣ ∣ 2 2 ] \begin{equation} L_{DM}= E_{x,\epsilon~N(0,1),t} [||\epsilon-\epsilon_\theta(x_t,t)||_2^2] \tag{1} \end{equation} LDM=Ex,ϵ N(0,1),t[∣∣ϵϵθ(xt,t)22](1)
 LDM的损失函数就是将采样样本x变成了隐空间 z = E ( x ) z=E(x) z=E(x)
L D M = E E ( x ) , ϵ   N ( 0 , 1 ) , t [ ∣ ∣ ϵ − ϵ θ ( x t , t ) ∣ ∣ 2 2 ] \begin{equation} L_{DM}= E_{E(x),\epsilon~N(0,1),t} [||\epsilon-\epsilon_\theta(x_t,t)||_2^2] \tag{2} \end{equation} LDM=EE(x),ϵ N(0,1),t[∣∣ϵϵθ(xt,t)22](2)
  而如果加一些条件(文本,layout,mask…)则损失函数为:
L L D M = E E ( x ) , y , ϵ   N ( 0 , 1 ) , t [ ∣ ∣ ϵ − ϵ θ ( x t , t , τ θ ( y ) ) ∣ ∣ 2 2 ] \begin{equation} L_{LDM}= E_{E(x),y,\epsilon~N(0,1),t} [||\epsilon-\epsilon_\theta(x_t,t, \tau_\theta(y))||_2^2] \tag{3} \end{equation} LLDM=EE(x),y,ϵ N(0,1),t[∣∣ϵϵθ(xt,t,τθ(y))22](3)

 其中条件注入用了CrossAttn。

2、实验

2.1. class conditional

 数据集:ImageNet和Celeb-A数据集。
 下图表示LDM-4/8收敛速度快,且生成图像的保真度高。
在这里插入图片描述

 下图表示相同采样步数,LDM-8吞吐量高且生成图像逼真。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.2. ConditionalLDM

 Text2img训了一个1.45B的模型在LAION-400M。下图说明 class free guide 的trick非常有用,但训练资源加倍。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.3. rescale

 在AE和DM训练中,为了防止隐空间尺度任意变换,对 z z z 做了一下正则化,如下图所示,若不做正则化,生成图像细节不足。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

思考:

 LDM还能完成好多其余工作:比如text2img,img inpaint, mask2img, super等。是后续生成模型的基本组件。

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

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

相关文章

AI奏响未来乐章:音乐界的革命性变革

AI在创造还是毁掉音乐 引言 随着科技的飞速发展,人工智能(AI)正在逐渐渗透到我们生活的每一个角落,音乐领域也不例外。AI技术的引入,不仅为音乐创作、教育、体验带来了革命性的变革,更为整个音乐产业注入了…

顺序表应用——通讯录

在本篇之前的顺序表专题我们已经学习的顺序表的实现,了解了如何实现顺序表的插入和删除等功能,那么在本篇当中就要学习基于顺序表来实现通讯录,在通讯录当中能实现联系人的增、删、查改等功能,接下来就让我们一起来实现通讯录吧&a…

民用无人机企业招标投标需要资质证书详解

一、基础资质 在民用无人机企业的招标投标过程中,基础资质是首要考虑的因素。这些资质通常包括企业注册资质、税务登记证、组织机构代码证等。 1.1 企业注册资质 企业应具备合法的注册资质,即营业执照。该执照应包含企业名称、注册地址、法定代表人、…

Java [数据结构] Deque与Queue

🤺深入理解 Java 中的 Deque 和 Queue🤺 在现代软件开发中,数据结构是构建高效、可维护代码的基础。 Java 作为一门广泛应用的编程语言,其丰富的集合框架(Collections Framework)为开发者提供了多种强大的…

Zabbix 排坑版 Centos7

systemctl stop firewalld;systemctl disable firewalld;setenforce 0sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/configzabbix源地址,可以自己选版本,安装都大差不差 rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5…

【车载开发系列】S32 Design Studio工具安装步骤

【车载开发系列】S32 Design Studio工具安装步骤 S32 Design Studio工具安装步骤 【车载开发系列】S32 Design Studio工具安装步骤※关键字提炼※一. 准备工作二. 下载安装包三. 获取License许可四. 开始预安装五. 开始正式安装六. 启动软件七. 安装插件八. 卸载插件九. 确认安…

【操作系统】进程管理——进程控制和进程通信(个人笔记)

学习日期:2024.6.30 内容摘要:进程控制的概念,进程控制相关的“原语”,进程通信 进程控制 原语 进程控制用“原语”实现。原语是一种特殊的程序,它的执行具有原子性,也就是说,这段程序的执行…

vs code python开发笔记

目录 选择python 解析器 安装插件 不全: 调试启动目录问题: 2.选择python解释器 选择python 解析器 ctrl shift P select interpreter 安装插件 不全: remote ssh python debuger 左下角,点击左右左右箭头,远程…

后端之路第三站(Mybatis)——JDBC跟Mybatis、lombok

一、什么是JDBC JDBC就是sun公司研发的一套通过java来操控数据库的工具,对应不同的数据库系统有不同的JDBC,而他们统称【驱动】,这就是上一篇我们提到创建Mybatis项目时要引入的依赖、以及连接数据库四要素里的第一要素。 JDBC有自己一套原始…

Redis 7.x 系列【8】数据类型之哈希(Hash)

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 常用命令2.1 HSET2.2 HGET2.3 HDEL2.4 HEXISTS2.5 HGETALL2.6 HKEYS2.7 HLE…

grpc学习golang版( 五、多proto文件示例 )

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 第五章 多proto文件示例 第六章 服务器流式传输 第七章 客户端流式传输 第八章 双向流示例 文章目录 一、前言二、定义proto文件2.1 公共proto文件2.2 语音唤醒proto文…

探索MySQL核心技术:理解索引和主键的关系

在数据密集型应用中,数据库的性能往往是决定一个应用成败的重要因素之一。其中,MySQL作为一种开源关系型数据库管理系统,以其卓越的性能和丰富的功能被广泛应用。而在MySQL数据库优化的众多技巧中,索引和主键扮演着极其重要的角色…

5、Python之rich:GUI之外,终端呈现也能玩出花

引言 在Python系列文章的上一篇中,我们从print的定义出发,进一步探索了print()函数更多的用法,尤其是一些哪怕是Python老手也可能忽略的用法。没有阅读的或者需要回顾print()及输出格式化的扩展用法,可以查看上一篇文章。 虽然pr…

2024/6/30周报

文章目录 摘要ABSTRACT文献阅读题目问题本文贡献方法LSTMTCN模型总体架构 实验实验结果 深度学习TCN-LSTM代码运行结果 总结 摘要 本周阅读了一篇关于TCN和LSTM进行光伏功率预测的文章,本文提出了一种利用LSTM-TCN预测光伏功率的新模型。它由长短期记忆和时间卷积网…

可编程定时计数器8253/8254 - 8253控制字

8253控制字 概述 图7-45中左下角的是控制字寄存器,其操作端口是0x43,它是8位大小的寄存器 控制字寄存器也称为模式控制器,在控制字寄存器中保存的内容称为控制字,控制字用来设置所指定的计数器(通道)的工作方式、读写格式及数制&#xff0c…

emptyDir + initContainer实现ConfigMap的动态更新(K8s相关)

1. 絮絮叨叨 K8s部署服务时,一般都需要使用ConfigMap定义一些配置文件例如,部署分布式SQL引擎Presto,会在ConfigMap中定义coordinator、worker所需的配置文件以node.properties为例,node.environment和node.data-dir的值将由Helm…

48 - 按日期分组销售产品(高频 SQL 50 题基础版)

48 - 按日期分组销售产品 -- group_concat 分组拼接selectsell_date,count(distinct product) num_sold,group_concat(distinct product order by product separator ,) products fromActivities group bysell_date;

监控电脑的软件有哪些?精选8大监控电脑的软件

根据当前市场反馈和功能评价,以下是八款备受推崇的电脑监控软件推荐,适合不同企业和组织的监控与管理需求: 1.安企神监控软件 特点:全面的局域网监控工具,擅长网络设备监控、网络性能管理和故障诊断。提供员工电脑屏幕…

C++操作系列(二):VSCode安装和配置C++开发环境

1. VSCode下载 进入VSCode的官网网页:Download Visual Studio Code - Mac, Linux, Windows 下载相应的版本: 2. 安装VSCode 安装到指定位置: 一路下一步,直至安装完成: 3. 安装C插件 3.1. 安装C/C 点击扩展图标&…

语音唤醒入门(基于ESP-skainet)

主要参考资料: ESP-SR 用户指南: https://docs.espressif.com/projects/esp-sr/zh_CN/latest/esp32s3/index.html 目录 ESP提供的模型直接初始化和使用模型AFE声学前端算法 使用模型 自定义模型 ESP提供的模型 乐鑫提供了经过训练的 WakeNet 和 MultiNet 模型&…